ghostonbutterbread/llm-audit
GitHub: ghostonbutterbread/llm-audit
一款利用LLM进行代码安全审计的工具,通过分析历史CVE生成针对性威胁模型,在代码库中高效搜寻潜在漏洞。
Stars: 0 | Forks: 0
# LLM-Audit
LLM 驱动的漏洞研究工具,遵循针对性的方法论:
1. **查找 CVE** - 获取目标项目过往的漏洞披露
2. **生成威胁模型** - 利用 LLM 从 CVE 模式中创建漏洞类别
3. **切片代码库** - 将代码分解为可管理的块,以避免上下文衰减
4. **针对性搜寻** - 让 LLM 分析每个切片以查找特定漏洞
## 安装
```
cd ~/projects/llm-audit
pip install -e .
```
## 前置条件
- Python 3.9+
- GitHub CLI (`gh`) 已安装并完成认证
- LLM API 密钥 (OpenRouter, OpenAI, 或 Anthropic)
## 配置
设置您的 API 密钥:
```
export OPENROUTER_API_KEY="your-key-here"
# 或
export OPENAI_API_KEY="your-key-here"
# 或
export ANTHROPIC_API_KEY="your-key-here"
```
可选:创建 `config/local.yaml` 以覆盖默认设置。
## 使用方法
### 基本用法
```
# Audit 一个 GitHub 仓库
llm-audit --target owner/repo
# Audit 本地代码
llm-audit --target /path/to/project
# 使用特定模型
llm-audit --target owner/repo --model gpt-4o
# 输出为 JSON
llm-audit --target owner/repo --format json
# 增加分析深度
llm-audit --target owner/repo --max-slices 30
```
### 跳过步骤
```
# 跳过 CVE lookup(重复扫描更快)
llm-audit --target owner/repo --skip-cve
# 跳过漏洞搜寻(仅获取威胁模型)
llm-audit --target owner/repo --skip-hunt
```
### 选项
| 选项 | 描述 |
|--------|-------------|
| `-t, --target` | 目标 GitHub 仓库 (owner/repo) 或本地路径 |
| `-o, --output` | 输出目录 (默认: reports/) |
| `-f, --format` | 报告格式: markdown 或 json |
| `-m, --model` | 要使用的 LLM 模型 |
| `--provider` | LLM 提供商: openai, anthropic, openrouter |
| `--max-slices` | 最大代码切片分析数量 (默认: 20) |
| `--skip-cve` | 跳过 CVE/安全公告查询 |
| `--skip-hunt` | 跳过漏洞搜寻 |
| `-v, --verbose` | 详细输出 |
## 工作原理
### 1. CVE 发现
使用 GitHub Advisory Database API 查找目标仓库过往的安全漏洞。
### 2. 威胁建模
利用 LLM 分析 CVE 模式以生成针对性的威胁模型——即基于历史问题确定的需搜寻的特定漏洞类别。
### 3. 代码切片
将代码库分解为可管理的块(文件/目录),以避免 LLM 上下文衰减。过滤掉非代码文件和大型二进制文件。
### 4. 针对性搜寻
对于每个代码切片,根据威胁模型向 LLM 提示特定的漏洞类别。与“查找所有漏洞”相比,这种针对性方法减少了幻觉。
### 优先关注
该工具优先关注与漏洞赏金相关的漏洞类别:
- IDOR (Insecure Direct Object Reference, 不安全的直接对象引用)
- Authentication Bypass (身份验证绕过)
- Data Leaks (数据泄露)
- XSS
- SQL Injection (SQL 注入)
## 输出
报告将保存到 `reports/` 目录,并带有时间戳:
```
reports/llm_audit_owner_repo_20241015_143022.md
```
## 架构
```
llm_audit/
├── cli.py # Main CLI entry point
├── config.py # Configuration management
├── cve_finder.py # Find CVEs via GitHub API
├── threat_model.py # Generate threat model from CVEs
├── slicer.py # Slice codebase into chunks
├── hunter.py # LLM vulnerability hunting
├── reporter.py # Generate reports
└── llm_client.py # LLM API client
```
## 许可证
MIT
标签:AI安全, Chat Copilot, Claude, CVE分析, CVE检测, DevSecOps, DLL 劫持, GitHub Advisory, GPT-4, LLM, Petitpotam, Python, Unmanaged PE, 上游代理, 云安全监控, 人工智能, 代码切片, 大语言模型, 威胁建模, 安全扫描, 对称加密, 情报收集, 无后门, 时序注入, 漏洞猎手, 漏洞研究, 用户模式Hook绕过, 自动化审计, 逆向工具, 静态分析