Sarthak-47/ARGUS
GitHub: Sarthak-47/ARGUS
Argus 是一款 AI 驱动的安全审计 Agent,通过静态分析结合实时攻击验证来证明代码库中真实存在的漏洞,并提供 LLM 解释的修复方案。
Stars: 5 | Forks: 0

[](https://github.com/Sarthak-47/ARGUS/actions/workflows/ci.yml)
[](https://github.com/Sarthak-47/ARGUS/releases/latest)
[](https://pypi.org/project/argus-sec/)
[](LICENSE)
[](https://www.python.org)
[](CONTRIBUTING.md)
**Argus** 是一款面向开发者的 AI 驱动的安全审计 agent。它的名字来源于 **Argus Panoptes** ——
希腊神话中那个从不睡觉、洞察一切的百眼巨人。
静态扫描器只能告诉你哪些地方*看起来*有问题。而 Argus 则会**证明**这一点:它会读取你的代码,然后启动你的应用并真正对其发起攻击——通过 SQLi 转储数据、伪造管理员 JWT、通过 SSRF 访问云元数据——并用通俗易懂的英语,结合你的代码库情况解释每一个发现。
**为 AI-agent 时代而生,而不仅仅是 AI 代码时代:** 正在发布 MCP 服务器或应用内聊天机器人?Argus 也能对它们进行测试——`MCPSecurityAgent` 能够在暴露的 MCP 服务器中捕获工具投毒和危险的无权限能力,而 `PromptInjectionAgent` 会向你的应用自带的 AI 功能发送一个金丝雀 token,以证明不受信任的输入是否可以覆盖系统指令。同样的集群,同样坚持“没有 PoC 就等于没发生”的标准。
目录
- [30秒内看效果](#-see-it-in-30-seconds)
- [工作原理](#how-it-works--two-phases)
- [安装与使用](#install--use)
- [在任何机器上运行 —— 本地或 BYOK](#works-on-any-machine--local-or-byok)
- [放入 CI 中](#put-it-in-ci)
- [将发现结果发送至 DefectDojo 或 Jira](#send-findings-to-defectdojo-or-jira)
- [在登录后进行攻击](#attack-behind-a-login-authenticated-scanning)
- [展示一下 —— 徽章](#show-it-off--the-scanned-by-argus-badge)
- [从你的编辑器中运行它 (MCP)](#run-it-from-your-editor-mcp-server)
- [在提交前将其拦截](#catch-it-before-it-commits-pre-commit-hook)
- [自动修复 Pull Request](#auto-fix-pull-requests)
- [桌面 GUI](#desktop-gui)
- [为什么选择 Argus](#why-argus)
- [状态](#status)
- [看证明,凭直觉 —— 基准测试套件](#proof-not-vibes--the-benchmark-suite)
- [路线图](#roadmap)
- [贡献](#contributing)
## ⚡ 30秒内看效果
```
pip install argus-sec # or: pipx install argus-sec
argus demo
```
`argus demo` 会扫描并攻击一个**内置的、 intentionally-vulnerable app**(不会触及任何外部内容),以便你可以立即观察完整流程:
```
◈ ARGUS — STATIC SCAN
Risk Score 98/100 [CRITICAL]
■ HIGH SQL injection · command injection · unsafe yaml.load
◈ ARGUS — ATTACK AGENT
[INJECTOR:SQLI-ERROR] ✓ SQL injection (error-based)
[AUTHBREAKER:JWT-WEAK-SECRET] ✓ JWT signed with a weak secret
[XSSHUNTER:REFLECTED] ✓ Reflected XSS
[SSRFPROBER:CALLBACK] ✓ Server-Side Request Forgery (blind)
[IDORHUNTER] ✓ Insecure Direct Object Reference
[FILEATTACKER:TRAVERSAL] ✓ Path traversal (arbitrary file read)
```
## 工作原理 —— 两个阶段
| 阶段 | 它的功能 |
|---|---|
| **1 · 静态分析** | 在不运行代码的情况下读取代码库:内置规则、依赖项 CVE(`npm/pip audit`)、密钥检测(正则表达式 + 香农熵 + git 历史),然后是一个 LLM 层,用于验证、解释并针对*你的*代码对每个发现重新评级。 |
| **2 · Attack Agent** | 将一群由 **18 个专门的 agent** 组成的集群指向正在运行的应用——在循环中进行编排,带有一个带外回调服务器来确认*盲注*漏洞,并且每个确认的发现都包含一个可运行的 proof-of-concept(curl 命令 + 真实的请求/响应),而不仅仅是一个描述。 |
### 攻击集群
`ReconBot` · `CrawlerBot` · `Injector` (SQLi/NoSQL/command) · `AuthBreaker` (JWT/session/MFA) ·
`IDORHunter` · `XSSHunter` · `SSRFProber` · `HeaderPoker` (CORS) · `CSRFHunter` · `FileAttacker`
(upload/traversal) · `Fuzzer` · `RaceCondition` · `GraphQLAgent` · `WebSocketAgent` ·
`MCPSecurityAgent`(暴露的 MCP 服务器和 AI 基础设施泄漏——包括工具投毒、危险能力工具以及资源/prompt 泄露) · `PromptInjectionAgent`(探测应用自带的 chatbot/AI 功能是否存在 prompt 注入——发送一个包装在指令覆盖 payload 中的唯一金丝雀 token,并且只有在确切地返回该 token 时才报告发现,证明不受信任的输入在未与系统指令隔离的情况下到达了模型) ·
**`BusinessLogicAgent`** — 与 LLM 一起对发现的端点进行推理,提出优惠券叠加/负数数量/工作流绕过等滥用行为,然后*执行*它并根据行为进行确认。这针对的是业界其他部分尚未解决的空白:约 70% 的严重 Web 漏洞是业务逻辑缺陷,目前没有自主 agent 能可靠地检测它们。在配置好 LLM 提供商的那一刻自动启用——无需任何标志——否则保持静默。
可选项:**`DomXSSHunter`** —— 一个真正的 headless-browser agent(`--agents domxss`),可以捕获纯 HTTP agent 无法察觉的 React/Vue/Next 应用中的 DOM XSS。需要 `pip install
'argus-sec[browser]' && playwright install chromium`。
同样的浏览器依赖性也会升级 ReconBot 本身:安装后,ReconBot 会在真实的 headless browser 中渲染根页面(无需任何标志),并挖掘渲染后的 post-JS DOM 以及它触发的每一个 XHR/fetch 调用——这些端点是 Angular/React/Vue SPA 的客户端路由器和 API 调用对基于服务器 HTML 的正则表达式爬取所隐藏的。当未安装 `browser` 扩展时,它会静默跳过,零成本。
## 安装与使用
```
pip install argus-sec
argus demo # zero-setup showcase — see it work in 30s
argus setup # first-time wizard (detects GPU, picks an LLM)
argus scan
# Phase 1 — static analysis
argus scan --deep # + full LLM free-form review of high-risk files
argus scan --taint # + LLM taint-tracing: only complete source-to-sink flows
argus attack --url http://localhost:3000 # Phase 2 — attack a running app
argus audit # Phase 1 + Phase 2
argus fix # generate patches for fixable findings (dry-run)
argus fix --apply # write the patches to disk
argus fix --apply --pr # + commit to a branch, push, and open a GitHub PR
argus report --format html # export the last scan (html|json|markdown|sarif|sbom|vex|jira|pdf)
argus history # risk-score trend across past scans
argus compare # what's new/fixed since the last scan
argus suppress "" # mark a finding ignored — stops it recurring
argus surface # endpoints remembered across attack runs
argus config --show
```
### 在 Docker 中运行(捆绑了 Semgrep + 审计器)
```
docker build -t argus .
docker run --rm -v "$PWD:/src" argus scan /src --no-llm
```
## 在任何机器上运行 —— 本地或 BYOK
Argus 不需要托管服务。选择一个**本地模型**(Ollama —— 私密、离线)或者使用你自己的密钥(BYOK)来运行 Groq / Gemini / Claude / OpenRouter。在执行 `argus setup` 时,它会检测你的 GPU 并推荐适合你 VRAM 的模型。**在没有配置 LLM 的情况下,它依然会运行完整的确定性扫描**(规则 + 依赖审计 + 密钥检测)。
## 放入 CI 中
将 Argus 添加到任何仓库,并将发现结果发布到 GitHub 的 **Security 标签页**:
```
- uses: Sarthak-47/ARGUS@main
id: argus
with:
target: "."
fail-on: "critical" # fail the build on critical findings
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: ${{ steps.argus.outputs.sarif-file }}
```
`argus scan --format sarif` 和 `argus scan --fail-on high` 也可以在任何流水线中独立运行。
为了进行比单一严重性阈值更精细的控制,请在你的仓库根目录下放置一个 `.argus-policy.toml`(或传递 `--policy `),以按类别、检测器或确认状态执行失败/警告/忽略操作——例如,对于任何确认的 SQLi 判定为失败,但对于缺失标头仅发出警告。请参阅
[`.argus-policy.example.toml`](.argus-policy.example.toml)。此外,`argus scan --diff-base main`(或
Action 的 `diff-base` 输入)仅报告 PR 更改的文件中的发现,因此预先存在的积压问题不会导致构建失败。
在一个已经有积压问题的仓库中采用 Argus?使用 `argus scan --write-baseline
.argus-baseline.json` 对其进行一次快照,提交该文件,然后使用 `--baseline .argus-baseline.json` 进行扫描——在采用时存在的每个发现都会被视为已接受,只有真正新的发现才会被报告并受到限制(它能在行号偏移后存活,不像 `--diff-base` 那样不需要 git)。
想要发现结果直接内联在 PR 本身上,而不仅仅是在 Security 标签页中?添加 `pr-comments: "true"`(需要作业具有 `permissions: pull-requests: write` 权限),Argus 就会将每个新发现作为审查评论直接发布在更改的行上——这是幂等的,因此在同一个 commit 上重复运行不会重复发布。在 `pull_request` 事件之外是一个空操作,因此无条件保留它是安全的。
## 将发现结果发送至 DefectDojo 或 Jira
- **DefectDojo**:不需要新格式——`argus scan --format sarif`(已经为 GitHub 代码扫描构建)通过其内置的 **SARIF** 导入类型,原样兼容 DefectDojo。
- **Jira**:`argus report --format jira` 会写入 `jira-import.csv`,准备好供
Jira 内置的 CSV 导入器使用(*Project settings → External System Import →
CSV*)——每个发现对应一个 issue(包含摘要、带有证据/修复/CWE/合规性描述、从严重性映射的优先级、标签)。不需要 Jira API 或凭据;这是一个手动上传。
- **VEX**:`argus report --format vex` 会写入 `vex.cdx.json`,这是一个 CycloneDX 1.5
VEX 文档——针对每个依赖项发现的每个 CVE 的可利用性声明(`exploitable` /
`not_affected`),由与已经降级未导入包相同的可达性分析驱动:在你的第一方代码中从未导入的易受攻击包的状态为
`not_affected` (`code_not_reachable`),可被任何支持 VEX 的扫描器或供应链仪表板与普通的 SBOM (`--format sbom`) 一起使用。
## 在登录后进行攻击(经过身份验证的扫描)
大多数真实的应用将其有趣的攻击面隐藏在登录之后,因此未经身份验证的扫描只能看到“门垫”。给 Argus 一个会话,整个由 18 个 agent 组成的集群——包括 ReconBot 的爬取——就会像已登录用户一样行动:
```
argus attack --url http://localhost:3000 --auth .argus-auth.toml
```
一个 `.argus-auth.toml`(在工作目录中自动发现,或者通过
`--auth` 传递)支持 **bearer token**、任意 **headers**、会话 **cookies**、**HTTP basic**、**form login**(复用它设置的会话 cookie,或者从 JSON 响应中提取 token),以及 **OAuth2 client-credentials**。
表单登录也是**支持 CSRF 的**——许多真实的登录表单(包括 DVWA 的表单)嵌入了一个必须回显的轮换隐藏 token;设置 `csrf_field`,Argus 会首先从登录页面抓取它。参见
[`.argus-auth.example.toml`](.argus-auth.example.toml)。凭据永远不会回显到捕获的 proof-of-concept 中。(请将 `.argus-auth.toml` 放在 git 之外。)
使用 `--auth-b `(最好是低权限账户)添加一个**第二身份**,Argus 会测试**破坏的对象级和功能级授权**(BOLA/BFLA —— API 风险第一名):它会标记任何拒绝匿名访问但*different* 身份验证用户或普通用户访问管理员路由仍然可以到达的端点。只有那种“受匿名保护但可以跨用户访问”的模式才会被报告,因此公开端点不会导致误报。
### 喂给它你的 API 规范
现代 API 是有状态的且由规范定义的——跟随链接的爬虫会漏掉大部分攻击面。将规范交给 Argus,它会直接为每个声明的端点提供种子:
```
argus attack --url http://localhost:3000 --api-spec openapi.yaml
```
接受 **OpenAPI 3.x**、**Swagger 2.0**、**Postman v2** 集合和
**GraphQL introspection** 转储——作为文件或 URL。规范路径是针对你目标的 URL 进行解析的,所以为生产环境编写的规范仍然会指向 localhost。
没有标志?ReconBot 也会自行**自动发现**规范——它会探测常见的路径(`/openapi.json`、`/swagger.json`、`/.well-known/openapi.json`、……)并为它找到的任何内容提供种子,因此一个没有可爬取 HTML 的纯 API 目标依然会对其完整的攻击面进行测试。
## 展示一下 —— “Scanned by Argus” 徽章
在你的仓库上运行 Argus?让大家知道——把这个放在你的 README 中:
```
[](https://github.com/Sarthak-47/ARGUS)
```
[](https://github.com/Sarthak-47/ARGUS)
这是一个静态徽章(Argus 没有托管后端来轮询实时状态),所以它
表明“我们在这里运行 Argus”,而不是实时的通过/失败——如果你想让这个声明真正得到执行,请将其与下面的
[GitHub Action](#put-it-in-ci) 或 [pre-commit hook](#catch-it-before-it-commits-pre-commit-hook)
搭配使用。
## 从你的编辑器运行它(MCP 服务器)
```
pip install 'argus-sec[mcp]'
argus mcp-server
```
将 `argus_scan`、`argus_attack` `argus_fix` 暴露为 MCP 工具,这样 Copilot、
Cursor 或 Claude Code 就可以直接运行真正的安全扫描/攻击/修复,而不是你手动执行命令并粘贴结果。像添加任何其他 MCP 服务器一样,将你的 MCP 客户端的配置指向 `argus mcp-server` 命令(stdio transport)。
## 在提交前将其拦截(pre-commit hook)
使用 Argus 最简单的方法是在每次提交时使用它——在一个硬编码的密钥或一个明显的易受攻击模式*之前*拦截它,以免它落入 git 历史记录中。添加到你的
`.pre-commit-config.yaml` 中:
```
repos:
- repo: https://github.com/Sarthak-47/ARGUS
rev: v1.1.0
hooks:
- id: argus # blocks on HIGH+ findings (use `argus-strict` for MEDIUM+)
```
然后运行 `pre-commit install`。它只运行确定性检查(密钥 +
内置规则)——没有 LLM,没有网络——所以它的速度足以应对每次提交。
独立运行:`argus precommit` 扫描你当前暂存的文件。
## 自动修复 Pull Request
`argus fix --apply` 已经能够将安全的、经过重新验证的补丁写入磁盘。加上 `--pr` 它会更进一步:将它们提交到一个新分支,推送该分支,并打开一个真正的 GitHub pull request,在描述中包含每个发现的解释——因此修复措施会落在开发人员实际工作的地方,而不是无人问津的本地 diff 中。
```
argus fix --apply --pr
```
这会触及真实的共享状态(一个分支和一个 PR),所以它是可选的,并且需要你已经设置了 GitHub 身份验证——Argus 绝不会尝试代表你获取凭据。两者皆可:
- **`gh` CLI**(推荐):`gh auth login`,然后只需运行上面的命令。
- **一个 token**:在你的环境中设置 `GH_TOKEN` 或 `GITHUB_TOKEN`。在
[github.com/settings/tokens](https://github.com/settings/tokens) 创建一个 → *Generate new
token (classic)* → 范围为 **`repo`**(或者,对于细粒度的 token,在目标仓库上设置为 **Contents:
Read & write** + **Pull requests: Read & write**)→ 复制它
一次,然后 `export GH_TOKEN=ghp_...`(或在 CI 中作为 secret 设置)。
在运行 `--pr` 之前,你的工作树必须是干净的——否则预先存在的脏状态将被卷入修复 commit 中,所以 Argus 会拒绝执行,而不是猜测哪些是你的,哪些是补丁。
## 桌面 GUI
一个 React + Vite + Tauri 桌面应用(“帕特农神庙内的作战室”),包含六个屏幕——
仪表板(带有实时风险趋势图)、新扫描、实时攻击、报告、代码视图、设置。在原生应用内部,它会**直接调用 Python 引擎**来运行真正的扫描;在浏览器开发者构建版本中,它会在 `gui/public/report.json` 处渲染拖入的 `argus scan --format json` 结果。
```
cd gui
npm install
npm run dev # browser dev server, http://localhost:5173
npm run tauri dev # native window (needs Rust: https://rustup.rs)
npm run tauri build # produces a real .exe/.dmg/.AppImage in src-tauri/target/release
```
原生 shell 大约 9MB,在短短一秒内即可启动——只是 Electron 等效应用的一小部分。
## 为什么选择 Argus
| 工具 | 静态 | 主动攻击 | LLM 推理 | 免费 | 本地模型 | 开源 |
|---|---|---|---|---|---|---|
| Snyk | ✓ | ✗ | ✗ | 部分 | ✗ | ✗ |
| SonarQube | ✓ | ✗ | ✗ | 部分 | ✗ | 部分 |
| Semgrep | ✓ | ✗ | ✗ | ✓ | ✗ | ✓ |
| Burp Suite | ✗ | ✓ | ✗ | 部分 | ✗ | ✗ |
| OWASP ZAP | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ |
| **Argus** | **✓** | **✓** | **✓** | **✓** | **✓** | **✓** |
没有其他工具能结合这六个特征。这就是 Argus 填补的空白。
## 状态
- ✅ **阶段 1 —— 静态分析**(`argus scan`):规则、依赖审计、行为供应链清单分析(typosquat、未固定版本、下载后执行和混淆的安装脚本、环境变量密钥窃取、敏感路径写入)、密钥检测、LLM 推理
(`--deep` 自由格式审查、`--taint` source-to-sink 污点追踪)、报告(HTML/JSON/
Markdown/SARIF/PDF/Jira CSV)、CycloneDX SBOM + VEX 导出,以及每个发现的 OWASP ASVS / PCI-DSS 标签。
- ✅ **阶段 2 —— Attack swarm**(`argus attack`):**18 个 agent**(13 个原始 agent + MCPSecurityAgent、
PromptInjectionAgent、BusinessLogicAgent、AuthzTester 和可选的 DomXSSHunter),编排循环,当未给出 `--url` 时进行 Docker 自动沙箱处理(Django、Flask、FastAPI、Rails、Node/Express/
Next/Vite,或者一个带有发布端口的 `docker-compose.yml` —— 否则回退到 `--url`),用于盲检测的回调服务器,**漏洞利用链**(将确认的发现组合成攻击路径——例如 XSS + 可通过脚本读取的会话 cookie → 账户接管,或者点击劫持 + 缺失的 CSRF token → 强制状态更改),去重后的发现,一个在多次运行中不断增长的持久化攻击面清单,以及每个确认漏洞利用的可重现的 proof-of-concept。
- ✅ **`argus fix`**:针对可修复发现的 LLM 生成的补丁——dry-run 预览或 `--apply`,带有修复并重新验证(之后重新扫描以确认每个补丁确实关闭了发现)以及在每个 diff 旁边的 AI 助手重新生成 prompt。
- ✅ **工作流**:扫描历史 + 趋势(`argus history`)、扫描间差异对比(`argus compare`)、发现生命周期/抑制(`argus suppress`)、Slack/Discord webhook 通知。
- ✅ **`argus demo`**:针对捆绑的易受攻击应用的零设置展示。
- ✅ **GUI**:六个屏幕(带有实时风险趋势图的仪表板、新扫描、实时攻击、报告、代码视图、设置),渲染真实的引擎数据,包括捕获的 PoC。
- ✅ **桌面 shell**:Tauri 2.0 将 GUI 封装为真正的原生应用,直接调用 Python 引擎(真正的扫描,而不仅仅是拖入的 JSON)。`desktop-release.yml` 在打标签时构建 Windows/macOS
(通用版)/Linux 安装程序;已发布 v0.1.0–v1.1.0。不提供演示数据——每个屏幕都显示真实的引擎输出或诚实的空/首次运行状态。
- ✅ **CI 就绪**:SARIF 输出、`--fail-on`、基于规则的策略限制(`.argus-policy.toml`)、GitHub Action、Docker 镜像、通过的测试套件(200+ 测试)。
- ✅ **包验证**:`python -m build` + `twine check` 通过;构建的 wheel 可安装到干净的 venv 中并运行。`release.yml` 在打标签时通过可信发布发布到 PyPI。
*Semgrep 是可选的,并在可用时引入——它没有原生的 Windows 构建版本,所以 Argus 自己的规则会在那里承担扫描任务(使用 Docker 镜像以获取完整的 Semgrep)。*
## 看证明,凭直觉 —— 基准测试套件
每个扫描器都声称能捕捉到问题。Argus 则会对此进行衡量:`argus benchmark` 会对已知易受攻击的应用运行完整的攻击集群——OWASP Juice Shop、DVWA、
VAmPI,以及 Argus 自己捆绑的演示目标——并报告针对每个应用文档记录的漏洞的人工整理的真实数据(仅限于 Argus 的检测器实际针对的内容,而不是完整的 CVE 转储)的真实检测率。
```
argus benchmark --case argus_demo # runs locally, no Docker needed
argus benchmark # the full suite (juice_shop/dvwa/vampi need Docker)
```
[`benchmark.yml`](.github/workflows/benchmark.yml) GitHub Action 会在每次发布时运行完整的套件(包括 Docker 案例),并将结果作为作业摘要 + artifact 发布——构建此套件已经捕获并修复了两个真正的 bug:在真实数据暴露它之前,`argus demo` 宣传的 `INJECTOR:SQLI-ERROR` 输出实际上并没有触发,而且类别不匹配曾静默地隐藏了真正的检测。
截至 v1.1.0 的数字,在 GitHub 自己的 runner 上针对真实的 Docker 目标运行——没有经过平滑处理:`argus_demo` **100%** (14/14 — 完全自包含的案例),`juice_shop` **14–29%** (1–2/7,每次运行都会变化——见下文),
`dvwa` **33%** (2/6),`vampi` **20%** (1/5)。这里的每一个差距都是*已知的、有记录的*差距,而不是什么未解之谜:
- **Juice Shop** 是一个 Angular SPA。ReconBot 现在会在真实的 headless browser 中渲染它,以捕捉静态爬虫无法看到的客户端路由页面和 XHR/fetch 调用——经过验证可以工作,并且它提高了真实的得分——但是爬虫在 Angular 的引导时间与 network-idle 超时之间进行竞争,因此它会在安静的 CI runner 上获胜,并在繁忙的 runner 上静默回退到纯静态的结果。这是一个真实的、可重现的改进,而不是在每次运行中都有保证的。
- **DVWA** 需要从登录页面抓取一个轮换的 CSRF token(已完成,针对真实验证服务器进行了验证),*并且* Argus 现在也可以进行每个会话的难度级别解锁——在这个特定目标上的得分尚未改变,仍然在对剩余的差距进行根本原因分析。
- **VAmPI** 是纯 API 应用,几乎没有可爬取的 HTML;ReconBot 现在可以在没有任何标志的情况下自动发现并解析其 OpenAPI 规范,仅此一项就将其从 0% 提升到了 20%。
这就是基准测试的意义所在:它告诉你什么是真实的,而不是听起来好听的,关于什么发生了变化以及原因的完整逐次运行历史记录在
[ROADMAP.md](ROADMAP.md#milestone-v10--prove-it-then-ship-it) 中。
## 路线图
Argus 的下一步发展方向——从 v0.2.0 到经过基准测试证明的 1.0 的路径(经过身份验证的扫描、API schema 感知、经过可达性过滤的 SCA、自动修复 PR)在 [ROADMAP.md](ROADMAP.md) 中列出。
## 负责任的使用
Argus 是一款**攻击性**工具。**仅对你拥有或被授权测试的系统运行它。** 参见 [SECURITY.md](SECURITY.md)。`argus demo` 为你提供了一个安全的、捆绑的目标来进行探索。
## 贡献
非常欢迎新的攻击 agent、规则和 payload —— 参见 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 许可证
MIT © Sarthak-47 · 参见 [LICENSE](LICENSE)标签:AI风险缓解, CISA项目, DLL 劫持, LNA, 人工智能, 动态扫描, 大语言模型, 数据泄露, 特征检测, 用户模式Hook绕过, 自动化渗透测试, 请求拦截, 逆向工具, 错误基检测, 静态代码分析