stackbleed-ctrl/ARGUS

GitHub: stackbleed-ctrl/ARGUS

一款结合正则模式、熵值检测与 AI 语义分析的开源本地漏洞扫描器,旨在为防御者提供全面的代码及依赖项安全审计能力。

Stars: 1 | Forks: 0

# 🔍 Argus v2 **AI 驱动的开源漏洞扫描器。为防御者构建。** **恶意行为者,请移开目光。 👁** [![PyPI](https://img.shields.io/pypi/v/argus-scanner)](https://pypi.org/project/argus-scanner/) [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](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, 上游代理, 交互式审查, 代码补丁, 依赖审计, 回归检测, 基线对比, 安全扫描器, 密钥泄露检测, 本地扫描, 污点追踪, 盲注攻击, 网络安全, 自动修复, 逆向工具, 错误基检测, 防御工具, 隐私保护, 静态代码分析