mcpField
G
gemini-cli-security

gemini-cli-security

github.com/oimiragieo安全4448 次安装17 周前更新
代码仓库

关于 gemini-cli-security

面向 Claude Code 的代码与依赖安全审查 Skill,改编自 Gemini CLI Security Extension。它检测常见漏洞及 LLM 特有风险,并可生成适用于 CI 流水线的结果。

主要功能

  1. 01代码漏洞分析
  2. 02OSV.dev 依赖扫描
  3. 03密钥与注入攻击检测
  4. 04身份验证和数据处理检查
  5. 05LLM 安全风险检测
  6. 06Markdown 和 JSON 报告

适用场景

  1. 01合并拉取请求前审查代码
  2. 02审计依赖中的已知 CVE
  3. 03检查 LLM 应用的提示词注入风险
  4. 04在 CI/CD 流水线中加入安全检查

MCP 相关

源扩展采用两种 MCP 服务模式;此 Skill 改用 WebFetch、Grep 和 Bash 等 Claude Code 原生工具。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/oimiragieo/agent-studio --skill gemini-cli-security

安装后在 Claude Code 中输入/gemini-cli-security确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

commands/
gemini-cli-security.md
hooks/
post-execute.cjs
pre-execute.cjs
references/
research-requirements.md
rules/
gemini-cli-security.md
schemas/
input.schema.json
output.schema.json
scripts/
main.cjs
templates/
implementation-template.md

详细介绍

Gemini CLI 安全技能

基于 Gemini CLI Security Extension(github.com/gemini-cli-extensions/security)改编的 AI 驱动安全分析技能。在 TypeScript/JavaScript CVE 数据集上的精确率为 90%,召回率为 93%,可检测代码和依赖项中的漏洞。 - 代码漏洞分析(/security:analyze 模式) - OSV.dev 依赖项扫描(/security:scan-deps 模式) - 硬编码凭据和密钥检测 - 注入攻击检测(XSS、SQL、命令、SSRF、模板) - 弱加密和不安全反序列化检测 - 身份验证和会话管理缺陷检测 - LLM 特定风险:提示词注入、不安全的输出处理 - JSON 输出格式,便于集成到 CI/CD 管道 - 用于自动化 PR 分析的 GitHub Actions 集成模式

概览

此技能将 Gemini CLI Security Extension 的分析方法改编为适用于 agent-studio 框架的形式。原扩展使用两种 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 管道安全门禁的一部分

铁律

NO PRODUCTION CODE WITHOUT SECURITY ANALYSIS FOR AUTH/SECRETS/EXTERNAL-INPUT HANDLERS

所有处理身份验证、硬编码值、外部输入或 AI 模型输出的代码路径,必须在部署到生产环境前完成分析。

漏洞覆盖范围

类别 1:密钥管理
模式检测方法
硬编码 API 密钥搜索密钥模式 + 熵分析
硬编码密码凭据关键词检测
源代码中的私钥PEM 块 / base64 密钥检测
加密密钥对称密钥常量模式
类别 2:注入攻击
攻击类型示例
SQL 注入查询中使用字符串拼接
XSSHTML/JS 输出中未经转义的用户内容
命令注入使用用户可控参数执行 Shell 命令
SSRF服务器请求中使用用户可控 URL
模板注入模板引擎中未经清理的用户输入
类别 3:身份验证缺陷
缺陷检测方法
绕过会话验证缺少身份验证中间件
弱令牌可预测的令牌生成
不安全的密码重置无令牌或仅通过电子邮件重置
未强制执行 MFA身份验证流程中未检查 2FA
类别 4:数据处理
问题检测方法
弱加密使用 MD5/SHA1 处理密钥;使用 DES/RC4
日志中的敏感数据日志语句中出现 PII/凭据模式
PII 违规未加密存储或传输 PII
不安全的反序列化调用不安全的 pickle/eval/deserialize
类别 5:大模型安全(新颖)
风险检测
提示词注入未经清理的用户内容被注入大模型提示词
不安全的输出处理大模型输出未经验证便用于 exec/eval/shell
不安全的工具集成使用未经检查的大模型提供的参数调用工具

用法

调用
// From an agent
Skill({ skill: 'gemini-cli-security' });

// With arguments via Bash integration
Skill({ skill: 'gemini-cli-security', args: 'src/ --scan-deps' });
工作流执行
# Analyze code in a directory
node .claude/skills/gemini-cli-security/scripts/main.cjs --target src/

# Scan dependencies for CVEs
node .claude/skills/gemini-cli-security/scripts/main.cjs --scan-deps

# JSON output for CI integration
node .claude/skills/gemini-cli-security/scripts/main.cjs --target . --json

# Scoped analysis with natural language
node .claude/skills/gemini-cli-security/scripts/main.cjs --target src/auth/ --scope "focus on token handling and session management"
输出格式

默认输出(Markdown 报告):

## Security Analysis Report

### CRITICAL

- [AUTH-001] Hardcoded API key found in src/config.ts:42
  Pattern: `const API_KEY = "sk-..."`
  Remediation: Move to environment variable

### HIGH

- [INJ-002] SQL injection risk in src/db/users.ts:87
  Pattern: String concatenation in query builder
  Remediation: Use parameterized queries

### Dependencies

- [email protected] → CVE-2021-23337 (HIGH) - Prototype pollution
  Fix: Upgrade to [email protected]+

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 batch query endpoint
WebFetch({
  url: 'https://api.osv.dev/v1/querybatch',
  prompt: 'Extract vulnerability IDs, severity, and affected versions for these packages',
});

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

GitHub Actions 集成

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

# .github/workflows/security.yml
name: Security Analysis
on: [pull_request]
jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run security analysis
        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 分析组件可由发起调用的 Agent(security-architect)提供,无需嵌入 AI 调用。

指定的 Agent

Agent角色
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

假定任务可能中断:如果没有记录在记忆中,就代表它没有发生。

评论

支持 Markdown