esrovillar/finsec-ioc-monitor
GitHub: esrovillar/finsec-ioc-monitor
面向金融行业的轻量级威胁情报聚合与实时监控工具,自动关联IOC并推送告警。
Stars: 0 | Forks: 0
# 🏦 FinSec-IOC-Monitor
专注于金融领域的实时威胁指标监控工具。从多个源聚合威胁情报,将 IOC 与您的基础设施进行关联,并在检测到相关威胁时发出警报。
## 功能特性
- **多源聚合** — AlienVault OTX、AbuseIPDB、MISP、FS-ISAC 及自定义源
- **金融领域聚焦** — 优先处理针对银行、征信机构和金融基础设施的威胁
- **IOC 匹配** — 将实时源与您的监控列表进行比对(IP、域名、哈希、邮箱)
- **MITRE ATT&CK 映射** — 为 IOC 标记相关的 TTP
- **实时告警** — Telegram、Slack、邮件通知
- **仪表盘** — CLI 和 Web 端的 IOC 查看器,支持趋势分析
- **导出** — STIX/TAXII、CSV、JSON 格式,便于与 SIEM 集成
## 架构
```
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ IOC Feeds │────▶│ Aggregator │────▶│ IOC Store │
│ │ │ & Parser │ │ (SQLite) │
└─────────────┘ └──────────────┘ └──────┬──────┘
│
┌─────────────┐ ┌──────────────┐ │
│ Watchlist │────▶│ Matcher │◀───────────┘
│ (your IPs, │ │ Engine │
│ domains) │ └──────┬───────┘
└─────────────┘ │
┌──────▼───────┐ ┌─────────────┐
│ Enrichment │────▶│ Alerting │
│ (GeoIP, │ │ (Telegram, │
│ Whois, │ │ Slack, │
│ VirusTotal)│ │ Email) │
└──────────────┘ └─────────────┘
```
## 支持的源
| 源 | 类型 | 需要 API Key | 金融焦点 |
|------|------|-----------------|-----------------|
| AlienVault OTX | OSINT | 免费 | 通用 + 金融安全 Pulse |
| AbuseIPDB | IP 信誉 | 免费层级 | 通用 |
| MISP (公开实例) | OSINT | 视情况而定 | 可配置 |
| URLhaus | 恶意 URL | 免费 | 通用 |
| ThreatFox | IOC | 免费 | 通用 |
| Feodo Tracker | C2 IP | 免费 | 银行木马 ✅ |
| SSL Blacklist | SSL 证书 | 免费 | 通用 |
## 快速开始
```
# 克隆
git clone https://github.com/YOUR_USER/finsec-ioc-monitor.git
cd finsec-ioc-monitor
# 安装
pip install -r requirements.txt
# 配置
cp config/config.example.yaml config/config.yaml
# 使用您的 API 密钥和 watchlist 编辑 config.yaml
# 运行
python -m src.core.monitor --config config/config.yaml
# 一次性扫描
python -m src.core.monitor --scan-once
# 仪表板
python -m src.core.dashboard
```
## 配置
```
feeds:
otx:
enabled: true
api_key: "YOUR_OTX_API_KEY"
pulse_tags: ["banking", "financial", "ransomware", "apt"]
abuseipdb:
enabled: true
api_key: "YOUR_ABUSEIPDB_KEY"
min_confidence: 80
feodo:
enabled: true # No API key needed
urlhaus:
enabled: true # No API key needed
threatfox:
enabled: true # No API key needed
watchlist:
ips: ["203.0.113.0/24", "198.51.100.0/24"] # Your external IP ranges
domains: ["example-bank.com", "*.example-bank.com"]
alerting:
telegram:
enabled: true
bot_token: "YOUR_BOT_TOKEN"
chat_id: "YOUR_CHAT_ID"
schedule:
interval_minutes: 30 # How often to check feeds
```
## 项目结构
```
finsec-ioc-monitor/
├── src/
│ ├── core/
│ │ ├── monitor.py # Main orchestrator
│ │ ├── database.py # SQLite IOC store
│ │ ├── matcher.py # IOC matching engine
│ │ └── dashboard.py # CLI/web dashboard
│ ├── feeds/
│ │ ├── base.py # Abstract feed class
│ │ ├── otx.py # AlienVault OTX
│ │ ├── abuseipdb.py # AbuseIPDB
│ │ ├── feodo.py # Feodo Tracker (banking C2s)
│ │ ├── urlhaus.py # URLhaus
│ │ └── threatfox.py # ThreatFox
│ ├── enrichment/
│ │ ├── geoip.py # GeoIP lookup
│ │ ├── whois.py # Whois lookup
│ │ └── virustotal.py # VT enrichment
│ └── alerting/
│ ├── telegram.py # Telegram alerts
│ ├── slack.py # Slack alerts
│ └── email.py # Email alerts
├── config/
│ ├── config.example.yaml # Example configuration
│ └── mitre_mapping.yaml # ATT&CK TTP mappings
├── tests/
├── docs/
├── requirements.txt
├── setup.py
└── README.md
```
## 路线图
- [x] 项目结构
- [ ] 核心:IOC 数据库
- [ ] 核心:源聚合框架
- [ ] 源:Feodo Tracker(银行木马)
- [ ] 源:URLhaus
- [ ] 源:ThreatFox
- [ ] 源:AlienVault OTX
- [ ] 源:AbuseIPDB
- [ ] 核心:匹配引擎
- [ ] 富化:GeoIP
- [ ] 告警:Telegram
- [ ] 核心:CLI 仪表盘
- [ ] 导出:STIX 格式
- [ ] Web 仪表盘
## 环境要求
- Python 3.9+
- SQLite3
- API keys(可选,用于付费源)
## 作者
**Esteban Rojas Villar** — 高级网络安全事件响应专家
- LinkedIn: [linkedin.com/in/estebanrojas](https://linkedin.com/in/estebanrojas)
- BSides San José (Costa Rica) 创始人兼组织者
## 许可证
MIT
标签:AbuseIPDB, AMSI绕过, ESC4, GPT, HTTP/HTTPS抓包, IOC监控, IP 地址批量处理, OSINT, SecOps, SIEM集成, STIX/TAXII, 云安全架构, 信用社安全, 威胁情报, 威胁检测, 安全运营, 密码管理, 开发者工具, 态势感知, 扫描框架, 时间线生成, 漏洞管理, 网络安全, 逆向工具, 金融安全, 银行基础设施, 隐私保护, 黑名单匹配