agent-security-hardening
AFaffaan-m/ECC279k4,056 new stars in the last 7 days
CyberStrikeAI 项目黑板:跨会话 Fact 图(SQLite)+ upsert_project_fact/record_vulnerability 边渗透边记录节奏、关系边 links、confidence、与多代理协调落库。Use when managing project facts, blackboard index, writing evidence, or avoiding context-loss after compression.
状态落在已绑定项目的 SQLite 黑板,不依赖对话上下文,也不使用
.pentest/目录。 系统自动注入「项目黑板索引」(仅fact_key+ summary);摘要不足必须get_project_fact,禁止凭摘要臆造细节。
| 概念 | 产品落点 | 规则 |
|---|---|---|
| Fact | project_facts(upsert_project_fact) | 同 fact_key 覆盖更新;非正式漏洞条目。confidence: confirmed | tentative | deprecated |
| 关系边 | project_fact_edges(upsert 的 links) | 结构化攻击图;finding/chain/exploit/poc 必须带 links |
| 可交付漏洞 | record_vulnerability | 与 Fact 可各记一次:Fact=复现上下文,漏洞=正式 finding |
| 探索方向 | 本轮计划 / 协调者委派 / plantask(若启用) | 不是独立 Intent 表;待验证方向用 confidence=tentative 的 note/ 或先不落库、验证后再写 |
| 人类注入 | 用户消息 / HITL 审批 | 直接吸收进决策;不必写成 Hint 原语 |
target/ auth/ infra/ business/)finding/ chain/ exploit/ poc/)+ body 填满攻击链record_vulnerability(标题、严重程度、类型、目标、POC、影响、修复);记前可用 list_vulnerabilities 查重勿等会话结束再批量写入。
upsert_project_fact(同 key 覆盖)。record_vulnerability;与事实可各记一次。fact_key、summary、body/POC 要点),供协调者立即写入。| 工具 | 用途 |
|---|---|
upsert_project_fact | 写入/更新事实(含 body、confidence、links) |
get_project_fact | 按 key 取完整 body(索引不够时必调) |
list_project_facts / search_project_facts | 检索黑板 |
deprecate_project_fact / restore_project_fact | 误报废弃 / 恢复 |
record_vulnerability | 可交付漏洞 |
list_vulnerabilities / get_vulnerability | 查重与详情 |
前置:当前对话已绑定项目(否则工具报错)。
category/slug(如 target/primary_domain、finding/sqli-login)target | auth | infra | businessfinding | chain | exploit | poc(另可用 note)fact_key 覆盖,勿拆成多个 key 导致上下文丢失related_vulnerability_id(若有)confirmed;仅线索/待验证 → tentative;误报 → deprecate_project_fact(或 deprecated)from:来源 fact → 当前 fact_key{from: target/*, type: discovered_on};在 finding 上挂 exploit 用 {from: exploit/*, type: exploits}discovered_on | depends_on | leads_to | enables | exploits | contains | part_of | supports不设 Bootstrap/Reason/Explore 磁盘状态机。按当前运行模式推进,但读写黑板的纪律不变:
| 模式 | 黑板用法 |
|---|---|
| 单代理 / deep | 边干边 upsert_project_fact;读索引不够则 get_project_fact |
| plan_execute | 计划步骤产出认知后立即落库;重规划前 list/search_project_facts |
| supervisor | 协调者汇总子代理「待落库」并写入;子代理无工具则结构化交付 |
卡住时:换边/换起点/换攻击域;用 search_project_facts 重审已有 Fact,避免重复死路。负结果也要落库(见验证铁律 skill)。
每步必检(不检=违反验证铁律):
component-vuln-intel 全部命令(browser_navigate+terminal curl,7 个步骤全做)→ 结果用 tentative Fact 或本轮计划跟踪 → 搜完才继续。不搜就说「无已知漏洞」=幻觉;验证后再 confirmed / record_vulnerability。proxy-tool-bootstrap)→ 全换仍不通才写负结果 Fact(confirmed + body 写清已测条件)换面。upsert_project_fact(如 auth/cred-*、target/related-*)。有凭据不喷=遗漏。违反判定:不搜就说「无已知漏洞」=幻觉;被拦不换路=放弃;有凭据不喷=遗漏 → 均违反验证铁律。
| 原「磁盘」概念 | 本产品做法 |
|---|---|
| evidence/ | Fact body + record_vulnerability 的证明字段 + 工具执行记录;大文件放会话/项目 workspace |
| loot/ | 凭据特征写入 auth/ Fact(注意脱敏与授权范围);完整秘密按项目策略处理 |
| changelog.md | 写入型改动在回复中台账化,并可 note/change-* Fact 记录主机/类型/位置/回滚命令 |
详见 pentest-verification:搜索≠漏洞;无证据不写 confirmed;禁止空泛「可能/疑似」当结论;验证失败写负结果 Fact。
AFaffaan-m/ECC279k4,056 new stars in the last 7 days
DIDietrichGebert/ponytail163k5,418 new stars in the last 7 days
DIDietrichGebert/ponytail163k5,418 new stars in the last 7 days
DIDietrichGebert/ponytail163k5,418 new stars in the last 7 days
GAgarrytan/gstack136k872 new stars in the last 7 days
ADaddyosmani/agent-skills106k3,360 new stars in the last 7 days