dilsara-sandun/Automated-Threat-Intelligence-IP-Blacklisting-Bot
GitHub: dilsara-sandun/Automated-Threat-Intelligence-IP-Blacklisting-Bot
一款生产级威胁情报自动化守护进程,持续从 AbuseIPDB 获取恶意 IP 数据并批量同步至 PostgreSQL,具备容错回退和幂等写入能力。
Stars: 0 | Forks: 0
# 🛡️ 企业威胁情报机器人守护进程
一款生产级的网络安全自动化工具,设计旨在作为一个持续运行、自我修复的后台守护进程服务。该系统能够动态地从 **AbuseIPDB v2 API** 获取高可信度的恶意基础设施数据,并执行优化的跨平台数据库复制,将其同步至企业级的 **PostgreSQL cluster** 中。
## 🏗️ 架构概述与设计模式
本解决方案旨在演示核心的 **DevSecOps** 与 **SOAR (Security Orchestration, Automation, and Response)** 原则,重点关注高可用性、防御性编程以及跨平台网络通信。
+-----------------------------------+|
AbuseIPDB v2 API
|+-----------------+-----------------+||
HTTPS GET (JSON payload)v+
Linux WSL2 Environment ||
|| +--------------------+ Local Sync +----------------------+
|| | Threat Intel Bot +-------------------->+ Fallback Blocklists
| || | (Background Daemon)| | (.txt / .json) | ||
-----------------------------------------------------------+||
Encrypted Batch UPSERT (Port 5432) via Custom Firewall Rulev+
Windows Host Environment
+-----------------------------------------------------------------+
| PostgreSQL Database Cluster (threat_db)
|+----------------------------------------------------------------+
### 核心工程特性:
* **原生后台自动化守护进程:** 基于原生无限循环结构(`time.sleep()`)运行,消除了脆弱的操作系统层级 cron 依赖。该架构完全独立且是 **100% Docker-ready** 的。
* **跨边界网络工程:** 实现了 **Linux WSL2 container instance** 与原生 **Windows PostgreSQL 引擎** 之间安全的进程间通信,安全地绕过了 hypervisor 隔离。
* **防御性防火墙修复:** 包含作用域限定的 PowerShell 入站流量规则,允许在标准 Postgres pipeline(端口 `5432`)上进行定向路由,而不会削弱主机的边界防御。
* **高性能批量插入:** 通过 `psycopg2.extras.execute_values` 利用事务分块技术,在单一线程执行生命周期内即可摄取数千条威胁记录。
* **幂等存储策略 (UPSERT):** 利用显式的关系约束(`ON CONFLICT (ip_address) DO UPDATE`)来保证数据完整性,在防止数据重复的同时,能够刷新活跃指标和目标置信度矩阵。
* **容错回退系统:** 内置的弹性循环可优雅地捕获数据库连接失败(`Connection Refused`),并在本地生成结构化的辅助 `.txt`(Firewall ready)和 `.json`(SIEM ready)数据块,确保不会丢失任何威胁情报源。
## 🛠️ 关系型数据库 Schema
数据库表采用了显式定义,针对活跃网络映射期间的快速索引和高频搜索查找进行了优化:
```
CREATE TABLE IF NOT EXISTS malicious_ips (
id SERIAL PRIMARY KEY,
ip_address VARCHAR(45) NOT EXISTS UNIQUE,
confidence_score INT NOT NULL,
country_code VARCHAR(10),
abuse_score INT,
fetched_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX IF NOT EXISTS idx_ip_address ON malicious_ips(ip_address);
```
## 🚀 部署说明
### 1. 前置条件与依赖
请确保您的虚拟环境已激活,并安装编译好的二进制文件:
```
source myenv/bin/activate
pip install requests psycopg2-binary
```
### 2. 环境变量配置
为了符合安全加固基准(**OWASP Top 10**),该架构严格禁止硬编码的密钥。请在运行时之前动态注入变量:
```
export ABUSEIPDB_API_KEY="your_secret_abuseipdb_api_key"
export DB_HOST="your_wsl_gateway_ip" # Run: ip route | grep default | awk '{print $3}'
export DB_NAME="threat_db"
export DB_USER="postgres"
export DB_PASSWORD="your_secure_db_password"
export DB_PORT="5432"
```
### 3. 执行
将编排机器人启动至执行追踪模式:
```
python script.py
```
## 📊 系统诊断与日志记录
所有事务均根据全局日志记录 schema 进行了验证。高保真日志结构使用标准的 **ISO-8601 UTC** 表示法,将实时执行流程动态追加到 `threat_intel.log` 中:
```
2026-06-22T23:11:24Z | INFO | threat_intel_bot | Threat Intelligence Bot started.
2026-06-22T23:11:24Z | INFO | threat_intel_bot | Database configuration loaded securely from environment.
2026-06-22T23:11:25Z | INFO | threat_intel_bot | Successfully connected to PostgreSQL database.
2026-06-22T23:11:26Z | INFO | threat_intel_bot | Successfully upserted 1000 malicious IP records.
2026-06-22T23:11:26Z | INFO | threat_intel_bot | PostgreSQL connection closed gracefully.
```
标签:AI合规, Python, XXE攻击, 后台守护进程, 威胁情报, 开发者工具, 数据同步, 无后门, 测试用例, 请求拦截, 逆向工具