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攻击, 后台守护进程, 威胁情报, 开发者工具, 数据同步, 无后门, 测试用例, 请求拦截, 逆向工具