【计算机工具类-安全工具Skills】agentic-actions-auditor 技能

【计算机工具类-安全工具Skills】agentic-actions-auditor 技能

审计GitHub Actions工作流中AI代理集成的安全漏洞,包括Claude Code Action、Gemini CLI、OpenAI Codex和GitHub AI Inference。检测攻击者控制的输入到达CI/CD管道中运行的AI代理的攻击向量。

技能概述

agentic-actions-auditor 技能是一个专门用于GitHub Actions工作流安全审计的技能,专注于检测AI编码代理集成中的安全漏洞。该技能提供静态安全分析指导,帮助发现工作流文件、识别AI操作步骤、跟踪跨文件引用、捕获安全相关配置,并检测攻击者控制的输入到达CI/CD管道中AI代理的攻击向量。

下载地址:https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/agentic-actions-auditor

主要功能

  • 工作流发现: 本地或远程发现GitHub Actions工作流文件
  • AI操作识别: 识别Claude Code Action、Gemini CLI、OpenAI Codex、GitHub AI Inference等AI代理
  • 跨文件解析: 跟踪复合操作和可重用工作流中的隐藏AI代理
  • 安全上下文捕获: 捕获触发事件、环境变量、权限配置等安全相关信息
  • 攻击向量检测: 检测9种主要攻击向量,包括环境变量中介、直接表达式注入、CLI数据获取等
  • 结构化报告: 生成可操作的安全发现报告,包含严重性评估和修复建议

触发条件

在以下情况下应该调用此技能:

  • 审计仓库的GitHub Actions工作流中的AI代理安全
  • 审查调用Claude Code Action、Gemini CLI或OpenAI Codex的CI/CD配置
  • 检查攻击者控制的输入是否可以到达AI代理提示
  • 评估代理操作配置(沙箱设置、工具权限、用户白名单)
  • 评估暴露工作流到外部输入的触发事件
  • 调查从GitHub事件上下文通过env块到AI提示字段的数据流

使用场景

场景1: 本地工作流审计

扫描本地仓库的.github/workflows/目录,识别所有AI代理集成并检测安全漏洞。

场景2: 远程仓库审计

通过GitHub API获取远程仓库的工作流文件,进行安全分析并生成报告。

场景3: CI/CD安全审查

在CI/CD管道中集成此技能,自动检测新添加的AI代理集成的安全问题。

处理过程

1. 确定分析模式

根据用户提供的是GitHub仓库URL还是本地路径,选择远程分析模式或本地分析模式。

2. 发现工作流文件

使用Glob定位所有GitHub Actions工作流文件(.github/workflows/*.yml和*.yaml)。

3. 识别AI操作步骤

检查每个工作流文件中的每个作业和步骤,识别已知的AI操作引用:

  • anthropics/claude-code-action
  • google-github-actions/run-gemini-cli
  • openai/codex-action
  • actions/ai-inference

4. 捕获安全上下文

为每个识别的AI操作步骤捕获安全相关信息:

  • 步骤级配置: prompt、claude_args、allowed_non_write_users、sandbox等
  • 工作流级上下文: 触发事件、环境变量、权限配置

5. 分析攻击向量

检查9种主要攻击向量:

  • 向量A: 环境变量中介
  • 向量B: 直接表达式注入
  • 向量C: CLI数据获取
  • 向量D: PR Target + Checkout
  • 向量E: 错误日志注入
  • 向量F: 子shell扩展
  • 向量G: AI输出eval
  • 向量H: 危险沙箱配置
  • 向量I: 通配符白名单

6. 报告发现

生成结构化的发现报告,包含:

  • 执行摘要
  • 摘要表格
  • 按工作流分组的详细发现
  • 严重性评估
  • 数据流跟踪
  • 修复建议

输入要求

使用此技能时,用户需要提供:

  • 本地仓库路径,或
  • GitHub仓库URL或owner/repo标识符
  • 可选: 特定分支、标签或SHA引用

输出说明

技能将提供:

  • 分析的工作流数量和AI操作实例数量
  • 安全发现总数及按严重性分类
  • 每个发现的详细信息(标题、严重性、文件、步骤、影响、证据、数据流、修复)
  • 跨文件引用解析结果
  • 安全配置评估

使用示例

示例1: 审计本地仓库

请审计当前仓库的GitHub Actions工作流中的AI代理安全

示例2: 审计远程仓库

请审计 https://github.com/owner/repo 的AI代理集成安全

示例3: 审计特定分支

请审计 owner/repo@main 分支的工作流安全

最佳实践

  1. 定期审计: 在添加新的AI代理集成或修改工作流时进行安全审计
  2. 关注触发事件: 特别注意pull_request_target、issue_comment等外部触发事件
  3. 检查环境变量: 仔细检查env块中是否包含事件数据引用
  4. 验证沙箱配置: 确保沙箱配置安全,避免danger-full-access等危险模式
  5. 限制用户白名单: 避免使用通配符"*",使用明确的用户列表
  6. 审查工具权限: 限制AI代理可用的工具集,避免危险的子shell扩展

常见错误认知

错误1: "只对维护者的PR运行"

错误原因: 忽略了pull_request_target、issue_comment等触发事件会将操作暴露给外部输入。攻击者不需要写权限即可触发这些工作流。

错误2: "我们使用allowed_tools限制功能"

错误原因: 工具限制仍可能被武器化。即使受限的工具如echo也可能通过子shell扩展被滥用。

错误3: "提示中没有${{ }},所以安全"

错误原因: 这是经典的环境变量中介遗漏。数据通过env块流向提示字段,提示本身看起来很干净,但AI代理仍接收攻击者控制的输入。

错误4: "沙箱防止任何实际损害"

错误原因: 沙箱配置错误会完全禁用保护。即使正确配置的沙箱,如果AI代理可以读取环境变量或挂载文件,也会泄露秘密。

注意事项

  • 仅用于分析使用AI代理操作的工作流
  • 这是静态分析指导,不是运行时提示注入测试
  • 不适用于非GitHub CI/CD系统(Jenkins、GitLab CI、CircleCI)
  • 此技能报告发现,不自动修复或修改工作流文件
  • 该技能具有安全风险等级,可以放心使用