这是什么
SCA Audit 把「审计一个代码仓库」拆成可并行的意图,交给多个 LLM Agent 分工静态读完源码,把结果写成两张可回溯的图:资产图(这个系统对外暴露了什么)与探索图(我们是怎么一步步查到结论的)。
它和扫描器的区别在于产出物:
接口清单 + 每条接口所需权限文件:行号 + 代码片段)、依赖可达性判定 | ||
| 独立会话复核 | ||
只做静态分析。 平台不发起任何网络请求、不执行任何系统命令、不做任何运行时验证——结论必须由源码证据支撑。这不是靠提示词约束,而是在工具装配层物理删除(见下节)。
安全边界(红线)
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",}
④ 写入侧还有拦截规则
被测源码是审计证据,任何改动都会让结论不可复现。拦截规则按优先级匹配工具输入,首条命中即生效:
\.\./source/ | |||
\.\./ | |||
https?:// |
拦截范围只覆盖写入类工具(Write / Edit / MultiEdit)——读工具的常规路径本来就是 ../source、../deps。被拦下的调用会挂在任务详情的「拦截审批」里等人工裁决。
截图预览
NEXT_PUBLIC_MOCK=1 的离线 Demo(无后端、内置 acme-mall 演示数据)。完整交互见在线 Demo。












一键安装脚本
cd ARTEX./install.sh
脚本自动检测并安装 Docker,提供两种运行模式:
Docker 全容器部署:设置 Postgres 密码,自动生成环境配置,
docker compose up -d启动本地编译运行:选择数据库,生成配置文件,编译单二进制程序 部署完成访问
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/