DhanushNehru/ShieldMyRepo

GitHub: DhanushNehru/ShieldMyRepo

ShieldMyRepo 是一个开源的命令行工具,用于扫描 GitHub 代码仓库的安全漏洞并生成可视化等级评分和徽章。

Stars: 9 | Forks: 7

ShieldMyRepo Logo

🛡️ ShieldMyRepo

30秒内扫描任何GitHub代码仓库,揪出安全隐患。

Forks Issues License CI

功能快速开始扫描器评分卡徽章贡献

## 🤔 ShieldMyRepo 是什么? **ShieldMyRepo** 是一个开源的 CLI 工具,可以扫描任何代码仓库,查找安全漏洞、错误配置和泄露的密钥——然后给仓库一个 **从 A 到 F 的安全等级**,并生成一个可分享的徽章供你的 README 使用。 可以将其视为代码库的 **安全健康检查**。 ``` $ shieldmyrepo scan . 🛡️ ShieldMyRepo — Security Report Card ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📊 Overall Grade: B ┌─────────────────────────┬───────────┬──────────┐ │ Scanner │ Status │ Findings │ ├─────────────────────────┼───────────┼──────────┤ │ 🔑 Secret Detection │ ✅ PASS │ 0 │ │ 📦 Dependencies │ ⚠️ WARN │ 3 │ │ ⚙️ GitHub Actions │ ✅ PASS │ 0 │ │ 🐳 Dockerfile │ ❌ FAIL │ 2 │ │ 📄 Gitignore │ ⚠️ WARN │ 1 │ └─────────────────────────┴───────────┴──────────┘ 📋 Details: reports/shieldmyrepo-report.json 🏷️ Badge: reports/shieldmyrepo-badge.svg ``` ## ✨ 功能 - 🔑 **密钥检测** — 查找代码中泄露的 API 密钥、令牌、密码和私钥 - 📦 **依赖扫描** — 检查 `package.json`、`requirements.txt`、`Cargo.toml`、`go.mod` 中是否存在已知漏洞 - ⚙️ **GitHub Actions 审计** — 检测不安全的工作流配置和供应链风险 - 🐳 **Dockerfile 安全** — 标记以 root 用户运行、未固定的基镜像、构建参数中包含密钥等问题 - 📄 **Gitignore 检查** — 确保敏感文件不会被提交 - 📊 **A-F 等级评分卡** — 美观的终端输出,并附带可操作的改进建议 - 🏷️ **可分享的徽章** — 生成一个 SVG 徽章,在你的 README 中展示代码仓库的安全等级 - 🔌 **插件架构** — 易于添加新的扫描器(非常适合贡献者参与!) ## 🚀 快速开始 ### 安装 ``` # 克隆 repository git clone https://github.com/DhanushNehru/ShieldMyRepo.git cd ShieldMyRepo # 以 development mode 安装 pip install -e . ``` ### 使用 ``` # 扫描 current directory shieldmyrepo scan . # 扫描 specific path shieldmyrepo scan /path/to/your/project # 扫描并生成 badge shieldmyrepo scan . --badge # 以 JSON 输出报告 shieldmyrepo scan . --format json # 仅运行 specific scanners shieldmyrepo scan . --scanners secrets,dockerfile ``` ## 🔍 扫描器 ShieldMyRepo 采用 **模块化插件架构**。每个扫描器都是一个独立的 Python 模块,可以轻松添加或修改。 | 扫描器 | 描述 | 文件 | |--------|------|------| | 🔑 密钥 | 检测泄露的 API 密钥、令牌和密码 | `scanners/secrets.py` | | 📦 依赖 | 检查软件包文件中的已知漏洞 | `scanners/dependencies.py` | | ⚙️ GitHub Actions | 审计工作流安全配置 | `scanners/github_actions.py` | | 🐳 Dockerfile | 分析 Docker 安全最佳实践 | `scanners/dockerfile.py` | | 📄 Gitignore | 验证 gitignore 覆盖范围 | `scanners/gitignore.py` | ### 想添加新的扫描器? ## 📊 评分卡 ShieldMyRepo 会生成一份美观的评分卡,包含: - **总体等级** (A-F),基于各扫描器的加权结果 - **各扫描器状态** (通过 / 警告 / 失败) - **发现数量**,按严重级别分类 - 针对每个发现的 **可操作改进建议** - **JSON 导出**,便于 CI/CD 集成 ### 等级量表 | 等级 | 分数范围 | 描述 | |------|----------|------| | A | 90-100 | 优秀 — 安全隐患极少 | | B | 80-89 | 良好 — 存在少数轻微问题 | | C | 70-79 | 一般 — 一些问题需要关注 | | D | 60-69 | 较差 — 存在显著的安全漏洞 | | F | 0-59 | 严重 — 需要立即采取行动 | ## 🏷️ 徽章 将安全等级徽章添加到你项目的 README 中: ``` ![ShieldMyRepo Grade](https://raw.githubusercontent.com/DhanushNehru/ShieldMyRepo/main/path/to/shieldmyrepo-badge.svg) ``` 运行 `shieldmyrepo scan . --badge` 命令,即可在 `reports/` 目录下生成一个 SVG 徽章。 ## 🛠️ 技术栈 - **Python 3.8+** — 核心 CLI 和扫描器引擎 - **Click** — CLI 框架 - **Rich** — 美观的终端输出 - **PyYAML** — 用于解析工作流和配置的 YAML ## 📄 许可证 本项目采用 MIT 许可证 — 详情请参阅 [许可证](LICENSE) 文件。
标签:DevSecOps, GitHub集成, Python项目, TLS抓取, 上游代理, 二进制发布, 仓库扫描, 代码安全, 代码库安全, 安全健康检查, 安全扫描, 安全评分, 开源工具, 徽章生成, 恶意代码分类, 时序注入, 漏洞枚举, 秘密泄露检测, 网络安全, 软件安全, 逆向工具, 错误配置检查, 隐私保护, 风险检测