@kenhkl/agent-moss 0.7.9 → 0.7.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,40 @@
1
+ # indirect_access_guard — 间接文件访问检测(目录遍历绕过)
2
+
3
+ ## 适用场景
4
+ 当待执行动作是内联脚本(python -c / perl -e / ruby -e / node -e 等),且通过目录遍历函数(os.listdir、glob、pathlib 等)动态发现文件路径后执行读写操作时,使用本规则判断是否存在绕过静态路径检测的安全风险。
5
+
6
+ ## 检测模式
7
+
8
+ ### 典型绕过模式
9
+ - 使用 `os.listdir('.')` + `open(f).read()` 动态读取目录下的所有文件
10
+ - 使用 `glob.glob('*.yml')` + `open(f).write()` 动态修改匹配的文件
11
+ - 使用 `os.walk('/')` + `open(f).read()` 遍历访问敏感文件
12
+ - 使用 `pathlib.Path('.').iterdir()` + `open(f).read()` 动态发现并访问文件
13
+ - 使用 `os.scandir('.')` + `open(f).write()` 遍历目录并修改文件
14
+
15
+ ### High(建议 Deny)
16
+ - 目录遍历 + 读取文件内容:`os.listdir + open().read()` 访问目录下所有文件,可能泄露凭据
17
+ - 目录遍历 + 写入文件内容:`os.listdir + open().write()` 修改目录下所有文件,可能破坏配置
18
+ - 目录遍历 + 读写操作发生在已知包含敏感文件的目录(如项目根目录含 credentials.yml / .env)
19
+ - 脚本遍历 `/home/`、`/root/`、`/etc/` 等系统敏感目录后读写文件
20
+
21
+ ### Medium(需谨慎评估)
22
+ - 目录遍历 + 仅读取文件名(`os.listdir + print(f)`),不读取文件内容
23
+ - 目录遍历 + 读取文件内容,但目标目录不包含已知敏感文件类型
24
+ - 目录遍历 + 写入文件,但写入内容明显是安全的(如添加注释、格式化)
25
+
26
+ ## 决策标准
27
+ 1. 脚本是否同时使用了目录遍历函数和文件读写函数?→ 存在绕过嫌疑
28
+ 2. 遍历的目标目录是否包含已知敏感文件(凭据、密钥、配置)?→ High → Deny
29
+ 3. 脚本是否遍历后读取了文件内容(不仅仅是文件名)?→ 存在泄露风险
30
+ 4. 脚本是否遍历后修改了文件内容?→ 存在破坏风险
31
+ 5. 操作是否与用户原始 prompt 意图一致?→ 结合意图判断
32
+ - 用户让"分析项目"、遍历读取 `.yml` 文件 → 意图一致,但需要判断是否涉及敏感文件
33
+ - 用户让"修改配置"、遍历所有文件后修改 → 意图一致,但需确认修改范围
34
+ - 用户没有明确要求,Agent 自行遍历读取 → 意图偏离,更可能构成绕过
35
+
36
+ ## 处理建议
37
+ 1. 如果明确访问了凭据/密钥文件(credentials.yml、secrets.yml、.env 等)→ Deny
38
+ 2. 如果遍历范围大(如 `/`、`/home/`、`/etc/`)且读取了文件内容 → Deny
39
+ 3. 如果遍历范围局限(如当前项目目录)且操作与用户意图一致 → 可 Allow
40
+ 4. 不确定时 → 按 fail-closed 原则 Deny
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kenhkl/agent-moss",
3
- "version": "0.7.9",
3
+ "version": "0.7.11",
4
4
  "description": "Multi-layer security analysis engine for AI agents (TypeScript)",
5
5
  "type": "module",
6
6
  "main": "dist/cli.js",