stackbleed-ctrl/ARGUS
GitHub: stackbleed-ctrl/ARGUS
一款结合正则模式、熵值检测与 AI 语义分析的开源本地漏洞扫描器,旨在为防御者提供全面的代码及依赖项安全审计能力。
Stars: 1 | Forks: 0
# 🔍 Argus v2
**AI 驱动的开源漏洞扫描器。为防御者构建。**
**恶意行为者,请移开目光。 👁**
[](https://pypi.org/project/argus-scanner/)
[](LICENSE)
[](https://python.org)
Argus v2 结合了 **四层检测机制** 来发现其他工具遗漏的内容:
| Layer | Method | Cost |
|---|---|---|
| 1 | 覆盖 18 个漏洞类别的 60+ 正则模式 | 免费 |
| 2 | Shannon 熵扫描 — 即使没有关键词上下文也能发现嵌入的密钥 | 免费 |
| 3 | Claude 语义分析 — 污点追踪、逻辑缺陷、认证绕过 | API key |
| 4 | 通过 OSV.dev 进行依赖审计 — 您的软件包中的 CVE | 免费 |
无需将代码上传至云端。无 SaaS。无供应商锁定。只有一个您可以自行运行的 CLI。
## 安装
```
pip install argus-scanner
# 完整安装 (watch 模式 + YAML config)
pip install "argus-scanner[full]"
```
设置您的 API key(可选 — 模式 + 熵模式无需 key 即可工作):
```
export ANTHROPIC_API_KEY=sk-ant-...
```
## 命令
### `argus scan` — 扫描目录或文件
```
# 完整扫描 (AI + patterns + entropy + dep audit)
argus scan ./myproject
# 为 CRITICAL/HIGH 发现生成 AI 修复补丁
argus scan ./myproject --fix
# Pattern + entropy (无需 API key,即时)
argus scan ./myproject --no-ai
# 保存报告
argus scan ./myproject -o report.json --sarif results.sarif
# 仅显示 HIGH 及以上级别
argus scan ./myproject --severity HIGH
# Verbose: 描述、代码片段、修复建议
argus scan ./myproject --verbose
# 基线比较 (CI 回归检测)
argus scan ./myproject --baseline report-v1.json -o report-v2.json
```
### `argus audit` — 交互式分类
```
argus audit report.json
```
使用方向键浏览发现结果。针对每个发现的操作:
| Key | Action |
|---|---|
| `↑↓` | 导航 |
| `a` | 接受(标记为已确认漏洞) |
| `d` | 忽略(抑制 — 添加到 `.argus-ignore`) |
| `s` | 暂缓(本次会话跳过) |
| `p` | 查看 AI 生成的补丁 diff |
| `e` | 导出为 GitHub Issue 内容 |
| `q` | 保存并退出 |
### `argus watch` — 实时守护模式
```
argus watch ./src
```
监听文件保存,立即重新扫描。在您提交之前捕获漏洞。
需要:`pip install "argus-scanner[watch]"`
### `argus init` — 项目设置
```
argus init
```
在当前目录创建 `.argus.yml` 和 `.argus-ignore`。
## 输出
```
▄████████████████████████████████████▄
█ ARGUS v2 — Defensive AI Scanner █
█ 👁 Watching. Always watching. █
▀████████████████████████████████████▀
──────────────────────────────────────────────────────────────
ARGUS SCAN COMPLETE
──────────────────────────────────────────────────────────────
Target: /home/user/myproject
Scan ID: a3f9c12b8e4d
Files: 847 | Lines: 142,391
Duration: 23.4s
Mode: AI + Pattern + Entropy
──────────────────────────────────────────────────────────────
CRITICAL ████ 2
HIGH ████████████████ 8
MEDIUM ██████████████████████████████ 15
LOW ████████ 4
Total findings: 29
Dep advisories: 6 3 CRITICAL 2 HIGH
──────────────────────────────────────────────────────────────
```
每个发现包含:严重程度、CWE、文件 + 行号、代码片段、可操作的修复建议、置信度、检测方法,以及用于基线跟踪的稳定 **指纹**。
## 配置 (`.argus.yml`)
```
# 哪些严重级别导致 CI 失败
fail_on:
- CRITICAL
- HIGH
# 要跳过的路径
ignore_paths:
- tests/
- fixtures/
- vendor/
# 通过 OSV.dev 进行依赖审计 (免费,无需 key)
dep_audit: true
# 自动生成 CRITICAL/HIGH 的 AI 修复补丁
fix_mode: false
# 并发
concurrency: 5
```
## 抑制 (`.argus-ignore`)
使用 `argus audit` 交互式忽略发现结果。被忽略的结果会根据指纹添加到 `.argus-ignore` 中 — 它们不会在未来的扫描或 CI 运行中再次出现。
```
# .argus-ignore — 每行一个指纹
a1b2c3d4e5f6g7h8
```
## Argus v2 能发现什么
### 代码漏洞 (模式 + AI)
| Category | CWE | Detection |
|---|---|---|
| SQL 注入 | CWE-89 | Pattern + AI |
| 命令注入 | CWE-78 | Pattern + AI |
| 路径遍历 | CWE-22 | Pattern + AI |
| 硬编码密钥 | CWE-798 | Pattern + Entropy + AI |
| 高熵字符串 | CWE-798 | Entropy |
| 不安全的反序列化 | CWE-502 | Pattern + AI |
| SSRF / XXE | CWE-918 | Pattern + AI |
| XSS | CWE-79 | Pattern + AI |
| 开放重定向 | CWE-601 | Pattern + AI |
| 认证/JWT 绕过 | CWE-287 | Pattern + AI |
| 弱加密 | CWE-327 | Pattern + AI |
| IDOR / 批量赋值 | CWE-639 | Pattern + AI |
| 原型污染 | CWE-1321 | Pattern + AI |
| 启用调试模式 | CWE-489 | Pattern |
| 弱密码哈希 | CWE-916 | Pattern + AI |
| 不安全的文件上传 | CWE-434 | Pattern + AI |
| GraphQL 错误配置 | CWE-200 | Pattern |
| IaC 错误配置 | CWE-732 | Pattern |
| 竞态条件 | CWE-362 | AI |
| 业务逻辑缺陷 | — | AI |
| 内存安全 (C/C++) | CWE-119 | AI |
| 二阶注入 | CWE-89 | AI |
| JWT 算法混淆 | CWE-327 | Pattern + AI |
| 依赖混淆 | CWE-1104 | Pattern |
### 依赖漏洞 (OSV.dev — 免费,无需 key)
- Python (`requirements.txt`, `pyproject.toml`, `Pipfile`)
- JavaScript (`package.json`, `yarn.lock`)
- Go (`go.mod`)
- Ruby (`Gemfile.lock`)
- Rust (`Cargo.toml`)
- Java (`pom.xml`) *(通过 AI)*
## 架构
```
argus scan ./target
│
├─ collect_files() # Walk, respect excludes + .argus.yml
│
├─ PatternScanner # 60+ regex patterns, 18 categories
│ └─ EntropyScanner # Shannon entropy on all string literals
│
├─ AIAnalyzer (async) # Claude semantic / taint analysis
│ ├─ Chunked file reading # Handles large files gracefully
│ ├─ Hint injection # Pattern hints inform AI context
│ ├─ Deduplication # AI doesn't re-report pattern hits
│ └─ Fix generation # Unified diff patches (--fix mode)
│
├─ DependencyAuditor # Parse manifests → OSV.dev batch API
│ ├─ requirements.txt / pyproject.toml
│ ├─ package.json
│ ├─ go.mod
│ ├─ Gemfile.lock
│ └─ Cargo.toml
│
└─ Reporter
├─ Console (colored, severity bars)
├─ JSON (fingerprinted, baseline-diffable)
├─ SARIF (GitHub Code Scanning)
└─ .patch files (--fix mode)
```
## GitHub Actions 集成
```
# .github/workflows/argus.yml
name: Argus Security Scan
on: [push, pull_request]
jobs:
argus:
runs-on: ubuntu-latest
permissions:
security-events: write
contents: read
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install Argus
run: pip install argus-scanner
- name: Run Argus
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
argus scan . \
-o argus-report.json \
--sarif argus-results.sarif \
--severity LOW
- name: Upload SARIF to GitHub Security
if: always()
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: argus-results.sarif
- name: Upload report artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: argus-report
path: argus-report.json
```
### PR 回归模式(仅针对新发现失败)
```
- name: Download baseline
uses: dawidd6/action-download-artifact@v3
with:
name: argus-report
path: baseline/
continue-on-error: true
- name: Run Argus with baseline
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
argus scan . \
--baseline baseline/argus-report.json \
-o argus-report.json \
--sarif argus-results.sarif
```
## 支持的语言
Python · JavaScript · TypeScript · Go · Rust · C · C++ · Java · Kotlin · Scala · PHP · Ruby · Shell · YAML · TOML · Terraform (HCL) · C# · Swift · Lua · SQL · HTML/Jinja · XML
## 负责任使用
Argus 是一个 **防御性** 工具。如果您在其他项目中发现了漏洞:
1. 私下联系维护者(security@ 或 GitHub Security Advisories)
2. 给他们合理的时间进行修复(90 天是标准)
3. 仅在修复可用后发布
请勿使用 Argus 扫描您不拥有或未获得明确测试许可的系统。
## 许可证
MIT — 使用它、fork 它、交付它。
*由 Claude 构建。威胁行为者不受欢迎。 👁*
标签:AI代码审查, Claude, Claude, CVE检测, CVE检测, DevSecOps, GraphQL安全矩阵, OSV, Python包, SARIF报告, SAST, Shannon熵, Taint分析, TLS, Vercel, 上游代理, 交互式审查, 代码补丁, 依赖审计, 回归检测, 基线对比, 安全扫描器, 密钥泄露检测, 本地扫描, 污点追踪, 盲注攻击, 网络安全, 自动修复, 逆向工具, 错误基检测, 防御工具, 隐私保护, 静态代码分析