该技能为 CTI 调查提供三层安全护栏,仅在通过插件方式安装时生效,注册在 hooks/hooks.json 中。\n\n用途:让调查人员在案件处理过程中明确哪些写入会被拒绝、哪些出站操作会先询问、哪些会话事件会提示,从而避免意外操作,并防止错误关闭护栏。\n\n主要能力:\n1. leakguard.py:在 PreToolUse 阶段拦截 Write/Edit/NotebookEdit,拒绝将案件数据写入被 Git 跟踪的文件。它只在路径位于 cti-expert 检出目录内且未被 Git 忽略时拒绝;写入 intel_engine/cases/、intel_engine/knowledge/、.env 等已忽略路径不受影响。它调用 scripts/leakcheck.sh 执行检查,不重复维护正则。\n2. actionguard.py:在 PreToolUse 阶段拦截 Bash 和 mcp__.*,对不可撤销的出站操作弹出询问(ask),而非直接拒绝。受控 MCP 工具包括 engage_account、harvest_authenticated、anyrun_submit、capture_evidence、pivot_extract、misp_push、misp_publish;受控 Bash 模式包括 en_engage.py、intel.py engage、en_harvest.py、intel.py engage-harvest、bp_anyrun.py submit、--submit、--confirm-submission、sh_misp.py push/publish、intel.py misp push/publish 等。capture_evidence 和 pivot_extract 仅在带 --submit 时询问,默认被动收集不触发。\n3. sessionguard.py:在 SessionStart 阶段报告后端层级,并在 @tool 数量变化时发出警告。\n\n使用方式:必须通过 /plugin install cti-expert 安装,bash scripts/register.sh 不会安装 hook。可在 Claude Code 中用 /hooks 验证是否出现 3 个条目。两个 PreToolUse hook 均为 fail-open:内部错误时放行,由 scripts/audit.sh 和 git pre-commit 作为后备。可通过 python3 tests/test_hooks.py 和 python3 tests/test_no_sample_submission.py 验证行为。\n\n适用场景:CTI 案件调查、威胁情报收集与出站操作管控、防止敏感数据泄露到跟踪文件、避免将案件样本提交至公开沙箱。\n\n限制:技能本身不生成内容;hook 仅在插件安装方式下存在;不覆盖所有操作,例如 detect_login、url_paths、passive_ssl 及常规收集不受门控;--yolo 仅跳过技能交互提示,不影响 harness 层 hook;提交样本前应先用 hash-id 确认哈希类型,避免泄露凭据。
dym-cti-expert-safety-gates
安全与审计
更新于 10-18 01:21