GeminiCLI安全分析技能Skill gemini-cli-security

这个技能是一个AI驱动的安全分析工具,专门用于代码漏洞检测和依赖安全扫描。它能够识别硬编码秘密、各种注入攻击、弱加密算法、认证漏洞以及LLM相关的提示注入风险。通过集成OSV.dev数据库,自动扫描依赖包中的已知CVE漏洞。适用于软件开发、安全审计和CI/CD流程中的自动化安全检查,关键词包括安全分析、代码审计、漏洞检测、依赖扫描、AI安全、Gemini CLI、安全工具。

安全审计 1 次安装 1 次浏览 更新于 3/10/2026

名称: gemini-cli-security 描述: 使用Gemini CLI安全扩展模式的AI驱动代码漏洞分析和依赖扫描。检测硬编码密钥、注入攻击、弱加密、认证缺陷和LLM提示注入。同时扫描依赖项以对抗OSV.dev漏洞数据库。 版本: 1.0.0 模型: sonnet 调用方式: 两者 用户可调用: 是 工具: [Read, Write, Bash, WebFetch, Glob, Grep] 参数: ‘[target-path] [–scan-deps] [–json] [–scope <natural-language-scope>]’ 最佳实践:

  • 在拉取请求中分析代码更改以早期捕获漏洞
  • 始终通过OSV.dev集成检查依赖项的CVE
  • 为自动化管道生成结构化JSON输出
  • 标记LLM特定风险(提示注入、不安全输出处理)
  • 在评估覆盖范围时报告精度和召回率基准 错误处理: 优雅 流支持: 是 已验证: 否 最后验证时间: 2026-02-19T05:29:09.098Z

Gemini CLI 安全技能

<!-- 代理: 工件集成者 | 任务: #2 | 会话: 2026-02-18 -->

<identity> AI驱动的安全分析技能,基于Gemini CLI安全扩展(github.com/gemini-cli-extensions/security)适配。提供跨代码和依赖的漏洞检测,在TypeScript/JavaScript CVE数据集上达到90%精度和93%召回率。 </identity>

<capabilities>

  • 代码漏洞分析(/security:analyze模式)
  • OSV.dev依赖扫描(/security:scan-deps模式)
  • 硬编码凭证和密钥检测
  • 注入攻击检测(XSS、SQL、命令、SSRF、模板)
  • 弱加密和不安全反序列化检测
  • 认证和会话管理缺陷检测
  • LLM特定风险:提示注入、不安全输出处理
  • JSON输出格式用于CI/CD管道集成
  • GitHub Actions集成模式用于自动化PR分析 </capabilities>

概述

此技能将Gemini CLI安全扩展的分析方法适配到代理-工作室框架。原始扩展使用两个MCP服务器模式——安全分析服务器和OSV-Scanner集成——以提供双向量覆盖。此技能使用原生Claude Code工具(WebFetch用于OSV.dev API,Grep/Bash用于静态分析模式)实现等效分析。

源代码仓库: https://github.com/gemini-cli-extensions/security 许可证: Apache 2.0 性能: 90%精度,93%召回率(OpenSSF CVE基准,TypeScript/JavaScript)

何时使用

  • 在合并拉取请求之前检测引入的漏洞
  • 在新代码更改的安全审查期间
  • 用于针对已知CVE数据库的依赖审计
  • 对于需要提示注入防御审查的LLM集成应用程序
  • 作为CI/CD管道安全门的一部分

铁律

没有安全分析的认证/密钥/外部输入处理程序的代码不得部署到生产环境

所有处理认证、硬编码值、外部输入或AI模型输出的代码路径必须在生产部署前进行分析。

漏洞覆盖

类别1:密钥管理

模式 检测方法
硬编码API密钥 基于密钥模式的Grep和熵分析
硬编码密码 凭证关键词检测
源代码中的私钥 PEM块/base64密钥检测
加密密钥 对称密钥常量模式

类别2:注入攻击

攻击类型 示例
SQL注入 查询中的字符串拼接
XSS HTML/JS输出中未转义的用户内容
命令注入 用户控制参数的Shell执行
SSRF 服务器请求中用户控制的URL
模板注入 模板引擎中未消毒的用户输入

类别3:认证缺陷

缺陷 检测
会话绕过 缺少认证中间件
弱令牌 可预测令牌生成
不安全密码重置 无令牌或仅电子邮件重置
缺少MFA强制执行 无2FA检查的认证流程

类别4:数据处理

问题 检测
弱加密 使用MD5/SHA1处理密钥;DES/RC4使用
日志中的敏感数据 日志语句中的PII/凭证模式
PII违规 未加密的PII存储或传输
不安全反序列化 不安全的pickle/eval/反序列化调用

类别5:LLM安全(新颖)

风险 检测
提示注入 未经消毒将用户内容注入LLM提示
不安全输出处理 LLM输出未经验证用于exec/eval/shell
不安全工具集成 工具调用中LLM提供参数未检查

使用

调用

// 来自代理
Skill({ skill: 'gemini-cli-security' });

// 通过Bash集成带参数
Skill({ skill: 'gemini-cli-security', args: 'src/ --scan-deps' });

工作流执行

# 分析目录中的代码
node .claude/skills/gemini-cli-security/scripts/main.cjs --target src/

# 扫描依赖的CVE
node .claude/skills/gemini-cli-security/scripts/main.cjs --scan-deps

# 用于CI集成的JSON输出
node .claude/skills/gemini-cli-security/scripts/main.cjs --target . --json

# 自然语言范围分析
node .claude/skills/gemini-cli-security/scripts/main.cjs --target src/auth/ --scope "专注于令牌处理和会话管理"

输出格式

默认输出(markdown报告):

## 安全分析报告

### 关键

- [AUTH-001] 在src/config.ts:42发现硬编码API密钥
  模式: `const API_KEY = "sk-..."`
  修复: 移动到环境变量

### 高

- [INJ-002] src/db/users.ts:87的SQL注入风险
  模式: 查询构建器中的字符串拼接
  修复: 使用参数化查询

### 依赖

- lodash@4.17.15 → CVE-2021-23337(高) - 原型污染
  修复: 升级到lodash@4.17.21+

JSON输出--json标志):

{
  "findings": [
    {
      "id": "AUTH-001",
      "severity": "CRITICAL",
      "category": "secrets",
      "file": "src/config.ts",
      "line": 42,
      "description": "Hardcoded API key",
      "remediation": "Move to environment variable"
    }
  ],
  "dependencies": [
    {
      "package": "lodash",
      "version": "4.17.15",
      "cve": "CVE-2021-23337",
      "severity": "HIGH",
      "fix": "4.17.21"
    }
  ],
  "summary": {
    "critical": 1,
    "high": 2,
    "medium": 3,
    "low": 0,
    "precision": 0.9,
    "recall": 0.93
  }
}

OSV.dev依赖扫描

此技能与OSV.dev API(无需认证)集成以检查依赖:

// OSV.dev批量查询端点
WebFetch({
  url: 'https://api.osv.dev/v1/querybatch',
  prompt: '提取这些包的漏洞ID、严重性和受影响版本',
});

支持的生态系统: npm, PyPI, RubyGems, Maven, Go, Cargo, NuGet, Packagist

GitHub Actions集成

原始扩展通过GitHub Actions支持PR分析。此技能包含等效的工作流模板:

# .github/workflows/security.yml
name: 安全分析
on: [pull_request]
jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: 运行安全分析
        run: node .claude/skills/gemini-cli-security/scripts/main.cjs --target . --json

实现说明

为何使用原生工具而非MCP服务器: 原始扩展使用两个MCP服务器(安全分析服务器 + OSV-Scanner二进制)。此技能使用原生Claude Code工具替代:

  • WebFetch替代OSV-Scanner用于依赖CVE查找(OSV.dev有公共REST API)
  • Grep/Bash替代安全分析服务器用于基于模式的检测
  • 此方法无需二进制安装或会话重启即可立即工作

与源的偏差:原始使用Gemini AI进行代码分析;此技能使用扩展基准测试中记录的模式检测方法。AI分析组件可由调用代理(security-architect)提供,而非嵌入式AI调用。

分配的代理

代理 角色
security-architect 主要: 全面安全审计
developer 支持: 预提交安全检查
code-reviewer 支持: PR审查安全层

内存协议(强制)

开始前: 读取.claude/context/memory/learnings.md

完成后

  • 发现新漏洞模式 -> .claude/context/memory/learnings.md
  • 扫描问题 -> .claude/context/memory/issues.md
  • 范围决策 -> .claude/context/memory/decisions.md

假设中断:如果不在内存中,则未发生。