mlaify/AttackMap
GitHub: mlaify/AttackMap
AttackMap 是一款 AI 辅助的防御性代码安全分析工具,通过对代码库资产和控制建模来识别横切安全弱点并生成审查报告。
Stars: 1 | Forks: 2
# AttackMap
**针对代码库的 AI 辅助防御性安全分析。** AttackMap 会读取你的
repository,对其资产和防御性控制进行建模,找出单文件扫描器遗漏的横切
弱点,并生成基于证据的
安全审查报告,包含 MITRE ATT&CK 映射和检测工程提示。
专为需要对陌生代码库进行分诊的 AppSec 工程师、SOC 和检测工程团队以及工程
经理而构建。
[](LICENSE)
[](https://www.python.org/)
## 快速开始
安装包含所有内置分析器的版本:
```
pip install "attackmap[all]"
```
对 repository 运行审查:
```
attackmap analyze /path/to/repo --output reports
```
可选:使用 Claude 添加 AI 解说的审查。你可以设置
`ANTHROPIC_API_KEY`,或者使用 [Claude Code CLI](https://docs.claude.com/claude-code) 登录一次
以使用你现有的 Pro/Max 订阅:
```
attackmap analyze /path/to/repo --output reports --llm
```
并排阅读 `reports/defensive-review.md`(启发式)和 `reports/defensive-review-llm.md`
(LLM 解说)。
## 安装
### 从 PyPI
```
pip install attackmap # core only
pip install "attackmap[llm]" # add LLM narrative support
pip install "attackmap[all]" # core + LLM + all 13 analyzer plugins
```
你也可以按需安装单个分析器插件:
```
pip install attackmap-analyzer-python attackmap-analyzer-go
```
### 使用 Docker
```
docker run --rm -v "$PWD:/src" ghcr.io/mlaify/attackmap:latest analyze /src --output /src/reports
```
### 使用 Homebrew (macOS)
```
brew install mlaify/tap/attackmap
```
### 从源码
```
git clone https://github.com/mlaify/AttackMap.git
cd AttackMap
pip install -e ".[llm]"
```
## 产出内容
每次 `attackMap analyze` 运行都会写入:
| 文件 | 内容描述 |
|---|---|
| `architecture.md` | repository 的高级概述 |
| `attack-surface.md` | 按类别、暴露程度和风险分类的攻击面 |
| `defensive-review.md` | 重要观察、资产清单、防御性控制、优势、弱点、检测机会、建议 |
| `defensive-review.json` | 结构化等效文件(schema v1.2.0) |
| `review-context-pack.json` | 供 LLM 阶段使用的结构化证据包 |
| `attackmap-report.json` | 所有内容的汇总 |
| `defensive-review-llm.md` *(使用 `--llm` 时)* | Claude 解说的审查 |
| `defensive-review-llm.meta.json` *(使用 `--llm` 时)* | 后端、模型、token 使用情况 |
## 工作原理
AttackMap 由四层构建而成,每一层都建立在下方层级的基础之上。
**1. 启发式扫描器 + 分析器插件。** 对语言敏感的路由、
数据库、外部调用、认证信号、机密信息、框架和入口点的提取。
每个信号都包含 `file:line` 引用、证据文本片段以及
置信度分数。插件通过 `attackmap.analyzers`
entry-point 组自动发现。
**2. 资产与控制覆盖。** 识别*处于风险中的对象*(凭证、
会话、PII、支付记录、内部机密 — 附带关键性分级)以及
*保护它的对象*(认证、授权、输入验证、速率
限制、CSRF、加密、审计日志、RBAC、MFA),包括对
*缺失*的预期控制的检测。
**3. 横切洞察引擎。** 将各项发现串联成叙事 —
敏感资产可达性、共享机密的影响范围、攻击链中的防御缺口、控制强度不匹配、非对称保护、审计缺口、
信任边界违规等。
**4. LLM 叙事审查。** 使用 `--llm` 时,Claude Opus 会根据
结构化证据包生成最终审查。该模型被强制要求引用真实的
攻击面/资产/控制 ID,因此它无法凭空捏造发现。
顶层附加:针对每一项洞察的 **MITRE ATT&CK 技术映射**,以及
针对每个弱点的**检测机会**(Sigma/KQL/Splunk 风格的提示)。
## 支持的生态系统
十三款官方分析器插件,每一款都可作为独立的包分发:
| 插件 | 覆盖范围 |
|---|---|
| `attackMap-analyzer-python` | Django, Starlette, AIOHTTP, Sanic, Litestar, DRF; SQLAlchemy/asyncpg/motor; passlib/PyJWT/authlib; httpx/aiohttp |
| `attackMap-analyzer-rust` | axum, actix-web, rocket; sqlx, diesel, sea-orm; jsonwebtoken, argon2; reqwest |
| `attackMap-analyzer-go` | net/http, chi, gin, echo, fiber, gorilla/mux; database/sql, gorm, pgx; golang-jwt; resty |
| `attackMap-analyzer-java-spring` | Java/Kotlin Spring Boot, JAX-RS, Ktor; Spring Data; Spring Security; jjwt |
| `attackMap-analyzer-dotnet` | ASP.NET Core minimal APIs and attribute routing, EF Core, Identity, JwtBearer |
| `attackMap-analyzer-terraform` | AWS, Azure, GCP resources; IAM wildcards; open SGs; secrets |
| `attackMap-analyzer-c` | libmicrohttpd, civetweb, mongoose; libcurl; OpenSSL/libsodium; sqlite3/libpq/mysql |
| `attackMap-analyzer-cpp` | Crow, Pistache, Drogon, cpprestsdk; libcurl/cpr; OpenSSL/Botan/libsodium; libpqxx/mongocxx |
| `attackMap-analyzer-node-service` | Node.js / TypeScript 服务生态系统 |
| `attackMap-analyzer-atproto` | AT Protocol (Bluesky) 服务 |
| `attackMap-analyzer-php-web` / `-php-laminas` / `-omeka-s` | 通用 PHP Web, Laminas/Zend MVC, Omeka-S |
`pip install "attackMap[all]"` 会安装所有官方插件。
### 构建你自己的分析器
插件契约在代码
[`attackMap.sdk`](src/attackmap/sdk/__init__.py) 中有文档说明;包含
脚手架、测试和发布说明的开发者指南位于
[`docs/external-analyzers.md`](docs/external-analyzers.md)。
## CLI 参考
```
attackmap analyze # run a review on a repository
attackmap analyze --output dir # write outputs to `dir/`
attackmap analyze --module python --module rust # only these analyzers
attackmap analyze --llm # add LLM narrative (auto-resolve auth)
attackmap analyze --llm --llm-backend cli # force Claude CLI
attackmap modules # list installed analyzers
```
`--module` 可以重复使用。缺失的已请求外部分析器
可以(在可能的情况下)从 `mlaify` GitHub 组织中
自动安装。
## AttackMap *不是*什么
- **运行时检测器。** AttackMap 是静态的。它输出的检测机会
是提供给你的 SIEM 团队的*提示* — 它们不是可直接部署的规则。
- **漏洞扫描器。** AttackMap 对架构、资产和
控制进行建模。它不匹配已知的 CVE 模式。
- **详尽无遗的。** AttackMap 在设计上是启发式的。各项发现按置信度分级,
并针对陈旧信号提供了明确的防护措施。
## 文档
- [`CHANGELOG.md`](CHANGELOG.md) — 发布说明
- [`CONTRIBUTING.md`](CONTRIBUTING.md) — 开发设置和 PR 流程
- [`SECURITY.md`](SECURITY.md) — 漏洞披露
- [`AGENTS.md`](AGENTS.md) — 面向代理的 repository 指南
- [`VISION.md`](VISION.md) — 项目方向
- [GitHub wiki](https://github.com/mlaify/AttackMap/wiki) — 更深度的架构
和分析器契约参考
## 贡献
欢迎提交 Issues 和 pull requests。请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)
了解设置、测试和提交指南。一旦贡献,即表示你同意
你的贡献将遵循 MIT 许可协议。
## 许可协议
[MIT](LICENSE)。版权所有 (c) 2026 Matthew Davis 及 AttackMap 贡献者。
标签:AI辅助分析, Python, TShark, 代码安全审计, 攻击面映射, 无后门, 请求拦截, 逆向工具, 错误基检测, 静态代码分析