secopsium/secopsium-cli
GitHub: secopsium/secopsium-cli
一款开源的本地优先代码仓库安全扫描命令行工具,将多种扫描引擎整合为零配置的统一体验,帮助开发团队在开发阶段快速发现密钥泄露、配置风险和代码暴露问题。
Stars: 3 | Forks: 2
# SecOpsium CLI
[](https://github.com/secopsium/secopsium-cli/actions/workflows/ci.yml)
[](https://github.com/secopsium/secopsium-cli/releases)
[](./LICENSE)
SecOpsium CLI 是一款开源的、本地优先的代码仓库安全扫描器。
支持 Windows、macOS 和 Linux,无需手动配置。
从 GitHub Releases 下载对应的二进制文件,运行 `secopsium setup`,即可开始扫描。
## 功能特性
- 使用 Gitleaks 检测暴露的机密信息
- 使用 Semgrep 查找配置风险
- 运行轻量级的 JavaScript 暴露检查
- 跨扫描器统一处理发现的问题,并输出一致的格式
- 支持人类可读和 JSON 格式输出
- 默认对敏感匹配项进行脱敏处理
- 支持本地路径和远程 Git 仓库
- 包含忽略文件支持、结果去重以及对 CI 友好的退出码
## 快速开始
1. 从 GitHub Releases 下载适合您操作系统和架构的二进制文件。
2. 运行 `secopsium version` 确认您安装的二进制文件。
3. 运行 `secopsium setup` 安装托管版本的扫描工具。
4. 运行 `secopsium scan .`
## 命令
```
# 显示版本/构建 metadata
secopsium version
# 本地 scan
secopsium scan .
# Scan 期间自动安装缺失的工具
secopsium scan . --install-missing --yes
# 针对大型 bundles 提升 JS/TS scan 大小限制
secopsium scan . --js-max-file-size-mb 10
# Scan 远程 git repo
secopsium scan --repo https://github.com/org/repo.git
# 预先安装托管的 scanner 工具
secopsium setup
# 检查 scanner 工具运行状况
secopsium doctor
# 严格 CI 模式
secopsium scan . --strict --fail-on-findings
# 使用较短的 clone 超时时间来 clone 特定分支
secopsium scan --repo https://github.com/org/repo.git --ref main --clone-timeout 30s
# 一次性 JSON 输出
secopsium scan . --json
# 仅在您明确选择加入时显示原始证据
secopsium scan . --unsafe-raw-output
# 将默认输出持久化为 JSON
secopsium output --json
# 将默认输出持久化为人类可读格式
secopsium output --human
# 初始化 ignore 文件
secopsium ignore init
# 向 ignore 文件添加 patterns
secopsium ignore add "src/generated/**" "**/*.snap"
# 列出生效的 ignore patterns
secopsium ignore list
```
## 输出示例
```
[Secrets] 3 findings
[Config Risks] 2 findings
[JS Exposure] 1 findings
[Summary]
Total Findings: 6
Secrets: 3
Config Risks: 2
JS Exposure: 1
Want fewer false positives and prioritized results?
Try the full platform: https://secopsium.com
```
## 安装
SecOpsium CLI 通过 GitHub Releases 以特定于操作系统的二进制文件形式分发。
下载适合您平台的正确二进制文件后:
- 运行 `secopsium version`
- 运行 `secopsium setup`
- 运行 `secopsium scan .`
CLI 会自动检测 `gitleaks` 和 `semgrep`。如果缺失,`secopsium setup` 会将托管副本安装到您的用户缓存中。您也可以使用 `secopsium scan --install-missing --yes` 按需安装它们。
托管安装不需要管理员权限。
为了保持扫描速度,默认会跳过大小超过 3 MB 的 JavaScript 和 TypeScript 文件。如果您想包含更大的 bundle 或生成的前端资源,请使用 `--js-max-file-size-mb`。
## 从源码构建
环境要求:
- Go 1.24+
为当前的操作系统构建:
```
go build -o bin/secopsium ./cmd/secopsium
```
交叉编译示例:
```
# Linux
GOOS=linux GOARCH=amd64 go build -o dist/secopsium-linux-amd64 ./cmd/secopsium
# macOS Intel
GOOS=darwin GOARCH=amd64 go build -o dist/secopsium-darwin-amd64 ./cmd/secopsium
# macOS Apple Silicon
GOOS=darwin GOARCH=arm64 go build -o dist/secopsium-darwin-arm64 ./cmd/secopsium
# Windows
GOOS=windows GOARCH=amd64 go build -o dist/secopsium-windows-amd64.exe ./cmd/secopsium
```
## 发布
本仓库包含 [`.goreleaser.yml`](./.goreleaser.yml) 和 GitHub Actions 工作流,用于:
- Windows、macOS 和 Linux 上的 CI
- 带有特定于操作系统的二进制文件的标记发布
- 通过 Dependabot 进行依赖更新跟踪
要在本地构建发布产物:
```
goreleaser release --snapshot --clean
```
## 为什么选择 Go
Go 使 CLI 易于分发且运行迅速:
- 适用于 Windows、macOS 和 Linux 的单一二进制文件
- 快速的文件系统扫描
- 可靠的子进程和超时处理
- 简单明了的 CI/CD 打包
## 项目结构
```
secopsium-cli/
cmd/secopsium/ # CLI entrypoint and commands
internal/ # config, runner, formatting, tooling, repo logic
scanner/ # scanner integrations and lightweight checks
.github/ # CI, releases, and dependency automation
```
## 贡献与安全
有关开发指南,请参阅 [CONTRIBUTING.md](./CONTRIBUTING.md);有关漏洞报告,请参阅 [SECURITY.md](./SECURITY.md)。
标签:API安全, CLI, CMS安全, DevSecOps, EVTX分析, Gitleaks, JavaScript, JSON输出, LNA, SAST, SecOps, Semgrep, StruQ, TypeScript, WiFi技术, WordPress安全扫描, 上游代理, 云安全架构, 仓库安全, 代码安全, 安全合规, 安全插件, 密钥泄露检测, 对抗攻击, 开源安全工具, 敏感信息检测, 日志审计, 本地安全扫描, 源代码扫描, 漏洞枚举, 盲注攻击, 网络代理, 自动安装, 逆向工程平台, 配置风险检测, 零配置, 静态应用安全测试