【火山「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 格式并计算评分
相关推荐
风娜1 小时前
IT 疑难杂症诊疗室:从现象到根因的系统排查方法论
人工智能·github
碧海银沙音频科技研究院1 小时前
炬芯ATS3089X手表的HFP通话不自动路由到设备BT的问题解决
网络·人工智能·嵌入式硬件·算法
承渊政道1 小时前
【从零开始大模型开发与微调:基于PyTorch与ChatGLM】(开源大模型ChatGLM高级定制化应用实战)
人工智能·pytorch·python·llm·模型微调·glm
howdoyoudo2026061 小时前
AI审计手记 #28:从“暂停训练”到“切断联网”——AI安全控制手段的极限升级
大数据·人工智能·安全·ai·语言模型
colman wang1 小时前
人工智能课程(配套AIMA(Artificial Intelligence: A Modern Approach))
人工智能
LinXunFeng5 小时前
Draw Things 换装 LoRA 实战:用 Silo 秒装,同一提示词对比出图
人工智能·开源·aigc
xiaohaiAIgeo5 小时前
【2026年】通风柜自动门安全吗?联锁逻辑与防夹设计
人工智能·安全·科普知识
像风一样自由20206 小时前
52.Docker部署大模型应用从本地开发到服务化运行
运维·人工智能·docker·容器·大模型·智能体
牛战士coding6 小时前
AI Agent 如何接入真实业务系统?订单助手三层架构完整拆解
人工智能·架构