astroicers/CyPulse
GitHub: astroicers/CyPulse
开源外部攻击面管理平台,整合五大资产探勘工具与七大安全分析模块,自动产出量化评分与中文报告。
Stars: 0 | Forks: 0
# CyPulse
开源 EASM(External Attack Surface Management)资安曝险评级平台。
以 100% 开源工具实现七维度资安扫描与评级,产出 0-100 量化分数与 A/B/C/D 等级,
输出简体中文 HTML / PDF / CSV 报告。
## 功能特色
**资产探勘(5 工具联动)**
- subfinder / amass — 子域名被动列举
- dnsx — DNS 解析验证
- httpx — HTTP 存活与 Header 探测
- naabu — 埠扫描
**七大安全分析模块**
| 模块 | 维度 | 权重 | 满分 |
|------|------|------|------|
| M1 | Web Security(安全 Header / TLS / Nuclei) | 25% | 25 |
| M2 | IP Reputation(AbuseIPDB) | 15% | 15 |
| M3 | Network Security(高风险埠 / Nmap) | 20% | 20 |
| M4 | DNS Security(DNSSEC / Zone Transfer) | 15% | 15 |
| M5 | Email Security(SPF / DKIM / DMARC) | 10% | 10 |
| M6 | Dark Web Exposure(HIBP) | 10% | 10 |
| M7 | Fake Domains(dnstwist) | 5% | 5 |
**其他**
- 加权评分算法(0-100 分,A/B/C/D 等级)
- 简体中文 HTML / PDF 报告
- JSON / CSV 原始数据导出
- 扫描差异比对与告警
- Slack / Email / LINE 通知
- Docker 容器化一键部署
## 安装
### Docker(推荐)
```
git clone https://github.com/your-org/cypulse.git
cd cypulse
cp .env.example .env # 填入 API Key
docker-compose build
docker-compose run --rm cypulse scan example.com
```
### 本机安装
```
# 前置需求:Python 3.10+、ProjectDiscovery 工具(subfinder/httpx/dnsx/naabu)、nmap
pip install -e .
cypulse --help
```
## 快速开始
```
cypulse scan example.com
```
输出示例:
```
[CyPulse] 開始掃描 example.com...
[CyPulse] Phase 1: 資產探勘...
[CyPulse] 子網域: 12, 存活: 10, HTTP: 8
[CyPulse] Phase 2: 風險分析...
[CyPulse] 完成 7 個模組分析
[CyPulse] Phase 3: 評分...
[CyPulse] 總分: 78/100 (C)
[CyPulse] Phase 4: 報告產出...
[CyPulse] HTML: data/example.com/20260312_020000/report.html
[CyPulse] PDF: data/example.com/20260312_020000/report.pdf
[CyPulse] CSV: 2 files
[SCAN COMPLETE] domain=example.com score=78 grade=C duration=1102s modules=7/7 findings=47
[CyPulse] 結果儲存於: data/example.com/20260312_020000
```
## CLI 指令
### `cypulse scan `
执行完整扫描(探勘 + 分析 + 评分 + 报告)。
```
cypulse scan example.com # 完整掃描
cypulse scan example.com --modules M1,M5 # 僅執行指定模組
cypulse scan example.com --output ./results # 指定輸出目錄
```
### `cypulse report `
以既有扫描结果重新产出报告。
```
cypulse report data/example.com/20260312_020000 # HTML(預設)
cypulse report data/example.com/20260312_020000 -f pdf # PDF
cypulse report data/example.com/20260312_020000 -f all # 全部格式
```
### `cypulse diff `
比较两次扫描结果差异。
```
cypulse diff data/example.com/20260301_020000 data/example.com/20260312_020000
```
## 设置
### API Key
复制 `.env.example` 为 `.env` 并填入:
```
ABUSEIPDB_API_KEY=your_key # M2 IP Reputation
HIBP_API_KEY=your_key # M6 Dark Web
URLSCAN_API_KEY=your_key # 選用
SLACK_WEBHOOK_URL=https://... # 選用,Slack 通知
```
或使用 `config/config.yaml`(参考 `config/config.yaml.example`)。
## 项目结构
```
cypulse/
├── cli.py # CLI 入口
├── discovery/ # 資產探勘(subfinder/amass/dnsx/httpx/naabu)
├── analysis/ # 七大安全分析模組(M1-M7)
├── scoring/ # 加權評分引擎
├── report/ # HTML/PDF/CSV 報告產出
│ └── templates/ # Jinja2 報告模板
├── automation/ # 差異比對、通知
│ ├── diff.py
│ └── notifier.py
├── models/ # 資料模型(dataclass)
└── utils/ # 通用工具
```
## 开发
```
pip install -e ".[dev]"
make test # 執行測試
make lint # 程式碼檢查
make coverage # 測試覆蓋率
```
## 许可证
MIT License
## 相关文档
- [SRS — 软件需求规格书](docs/SRS.md)
- [SDS — 软件设计规格书](docs/SDS.md)
- [DEPLOY_SPEC — 部署规格书](docs/DEPLOY_SPEC.md)
- [Architecture — 架构概览](docs/architecture.md)
- [ADR-001 — 技术栈选型](docs/adr/ADR-001-initial-technology-stack.md)
标签:CTI, DNS安全, Docker, EASM, GitHub, Google, Nmap, Nuclei, ProjectDiscovery, Python, Typosquatting, 中文报告, 外部攻击面管理, 威胁情报, 子域名挖掘, 安全评级, 安全防御评估, 实时处理, 密码管理, 开发者工具, 插件系统, 数字风险保护, 数据保护, 数据统计, 无后门, 暗网监控, 端口扫描, 网络安全, 自动化安全扫描, 虚拟驱动器, 请求拦截, 资产探勘, 运行时操纵, 逆向工具, 邮件安全, 隐私保护, 风险量化