【火山「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 格式并计算评分
相关推荐
网络研究院35 分钟前
Proton Drive采用OpenPGP加密,上传速度提升300%
服务器·网络·安全·proton drive·openpgp
小王毕业啦43 分钟前
2009-2024年 各国清廉指数CPI(xlsx)
大数据·人工智能·数据挖掘·数据分析·社科数据·实证分析·经管数据
syounger1 小时前
从遗留系统到AI运营:富士通转型折射日本企业的数字化再考
人工智能
DogDaoDao1 小时前
【GitHub】CodeGraph 深度解析:为 AI 编程代理构建预索引代码知识图谱
人工智能·程序员·github·知识图谱·ai编程·ai agent·codegraph
小O的算法实验室1 小时前
2025年IEEE TASE,基于双层耦合平均场博弈的大规模智能体集成任务分配与轨迹规划
人工智能·算法·机器学习
AI科技星1 小时前
基于奇合数边界的离散解析数论与双螺旋宇宙本体大统一体系论文全部数学公式汇总表
人工智能·算法·机器学习·架构·学习方法
疯狂的布布1 小时前
深度学习安装包运行时崩溃解决
人工智能·深度学习
Deepoch1 小时前
Deepoc VLA开发板:基于边缘语义计算的除草机器人决策系统
人工智能·机器人·开发板·具身模型·deepoc·除草机器人
voidmort1 小时前
12. 为什么评估(Evals)比训练更重要
人工智能·深度学习·机器学习