OmarRao/secure-scope
GitHub: OmarRao/secure-scope
一款集成静态扫描、勒索软件检测、威胁情报和 AI 修复建议的 GitHub 仓库安全审查平台。
Stars: 1 | Forks: 0
# SecureScope / GitHub 安全审查工具



**[查看示例报告 (PDF)](https://github.com/OmarRao/secure-scope/blob/main/docs/sample_report.pdf)**
## 落地页
点击 **分析仓库** 打开扫描向导。落地页列出了所有功能和最近的扫描记录,并通过右上角的切换按钮支持深色和浅色主题。

## 扫描向导
仓库分析通过一个 3 步式的模态向导启动。
### 第 1 步 — 仓库
输入 GitHub 仓库 URL 和目标分支。

### 第 2 步 — AI 提供商
选择用于生成修复的 LLM。支持所有主要提供商并提供免费额度。
| 提供商 | 模型 | 备注 |
|----------|-------|-------|
| Anthropic Claude | claude-sonnet-4-5 | 质量最佳 |
| OpenAI GPT-4o | gpt-4o | 快速且强大 |
| Google Gemini | gemini-1.5-flash | 免费额度 |
| Groq Llama 3.1 | llama-3.1-70b-versatile | 极速 |
| Ollama (本地) | llama3 | 无需 API key |
| 无 | N/A | 跳过顾问 |

### 第 3 步 — 扫描选项
配置 Docker 沙箱执行以及将 AI 生成的修复可选地自动提交到 GitHub。

## 威胁情报仪表板 (v2.0.0)
一个实时威胁情报面板位于主仪表板上扫描向导的下方。无需扫描——它会在页面访问时自动加载,并每 60 秒自动刷新一次。
### 实时威胁信息流和活跃变种 Top 10
实时追踪 26 个勒索软件组织和 APT 行为者,并按严重程度排序。点击任意行即可展开完整详情:TTPs、CVEs、IOCs、受影响行业以及分步预防指南。

### 数据保护与弹性 + YARA 扫描器
以交互式 DR 测试清单可视化的 3-2-1-1-0 备份规则(状态保存至 localStorage)。YARA 扫描器面板允许您通过 WebSocket 进度流,针对 6 个预定义规则集实时扫描任何本地路径——备份、基础设施目录等。

### 威胁情报功能摘要
| 面板 | 描述 |
|-------|-------------|
| **实时威胁信息流** | 26 个被追踪的勒索软件和 APT 组织的滚动信息流,按严重程度排序。点击任意行展开 TTPs、CVEs、IOCs 和预防步骤。 |
| **活跃变种 Top 10** | 过去 90 天内最活跃威胁的排序列表,包含检测计数、严重程度条形图和趋势指标。 |
| **企业预防** | 标签页式卡片(勒索软件 / APT / 恶意软件 / 漏洞利用),包含可操作的控件、难度评级和图标。 |
| **数据保护与弹性** | 3-2-1-1-0 备份规则可视化指南,外加交互式 DR 测试清单(状态保存至 localStorage)。 |
| **YARA 扫描器** | 针对 6 个涵盖勒索软件、LockBit、BlackCat、APT 横向移动、数据外泄和备份篡改的规则集扫描任何本地路径。通过 Socket.IO 流式传输实时进度。 |
### YARA 规则集
| 文件 | 覆盖范围 |
|------|----------|
| `ransomware_common.yar` | 通用勒索软件:文件扩展名更改、勒索说明、VSS 删除、CryptoAPI |
| `lockbit.yar` | LockBit 3.0:勒索说明格式、Dropper 反分析、防御规避 |
| `blackcat_alphv.yar` | BlackCat/ALPHV:Rust 二进制标记、配置 JSON、ESXi 目标 |
| `apt_lateral_movement.yar` | Mimikatz、LSASS 转储、WMI 横向移动、AD 侦察、计划任务持久化 |
| `data_exfiltration.yar` | Rclone 云外泄、cURL 上传、FTP 暂存、7-Zip 数据归档 |
| `backup_tampering.yar` | Veeam 服务停止、Windows 备份删除、Agent 进程终止、NAS 共享删除 |
安装 `yara-python` 以获得完整的扫描功能:
```
pip install yara-python
```
如果没有它,扫描器会优雅降级:仅统计文件数量,但不评估任何规则。
## 示例报告
以下截图取自对 [`OmarRao/analyzer`](https://github.com/OmarRao/analyzer) 的实时扫描,这是一个故意包含漏洞的 Python Flask 银行应用程序,包含涵盖多种 MITRE ATT&CK 技术的 414+ 个发现。
**[查看完整示例报告 (PDF)](https://github.com/OmarRao/secure-scope/blob/main/docs/sample_report.pdf)**
### 报告头部 & KPI 摘要
报告头部显示仓库名称、分支、语言、许可证、扫描时间戳,以及一个醒目的 **风险评分** 徽章(0–100)和威胁等级。五张 KPI 卡片细分了严重发现、警告、依赖项 CVE、ATT&CK 技术计数和沙箱退出代码。

### 勒索软件情报条 & 跳转导航
勒索软件摘要条出现在每份报告的顶部——一目了然地显示勒索软件风险评分、爆炸半径、APT/国家级攻击置信度以及行为/家族计数。在其下方,一个胶囊状导航栏允许您直接跳转到任何部分。

### 分析图表
六个交互式 Chart.js 可视化图表:
- **严重程度分布** — 严重 / 警告 / 信息计数的环形图
- **ATT&CK 技术雷达图** — 跨检测到的技术 ID 的雷达图
- **按文件划分的发现** — 根据发现密度排名的水平热力条
- **每个文件的严重程度** — 堆叠柱状图(前 6 个文件,按严重程度划分)
- **语言风险分布** — 基于 GitHub 语言统计数据的极坐标区域图
- **CWE 分类细分** — 按频率排名的所有 CWE ID 的水平条形图

### 漏洞发现表
可按严重程度(全部 / 严重 / 警告)过滤,并带有一个跨越规则 ID、文件路径、CWE 和 ATT&CK 技术的实时搜索框。每行显示严重程度徽章、Semgrep 规则 ID、文件和行号、CWE 标签、ATT&CK 技术、战术,以及配置了 LLM 时可展开的 AI 修复咨询面板。

### 勒索软件情报部分
完整的勒索软件情报细分:核心 KPI 卡片(风险评分、爆炸半径、APT 可能性)、行为模式表、带有来源/CVE/置信度数据的家族匹配卡片、通过 Canvas 渲染的全球影响地图、CVE 交叉引用表以及受影响的代码部分列表。

## 架构
```
main.py CLI entry point
analyzer.py Semgrep static scan + CWE -> ATT&CK mapping + dep CVEs
sandbox.py Docker isolated runtime execution with strace observation
advisor.py Multi-LLM fix advisor (Anthropic, OpenAI, Gemini, Groq, Ollama)
ransomware.py Ransomware detection engine (9 families, 14 behaviors, blast radius)
threat_intel.py Threat intelligence engine: 26 threat DB, feed, prevention guide
yara_scanner.py YARA rule engine for backup/infrastructure scanning
yara_rules/ YARA .yar rule files (6 rule sets, 23 rules total)
github_agent.py Auto-commit security fixes to GitHub branch
report.py HTML + JSON report generation
ui/
server.py Flask + Socket.IO web server (scan pipeline + threat intel API)
github_info.py GitHub API fetcher (stars, commits, contributors, languages)
templates/
index.html Dashboard: wizard, live pipeline, threat intel panels
report.html Visual report with Chart.js, threat scoring, attack surface
```
## 前置条件
| 要求 | 用途 |
|-------------|---------|
| Python 3.11+ | 运行时 |
| Docker Desktop | 沙箱执行(可选) |
| `git` | 仓库克隆 |
| LLM API key | AI 修复顾问(可选) |
| GitHub PAT (classic, `repo` scope) | 提交修复(可选) |
## 设置
```
pip install -r requirements.txt
# 对于额外的 LLM 提供商(可选):
pip install openai google-generativeai groq
# 对于 YARA 扫描(可选):
pip install yara-python
```
设置环境变量(向导也支持交互式输入密钥):
```
# Windows PowerShell
[System.Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "sk-ant-...", "User")
[System.Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "sk-...", "User")
[System.Environment]::SetEnvironmentVariable("GEMINI_API_KEY", "...", "User")
[System.Environment]::SetEnvironmentVariable("GROQ_API_KEY", "gsk_...", "User")
[System.Environment]::SetEnvironmentVariable("GITHUB_TOKEN", "ghp_...", "User")
```
## 用法
### Web UI(推荐)
```
python -m ui.server
# 打开 http://localhost:5001
```
点击 **分析仓库** 并按照 3 步向导操作:
1. 输入 GitHub URL 和分支
2. 选择您的 AI 提供商(或跳过)
3. 配置沙箱和自动提交选项
### CLI
```
# 仅静态分析
python main.py --repo https://github.com/owner/repo --no-sandbox --no-advisor
# 使用 Docker 沙盒进行完整扫描
python main.py --repo https://github.com/owner/repo --no-advisor
# 使用 AI 修复顾问进行完整扫描
python main.py --repo https://github.com/owner/repo --no-sandbox
# 完整扫描 + 将修复提交到 GitHub
python main.py --repo https://github.com/owner/repo --commit --branch main
```
## 支持的 AI 提供商
| 提供商 | 模型 | 免费额度 | API Key 环境变量 |
|----------|-------|-----------|-----------------|
| Anthropic Claude | claude-sonnet-4-5 | 否 | `ANTHROPIC_API_KEY` |
| OpenAI | gpt-4o | 有限 | `OPENAI_API_KEY` |
| Google Gemini | gemini-1.5-flash | 是 | `GEMINI_API_KEY` |
| Groq | llama-3.1-70b-versatile | 是 | `GROQ_API_KEY` |
| Ollama (本地) | llama3 | 是 (本地) | 无需 |
| 无 | N/A | N/A | N/A |
## MITRE ATT&CK 映射
| CWE | ATT&CK 技术 | 战术 |
|-----|-----------------|--------|
| CWE-89 | T1190 利用面向公众的应用程序 | 初始访问 |
| CWE-79 | T1059.007 JavaScript | 执行 |
| CWE-78 | T1059 命令和脚本解释器 | 执行 |
| CWE-22 | T1083 文件和目录发现 | 发现 |
| CWE-798 | T1552.001 文件中的凭证 | 凭证访问 |
| CWE-918 | T1090 代理 | 防御规避 |
| CWE-327 | T1600 削弱加密 | 防御规避 |
| CWE-502 | T1059 命令和脚本解释器 | 执行 |
| CWE-352 | T1562 削弱防御 | 防御规避 |
| CWE-611 | T1190 利用面向公众的应用程序 | 初始访问 |
## 风险评分
综合风险评分 (0–100) 的计算方式为:
```
score = min(
(critical_findings x 10) +
(warnings x 3) +
(dependency_CVEs x 8) +
(sandbox_suspicious_behaviors x 15),
100
)
```
| 分数 | 等级 |
|-------|-------|
| 70–100 | CRITICAL |
| 45–69 | HIGH |
| 20–44 | MEDIUM |
| 0–19 | LOW |
## 发布
| 版本 | 日期 | 亮点 |
|---------|------|------------|
| [v2.0.0](https://github.com/OmarRao/secure-scope/releases/tag/v2.0.0) | 2026-06-12 | 威胁情报仪表板、YARA 扫描器、企业预防指南、DR 清单、可折叠的报告部分 |
| v1.0.0 | 2026-06-09 | 初始发布:Semgrep 扫描、Docker 沙箱、多 LLM 顾问、勒索软件引擎、可视化报告 |
## 安全说明
- 沙箱容器以 `--network internal`(无互联网连接)模式运行,512 MB RAM 上限,PID 限制为 128
- 默认情况下,修复以 dry-run 模式提交。传递 `--commit` 参数以写入 GitHub
- GitHub PAT 仅需 `repo` 权限范围
- 克隆的仓库在每次扫描后会从临时存储中删除
- 在向导中输入的 API key 仅用于当前扫描,绝不存储
**由 [Omar Rao](https://github.com/OmarRao) 构建**
工程师 — 数据弹性、网络安全与隐私
[LinkedIn](https://www.linkedin.com/in/omarrao/) · [Substack](https://omarrao.substack.com/)
标签:Docker, 云安全监控, 勒索软件检测, 后端开发, 威胁情报, 安全防御评估, 开发者工具, 请求拦截, 逆向工具, 静态分析