cpprhtn/Longinus

GitHub: cpprhtn/Longinus

一个将 Claude Code 转化为智能安全审计员的 Skill,能像攻击者一样发现漏洞、生成 PoC 并按优先级输出结构化报告。

Stars: 4 | Forks: 0

# 🗡️ Longinus **English** · [한국어](README.ko.md) **Longinus 是一个 [Claude Code Skill](https://docs.claude.com/en/docs/claude-code/skills),它能让 Claude 化身为你项目的安全审计员。** 它会扮演攻击者去寻找漏洞,然后 报告**按优先级排序的发现结果——每一条都包含可复现的概念验证和具体的修复方案。** 它是 一个攻击安全剧本树,外加一个编排大脑([SKILL.md](SKILL.md)),负责将它们对准 目标(Web、API、身份、云、移动端、AI/LLM、二进制文件、加密、取证——视目标需求进行 深度挖掘)。 ## 安装 Longinus 是一个 Claude Code Skill——Claude Code 会自动发现放置在 `skills/` 目录下的任何 Skill。 ``` # Per-project(提交到你的 repo,与团队共享) git clone https://github.com/cpprhtn/Longinus.git .claude/skills/longinus # Personal(在你工作的每个 project 中可用) git clone https://github.com/cpprhtn/Longinus.git ~/.claude/skills/longinus ``` 克隆**整个代码树**,以便 `SKILL.md` 与 `references/` 和 `research/` 一起 位于文件夹根目录——内部链接都是相对路径,因此复制单个文件会破坏其结构。 **可选——多代理层。** 该 Skill 可独立运行。要进行协调审计,让每个域在其**独立的上下文**中 运行(无跨域偏差,专家并行处理),请将内置的 [subagents](agents/README.md) 复制到 Claude Code 可发现它们的位置,然后重启 Claude Code: ``` # Per-project(当 skill 被 cloned 到 .claude/skills/longinus 时) mkdir -p .claude/agents && cp .claude/skills/longinus/agents/*.md .claude/agents/ # 或 personal —— 在每个 project 中可用(在 personal skill install 之后) cp ~/.claude/skills/longinus/agents/*.md ~/.claude/agents/ ``` 然后询问 *"run a Longinus audit"*,**编排器**就会调度各位专家。详见 [agents/README.md](agents/README.md)。 ## 用法 安装完成后,有**三种方式**调用它: ``` 1) Slash command /longinus ← standard audit /longinus quick ← fast mechanical scan /longinus deep ← full multi-domain sweep 2) Just ask "Audit this repo before I launch." "Review the security of this FastAPI API." "Red-team the prompt injection surface of my agent." 3) Multi-agent "run a Longinus audit" (if you installed agents/ above) → the orchestrator dispatches the domain specialists ``` **它是技术栈无关的**——Python/FastAPI、Node/Express、React Native、Go、Terraform/云、LLM/RAG 应用——因为它会**首先对目标进行画像**,然后路由到正确的剧本。它引导 Claude 审计你的代码(默认为只读);它*不是*一个自动运行的扫描器。每次运行 都会向 `.longinus/reports/longinus_YYYYMMDDHHMM.md` 写入一份固定格式的报告。在测试任何你 不拥有的东西之前,请先通过 [授权关卡](references/authorization-and-scope.md)。 ## Skill 模式 选择挖掘的深度——在命令中传入,或者直接说出来即可。默认是 **standard**。 | 模式 | 调用方式 | 功能说明 | |---|---|---| | **quick** | `/longinus quick` · *"run a quick security audit"* | 机械式 grep 扫描(每个叶子节点的 `## Mechanical scan`),固定严重性,没有 CVSS/链式分析——仅一个发现结果表。专为 **CI 关卡**和**在小型本地设备上运行的模型 (11B+)** 设计,如 Qwen 3 8B / Llama 3.1 8B(机械指令,无开放式推理)。 | | **standard** | `/longinus` · *"audit this repo"* | **默认。** 画像 -> 路由 -> 完整叶子节点分析 -> PoC -> 分类评级 (CVSS 4.0) -> 报告。 | | **deep** | `/longinus deep` · *"deep audit this repo"* | Standard + 所有次要域的快速检查 + 跨域 [链式分析](references/chaining-and-impact.md)。 | | **continuous** | `/longinus continuous` · cron/CI | 仅审计自上次报告以来的 `git diff` + 重新检查之前的发现结果 -> 追加增量报告([continuous-audit.md](references/continuous-audit.md))。 | ## 它的与众不同之处 绝不仅是一个普通的剧本包: - **基于原则推理,而非依赖清单。** 它不会遍历固定的列表,而是基于 六个*生成*漏洞类别的根源原则推导出 Bug——信任边界、解析器差异、 混淆代理、状态与时间、编码、开发者未声明的假设 → [模式触发器与攻击者原则](references/pattern-triggers.md)。它能捕捉到那些 连名字都还没有的漏洞类别。 - **首先读取你的设计意图。** 它会从你的 `CLAUDE.md`/README/ADR 中构建*意图简报*,然后 寻找实现与意图不一致的地方——并且不会将*已记录的*刻意决定 标记为 Bug → [design-intent](references/design-intent.md)。 - **根据链式影响(而非孤立事件)评估发现结果。** 单个评级为“低”的问题可能 组合成账户接管;这种攻击链将被视为一个整体并评级为 **Critical** → [chaining](references/chaining-and-impact.md)。 - **设计上的双向性——发现结果即是 diff。** *蓝军*视角映射出*理应*保护 每个信任边界的防御机制;*红军*视角寻找可达的汇聚点;当两者出现 分歧时即为漏洞——随后提出的修复方案会经过反复攻击测试,直到无法被绕过 → [red × blue method](references/red-blue.md)。 - **衡量覆盖率,而不仅仅是找出 Bug。** 每一个源到汇聚点都会被记入一个带有 结论的 [审计账本](references/audit-ledger.md),因此报告会声明*哪些内容未被检查*(召回率)——一个未检查的汇聚点 是一个已披露的盲区,而绝不是一句静默的“一切安全”。 - **无情地抑制误报。** 没有可复现的 PoC,就不是已确认的发现结果。强制性的 严重性关卡会在前提条件不满足时,强制降低 Critical/High 级别发现结果的评级——LLM 最薄弱的环节就是严重性评级虚高 → [severity & triage](references/severity-and-triage.md)。 - **通过运行来确认,而不是靠猜。** 在你拥有的代码上,它会使用代理的 shell 来**执行 一个无害的 PoC**,并将发现结果标记为 `Confirmed (executed)` 与 `(traced)` 的对比——将“看起来可被利用”转化为 证据,但须受限于授权关卡 → [proof & confirmation](references/proof-and-confirmation.md)。 - **针对会攻击审计员的代码库进行加固。** 目标自身的 `README`/注释/`SECURITY.md` 被视为*不可信数据*——告诉审计员“跳过此项”或“什么都不报”的文本属于间接提示词 注入,因此它会被转化为一条发现结果,而绝不会被当作指令执行(它对自己也采取了同样的防范措施) → [design-intent](references/design-intent.md)。 - **每次都输出统一的报告格式。** 每次审计都会生成相同的模板(包含机器可读的标头 + 固定章节),从而使报告在不同项目之间保持一致且具有可比性 → [report template](references/report-template.md)。 - **坦诚面对自身的局限。** [局限性说明文档](references/limitations.md) 指出了静态/LLM 分析*无法*发现的内容,因此一份干净的报告绝不会被曲解为“不存在漏洞”。 ## 为什么需要它 - **AI 生成的代码交付速度极快,但也伴随着不安全性。** 你需要一种系统化的方法在发布前对其进行审计。 - **安全知识是分散的。** 无需每次都在 OWASP、漏洞赏金报告和 CTF 经验中苦苦搜寻,只需遵循一套经过验证的方法论即可。 - **扫描器会让你淹没在噪音中。** Longinus 遵循*要么证明它,要么搁置它*的原则,仅报告 它能够实际演示的问题。 ## 依赖 CVE 检查 Longinus 没有自己的 CVE 数据库。它会委派给生态系统的 SCA 工具,并在此之上应用 自身的严重性评级规则: ``` Step 1 Identify the stack (package.json → Node, requirements.txt → Python, …) Step 1.5 Run the matching SCA tool: Node → npm audit Python → pip-audit / osv-scanner Go → govulncheck Rust → cargo audit Ruby → bundler-audit Java → trivy fs . ↓ SCA tool queries its CVE database (GitHub Advisory DB, OSV, NVD, etc.) ↓ Longinus filters the results: reachable code path confirmed → normal severity triage reachability NOT confirmed → Info / "patch anyway" only hallucinated CVE (unverifiable)→ DO NOT report ↓ Reported in a separate "Dependency Health" section ``` 环境中必须安装 SCA 工具。`npm audit` 随 Node 一起提供;其他的 (`pip-audit`、`trivy`、`govulncheck`、……)则需要单独安装。如果缺少某个工具, 该检查将被跳过——这是一个环境限制,而非 Skill 的局限。 ## 文档 本代码库旨在供**按需查阅,而非从头到尾通读。** 请从最适合你的入口开始: | 如果你想要…… | 前往 | |---|---| | **运行它** | [docs/usage.md](docs/usage.md) → [SKILL.md](SKILL.md) | | 了解**它为什么存在** | [docs/why.md](docs/why.md) | | 查看**它的受众 / 你能得到什么** | [docs/who-its-for.md](docs/who-its-for.md) | | 阅读**道德与授权**规则 | [docs/ethics.md](docs/ethics.md) ⛔ 请在主动测试前阅读 | | 浏览**剧本**(剧本树) | [references/00-map.md](references/00-map.md) (特征→文件跳转表) | | 查找**框架和工具链接** | [RESEARCH.md](RESEARCH.md) (参考目录枢纽 → 各个域的 `research/`) | ## 仓库布局 ``` Longinus/ ├── README.md ← English landing (you are here) ├── README.ko.md ← Korean landing ├── CHANGELOG.md ← version history (all releases) ├── SKILL.md ← the orchestration brain (the entry point) ├── RESEARCH.md ← bibliography hub (indexes the research/ tree) ├── agents/ ← OPTIONAL multi-agent layer (orchestrator + Blue + 5 Red specialists) ├── docs/ ← the concept, split into linked docs │ ├── why.md ← why this exists (the 3 trends) │ ├── who-its-for.md ← audiences + what you get (a report, not a scanner dump) │ ├── ethics.md ← ethics & authorization summary │ └── usage.md ← how to use it / read it as a knowledge base ├── research/ ← per-domain bibliography (frameworks + canonical tool URLs) │ ├── rationale.md recon.md web.md api.md identity.md │ ├── secrets-supply-chain.md ai-llm.md cloud-infra.md mobile.md │ └── ctf.md process.md meta-resources.md └── references/ ← the domain tree (the playbooks) ├── 00-map.md ← master navigable tree + signal→file jump table ├── authorization-and-scope.md ← ⛔ authorization gate ├── pattern-triggers.md ← 🎯 attacker principles + code pattern → vulnerability lookup ├── limitations.md ← ⚠️ what this skill cannot find (honest limits) ├── methodology.md chaining-and-impact.md ← lifecycle + 🔗 compose findings → impact ├── severity-and-triage.md reporting-and-disclosure.md ← the governance spine ├── recon/ web/ api/ identity/ secrets-and-supply-chain/ ├── ai-llm/ cloud-and-infra/ mobile/ └── binary-exploitation/ reverse-engineering/ cryptography/ forensics/ tooling/ ``` 这棵树的结构映射了专业攻击组织的运作方式:一个共享的**方法论 + 治理**核心, 然后是你根据目标深入探索的**专家分支**。每个剧本叶子节点都会向下链接到 其对应的 `research/.md`,以获取标准的框架和工具链接。 ## 状态 各个域的叶子节点和 `research/` 参考目录属于活文档;随着技术的 演进,请对它们进行扩展(策略详见:[research/meta-resources.md](research/meta-resources.md))。 **更新日志** —— 完整的版本历史现已移至 [CHANGELOG.md](CHANGELOG.md)。
标签:AI代码助手, Claude Code, DLL 劫持, 多智能体, 大语言模型, 服务器监控, 防御加固