Canary

Polar Sponsor
爱发电 赞助
.NET 9.0

AI代理安全监控与触发检测。防止未授权文件访问、危险指令及过度活动。检测到风险自动中止...

安全追踪系统:AI毒剂的安全监测和绊线探测

功能概述

安全追踪系统:AI毒剂的安全监测和绊线探测是一项面向实际任务的技能,主要用于防止未经授权的档案访问、危险命令和过度活动。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

金丝雀代理安全触发系统

面向 AI 代理的安全监控与触发检测机制。防范未授权文件访问、危险命令执行及过度活跃行为。在发生严重违规时自动中止运行。蜜罐式触发器可检测窥探行为。

面向 AI 代理的安全监控与触发检测机制。

防范未授权文件访问、危险命令执行及过度活跃行为。在发生严重违规时自动中止运行。蜜罐式触发器可检测窥探行为。

功能说明

Canary 提供三层代理安全保障:

  1. 操作监控 — 在执行前检查文件路径与命令
  2. 触发文件(Tripwire Files) — 不应被任何代理访问的蜜罐文件
  3. 审计日志(Audit Trail) — 完整的操作日志与模式识别能力

核心功能

受保护路径:

  • 阻止访问敏感目录(如 /etc/、~/.ssh/ 等)
  • 支持自定义受保护路径列表
  • 细粒度操作控制(读取、写入、删除)

禁用模式:

  • 基于正则表达式的危险命令匹配
  • 可识别 rm -rf /、chmod 777、curl | sh 等高危命令
  • 可扩展的模式库

速率限制:

  • 限制文件操作、网络请求、命令执行频次
  • 可配置时间窗口与阈值
  • 防止失控代理持续运行

自动中止:

  • 在违规次数达到阈值后自动停止代理
  • 避免级联故障扩大影响
  • 重启需人工审核确认

触发文件:

  • 创建不应被访问的蜜罐文件
  • 检测对文件的修改、删除或访问行为
  • 通过哈希校验保障文件完整性

审计日志:

  • 完整记录所有操作行为
  • 违规历史记录
  • 模式识别(高频违规、重复目标、时间聚集性等)
  • 支持导出为 JSON 或 Markdown 格式

快速上手

安装

零依赖!仅需 Python 3.7+ 标准库。

# 复制配置示例
cp config_example.json config.json

# 使用编辑器修改配置,添加需保护的路径
nano config.json

基础用法

from canary import CanaryMonitor

# 初始化监控器
canary = CanaryMonitor('config.json')

# 访问前检查路径安全性
is_safe, reason = canary.check_path('/etc/passwd', 'read')
if not is_safe:
    print(f"已拦截:{reason}")
    exit(1)

# 执行前检查命令安全性
is_safe, reason = canary.check_command('rm -rf /')
if not is_safe:
    print(f"已拦截:{reason}")
    exit(1)

# 获取当前状态
status = canary.get_status()
print(f"违规次数:{status['violation_count']}/{status['halt_threshold']}")

CLI 用法

# 查看当前状态
python3 canary.py status

# 检查某路径是否允许访问
python3 canary.py check-path --path /etc/passwd --operation read

# 检查某命令是否允许执行
python3 canary.py check-command --command "rm -rf /"

# 重置监控状态(清空违规记录)
python3 canary.py reset

触发文件

创建不应被访问的蜜罐文件:

# 创建触发文件
python3 canary_tripwire.py create 
  --path ~/.secrets/fake-api-key.txt 
  --severity critical 
  --description "用于检测凭证窃取行为的蜜罐"

# 列出全部触发文件
python3 canary_tripwire.py list

# 检查是否有触发文件被访问
python3 canary_tripwire.py check

# 查看告警历史(最近 10 条)
python3 canary_tripwire.py alerts --limit 10

# 删除指定触发文件
python3 canary_tripwire.py remove --path ~/.secrets/fake-api-key.txt

Python API

from canary_tripwire import TripwireManager

manager = TripwireManager()

# 创建触发文件
manager.create_tripwire(
    path='~/.aws/fake-credentials',
    severity='critical',
    description='用于检测 AWS 凭证访问行为'
)

# 检查全部触发文件
triggered = manager.check_tripwires()
if triggered:
    print(f"⚠️  共 {len(triggered)} 个触发文件已被触发!")
    for alert in triggered:
        print(f"  - {alert['path']}:{alert['event']}")

审计报告

分析日志并生成安全报告:

# 生成摘要报告
python3 canary_audit.py summary

# 按严重等级查看违规记录
python3 canary_audit.py violations --severity critical

# 查看最近 24 小时事件时间线
python3 canary_audit.py timeline --hours 24

# 检测可疑行为模式
python3 canary_audit.py patterns

# 导出完整报告
python3 canary_audit.py export --output report.json --format json
python3 canary_audit.py export --output report.md --format markdown

Python API

from canary_audit import CanaryAuditor

auditor = CanaryAuditor('canary.log')

# 生成摘要报告
summary = auditor.generate_summary_report()
print(f"总违规次数:{summary['total_violations']}")

# 获取严重等级为 critical 的违规记录
critical = auditor.get_violations_by_severity('critical')

# 检测行为模式
patterns = auditor.detect_patterns()
if patterns['rapid_violations']:
    print("⚠️  检测到高频违规序列!")

# 导出报告
auditor.export_report('safety-report.md', format='markdown')

配置说明

全部配置项详见 config_example.json。

关键配置项

{
  "protected_paths": [
    "/etc/",
    "~/.ssh/",
    "~/critical-data/"
  ],
  "forbidden_patterns": [
    "rm\s+-rf\s+/",
    "chmod\s+777",
    "curl.*\|\s*sh"
  ],
  "halt_threshold": 5,
  "rate_limits": {
    "file_operations": {"limit": 100, "window": 60},
    "command_executions": {"limit": 20, "window": 60}
  }
}

集成示例

与代理运行时集成

from canary import CanaryMonitor

canary = CanaryMonitor('config.json')

def safe_file_read(path):
    """使用 Canary 检查后读取文件。"""
    is_safe, reason = canary.check_path(path, 'read')
    if not is_safe:
        raise PermissionError(reason)
    
    with open(path, 'r') as f:
        return f.read()

def safe_command(cmd):
    """使用 Canary 检查后执行命令。"""
    is_safe, reason = canary.check_command(cmd)
    if not is_safe:
        raise PermissionError(reason)
    
    import subprocess
    cmd_list = cmd.split() if isinstance(cmd, str) else cmd
    return subprocess.run(cmd_list, capture_output=True)

部署前检查

# 部署代理前,验证 Canary 配置是否就绪
from canary import CanaryMonitor

canary = CanaryMonitor('config.json')

# 验证受保护路径是否已配置
status = canary.get_status()
if status['protected_paths_count'] == 0:
    print("⚠️  未配置任何受保护路径!")
    exit(1)

# 测试触发文件检测能力
from canary_tripwire import TripwireManager
manager = TripwireManager()

# 创建测试触发文件
manager.create_tripwire('/tmp/canary-test.txt', severity='high')

# 验证其存在性
triggered = manager.check_tripwires()
if not any(t['path'] == '/tmp/canary-test.txt' for t in triggered):
    print("✅ 触发文件系统运行正常")

# 清理测试文件
manager.remove_tripwire('/tmp/canary-test.txt', delete_file=True)

典型应用场景

1. 自主代理安全防护

将 Canary 与自主代理协同部署,以防止:

  • 误删系统关键文件
  • 凭据泄露
  • 失控命令持续执行

2. 多代理系统

为每个代理分配独立的 Canary 实例,并配置差异化规则:

  • 研究型代理:限制网络访问权限
  • 编码型代理:禁止生产环境部署操作
  • 运维型代理:授予完全访问权限,但启用严格审计

3. 开发与测试阶段

在代理开发过程中使用 Canary:

  • 早期捕获危险行为模式
  • 验证速率限制策略效果
  • 确保各项安全机制按预期工作

4. 生产环境监控

在生产环境中运行 Canary:

  • 实时违规告警
  • 满足合规性要求的审计日志
  • 异常行为模式识别

架构图

┌─────────────────┐
│   Your Agent    │
└────────┬────────┘
         │
         ▼
┌─────────────────┐      ┌──────────────────┐
│ CanaryMonitor   │◄────►│  config.py       │
│ (canary.py)     │      │  (your rules)    │
└────────┬────────┘      └──────────────────┘
         │
         ├─────► canary.log (action log)
         │
         ▼
┌─────────────────┐      ┌──────────────────┐
│ TripwireManager │◄────►│ .canary_tripwires│
│ (tripwire.py)   │      │ (honeypot files) │
└────────┬────────┘      └──────────────────┘
         │
         └─────► alerts.log
         
         
┌─────────────────┐
│ CanaryAuditor   │───► reports (JSON/MD)
│ (audit.py)      │
└─────────────────┘

最佳实践

初始策略宜保守

从严格规则起步,后续根据需要逐步放宽:

protected_paths = [
    '/',  # 初期保护整个文件系统
]

halt_threshold = 3  # 设置较低阈值,便于尽早发现问题

战略性部署触发文件

将触发文件置于敏感位置:

  • 伪造的凭据文件
  • 空的 “secrets” 目录
  • 诱饵式配置文件

定期审阅日志

# 每日审计
python3 canary_audit.py summary

# 每周深度分析
python3 canary_audit.py patterns
python3 canary_audit.py export --output weekly-report.md --format markdown

验证配置有效性

# 验证 Canary 是否能正确拦截预期行为
canary = CanaryMonitor('config.json')

# 以下调用均应返回 False
assert not canary.check_path('/etc/passwd', 'delete')[0]
assert not canary.check_command('rm -rf /')[0]
assert not canary.check_command('chmod 777 /tmp')[0]

print("✅ Canary 配置验证通过")

限制条件

详细信息请参阅 LIMITATIONS.md。

主要约束:

  • 模式匹配基于正则表达式(非语义分析)
  • 无内置告警机制(仅输出日志)
  • 触发文件可检测访问行为,但无法判断访问意图
  • 速率限制作用于单次会话(服务重启后不保留状态)

许可证

MIT License — 详见 LICENSE

作者: Shadow Rose

为何需要此工具

AI 代理可在极短时间内造成严重破坏:

  • 一条错误命令即可删除关键文件
  • 失控循环可能耗尽系统资源
  • 遭入侵的代理可能窃取敏感凭据

Canary 提供纵深防御能力:

  • 预防性: 在危险操作发生前即予以拦截
  • 检测性: 触发文件可捕获窥探类行为
  • 取证性: 提供完整审计日志,支撑事后分析

轻量、零依赖、开箱即用的自主代理安全方案。

⚠️ 安全提示 — 配置文件

配置从 JSON 文件加载。该方式安全可靠,不涉及代码执行。

  • 加载前会对配置路径的存在性与大小进行校验(上限 1MB)
  • 必须为 .json 文件 — 若传入非 JSON 路径,CanaryMonitor 将抛出 ValueError
  • 建议将配置纳入版本控制管理,并视其为安全策略的一部分

⚠️ 安全提示 — 触发文件部署

  • 路径完全解析 — ~ 及相对路径在创建与查找前均通过 Path.expanduser().resolve() 展开。'~/.aws/fake-credentials' 将实际置于您的主目录下,而非字面意义的 ~ 路径。
  • 仅使用诱饵路径 — 切勿将触发文件指向真实且含敏感数据的文件。触发文件本质是蜜罐,应视为诱饵而非防护手段。
  • create_tripwire 不覆盖已有文件 — 该方法会检查目标路径是否存在文件,若存在则拒绝执行。请为触发文件预留专用空路径。
  • 先在沙箱中测试 — 部署前请确认日志、触发文件及注册表文件的实际生成位置;在隔离环境中验证受保护路径与自动中止行为是否符合预期。
  • 保护日志与告警目录 — 设置合适的文件系统权限,确保告警日志不可被全局读取。Canary 输出明文日志,请据此限制访问权限。
  • Canary 仅在被显式调用时生效 — 其非操作系统级强制机制。生产部署时,应结合容器、文件系统权限及 auditd 等多重防护措施。

⚠️ 免责声明

本软件按“现状”提供,不附带任何形式的明示或暗示担保。

使用风险由您自行承担。

  • 作者不对因本软件的使用或误用所导致的任何损害、损失或后果承担责任,包括但不限于经济损失、数据丢失、安全漏洞、业务中断或任何间接/衍生损害。
  • 本软件不构成财务、法律、交易或专业建议。
  • 用户须自行评估本软件是否适用于其具体用例、运行环境及风险承受能力。
  • 不保证本软件在准确性、可靠性、完整性或特定用途适用性方面的表现。
  • 作者不对第三方在获取本软件后进行的修改、分发或再利用行为负责。

下载、安装或使用本软件,即表示您已阅读并接受本免责声明,且同意完全自行承担使用风险。

安全免责申明:本软件提供的是补充性安全措施,不能替代专业的安全审计、渗透测试或合规框架。没有任何软件能够确保对所有威胁实现完全防护。在受监管行业(如医疗、金融、法律)中使用的用户,应咨询合格的安全专家,并独立验证其是否符合相关法规(GDPR、HIPAA、SOC2 等)要求。

支持与链接

🐛 问题反馈 TheShadowyRose@proton.me
☕ Ko-fi ko-fi.com/theshadowrose
🛒 Gumroad shadowyrose.gumroad.com
🐦 Twitter @TheShadowyRose
🐙 GitHub github.com/TheShadowRose
🧠 PromptBase promptbase.com/profile/shadowrose

基于 OpenClaw 构建 — 感谢您让这一切成为可能。

🛠️ 需要定制化服务? 定制 OpenClaw 代理与技能,起价 $500。只要您能描述需求,我就能为您构建 → 在 Fiverr 上雇佣我

📦 安装提示: ClawHub 上的 slug canary 已被占用。
请使用如下命令安装本技能:clawhub install canary-sr

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习