MauroEldritch/commissar

GitHub: MauroEldritch/commissar

一款用于在安装前静态扫描 RubyGems 的供应链安全检测工具,通过识别恶意指标和风险评分帮助防御供应链攻击。

Stars: 0 | Forks: 0

# Commissar 用于检测 RubyGems 中潜在供应链攻击的静态分析工具。 在您安装 gem 之前扫描其是否存在恶意指标:可疑的网络调用、凭证访问、文件读取、混淆的 payload、危险的 gemspec 模式等。 ## 安装 ``` gem install commissar ``` ## 使用方法 ``` commissar [version] [options] commissar --local PATH [options] ``` 示例: ``` #Normal use commissar rails #Scan a specific version commissar nokogiri 1.16.0 #Scan a local gem commissar --local /tmp/my-gemfile.gem #JSON output to screen or to file commissar rails --format json > commissar.json commissar rails --format json | jq #Table format commissar rails --format table #CSV (format is assumed from the output file extension) commissar rails --output results.csv #No colour, please commissar rails --no-color #I just want the score for my automation tool/pipeline commissar rails --score-only ``` 输出按类别、严重性(`CRIT`、`HIGH`、`MED`、`LOW`、`INFO`)、文件和行号对发现进行分组。最后会打印风险评分(0-100)和最终建议。 您可以使用 `--score-only` 将 Commissar 快速集成到您的 CI/CD 流水线中。您将获得一个代表风险评分的纯整数,不包含横幅或任何其他信息。 ## 配置 模式列表位于仓库的 `conf/` 目录中(或安装后 gem 自带的 `conf/` 目录)。直接编辑这些文件即可添加或移除模式。 文件: | 文件 | 用途 | |---|---| | `suspicious_urls.txt` | 与数据渗漏或暂存相关的域名 | | `suspicious_functions.txt` | 危险的 Ruby 方法和类 | | `suspicious_shell.txt` | 用于数据渗漏或暂存的 Shell 命令 | | `credential_paths.txt` | 包含密钥和敏感信息的文件系统路径及环境变量 | | `clipboard_patterns.txt` | 用于剪贴板访问的系统调用和 API | | `known_bad_wallets.txt` | 受 OFAC 制裁和 DOJ 记录的钱包地址 | | `complex_gems.txt` | 已知的复杂 gem,当评分升高时会收到上下文提示 | | `severity.txt` | 每个严重性级别的数值权重 | | `post_install_patterns.txt` | 安装后消息中的可疑模式 | 每个文件均为纯文本,每行一个条目。以 `#` 开头的行将被忽略。 ### 模式格式 ``` SEVERITY:PATTERN ``` 示例: ``` HIGH:eval CRIT:api.telegram.org MED:pastebin.com ``` ### 反模式 第一对字段之后的任何字段都被视为反模式:如果该行与模式匹配,但也包含任何反模式,则该发现将被抑制。有助于减少合法元编程产生的误报。 ``` SEVERITY:PATTERN:ANTIPATTERN:ANTIPATTERN:... ``` 示例: ``` HIGH:eval:&:binding HIGH:instance_eval:& HIGH:class_eval:&:__FILE__ ``` Ruby 命名空间表示法中的 `::` 绝不会被视作分隔符,因此 `MED:Net::HTTP` 可以按预期工作。 ## 检测内容 - 在过去 72 小时内发布的版本 - 近期的所有者变更或新的维护者账号 - 缺失或损坏的主页/源码 URI - Gemspec 的 `extensions` 指向 `extconf.rb` 或 `Rakefile`(在 `gem install` 时运行) - gemspec 中的顶级代码 - `eval`、`system`、反引号以及其他危险的函数调用 - 出站网络调用(Telegram 机器人、Discord webhooks、粘贴站点、webhook 服务) - `curl`/`wget` POST 命令及等效的 Ruby HTTP POST 操作 - Base64 编码或 zlib 压缩的 payload - 高 Shannon 熵字符串(>5.5 bits/char) - 超过 500 个字符的行(常见于填充和隐藏方案中) - 通过 `ENV` 或文件系统路径访问凭证 - 剪贴板劫持(Web3) - 硬编码的钱包地址:已知受 OFAC/DOJ 制裁的地址标记为 `CRIT`,未知地址标记为 `HIGH` ## 开发 ``` bundle install rake test ``` ## 许可证 MIT - 请参阅 [LICENSE](LICENSE)。
标签:DevSecOps, DNS 反向解析, GraphQL安全矩阵, HTTP工具, IP 地址批量处理, Linux安全, RubyGems, Ruby安全, 上游代理, 云安全监控, 凭证访问, 前端框架, 后门检测, 安全专业人员, 安全扫描器, 混淆载荷检测, 网络请求审计, 静态分析