manuelsampedro1/agent-context-sentinel
GitHub: manuelsampedro1/agent-context-sentinel
代理上下文安全审计工具,预防安全风险。
Stars: 0 | Forks: 0
# 代理上下文哨兵
在将上下文文件交给编码代理之前进行审计。
该工具故意是本地化和窄范围的。它不调用模型、上传上下文或决定内容是否真实。它读取 Markdown 或文本片段并报告可能使代理困惑、泄露机密或在没有审查的情况下推动其执行敏感操作的指令。
## 为什么
编码代理通常从文档、工单、聊天记录、网页、检索到的片段和之前的运行笔记中接收上下文。这些上下文可能包含敌意或意外的指令,例如“忽略之前的规则”、“导出环境”或“未经询问发布”。如果交接过程没有揭示这些风险,代理可能会将不受信任的上下文视为权威。
在使用以下操作之前使用此工具:
- 将第三方文本导入代理提示,
- 将聊天或工单内容作为实现上下文重用,
- 打包交接简报或审查文件包,
- 让自动化将检索到的文档传递给编码代理运行。
## 安装
```
python3 -m pip install --upgrade pip setuptools wheel
python3 -m pip install -e .
```
## 使用方法
审计一个上下文文件:
```
agent-context-sentinel examples/risky-context.md --fail-on high
```
在每个文件顶部附近要求源元数据:
```
agent-context-sentinel examples/risky-context.md --require-source
```
用于自动化的 JSON 输出:
```
agent-context-sentinel examples/risky-context.md --format json --min-score 80
```
## 检测内容
- 告诉模型忽略、覆盖或绕过更高优先级指令的提示注入短语。
- 尝试制造权威混淆的机密或隐藏指令声明。
- 要求导出、打印、发送或上传机密、令牌、`.env`、SSH 密钥或环境变量的请求。
- 危险的 shell 模式,如 `rm -rf`、`git reset --hard`、强制推送、跳过的钩子、特权命令或 `curl | bash`。
- 需要明确人类批准语言才能进行公开或敏感操作,如发布、发送、部署、删除、收费或退款。
- 带有已删除证据的机密材料标记。
- 应在公开重用之前审查的绝对本地路径。
- 当启用 `--require-source` 时缺少源元数据。
## 输出
Markdown 输出包括:
- 总体状态和得分,
- 严重程度计数,
- 文件摘要,
- 包含文件、行、规则、原因和已删除证据的发现,
- 为审阅者或下一个代理的后续检查。
JSON 输出暴露了相同的数据,用于 CI 网关、交接构建器、审查文件包或运行账本。
## 限制
- 这不是完整的提示注入防御。
- 这不是完整的机密扫描器。
- 清洁报告表示未检测到配置的上下文风险,并不意味着源是可信的。
- 人类仍然决定上下文是否应该被排除、引用、总结或带有警告传递给代理。
## 验证
```
make test
make lint
make build
make smoke
```
标签:CodeQL, GitHub Advanced Security, Markdown, Python, URL发现, 上下文审计, 代码安全, 代码安全审计, 反取证, 命令执行, 安全分析工具, 安全加固, 安全加固工具, 安全合规, 安全审查, 安全审查工具, 安全检测, 安全检测工具, 安全评估, 安全评估工具, 安全防护, 安全防护工具, 文本分析, 无后门, 注入检测, 漏洞枚举, 网络代理, 逆向工具, 风险检测