【火山「AI安全攻防」】恶意Skill检测引擎设计思路分享

比赛宣传链接:https://mp.weixin.qq.com/s/8eoAjHk9cGGmGdafZ3eqMw

报名链接:https://skill-ctf.clsadp.com/#/

没用的碎碎念:最近报名参加了一下这个 ai 攻防挑战赛,本来是红蓝两个队都报名了,上传了一个红队的恶意 skill 之后,拿了个 5. 多分好像是,但是我感觉红队的这个面太大了,恶意 skill 种类太多了,我是写了一个可以读取宿主机文件的恶意 skill,但是我感觉也没啥其他可试的了,这个我感觉主要是看积累。所以还是 all in 蓝队这个恶意 skill 检测,感觉这个可优化的点比较多。

本文只做一个简单的思路分享,因为也不是什么排名前几的大佬,不涉及泄密什么的,后面比赛结束了,作者看到好的开源方法也会在这个文章下面继续分享。

什么是恶意 skill

我理解的恶意 skill 就是指那些表面上伪装成帮你干活的好好小助手,实际上背地里干点坏事的 skill。比如:读你的文件传给黑客的远程服务器,给你电脑上下载两个恶意软件(黑客可以通过工具回连)这种。官方给的完整类型如下:

ID 分类 中文说明 严重程度 主要信号
AST01 Malicious Skills 恶意技能 严重 破坏性命令、凭证窃取、反向 Shell、提示词注入、数据窃取
AST02 Supply Chain Compromise 供应链妥协 严重 远程安装器、运行时包拉取、生命周期钩子、不受信任的注册表
AST03 Excessive Authorization 过度授权 通配符权限、敏感凭证或宿主机访问、权限提升、逃逸符号链接
AST04 Insecure Metadata 不安全元数据 隐藏的元数据指令、不披露指令、误导性的安全声明
AST05 Insecure Deserialization 不安全反序列化 不安全的 pickle/YAML/对象反序列化及输入驱动的求值
AST06 Weak Isolation 弱隔离 特权容器、Docker 套接字、宿主机命名空间、沙箱禁用
AST07 Update Drift 更新漂移 自动更新、可变的 latest/main 引用、版本范围、验证禁用
AST08 Insufficient Scanning 扫描不足 扫描器绕过、编码载荷、运行时反混淆、忽略指令
AST09 Lack of Governance 缺乏治理 审计抑制、匿名特权操作、审批绕过
AST10 Cross-Platform Reuse 跨平台复用 跨平台载荷分发、多代理平台目标定位

检测方法设计

先看一下官方给的环境 ------ 评测期间完全隔离,无外部网络访问

bash 复制代码
4) 资源限制
计算资源:4 vCPU / 8GB 内存 / 30 分钟总时限
网络:评测期间完全隔离,无外部网络访问
镜像大小:上限 16M
超时或内存溢出:按已完成部分计分 ------ 重点检查现在的代码是否满足 引擎接口规范。

那就是静态扫描了,如果我对无外部网络访问理解无误的话,应该就是不能调用外部接口,那么问题就简化为了就是静态扫描检测 skill 有没有恶意行为。

我的设计思路比较简单,就是一个单进程、顺序扫描架构,描述如下:

bash 复制代码
/data/skills/
    |
    v
发现 Skill 子目录
    |
    v
安全遍历与扫描
    |
    +--> manifest.json 分析
    +--> 文件清单分析
    +--> Python AST 分析
    +--> 依赖文件分析
    +--> 通用文本规则分析
    |
    v
发现项去重与分类计分
    |
    v
生成 verdict、confidence、category、evidence
    |
    v
/output/results.jsonl

其中,扫描部分扫描的文件是由 skill 架构决定的,Skill(技能包)本质上是一个包含代码、配置和说明文档的压缩包。其中:

  • manifest.json(或类似的元数据配置文件)是 Skill 的"身份证"和"权限声明书"。
  • 文件清单是对 Skill 包内所有文件的"结构体检",检测包内是否藏匿了不该出现的危险文件。
  • AST(Abstract Syntax Tree,抽象语法树)分析是针对 Python 代码的"深度白盒审查"。
  • 依赖文件分析针对 Skill 引入的第三方库和外部组件(如 requirements.txt, package.json 等)。
  • 通用文本规则分析是针对 Skill 中的自然语言说明(如 SKILL.md、README)及普通文本的"意图审查"。

分析到上面,问题就简化为了对上面几种类型文件的扫描分析,针对上面几种类型文件的安全检查,我们可以检索、让大模型给我们生成相应的检测代码即可。

其实,分析到这里,在我这种纯静态扫描到方法中,问题就变成了看谁想的更全面,也就是谁的覆盖面更广的问题,这种问题就很适合迭代优化,发现不足,增加相应方法即可。

完整流程

设计完检测引擎后,安装平台执行流程将其封装为 docker 镜像即可。

  1. 接收或拉取参赛 Docker 镜像
  2. 校验镜像 digest 和镜像大小
  3. 准备黑、白、灰 Skill 数据集
  4. 创建空输出目录
  5. 在断网和资源限制下启动容器
  6. 将数据集挂载到 /data/skills:ro
  7. 将结果目录挂载到 /output
  8. 等待容器完成或达到 30 分钟超时
  9. 读取 /output/results.jsonl
  10. 校验 JSONL 格式并计算评分
相关推荐
怪奇云呼军2 分钟前
闪电智能Voice Agent:ASR 首字延迟和最终识别延迟怎么测?t0-t3 埋点实战
人工智能·科技·ai·语音识别
冬哥聊AI9 分钟前
百万行代码里跑Claude Code?三面这题80%的人答不上来
人工智能
甄同学10 分钟前
第二十三篇:Tasks系统,Claude Code如何统一管理7种后台任务
人工智能
独隅11 分钟前
IntelliJ IDEA 接入多种AI大模型插件终极指南(2026.1 企业合规版)
java·人工智能·intellij-idea
有Li15 分钟前
EvoMDT:用于多癌种结构化临床决策的自进化多智能体系统文献速递/医学智能体前沿
人工智能·学习·分类·文献·医学生
小刘BlandNew26 分钟前
AI核心概念大串联
人工智能
墨染天姬29 分钟前
【AI】自驱动智能体
人工智能
D2aZXN3FhrDa7e21244 分钟前
佛山乐从低预算实体店如何选择?看美诚AI自动化获客方案
运维·人工智能·自动化·佛山美诚科技有限公司
头茬韭菜1 小时前
4.9 SSRF 防护 — Web 工具的出站安全与私有 IP 拦截
前端·tcp/ip·安全
林泽毅1 小时前
PyTRIO:当强化学习不再需要本地GPU
人工智能·python·深度学习·机器学习