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 劫持, 多智能体, 大语言模型, 服务器监控, 防御加固