mohammedabdallahcv-creator/shieldops-cli

GitHub: mohammedabdallahcv-creator/shieldops-cli

ShieldOps CLI 是一款结合 AI 分析的 DevSecOps 命令行工具,专注于为 Dockerfile 和云原生配置提供安全扫描与自动化修复建议。

Stars: 1 | Forks: 0

# ShieldOps CLI [![PyPI version](https://img.shields.io/pypi/v/shieldops-cli.svg)](https://pypi.org/project/shieldops-cli/) [![Python](https://img.shields.io/pypi/pyversions/shieldops-cli.svg)](https://pypi.org/project/shieldops-cli/) [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) [![GitHub Stars](https://img.shields.io/github/stars/mohammedabdallahcv-creator/shieldops-cli?style=social)](https://github.com/mohammedabdallahcv-creator/shieldops-cli) [![Powered by ShieldOps AI](https://img.shields.io/badge/powered%20by-ShieldOps%20AI-8B5CF6)](https://shieldops-ai.dev)

ShieldOps TUI interactive session

ShieldOps CLI scan results

## 为什么选择 ShieldOps CLI 大多数 Dockerfile/K8s 扫描器只会告诉你**哪里**有问题。ShieldOps CLI 还会告诉你**如何修复它** —— 它使用的是理解你特定配置的 AI,而不是通用的规则文本。 | 功能 | ShieldOps CLI | Hadolint | Trivy | |---|---|---|---| | Dockerfile 扫描 | 是 | 是 | 部分 | | Docker Compose 扫描 | 是 | 否 | 否 | | K8s manifest 扫描 | 是 | 否 | 是 | | AI 驱动的自动修复 | 是 | 否 | 否 | | SBOM 生成 | 是 | 否 | 是 | | Compose 文件生成 | 是 | 否 | 否 | | Docker 镜像扫描 | 是 | 否 | 是(内置) | | 交互式 TUI | 是 | 否 | 否 | | 支持 CI/CD (`--fail-on`) | 是 | 是 | 是 | | 免费层级(本地) | 无限扫描,无需注册 | 是 | 是 | | 云端 AI 分析 | 需要 API key(每天免费 5 次) | — | — | ### 独特之处 1. **AI 自动修复** — 不是仅仅提示“你有一个问题”,而是提供“这是修复好的 Dockerfile,随时可以应用” 2. **交互式 TUI** — 支持 fuzzy 补全、历史记录和实时 loading spinner 的斜杠命令界面(类似于 Claude Code,但用于安全扫描) 3. **一个工具,多种输入** — 支持 Dockerfile、docker-compose.yml、K8s YAML、requirements.txt、package.json、Docker 镜像 4. **CI/CD 门控** — `--fail-on high` 在流水线中会以非零状态退出,确保糟糕的配置永远不会被合并 ## 快速开始 ``` # 1. 安装 pip install shieldops-cli # 2. 扫描您的 Dockerfile(本地 — 无需 login) shieldops analyze Dockerfile ``` 就是这样。你可以获得基于严重程度分级的结果和 10 多条内置规则 —— 无需注册,也无需 API key。 要进行具有更深层次扫描的 AI 驱动分析: ``` # 3. Login(免费版 — 5 次 scans/天) shieldops login # 4. 使用 cloud AI 进行扫描 shieldops analyze Dockerfile --api ``` ## 安装说明 ### 从 PyPI 安装 ``` pip install shieldops-cli ``` ### 包含 TUI(交互式终端) ``` pip install 'shieldops-cli[tui]' ``` ### CI/CD 环境(无 TUI) ``` pip install shieldops-cli ``` ## 命令 ### `analyze` — Dockerfile 安全扫描 默认在本地运行(无需 API key)。使用 `--api` 进行云端 AI 分析。 ``` shieldops analyze Dockerfile # local (free, unlimited) shieldops analyze Dockerfile --api # cloud AI (requires login) shieldops analyze Dockerfile --format json --output report.json shieldops analyze Dockerfile --fail-on high # CI/CD gate shieldops analyze Dockerfile --open-report # open browser report ``` ### `autofix` — AI 驱动的 Dockerfile 修复 ``` shieldops autofix Dockerfile # see suggested fix shieldops autofix Dockerfile --apply # apply fix in-place (.bak backup) shieldops autofix Dockerfile --format json -o fix.json ``` ### `sbom` — 软件物料清单 ``` shieldops sbom requirements.txt shieldops sbom package.json shieldops sbom Dockerfile --format json ``` ### `compose-scan` — Docker Compose 扫描 ``` shieldops compose-scan docker-compose.yml shieldops compose-scan docker-compose.yml --fail-on high ``` ### `compose-generate` — 从 Dockerfile 生成 Compose 文件 ``` shieldops compose-generate Dockerfile shieldops compose-generate Dockerfile --output docker-compose.yml ``` ### `k8s-scan` — Kubernetes Manifest 扫描 ``` shieldops k8s-scan deployment.yaml shieldops k8s-scan pod.yaml --format sarif ``` ### `scan-image` — Docker 镜像扫描 ``` shieldops scan-image nginx:latest shieldops scan-image myapp:v1.2.3 --format json ``` ### `login` / `logout` / `whoami` ``` shieldops login # interactive prompt shieldops login --key sk-... # direct key export SHIELDOPS_API_KEY=sk-... # or env var (CI/CD) shieldops whoami shieldops logout ``` ## 输出格式 | 格式 | 最适用于 | |---|---| | `table`(默认) | 终端阅读 | | `json` | 脚本编写、API 集成 | | `sarif` | GitHub Security 选项卡、CodeQL | | `summary` | 单行流水线状态 | ``` shieldops analyze Dockerfile --format json --output scan.json shieldops analyze Dockerfile --format sarif --output results.sarif shieldops analyze Dockerfile --format summary ``` ## TUI — 交互式终端界面 ``` pip install 'shieldops-cli[tui]' shieldops tui ``` 支持 fuzzy 补全、命令历史记录和实时 loading spinner 的斜杠命令界面: ``` shieldops> /analyze Path to Dockerfile: ./Dockerfile Analyzing... [results] Completed shieldops> /autofix Path to Dockerfile: ./Dockerfile [AI fix suggestions] shieldops> /save Report saved: reports/autofix_20260528_143022.txt shieldops> /exit Session closed. ``` **可用命令**:`/analyze`, `/analyze-json`, `/autofix`, `/sbom`, `/compose-scan`, `/compose-generate`, `/k8s-scan`, `/scan-image`, `/login`, `/logout`, `/whoami`, `/config`, `/save`, `/help`, `/clear`, `/exit` 为任何扫描命令追加 `-json` 以输出 JSON 格式(例如:`/analyze-json`)。 **免费层级本地分析**:`/analyze` 在**本地**运行,包含 20 条安全规则 —— 无需 API key。免费用户可以获得真实、可操作的 Dockerfile 安全发现,包括: - Critical:通过管道传递给 shell 的 curl、暴露的 SSH 端口、硬编码的 secrets - High:使用 latest tag、以 root 用户运行、容器中使用 sudo、chmod 777 - Medium:在同一 RUN 中未使用 install 的 apt-get、未使用 --production 的 npm、不安全的 HTTP - Low:使用 ADD 代替 COPY、缺少 HEALTHCHECK、未使用 --no-cache-dir 的 pip - Info:已弃用的 MAINTAINER、特权端口、多个 RUN **Tab** = 自动补全,**Up/Down** = 历史记录,**/save** = 写入文件,**/exit** = 返回普通终端以进行滚动/复制。 ## CI/CD 集成 ### GitHub Actions ``` name: ShieldOps Security Scan on: [push, pull_request] jobs: security: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install ShieldOps CLI run: pip install shieldops-cli - name: Scan Dockerfile env: SHIELDOPS_API_KEY: ${{ secrets.SHIELDOPS_API_KEY }} run: shieldops analyze Dockerfile --fail-on high --format sarif --output results.sarif - name: Upload SARIF uses: github/codeql-action/upload-sarif@v3 with: sarif_file: results.sarif ``` ### GitLab CI ``` shieldops-scan: image: python:3.11-slim stage: test before_script: - pip install shieldops-cli script: - shieldops analyze Dockerfile --fail-on high --format summary variables: SHIELDOPS_API_KEY: $SHIELDOPS_API_KEY ``` ### 退出码 | 代码 | 含义 | |---|---| | `0` | 通过 —— 没有超过阈值的问题 | | `1` | 失败 —— 发现了达到或超过 `--fail-on` 严重程度的问题 | | `2` | 错误 —— 身份验证、网络或配置问题 | ## 免费版 vs Pro 版 | 功能 | 免费 | Pro | |---|---|---| | 每天扫描次数 | 5 | 无限 | | Dockerfile 分析 | 是 | 是 | | K8s / Compose 扫描 | 是 | 是 | | SBOM | 是 | 是 | | AI 自动修复 | 是 | 是 + `--apply` | | 镜像扫描 | 是 | 是 | | HTML 报告 | 是 | 是 + PDF | | 浏览器报告 | 是 | 是 | | 团队访问权限 | 否 | 是 | | 策略引擎 | 否 | 是 | | 优先队列 | 否 | 是 | 在 [shieldops-ai.dev](https://shieldops-ai.dev) 获取你的 API key。 ## 配置 ``` shieldops config list # show all settings shieldops config set api_url ... # custom API endpoint shieldops config get api_key # check stored key ``` 配置存储在 `~/.shieldops/config.json` 中。API key 原样存储(如有需要,请在你的机器上对其进行静态加密)。 ## 运行位置说明 | 组件 | 本地运行 | 需要 API key | |---|---|---| | CLI 参数解析 | 是 | 否 | | 文件读取和验证 | 是 | 否 | | 输出格式化(table/json/sarif) | 是 | 否 | | 安全分析 | 否 | 是 —— 发送至 ShieldOps AI 后端 | | AI 自动修复 | 否 | 是 | | SBOM 生成 | 否 | 是 | | 报告生成 | 否 | 是 | CLI 在本地读取你的文件,并仅将文件内容(绝不包含 secrets、env vars 或其他系统数据)发送到 ShieldOps AI 后端进行分析。除非为了扫描会话,否则你的文件不会被存储在我们的服务器上。 ## 开发 ``` git clone https://github.com/mohammedabdallahcv-creator/shieldops-cli.git cd shieldops-cli pip install -e '.[dev]' pytest ``` 从源码运行 CLI: ``` python -m shieldops_cli.main analyze Dockerfile ``` ## License MIT ShieldOps CLI 是开源的。分析后端是专有的,托管在 [shieldops-ai.dev](https://shieldops-ai.dev)。
标签:DevSecOps, Docker, 上游代理, 云安全监控, 人工智能, 后端开发, 图数据库, 子域名突变, 安全防御评估, 用户模式Hook绕过, 请求拦截, 逆向工具, 静态分析