jennafrank/healthcare-enterprise-honeynet

GitHub: jennafrank/healthcare-enterprise-honeynet

一个模拟医疗企业网络的双节点蜜罐靶场,用于威胁狩猎训练、SOC 培训和攻击者行为研究,提供实时仪表板和自动威胁情报富化。

Stars: 0 | Forks: 0

# 🍯 Log(n) Pacific Cyber Range **一个用于威胁狩猎、SOC 培训和攻击者行为研究的生产级双节点蜜罐部署。** 由 [Jenna Frank](https://github.com/jennafrank) 使用 [Claude Code](https://claude.ai/code) 构建和维护。 [![许可证: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) ![Python](https://img.shields.io/badge/python-3.12-blue) ![Docker](https://img.shields.io/badge/docker-compose-blue) ![平台](https://img.shields.io/badge/platform-Azure-0078d4) ## 这是什么? Log(n) Pacific Cyber Range 是一个真实的多服务蜜罐环境,模拟了医疗网络中的两个组织: | 节点 | 身份 | 服务 | |------|----------|----------| | **Meridian HR** | 一家虚构的 HR 软件公司 | SSH, Redis, MongoDB, MySQL, Kerberos, LDAP, SMB | | **Cascade Medical EMR** | 一个虚构的医院 EMR 系统 | RDP, MSSQL, VNC, Telnet, SSH, HL7, SMTP | 每个接触这两个系统的攻击者都会被记录下来,通过威胁情报进行富化,进行复杂度评分,并显示在实时的 SOC 仪表板中。这两个节点相互连接,旨在吸引——并检测——它们之间的横向移动。 ## 架构 ``` ┌─────────────────────────────────────────────────────────────────────┐ │ Log(n) Pacific Cyber Range │ │ Azure East US 2 │ ├──────────────────────────────┬──────────────────────────────────────┤ │ Meridian HR Node │ Cascade Medical Node │ │ 20.242.13.15 │ 20.246.106.71 │ │ │ │ │ SSH :22 │ RDP :3389 │ │ Redis :6379 │ MSSQL :1433 │ │ MongoDB :27017 │ VNC :5900 │ │ MySQL :3306 │ Telnet :23 │ │ Kerberos:88 │ SSH :22 │ │ LDAP :389/636 │ HL7 :2575 │ │ SMB :445 │ SMTP :25 │ │ │ │ │ Dashboard :8080 │ Dashboard :8080 │ │ Unified :9090 ──────────┼──► (pulls from both) │ └──────────────────────────────┴──────────────────────────────────────┘ │ SQLite per node events.jsonl per node Full threat enrichment MITRE ATT&CK mapping ``` ## 实时仪表板 | 仪表板 | URL | 描述 | |-----------|-----|-------------| | Meridian HR | `http://20.242.13.15:8080` | 单节点 Meridian 仪表板 | | Cascade Medical | `http://20.246.106.71:8080` | 单节点 Cascade 仪表板 | | **统一 SOC** | `http://20.242.13.15:9090` | **双蜜罐的综合视图** | 统一仪表板包含一个 **Threat Hunt** 面板——支持通过 IP、用户名、命令或服务在两个蜜罐中进行搜索,并提供实时结果。 ## 快速开始 ### 前置条件 - Docker + Docker Compose - Python 3.12+ - 一台端口可访问的 Azure VM(或任何 Linux 主机) ### 部署 Meridian HR ``` git clone https://github.com/jennafrank/log-n-pacific-cyber-range.git cd log-n-pacific-cyber-range/honeypots/meridian-hr cp .env.example .env # 使用您的 API keys 编辑 .env docker compose up -d ``` 仪表板地址 `http://YOUR_IP:8080` ### 部署 Cascade Medical ``` cd log-n-pacific-cyber-range/honeypots/cascade-medical cp .env.example .env docker compose up -d ``` 仪表板地址 `http://YOUR_IP:8080` ### 部署统一仪表板 统一仪表板作为第二个 Flask 应用运行在 Meridian 节点的 9090 端口上。它包含在 `unified_app.py` 中,并由 `main.py` 自动启动。更新 `dashboard/templates/unified.html` 中的 `CAS_BASE`,使其指向您的 Cascade 节点 IP。 ## 涵盖的服务 ### Meridian HR(企业 HR 系统) | 服务 | 端口 | 攻击者的行为 | |---------|------|-------------------| | SSH | 22 | 暴力破解、shell 访问、命令执行 | | Redis | 6379 | KEYS 枚举、配置篡改、复制劫持 | | MongoDB | 27017 | 集合转储、用户枚举、数据库删除尝试 | | MySQL | 3306 | SELECT * 转储、凭据暴力破解 | | Kerberos | 88 | AS-REP roasting、TGS-REQ (Kerberoasting) | | LDAP | 389/636 | 目录枚举、用户/组列表 | | SMB | 445 | 共享枚举、哈希传递攻击尝试 | ### Cascade Medical EMR(医院系统) | 服务 | 端口 | 攻击者的行为 | |---------|------|-------------------| | RDP | 3389 | 凭据喷洒、会话劫持 | | MSSQL | 1433 | xp_cmdshell、SA 暴力破解、数据转储 | | VNC | 5900 | 密码喷洒、屏幕捕获尝试 | | Telnet | 23 | 默认凭据填充 | | SSH | 22 | 暴力破解、横向移动跳板 | | HL7 | 2575 | 患者记录枚举、ADT 消息探测 | | SMTP | 25 | 开放中继测试、地址枚举 | ## 合成文档生态系统 两个蜜罐节点都包含一个 **包含 3,181 个文件的合成文档库**(`northstar-documents/`),代表了一家虚构的医疗保健组织——NorthStar Regional Health Network。文件时间跨度为 2016–2026 年,内容包括: - **HR 记录**:员工合同、W-2 表格、绩效评估、组织架构图 - **患者档案**:入院表、出院摘要、实验室结果、处方 - **IT 文档**:网络拓扑图、操作手册、事件报告、变更日志 - **高管内容**:董事会会议记录、战略计划、并购文档、预算 - **个人杂项**:桌面截图、浏览器书签、电子邮件草稿、日记条目 - **账单与保险**:索赔、EOB(福利说明)、保险信函 - **合规**:HIPAA 评估、审计报告、BAA 协议 所有 PII 均为**完全合成**——SSN 使用 9XX 前缀(无效),电话号码使用 555 区号,不代表任何真实个人。 该数据集使蜜罐足够逼真,能够吸引并保持攻击者的注意力,同时为威胁狩猎培训提供丰富的数据。 ## 威胁情报栈 每个会话都会自动进行以下富化: - **IP 地理位置**(国家、城市、ISP、ASN) - **AbuseIPDB 评分**(滥用可信度 0-100) - **VPN/数据中心检测** - **MITRE ATT&CK 技术映射**(T1059, T1082, T1547 等) - **复杂度评分**(1-10 分制) - **高关注度标记**(横向移动、持久化尝试、提权) ## 威胁狩猎 `threat-hunting/` 目录包含: | 文件 | 描述 | |------|-------------| | [`threat_hunting_queries.kql`](threat-hunting/threat_hunting_queries.kql) | 30 多个 KQL 查询(可适配 SQL/DuckDB),涵盖侦察、暴力破解、横向移动、MITRE TTP、异常检测 | | [`threat_hunting_guide_for_newbies.md`](threat-hunting/threat_hunting_guide_for_newbies.md) | 新手指南:寻找目标、如何解读攻击链、包含 MITRE 映射的完整实例分析 | | [`sophistication_rating_framework.md`](threat-hunting/sophistication_rating_framework.md) | 1-10 攻击者评分标准、漏洞严重性评级、4 个已评分的真实案例 | ### 实时狩猎 使用统一仪表板(`http://20.242.13.15:9090`)中的 **Threat Hunt 面板**: - 通过 IP、用户名、命令关键字或服务进行搜索 - 结果涵盖 Sessions、Commands 和 Credentials 选项卡 - 同时查询两个蜜罐 ### API 搜索 ``` # 查找所有 wget/curl 命令 curl "http://20.242.13.15:8080/api/search?command=wget" # 查找来自特定 IP 的所有尝试 curl "http://20.242.13.15:8080/api/search?ip=118.194" # 查找所有 username 为 'admin' 的 SSH 尝试 curl "http://20.242.13.15:8080/api/search?username=admin&service=ssh" ``` ## 仓库结构 ``` log-n-pacific-cyber-range/ ├── README.md ├── ARCHITECTURE.md ├── LICENSE ├── .gitignore │ ├── honeypots/ │ ├── meridian-hr/ # Meridian HR honeypot │ │ ├── honeypot/ # Core service emulators │ │ │ ├── server.py # Main listener orchestrator │ │ │ ├── db.py # SQLite data layer + search │ │ │ ├── shell.py # Fake SSH shell │ │ │ ├── logger.py # JSONL event logger │ │ │ ├── session.py # Session management │ │ │ ├── enrichment.py # IP enrichment (geo, abuse) │ │ │ ├── mitre.py # MITRE ATT&CK mapping │ │ │ ├── nosql_servers.py # Redis + MongoDB emulators │ │ │ ├── ad/ # Kerberos/LDAP/AD emulation │ │ │ └── ... │ │ ├── dashboard/ │ │ │ ├── app.py # Flask API + /api/search │ │ │ └── templates/ │ │ │ ├── index.html # Meridian SOC dashboard │ │ │ └── unified.html # Unified SOC dashboard (port 9090) │ │ ├── main.py # Entry point (starts all services) │ │ ├── unified_app.py # Unified dashboard Flask app │ │ ├── lateral_detector.py # Cross-honeypot pivot detection │ │ ├── docker-compose.yml │ │ ├── Dockerfile │ │ ├── requirements.txt │ │ └── .env.example │ │ │ └── cascade-medical/ # Cascade Medical EMR honeypot │ ├── honeypot/ # RDP, MSSQL, VNC, HL7, SMTP emulators │ ├── dashboard/ │ │ ├── app.py # Flask API + /api/search │ │ └── templates/ │ │ └── index.html # Cascade SOC dashboard │ ├── main.py │ ├── docker-compose.yml │ ├── Dockerfile │ ├── requirements.txt │ └── .env.example │ ├── threat-hunting/ │ ├── threat_hunting_queries.kql # 30+ hunt queries │ ├── threat_hunting_guide_for_newbies.md # Beginner's guide │ └── sophistication_rating_framework.md # Attacker scoring │ ├── azure/ │ ├── VM_setup.md # VM sizing and configuration │ └── NSG_rules.md # Required firewall rules │ └── docs/ ├── DEPLOYMENT.md # Step-by-step deploy guide ├── TROUBLESHOOTING.md # Common issues and fixes ├── FAQ.md # Frequently asked questions └── gen_northstar.py # Synthetic document generator (3,181 files) ``` ## Azure 部署 完整说明请参阅 [`azure/VM_setup.md`](azure/VM_setup.md)。快速参考: **每个节点的推荐 VM 规格:** - 规格:`Standard_B2s`(2 vCPU,4GB RAM) - 操作系统:Ubuntu 22.04 LTS - 磁盘:30GB Standard SSD - 区域:East US 2 **必需的 NSG 入站规则:** ``` Port 22 → SSH (management) Port 8080 → Dashboard Port 9090 → Unified dashboard (Meridian only) Port 2223 → Alternate SSH (optional management port) ``` 加上您想向互联网公开的任何蜜罐端口。 ## 使用 Claude Code 构建 整个项目——包括两个蜜罐、所有仪表板、威胁狩猎框架以及合成文档生态系统——都是使用 [Claude Code](https://claude.ai/code)(Anthropic 的 AI 驱动 CLI)构建的。 Claude Code 协助构建的关键内容: - 从零开始编写的所有 Python 蜜罐服务模拟器 - 具有实时 SSE 更新的 Flask SOC 仪表板 - 具有实时搜索功能的统一跨蜜罐仪表板 - MITRE ATT&CK 检测和复杂度评分 - 3,181 份合成医疗文档 - 整个代码仓库和文档 ## 合理使用 本软件用于**防御性安全研究、SOC 培训,以及在您拥有或获得明确监控权限的系统上部署蜜罐**。请勿对您不拥有的系统进行部署。捕获的所有攻击者数据仅供研究之用。 ## 许可证 MIT — 详见 [LICENSE](LICENSE)。
标签:Azure, Docker, PE 加载器, Python, XXE攻击, 安全, 安全运营, 安全防御评估, 扫描框架, 无后门, 模拟器, 版权保护, 网络靶场, 蜜罐, 证书利用, 请求拦截, 超时处理, 逆向工具