LimaniTsa/SandBug
GitHub: LimaniTsa/SandBug
一个集成了静态分析、动态沙箱、URL 威胁情报和 AI 摘要生成的综合性恶意软件分析平台。
Stars: 0 | Forks: 0
# SandBug
### AI 辅助的恶意软件与 URL 威胁分析平台(毕业设计项目)
SandBug 是一个基于 Web 的威胁分析平台,集成了静态文件分析、动态沙箱、URL 威胁情报以及 AI 驱动的报告生成功能。该平台旨在通过简洁的界面提供清晰、可操作的洞察,让技术安全分析师和非技术用户都能轻松进行恶意软件分析。
## 功能特性
- **静态文件分析:** PE 头检查、熵值分析、节区分析、导入表解析,以及 YARA 签名匹配(通用恶意软件、勒索软件和加壳规则)
- **动态沙箱:** 通过 Triage 沙箱进行自动化行为分析;捕获网络活动、进程树、释放文件、注册表更改和威胁签名
- **URL 分析:** 重定向链追踪、SSL 证书验证、IP 信誉查询 (AbuseIPDB)、Google Safe Browsing 查询、启发式评分,以及专用的 IP 抓取检测引擎
- **AI 生成摘要:** 由 Claude Haiku (Anthropic) 提供支持的通俗英语威胁摘要,适用于文件和 URL 分析
- **风险评分:** 综合静态指标、动态沙箱评分和 URL 威胁信号得出的综合风险评分 (0-100),映射至低 / 中 / 高 / 严重等级
- **PDF 报告导出:** 每次分析均可下载 PDF 报告
- **分析历史:** 注册用户可以查看、筛选和重访所有历史分析记录
- **访客模式:** 无需账户即可使用完整分析功能;结果不会被保存
## 技术栈
### 后端
- **框架:** Flask 3.0.0
- **任务队列:** Redis + RQ(异步分析作业)
- **数据库:** PostgreSQL 14+
- **ORM:** Flask-SQLAlchemy 3.1.1
- **迁移:** Flask-Migrate 4.0.5
- **认证:** Flask-JWT-Extended 4.6.0
- **密码哈希:** Flask-Bcrypt 1.0.1
- **文件类型检测:** python-magic 0.4.27
- **PE 分析:** pefile 2023.2.7, lief 0.13.2
- **反汇编:** capstone 5.0.0
- **YARA 匹配:** 自定义规则(通用、勒索软件、加壳器)
- **动态分析:** Triage 沙箱 API (triage_client)
- **URL 分析:** requests, socket, ssl, AbuseIPDB API, Google Safe Browsing API
- **AI 摘要:** Anthropic Claude Haiku via claude-sdk
- **PDF 生成:** report_generator 服务
- **API 架构:** RESTful, Flask Blueprints
### 前端
- **框架:** React 19 (TypeScript)
- **路由:** React Router DOM 7
- **HTTP 客户端:** Axios
- **图表:** Recharts
- **图标:** Lucide React
- **3D / Canvas:** OGL, Three.js (hero 背景特效)
- **样式:** 纯 CSS 与 CSS 自定义属性(浅色 + 深色主题)
- **字体:** Inter (Google Fonts)
### 基础设施
- Git + GitHub
- PostgreSQL (via psycopg2-binary)
- Redis(作业队列代理)
- Python venv + pip
- Node.js + npm
## 环境要求
| 软件 | 最低版本 |
|------------|-----------------|
| Python | 3.9+ |
| Node.js | 18.0+ |
| PostgreSQL | 14+ |
| Redis | 6.0+ |
| Git | 2.30+ |
## 安装说明
### 1. 克隆仓库
```
git clone https://github.com/LimaniTsa/SandBug.git
cd SandBug
```
### 2. 后端设置
```
cd backend
```
**创建并激活虚拟环境**
Windows:
```
python -m venv venv
venv\Scripts\activate
```
Mac/Linux:
```
python3 -m venv venv
source venv/bin/activate
```
**安装依赖**
```
pip install --upgrade pip
pip install -r requirements.txt
```
**配置环境变量**
在 `backend/` 目录下创建一个 `.env` 文件:
```
DATABASE_URL=postgresql://user:password@localhost/sandbug
JWT_SECRET_KEY=your-secret-key
ANTHROPIC_API_KEY=your-anthropic-key
ABUSEIPDB_API_KEY=your-abuseipdb-key
SAFE_BROWSING_API_KEY=your-google-safe-browsing-key
TRIAGE_API_KEY=your-triage-key
REDIS_URL=redis://localhost:6379
```
**运行数据库迁移**
```
flask db upgrade
```
**启动 Flask API**
```
python run.py
```
**启动 RQ worker**(文件分析任务所需)
```
python worker.py
```
### 3. 前端设置
```
cd frontend
npm install
npm start
```
应用将可在 `http://localhost:3000` 访问。
## 文件结构
```
SandBug/
├── backend/
│ ├── app/
│ │ ├── api/
│ │ │ ├── __init__.py
│ │ │ ├── analysis.py # File upload, URL check, report download endpoints
│ │ │ ├── auth.py # Register, login, JWT endpoints
│ │ │ └── info.py # Features list, health check
│ │ ├── config/
│ │ │ └── __init__.py # App config and environment loading
│ │ ├── models/
│ │ │ └── __init__.py # SQLAlchemy models (Analysis, User)
│ │ ├── services/
│ │ │ ├── __init__.py
│ │ │ ├── ai_summarizer.py # Claude Haiku summary generation
│ │ │ ├── dynamic_analyzer.py# Triage sandbox integration
│ │ │ ├── report_generator.py# PDF report builder
│ │ │ ├── static_analyzer.py # PE analysis, entropy, YARA matching
│ │ │ ├── triage_client.py # Triage API client
│ │ │ ├── url_analyzer.py # URL threat analysis engine
│ │ │ └── yara/
│ │ │ ├── __init__.py
│ │ │ ├── yara_engine.py
│ │ │ └── rules/
│ │ │ ├── generic.yar
│ │ │ ├── packers.yar
│ │ │ └── ransomware.yar
│ │ ├── tasks.py # RQ background task definitions
│ │ └── __init__.py # App factory
│ ├── run.py # Flask dev server entry point
│ ├── worker.py # RQ worker entry point
│ └── requirements.txt
│
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ │ ├── common/
│ │ │ │ ├── AnalysisOverview.tsx # Main results renderer (file + URL)
│ │ │ │ ├── AnalysisProgress.tsx # Polling progress indicator
│ │ │ │ ├── FeatureCard.tsx # Landing page feature cards
│ │ │ │ ├── Iridescence.tsx # Light mode hero background
│ │ │ │ └── LiquidEther.tsx # Dark mode hero background
│ │ │ └── layout/
│ │ │ ├── Header.tsx
│ │ │ └── Footer.tsx
│ │ ├── hooks/
│ │ │ └── useAnalysisPoller.ts # Polls analysis status until complete
│ │ ├── pages/
│ │ │ ├── Dashboard.tsx # File upload + URL check interface
│ │ │ ├── History.tsx # User analysis history
│ │ │ ├── Landing.tsx
│ │ │ ├── Login.tsx
│ │ │ ├── Register.tsx
│ │ │ └── Results.tsx # Analysis results page
│ │ ├── services/
│ │ │ └── api.ts
│ │ ├── styles/
│ │ │ └── globals.css
│ │ ├── types/
│ │ │ └── index.ts
│ │ ├── utils/
│ │ │ └── generateReport.ts # PDF download helper
│ │ ├── App.tsx
│ │ ├── index.tsx
│ │ └── index.css
│ └── package.json
│
├── README.md
└── .gitignore
```
标签:AI安全, Chat Copilot, Claude AI, DAST, DNS信息、DNS暴力破解, DNS 反向解析, Flask, IP信誉检测, IP 地址批量处理, PE文件分析, PostgreSQL, Python, Redis, SSL证书验证, URL威胁检测, Web安全平台, YARA规则, 云安全监控, 云资产清单, 勒索软件检测, 威胁情报, 安全报告生成, 开发者工具, 恶意软件分析, 搜索引擎查询, 无后门, 无线安全, 毕业设计, 沙箱, 测试用例, 网络信息收集, 网络安全审计, 网络行为分析, 自动化分析, 计算机病毒, 跨站脚本, 逆向工具, 逆向工程, 静态分析, 风险评分