二开artex的代码审计平台 | 多 Agent 并行审计源码,资产覆盖可视化!

作者:乌雲安全 发布:2026-11-02 09:15 收录:2026-11-02 12:52 2 次阅读 约 1254 字
摘要:这是什么 S CA Audit 把「审计一个代码仓库」拆成 可并行的意图 ,交给多个 LLM Agent 分工静态读完源码,把结果写成两张可回溯的图: 资产图 (这个系统对外暴露了什么)与 探索图 (我们是怎么一步步查到结论的)。…
推荐理由:本文涵盖「ARTEX」、「代码审计」、「Agent」等多个主题,重点关注 ARTEX。

这是什么

SCA Audit 把「审计一个代码仓库」拆成可并行的意图,交给多个 LLM Agent 分工静态读完源码,把结果写成两张可回溯的图:资产图(这个系统对外暴露了什么)与探索图(我们是怎么一步步查到结论的)。

它和扫描器的区别在于产出物:


扫描器 / SAST 规则
SCA Audit
输入
代码
代码(只读)
产出
规则命中列表
接口清单 + 每条接口所需权限
、缺陷结论(带 文件:行号 + 代码片段)、依赖可达性判定
判断依据
模式匹配
读完整条数据流:参数从哪来 → 过没过校验 → 到没到 Sink
误报处理
人工逐条看
独立会话复核
,结论三态回写漏洞状态
过程
黑盒
探索图 + 每次工具调用留痕,可复算

只做静态分析。 平台不发起任何网络请求、不执行任何系统命令、不做任何运行时验证——结论必须由源码证据支撑。这不是靠提示词约束,而是在工具装配层物理删除(见下节)。

安全边界(红线)

agent/codeaudit_tools.go 是「Agent 能调用什么」的唯一真源。工具来源侧是三层防线,缺一不可;写入侧另有拦截规则兜底:

① Agent 的通用工具集只从 7 个本地文件工具构造

Read · Write · Edit · MultiEdit · LS · Glob · Grep

没有 Bash。没有 WebFetch / WebSearch。其余全是平台自己的领域工具(登记资产、写回图、登记漏洞、依赖查询、复核结论)。

② 装配层不再注入危险来源

server/hostTools() 不返回流量工具、自定义工具与 MCP;server/assembly.go 不再展开 MCP 服务器——所以连 mcp__* 工具都不会出现在 Agent 的工具列表里。系统设置里的「MCP」「自定义工具」入口只保留历史数据查看。

③ 兜底黑名单:配置也绕不过去

即使有人往 DB 的 tools 表、可见性配置或宿主工具里塞进危险工具,也会在 AugmentTools 的最后一步按名字剔除:

var codeAuditDeniedTools = []string{    "bash", "shell", "shell_session", "sleep", "monitor",    "webfetch", "websearch", "web_search", "fetch", "curl", "wget", "http", "http_request",    "command", "script",              // 自定义工具的 command / script kind(http kind 的 key 就是 "http",已在上行)    "task", "taskoutput", "taskstop", "tasklist",   // 子代理会把上述能力递归带进去    "mcp__*", "traffic_*",    "intercept_execute", "intercept_approve",    "browser*", "playwright*", "selenium*",    "nmap*", "nuclei*", "sqlmap*", "ffuf*", "dirsearch*", "hydra*", "metasploit*",    "create_custom_tool", "update_custom_tool", "create_mcp", "update_mcp", "test_custom_tool",}

④ 写入侧还有拦截规则

被测源码是审计证据,任何改动都会让结论不可复现。拦截规则按优先级匹配工具输入,首条命中即生效:

优先级
规则
匹配
动作
30
被测源码只读
\.\./source/
拒绝
20
工作区外写入需审批
\.\./
转人工
10
平台不出网
https?://
拒绝

拦截范围只覆盖写入类工具(Write / Edit / MultiEdit)——读工具的常规路径本来就是 ../source、../deps。被拦下的调用会挂在任务详情的「拦截审批」里等人工裁决。

截图预览

以下截图取自 NEXT_PUBLIC_MOCK=1 的离线 Demo(无后端、内置 acme-mall 演示数据)。完整交互见在线 Demo。
仪表盘(总览 / Token 消耗 / 活动流)
仪表盘
任务列表
任务
任务 · 执行过程(会话 / 工具调用)
执行过程
探索链路(意图 · 事实 · 漏洞血缘)
探索链路
发现(跨任务漏洞汇总 · 按严重度 / 任务分组)
发现
漏洞复核(三态结论 + 逐条核对依据)
复核
测试资产 · 接口与所需权限
接口资产
资产覆盖图(力导向 · 已测高亮 · 节点折叠)
资产覆盖图
第三方依赖(清单 / 类名索引 / 按需反编译)
依赖
人在环路对话
对话
Agent 管理(提示词 / 工具 / 技能可见性)
Agent
LLM 配置(多档位 · 轮询与退避)
LLM
后端日志(工具调用 / 拦截 / 依赖索引)
日志
使用

一键安装脚本

cd ARTEX./install.sh

脚本自动检测并安装 Docker,提供两种运行模式:

  1. Docker 全容器部署:设置 Postgres 密码,自动生成环境配置,docker compose up -d启动

  2. 本地编译运行:选择数据库,生成配置文件,编译单二进制程序 部署完成访问 http://localhost:7878,首次进入 /setup 设置管理员密码。

Docker Compose 手动部署

cd ARTEXcp .env.example .env# 修改.env,填写数据库密码、大模型API密钥docker compose up -d

访问 http://localhost:7878,挂载目录持久化技能与审计数据。

预编译二进制包

下载对应系统压缩包,解压得到程序、启动脚本与配置模板。

源码编译单二进制

# 前端打包cd web && npm ci && npm run build:static && cd ..cp -r web/out server/webui/dist# 编译内嵌前端的二进制CGO_ENABLED=0 go build -tags embedui -o artex ./cmd/artex./start.sh

跨平台打包 Release

./build.sh --release

自动编译 Linux、macOS、Windows 多架构压缩包,增加--upx可压缩二进制(部分环境存在兼容性问题,按需开启)。

项目地址

https://github.com/Ernket/CodeScan-Artex/

转载声明:本文转载自原发布平台 (作者:乌雲安全), 原文标题《二开artex的代码审计平台 | 多 Agent 并行审计源码,资产覆盖可视化!》, 查看原文。 版权归原作者及原发布平台所有,本站仅作收录与展示,未对正文内容作实质性修改; 若涉及侵权请联系本站处理。