SuperAPI AI 工具集

cycode-cli

Cycode CLI 是 Cycode 公司提供的命令行工具,可安装在本地,用于扫描代码仓库中的安全风险。它支持四类扫描: Secrets(密钥泄露检测)、IaC(基础设施即代码配置错误检测)、SCA(软件成分分析漏洞检测)和 SAST(静态应用安全测试)。该工具需要 Python 3.10 或更高版本,可通过 PyPI、Homebrew 或 GitHub Releases 安装,并通过 cycode auth、cycode configure 或环境变量进行身份认证。它还支持配置 Git 的 pre-commit 和 pre-push 钩子,在提交或推送代码前自动识别问题。此外提供了 MCP 命令(实验性)、平台命令、AI Guardrails、扫描结果忽略规则以及 SBOM 报告生成等功能。

访问官网

工具介绍

用途

Cycode CLI 是一个命令行应用程序,可安装在本地,用于扫描代码仓库中的安全风险。它覆盖四类安全扫描:

  • Secrets:检测密钥泄露
  • IaC:检测基础设施即代码的配置错误
  • SCA:软件成分分析,检测依赖漏洞
  • SAST:静态应用安全测试

安装

该工具要求 Python 版本 3.10 或更高。安装方式包括:

  • 从 PyPI 安装:
pip3 install cycode
  • 从 Homebrew 安装:
brew install cycode
  • 从 GitHub Releases 下载对应操作系统和架构的可执行文件,然后运行:
cd /path/to/downloaded/cycode-cli
chmod +x cycode
./cycode

认证

设置 Cycode 客户端 ID 和凭据(客户端密钥或 OIDC ID 令牌)有三种方法:

  • cycode auth(推荐):在终端运行后,浏览器会弹出登录页面,输入凭据登录,并选择要授权的业务组,点击 Allow 完成授权。终端会显示 Successfully logged into cycode。如果已通过 Linux 或 Windows 环境变量设置了客户端 ID 和密钥,环境变量优先于此方法。
  • cycode configure:交互式输入 Cycode API URL、APP URL、Client ID、Client Secret(如使用 OIDC 可跳过)和可选的 OIDC ID Token。成功后显示 Successfully configured CLI credentials! 或 Successfully configured Cycode URLs!。凭据保存在用户目录下的 .cycode 文件夹中的 credentials.yaml,URL 保存在同目录的 config.yaml。
  • 环境变量:Windows 可通过控制面板的系统菜单、高级系统设置、环境变量按钮,创建 CYCODE_CLIENT_ID 和 CYCODE_CLIENT_SECRET;若使用 OIDC 认证,还可添加 CYCODE_ID_TOKEN,并将 cycode.exe 加入 PATH。

使用方式

CLI 提供以下命令组:

  • 认证与配置命令:cycode auth、cycode configure
  • scan 命令:执行扫描,支持多种选项,如严重性阈值、Monitor Cycode、报告包漏洞、许可证合规、lock、restore、出错停止等。扫描范围包括仓库扫描、分支选项、路径扫描、Terraform Plan 扫描、提交历史扫描、提交范围选项(Diff 扫描)、Pre-Commit 扫描、本地 Diff 扫描(IDE 集成)、Pre-Push 扫描。扫描结果可显示或隐藏密钥,支持软失败。结果示例涵盖 Secrets、IaC、SCA 和 SAST。还支持公司自定义修复指南。
  • 忽略扫描结果:可按密钥值、密钥 SHA 值、路径、密钥/IaC/SCA 规则、包忽略,也可通过配置文件忽略。
  • report 命令:生成 SBOM 报告。
  • platform 命令:包含命令发现、示例、注意事项与限制。
  • MCP 命令(实验性):可启动 MCP 服务器,包含可用选项、MCP 工具、使用示例和高级配置。
  • AI Guardrails:说明其收集的数据。

集成到 Git 工作流

Cycode 的 pre-commit 和 pre-push 钩子可在本地仓库中设置,让 CLI 在提交或推送代码前自动识别问题。注意:pre-commit 和 pre-push 钩子不支持 IaC 扫描。

安装 pre-commit 钩子步骤:

  1. 安装 pre-commit 框架(需 Python 3.10 或更高):
pip3 install pre-commit
  1. 进入要配置的本地 Git 仓库顶层目录。
  2. 在仓库顶层创建 .pre-commit-config.yaml,内容示例:
repos:
  - repo: https://github.com/cycodehq/cycode-cli
    rev: v3.25.0
    hooks:
      - id: cycode
        stages: [pre-commit]

可按需修改:钩子 ID cycode 用于 Secrets 扫描,cycode-sca 用于 SCA 扫描,cycode-sast 用于 SAST 扫描。如启用全部扫描类型,配置为:

repos:
  - repo: https://github.com/cycodehq/cycode-cli
    rev: v3.25.0
    hooks:
      - id: cycode
        stages: [pre-commit]
      - id: cycode-sca
        stages: [pre-commit]
      - id: cycode-sast
        stages: [pre-commit]
  1. 安装钩子:
pre-commit install

成功时提示 Pre-commit installed at .git/hooks/pre-commit。

  1. 保持钩子更新:
pre-commit autoupdate

自动将 .pre-commit-config.yaml 中的 rev 更新到最新版 Cycode CLI。

pre-commit 钩子在 git commit 时触发,仅扫描暂存待提交的文件。

安装 pre-push 钩子:在 .pre-commit-config.yaml 中添加:

repos:
  - repo: https://github.com/cycodehq/cycode-cli
    rev: v3.25.0
    hooks:
      - id: cycode-pre-push
        stages: [pre-push]

然后安装:

pre-commit install --hook-type pre-push

同时安装两种钩子:

pre-commit install
pre-commit install --hook-type pre-push

pre-push 钩子在 git push 时触发,仅扫描即将推送的提交。

证书与代理

默认情况下,Cycode CLI 使用随 CLI 附带的 CA 捆绑包验证 HTTPS 连接。如组织使用检查 HTTPS 流量的代理,或使用带自有 CA 的本地部署,有两种方式:

  • 方式一:使用机器上已安装的证书。若 CA 位于机器证书存储(受管设备常见),可启用:CLI 将针对 Windows 证书存储、macOS Keychain 或 Linux 系统 CA 目录进行验证,无需配置证书路径。此选项有意设置为选择性加入,信任机器存储意味着信任该机器上的所有根证书,包括管理员或恶意软件安装的证书。仅在确认机器证书存储可信时启用。
  • 方式二:让 CLI 指向 CA 捆绑包文件,无需选择性加入。

两种方式可结合:设置 CYCODE_CLI_ENABLE_TRUSTSTORE=1 后,REQUESTS_CA_BUNDLE 中的证书将与机器存储一同受信任,而非替代。运行任何命令加 -v 可查看当前信任来源,例如 cycode -v status。在 Windows 上,当未设置 REQUESTS_CA_BUNDLE 或 CURL_CA_BUNDLE 时,CLI 始终回退到系统证书存储。

适用场景与限制

适用于需要在开发生命周期中提升安全性的团队,可在本地开发、提交、推送各阶段扫描仓库中的密钥泄露、IaC 配置错误、依赖漏洞和代码安全问题。限制方面:pre-commit 和 pre-push 钩子不支持 IaC 扫描;MCP 命令标注为实验性;使用机器证书存储的信任选项需谨慎启用。