security
Security 是 Google 为 Gemini CLI 打造的一款开源安全扩展,旨在帮助开发者在代码提交前智能识别潜在风险。它主要解决了传统安全审计滞后、依赖包漏洞难以及时发现等痛点,让安全防护自然融入日常开发流程。
这款工具特别适合使用 Git 和命令行环境的软件开发者及工程团队。其核心亮点在于结合了 Gemini 强大的 AI 理解能力与专业的漏洞扫描技术:一方面,它能针对 Pull Request 中的代码变更进行上下文感知的深度分析,精准定位逻辑漏洞;另一方面,内置集成的 OSV-Scanner 可自动比对全球开源漏洞数据库,快速排查项目依赖项中的已知安全隐患。
用户只需在终端运行简单命令,即可生成智能化的安全报告,支持通过自然语言自定义分析范围或输出 JSON 格式数据。需要注意的是,Security 提供的是高效的初步筛查而非完整的安全审计,建议将其作为多层防御体系中的一环,配合人工复核与其他专业工具共同使用,从而以更低的成本提升项目的整体安全水位。
使用场景
某电商平台的后端团队正在紧急开发一个新的支付网关功能,开发人员需要在合并代码前快速排查潜在的安全隐患。
没有 security 时
- 开发者只能依赖人工肉眼审查代码,极易忽略复杂的逻辑漏洞(如竞态条件或不安全的反序列化)。
- 第三方依赖库的已知漏洞往往要等到定期审计或发生安全事故时才被发现,修复成本极高。
- 安全审查通常滞后于开发流程,导致在 PR 合并阶段才发现重大问题,严重拖慢上线进度。
- 缺乏上下文感知的分析工具,难以区分误报和真实风险,浪费大量时间进行无效排查。
使用 security 后
- security 利用 AI 能力自动分析当前分支的代码变更,精准识别出支付逻辑中的注入风险和权限校验缺失。
- 通过集成的 OSV-Scanner,security 即时扫描并报告项目中引用的加密库存在已知高危漏洞,建议升级版本。
- 开发者在提交 PR 前即可运行
/security:analyze获得智能报告,将安全问题拦截在开发早期,避免返工。 - 支持自然语言定制分析范围(如“只检查支付模块”),security 能聚焦核心业务代码,提供高置信度的修复建议。
security 将被动的事后审计转变为主动的实时防御,让安全成为开发工作流中不可或缺的自然环节。
运行环境要求
- 未说明
未说明
未说明

快速开始
Gemini CLI 安全扩展
安全扩展是一个开源的 Gemini CLI 扩展,旨在提升您代码库的安全性。该扩展为 Gemini CLI 添加了一个新命令,用于分析代码变更,以识别各种安全风险和漏洞。

功能特性
- AI 驱动的安全分析:利用 Gemini 的先进能力,提供智能且上下文感知的安全分析。
- 专注的分析:专门设计用于分析拉取请求中的代码变更,帮助在开发流程早期识别并修复漏洞。
- 开源:该扩展是开源的,并根据 Apache 2.0 许可证进行分发。
- 与 Gemini CLI 集成:作为 Google 开发的扩展,它能无缝集成到 Gemini CLI 环境中,使安全性成为您工作流中易于访问的一部分。
- 可扩展的范围:该扩展采用可扩展的架构设计,允许未来扩展检测到的安全风险以及更高级的分析技术。
- 依赖项扫描:使用 OSV-Scanner 识别影响您项目依赖项的已知漏洞。
安装
通过在终端运行以下命令来安装安全扩展 (需要 Gemini CLI v0.4.0 或更高版本):
gemini extensions install https://github.com/gemini-cli-extensions/security
使用扩展
安全扩展为 Gemini CLI 添加了 /security:analyze 命令,该命令会分析当前分支上的代码变更,查找常见的安全漏洞,并生成由 Gemini 提供支持的智能安全报告,以提升代码库的安全态势。
重要提示:此报告仅为初步分析,并非完整的安全审计。请结合其他工具及人工审查使用。
注意:目前 /security:analyze 命令专为交互式使用而设计。对非交互式会话的支持计划在未来的版本中实现(相关进展可在 issue #20 中跟踪)。
自定义 /security:analyze 命令
默认情况下,/security:analyze 命令会使用 git diff --merge-base origin/HEAD 来确定分析范围。然而,您可以通过自然语言向命令添加指令来自定义分析范围。例如,要分析 scripts 文件夹中的所有文件,您可以运行以下命令:
/security:analyze 分析 script 文件夹下的所有源代码。跳过文档、配置文件和包文件。
若需以 JSON 格式获取安全报告,可以使用 --json 标志,或用自然语言请求 JSON 输出:
/security:analyze --json
或者:
/security:analyze 以 JSON 格式返回报告。

扫描易受攻击的依赖项
现代软件通常基于开源依赖构建,但如果这些依赖项存在漏洞,则可能带来安全风险。
定期运行依赖项扫描是确保软件供应链安全、保护项目免受已知攻击向量侵害的关键步骤。
/security:scan-deps 命令通过集成 OSV-Scanner 自动化这一过程。OSV-Scanner 是一款工具,可将您的项目依赖项与由 Google 维护的开源漏洞数据库 OSV.dev 进行交叉引用。OSV.dev 通过聚合来自广泛开源生态系统的漏洞信息,提供精确的漏洞数据,从而确保全面且可靠的安全公告。
要运行依赖项扫描,请使用以下命令:
/security:scan-deps
运行该命令后,您将收到一份报告,列出:
- 哪些依赖项存在漏洞。
- 具体漏洞的详细信息,包括其严重程度和标识符。
- 修复问题的指导建议,例如应升级到哪个版本。
GitHub 集成
我的仓库已经在使用 run-gemini-cli 工作流:
- 将您现有的
gemini-review.yml替换为此更新的工作流,其中包含了新的安全分析步骤。
我的仓库尚未使用 run-gemini-cli 工作流:
将 Gemini CLI 安全扩展集成到您的 GitHub 工作流中,以分析传入的代码:
按照此快速入门中的步骤 1–3 操作。
在您的仓库根目录下创建一个
.github/workflows目录(如果尚不存在)。将此示例工作流复制到
.github/workflows目录中。请参阅 run-gemini-cli 的配置,以便对工作流进行修改。确保将新的工作流文件提交并推送到 GitHub。
打开一个新的拉取请求,或在现有 PR 上评论
@gemini-cli /review,以同时运行 Gemini CLI 代码评审和安全分析。
基准测试
为评估我们安全分析的质量和有效性,我们基于一组真实的已知漏洞数据集对该扩展进行了基准测试。
方法论
我们的评估流程旨在测试扩展识别代码变更中漏洞的能力。
- 数据集:我们使用了 OpenSSF CVE 基准测试,该数据集包含使用 TypeScript / JavaScript 编写的实际应用程序的 GitHub 仓库。对于每个漏洞,该数据集提供了包含漏洞代码的提交(
prePatch)以及修复该漏洞的提交(postPatch)。 - 分析目标:针对每个 CVE,我们克隆了相应的仓库,在 archeogit 的帮助下找到引入漏洞的补丁,并将其应用到本地环境中。
- 生成报告:我们在此差异上运行了
/security:analyze命令,以生成安全报告。 - 验证:由于数据集中的仓库数量较少,我们手动审查了所有生成的安全报告,并与真实情况对比,以计算最终的精确率和召回率。
我们目前正在积极努力自动化评估框架,并通过添加新型漏洞类别来丰富我们的数据集。
结果
我们在该数据集上的评估结果为:精确率 90%,召回率 93%。
- 精确率(90%) 衡量的是我们检测的准确性。扩展程序识别出的所有潜在漏洞中,有 90% 确实是实际的安全风险。
- 召回率(93%) 衡量的是我们覆盖的完整性。扩展程序成功识别出了数据集中所有已知漏洞中的 93%。
漏洞类型
Security 扩展会扫描文件中存在的以下漏洞:
密钥管理
- 硬编码密钥:直接嵌入在源代码中的凭据,如 API 密钥、私钥、密码和连接字符串,以及对称加密密钥。
不安全的数据处理
- 弱加密算法:使用弱或过时的加密算法,包括任何使用 DES、Triple DES、RC4 或分组密码中的 ECB 模式的情况。
- 敏感信息的日志记录:可能将密码、PII、API 密钥或会话令牌写入应用程序或系统日志的日志语句。
- 个人身份信息(PII)处理违规:不当存储、不安全传输,或任何可能违反数据隐私法规的 PII 使用行为。
- 不安全的反序列化:从不可信来源反序列化数据而未进行适当验证的代码,这可能导致攻击者执行任意代码。
注入型漏洞
- 跨站脚本攻击(XSS):未经净化或未正确转义的用户输入直接渲染到 HTML 中,从而可能在用户的浏览器中执行脚本。
- SQL 注入(SQLi):通过拼接原始、未参数化的用户输入来构造数据库查询。
- 命令注入:使用未经适当净化的用户输入执行系统命令或云函数的代码。
- 服务器端请求伪造(SSRF):在未验证的情况下向用户提供的 URL 发起网络请求的代码,这可能使攻击者探测内部网络或服务。
- 服务器端模板注入(SSTI):用户输入直接嵌入到服务器端模板中后再进行渲染的情况。
身份认证
- 认证绕过:会话验证不当、不安全的“记住我”功能,或缺乏防暴力破解保护的自定义认证端点。
- 弱或可预测的会话令牌:令牌具有可预测性、熵不足,或由用户可控的数据生成。
- 不安全的密码重置:重置令牌可预测、令牌泄露到日志或 URL 中,以及对用户身份确认不安全等情况。
LLM 安全
- 不安全的提示处理(提示注入):分析提示的构造方式,以识别来自不可信用户数据的风险,这些风险可能导致提示注入攻击。这也可能包括将敏感信息(API 密钥、凭据、PII)直接嵌入用于生成提示的代码或提示本身中。
- 不当的输出处理:检测 LLM 生成的内容是否被不安全地使用,从而导致诸如跨站脚本攻击(XSS)、SQL 注入(SQLi)或通过
eval()等函数远程执行代码等漏洞。同时还会标记那些基于未经验证的 LLM 输出做出安全相关决策的代码。 - 不安全的插件和工具使用:扫描 LLM 与外部工具交互过程中存在的漏洞,标记过于宽松的工具或可能被恶意输出利用的不安全数据流。
资源
- Gemini CLI 扩展:关于在 Gemini CLI 中使用扩展的文档。
- 博客文章(即将发布!):更多关于 Security 扩展的信息。
- GitHub 问题:报告错误或请求功能。
法律声明
- 许可证:Apache License 2.0
- 安全政策:安全政策
星标历史
版本历史
v0.5.02026/04/01v0.4.02025/12/17v0.3.02025/10/20v0.2.02025/10/07常见问题
相似工具推荐
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
codex
Codex 是 OpenAI 推出的一款轻量级编程智能体,专为在终端环境中高效运行而设计。它允许开发者直接在命令行界面与 AI 交互,完成代码生成、调试、重构及项目维护等任务,无需频繁切换至浏览器或集成开发环境,从而显著提升了编码流程的连贯性与专注度。 这款工具主要解决了传统 AI 辅助编程中上下文割裂的问题。通过将智能体本地化运行,Codex 能够更紧密地结合当前工作目录的文件结构,提供更具针对性的代码建议,同时支持以自然语言指令驱动复杂的开发操作,让“对话即编码”成为现实。 Codex 非常适合习惯使用命令行的软件工程师、全栈开发者以及技术研究人员。对于追求极致效率、偏好键盘操作胜过图形界面的极客用户而言,它更是理想的结对编程伙伴。 其独特亮点在于灵活的部署方式:既可作为全局命令行工具通过 npm 或 Homebrew 一键安装,也能无缝对接现有的 ChatGPT 订阅计划(如 Plus 或 Pro),直接复用账户权益。此外,它还提供了从纯文本终端到桌面应用的多形态体验,并支持基于 API 密钥的深度定制,充分满足不同场景下的开发需求。
gstack
gstack 是 Y Combinator CEO Garry Tan 亲自开源的一套 AI 工程化配置,旨在将 Claude Code 升级为你的虚拟工程团队。面对单人开发难以兼顾产品战略、架构设计、代码审查及质量测试的挑战,gstack 提供了一套标准化解决方案,帮助开发者实现堪比二十人团队的高效产出。 这套配置特别适合希望提升交付效率的创始人、技术负责人,以及初次尝试 Claude Code 的开发者。gstack 的核心亮点在于内置了 15 个具有明确职责的 AI 角色工具,涵盖 CEO、设计师、工程经理、QA 等职能。用户只需通过简单的斜杠命令(如 `/review` 进行代码审查、`/qa` 执行测试、`/plan-ceo-review` 规划功能),即可自动化处理从需求分析到部署上线的全链路任务。 所有操作基于 Markdown 和斜杠命令,无需复杂配置,完全免费且遵循 MIT 协议。gstack 不仅是一套工具集,更是一种现代化的软件工厂实践,让单人开发者也能拥有严谨的工程流程。
openai-cookbook
openai-cookbook 是 OpenAI 官方提供的一套实用代码示例与指南合集,旨在帮助开发者快速上手并掌握 OpenAI API 的核心用法。面对大模型应用中常见的提示词工程、函数调用、数据嵌入及复杂任务编排等挑战,新手往往难以找到标准化的实现路径。openai-cookbook 通过提供经过验证的代码片段和详细教程,有效解决了“如何从零开始构建应用”以及“如何最佳实践特定功能”的痛点。 这套资源主要面向软件开发者和 AI 技术研究人员,同时也适合希望深入理解大模型能力的技术爱好者。虽然示例代码主要以 Python 编写,但其背后的设计思路和技术逻辑具有通用性,可轻松迁移至其他编程语言。其独特亮点在于内容紧跟官方最新特性更新,覆盖了从基础文本生成到高级代理(Agent)构建的全场景需求,且所有示例均支持在本地环境直接运行调试。作为开源项目,它采用宽松的 MIT 许可证,鼓励社区贡献与二次开发,是学习大模型应用开发不可或缺的实战手册。
