关于 AI AppSec
AI AppSec 是面向 AI 应用和 Agent 代码的静态安全扫描器,使用 Semgrep 检查风险并生成可复现的证据。它通过带 SHA-256 摘要的扫描回执支持审计与修复前后比较。
主要功能
- 01扫描 AI 应用与 Agent 代码
- 02检测输出执行、密钥及集成风险
- 03生成带 SHA-256 摘要的扫描回执
- 04比较修复前后的扫描结果
适用场景
- 01提交或合并前检查 AI 代码
- 02部署前审查 LLM 应用安全风险
MCP 相关
提供 MCP 工具 scan_ai_security,用于扫描 AI、LLM 和 Agent 应用源代码中的安全风险。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| timeout | number | 否 | 扫描超时时间(秒)。默认值:300。 |
| targetPath | string | 是 | 要扫描的 AI 应用源代码的绝对或相对路径。 |
| extendedScope | boolean | 否 | 在扫描中包含测试/文档/示例。默认值:false(仅生产范围)。 |
详细介绍
AI AppSec
为 AI 应用和 Agent 提供有证据支撑的应用安全(AppSec)。
由 HAIEC 提供支持。
在提交、推送、合并或部署之前,审计 AI 代码中的安全风险。
AI AppSec 的功能
AI AppSec 为 AI Agent 和 AI 应用源代码生成确定、可复现的静态安全证据。它使用 Semgrep 1.173.0 作为执行引擎,并附带 Public Core 规则包(122 个检测器、79 项安全检查)。
主要特性:
- 仅进行静态分析 — 不会执行目标代码
- 常规扫描无需联网(Semgrep 设置可能需要联网)
- 无需 HAIEC 账户或 API 密钥
- 确定性证据 — 附带 SHA-256 摘要的扫描收据
- 摘要验证失败时拒绝通过 — 在运行时验证规则包/清单
- 修复验证 — 通过检查评估安全机制进行重新扫描和对比
快速开始
# Install
npm install -g ai-appsec
# Check Semgrep status
ai-appsec doctor
# Install Semgrep engine (requires network)
ai-appsec setup
# Start MCP server (stdio transport)
ai-appsec
也可以通过 npx 使用,无需全局安装:
npx ai-appsec doctor
npx ai-appsec setup
预发布渠道:
@next跟踪即将发布的预发行版(例如,ai-appsec@next)。
适用场景
当开发者要求以下操作时,请使用 scan_ai_security:
- “检查这里是否存在安全问题”
- “在我推送之前审计此任务”
- “检查这项更改是否存在安全问题”
- “扫描这个 AI Agent”或“扫描这个 AI 应用”
- “检查我的大模型应用”
- “对这个 PR 进行安全审查”
- “合并这个安全吗”
- “部署之前检查一下”
- “审计这段代码是否存在漏洞”
- “运行安全扫描”
- “提交之前检查安全风险”
scan_ai_security
MCP 工具 scan_ai_security 是 v0.1 中唯一实现的工具。
它会扫描 AI/大模型/Agent 应用源代码,查找安全风险,包括:
- 不安全地执行 AI 输出
- 密钥泄露
- RAG/模型集成风险
- 不安全地使用 AI API
- 控制缺失
- 与提示词/输入相关的风险信号
scan_ai_security 不会做什么
- 不提供完整的 AI 系统保障
- 不提供运行时行为保障
- 不提供合规认证
- 不保证零误报
- 不会证明各类问题的根本原因
- 不会执行目标代码、安装依赖或运行包管理器
- 不会进行合规评估(合规评估需要额外的 HAIEC 证据)
发现项
发现项按以下维度分类:
- 发现类型:PRESENCE、RISK_SIGNAL、CONTROL_GAP、VULNERABILITY
- 严重程度:CRITICAL、HIGH、MEDIUM、LOW、INFO
- 处置方式:INFORMATIONAL、REVIEW、BLOCK
安全问题类别
安全问题类别会将语义兼容的发现项实例归纳起来,以便提供有助于决策的呈现方式。问题类别是一种确定性的分组视图,不一定对应单个漏洞、单个实质问题或单个根本原因。底层发现项实例仍可供审计。
问题类别数量不等于漏洞数量。Top 20 / Top 50 是呈现上限,而非证据上限。
COMPLETE / PARTIAL / ERROR
- COMPLETE:范围内所有受支持的文件均已成功分析。
- PARTIAL:部分受支持的文件无法分析(例如,解析器失败)。 PARTIAL 扫描无法证明不存在发现项。缺失的证据绝不会被视为 PASS。
- ERROR:由于引擎错误,扫描无法完成。
覆盖范围
AI AppSec 会明确统计覆盖情况:
- DISCOVERED:在目标下找到的所有文件
- INTENTIONALLY_EXCLUDED:根据范围策略排除的文件
- UNSUPPORTED:扩展名不受支持的文件(.py、.js、.jsx、.ts、.tsx)
- TARGETED:计划进行分析的受支持文件
- ENGINE_REPORTED_SCANNED:Semgrep 报告为已扫描的文件
- PARSE_FAILED:存在解析错误的文件
- SUCCESSFULLY_ANALYZED:已扫描文件数减去解析失败文件数
扫描回执
每次扫描都会生成防篡改的扫描回执,其中包含以下内容的 SHA-256 摘要:
- 发现项集合
- 关注类别集合
- 覆盖文件集合
- 已评估的安全检查和检测器
- 语义回执标识
完整扫描在不同进程和操作系统上都会生成可复现的回执。部分扫描会保留特定运行的覆盖差异。
证据封套
每次扫描都会生成一个证据封套,将回执与扫描执行上下文绑定,包括:
- 生成者身份
- 目标身份(扫描输入摘要、git 提交、脏状态)
- 执行状态和完整性
- 语义回执摘要
- 封套摘要
修复证明
修复后重新扫描目标,以比较回执。修复证明比较是安全的:它会验证特定安全检查中的发现项是否已解决,而不要求整个扫描完全一致。
离线/本地运行
安装前置条件后,正常扫描完全离线运行:
- 无需访问 HAIEC 云端
- 无需账号或 API 密钥
- 扫描期间不会下载规则
- 不会发送遥测数据(Semgrep 调用时使用
--metrics off)
Semgrep 安装设置(ai-appsec setup)可能需要网络访问以安装引擎。安装后,所有扫描都在本地进行。
Semgrep 前置条件
scan_ai_security 要求 Semgrep 1.173.0(版本必须完全匹配)。
# Check Semgrep status
ai-appsec doctor
# Install managed Semgrep (requires network)
ai-appsec setup
此软件包不捆绑 Semgrep。它是单独安装的外部引擎。详情请参阅 THIRD_PARTY_NOTICES.md。
限制
- v0.1 仅实现了
scan_ai_security - 仅限静态分析——不包含运行时行为证据
- 不提供合规认证或评估
- 不检查租户隔离(路线图)
- 不验证 LLM 内容(路线图)
- 不提供部署安全门控(路线图)
许可证
MIT 许可证
版权所有 (c) 2026 HAIEC
完整许可证文本请参阅 LICENSE。
安全问题报告
如果您认为发现了安全漏洞:
- 在审核前,请勿公开披露。
- 通过 GitHub 私密漏洞报告进行报告。
- 对于非敏感错误,请使用 GitHub Issues。
目前没有漏洞赏金计划。本项目由一个小型团队维护。感谢您负责任地披露问题,并耐心等待。
路线图
HAIEC 未来的能力(尚未在此软件包中实现):
- 租户隔离检查(
scan_tenant_isolation) - LLM/运行时内容验证(
verify_llm_content) - 部署安全门控(
check_deploy_security) - 原生确定性数据流分析
- 运行时证据
- 清单证据
- 监管证据
- 合规/保证集成
- 合规孪生
这些仍将是彼此独立的产品/引擎。请参阅 HAIEC 架构原则:一个工作流,四项独立检查。
HAIEC
AI AppSec 由 HAIEC 提供支持。HAIEC 是更广泛的保证平台,未来可能会结合 ai-appsec 证据与运行时、清单、监管及外部证据,以支持更广泛的合规与保证工作。
由创始人主导开发,HAIEC 负责把关来源、许可和发布。
相关项目
- LLMVerify — LLM 内容验证(独立产品,单独的代码库)
- Tenant Isolation — 跨租户边界检查(独立产品,单独的代码库)
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。