找回密码
立即注册
搜索
发回帖 发新帖

5639

积分

0

好友

727

主题
发表于 1 小时前 | 查看: 3| 回复: 0

这是什么

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 消耗 / 活动流)

SCA Audit 仪表盘总览截图

任务列表

SCA Audit 审计任务列表

任务 · 执行过程(会话 / 工具调用)

SCA Audit 任务执行过程

探索链路(意图 · 事实 · 漏洞血缘)

SCA Audit 探索链路知识图谱

发现(跨任务漏洞汇总 · 按严重度 / 任务分组)

SCA Audit 漏洞发现汇总

漏洞复核(三态结论 + 逐条核对依据)

SCA Audit 漏洞复核详情

测试资产 · 接口与所需权限

SCA Audit 测试资产接口列表

资产覆盖图(力导向 · 已测高亮 · 节点折叠)

SCA Audit 资产覆盖力导向图

第三方依赖(清单 / 类名索引 / 按需反编译)

SCA Audit 第三方依赖列表

人在环路对话

SCA Audit 人与 Agent 对话界面

Agent 管理(提示词 / 工具 / 技能可见性)

SCA Audit Agent 管理页面

LLM 配置(多档位 · 轮询与退避)

全 Agent 共享的模型与限速配置,支持多档位切换。实际部署时若需要更灵活的模型 API 中转或备用模型接入,可以结合外部中转服务来提升稳定性。

SCA Audit LLM 配置页面

后端日志(工具调用 / 拦截 / 依赖索引)

SCA Audit 系统日志页面

一键安装脚本

cd ARTEX
./install.sh

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

  1. Docker 全容器部署:设置 Postgres 密码,自动生成环境配置,docker compose up -d 启动。
  2. 本地编译运行:选择数据库,生成配置文件,编译单二进制程序。部署完成后访问 http://localhost:7878,首次进入 /setup 设置管理员密码。

Docker Compose 手动部署

cd ARTEX
cp .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/




上一篇:HBM3E从几百涨到4000美元:藏在CPU封装里走私出境
下一篇:英伟达下一代CPO:光引擎上硅中介层,单纤256Gb/s DWDM拆解
您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-11-13 23:12 , Processed in 0.072724 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表