mlaify/AttackMap

GitHub: mlaify/AttackMap

AttackMap 是一款 AI 辅助的防御性代码安全分析工具,通过对代码库资产和控制建模来识别横切安全弱点并生成审查报告。

Stars: 1 | Forks: 2

# AttackMap **针对代码库的 AI 辅助防御性安全分析。** AttackMap 会读取你的 repository,对其资产和防御性控制进行建模,找出单文件扫描器遗漏的横切 弱点,并生成基于证据的 安全审查报告,包含 MITRE ATT&CK 映射和检测工程提示。 专为需要对陌生代码库进行分诊的 AppSec 工程师、SOC 和检测工程团队以及工程 经理而构建。 [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![Python: 3.11+](https://img.shields.io/badge/Python-3.11%2B-blue.svg)](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, 代码安全审计, 攻击面映射, 无后门, 请求拦截, 逆向工具, 错误基检测, 静态代码分析