falangalabs/simpleics-pot

GitHub: falangalabs/simpleics-pot

一个有状态的 Modbus TCP 工控蜜罐,通过确定性进程模拟为 ICS 欺骗研究提供真实可交互的诱饵环境。

Stars: 0 | Forks: 0

# SimpleICS Pot SimpleICS Pot 是一个小巧的、有状态的 Modbus TCP 蜜罐,专为防御性研究而设计。 它模拟了一个合成的湿井泵控制器,而不是仅仅暴露一个静态的 banner 或一个扁平的寄存器阵列。读取操作会返回不断变化的进程状态,有效的 写入操作会影响该进程,执行器的反馈具有延迟性,并且每一个被处理的 事务都会产生一个结构化的 JSON 事件。 ## 它的不同之处 - 确定性的进程模拟,包含液位、流量、泵电流和警报; - 连贯的 AUTO/MANUAL 控制、设定值、命令和反馈; - Modbus 读取 FC1-FC4 以及有界的写入 FC5、FC6、FC15 和 FC16; - 经过验证的寄存器范围以及对无效多次写入的原子拒绝; - 版本化 JSONL 遥测数据中包含的会话、事务和对端上下文; - 连接、待处理请求、缓冲区、空闲和不完整帧的限制; - 在单个寄存器映射文档中提供合成的、可配置的设备身份; - 非 root、只读、无 capability 的容器配置; - 没有凭证、出站集成、Web UI 或管理端点。 ## 快速开始 要求:带有 Compose 插件的 Docker Engine。 ``` docker compose up --build ``` 默认监听器仅在 `127.0.0.1:1502` 上可用。在另一个 终端中,运行包含的授权目标演示: ``` python3 -m venv .venv .venv/bin/pip install --require-hashes -r requirements.lock .venv/bin/pip install --require-hashes -r requirements-build.lock .venv/bin/python examples/modbus_demo.py ``` 停止并移除容器: ``` docker compose down ``` 在更改绑定地址之前,请参阅[部署](docs/DEPLOYMENT.md)。 ## 进程模型 包含的社区配置是一个虚构的紧凑型提升泵站控制器, 故意设计得与任何私有部署不同。它的 21 个 点涵盖了线圈、离散输入、保持寄存器和输入寄存器。 例如,授权客户端可以切换到 MANUAL,发出泵命令, 观察延迟的运行反馈,然后看到出水流量、电机电流和 水箱液位做出连贯的响应。 完整的地址表和缩放规则位于 [`config/register_map.v1.json`](config/register_map.v1.json) 中。该身份是 明确合成的,绝不能模仿真实的供应商或已部署的资产。 在暴露于 Internet 之前,请创建您自己的虚构身份和进程 配置;不要从真实设备中复制标识符或测量数据。 ## 事件输出与连接器 事件以每行一个紧凑的 JSON 对象的形式发出。Docker 默认会保留 有限的本地日志。操作员可以将任何本地日志收集器连接到 stdout 或 Docker 日志接口;蜜罐本身没有出站 发送方或目标凭证。 有关字段和经过脱敏处理的示例,请参阅[事件契约](docs/EVENTS.md)。 ## 本地开发 需要 Python 3.11 或更高版本。 ``` python3 -m venv .venv .venv/bin/pip install --require-hashes -r requirements-build.lock .venv/bin/pip install --require-hashes -r requirements.lock .venv/bin/pip install --no-build-isolation --no-deps -e . .venv/bin/python tools/validate_register_map.py .venv/bin/python -m unittest discover -s tests -p 'test_*.py' -v ``` 除非操作员明确确认了更广泛的绑定,否则 CLI 仅限回环使用: ``` .venv/bin/simpleics-pot ``` ## 项目范围 此版本有意仅包含 Modbus 诱饵、进程模型、 本地结构化遥测契约、测试和受限的容器 配置。它不执行归因、扫描客户端、丰富地址、 发布威胁情报或通过网络发送数据。 ## 贡献与安全 欢迎贡献。请先阅读 [CONTRIBUTING.md](CONTRIBUTING.md) 和 [SECURITY.md](SECURITY.md)。请勿提交真实的凭证、真实的 OT 数据、 数据包捕获或实时传感器部署的详细信息。 采用 [Apache License 2.0](LICENSE) 授权。依赖项归因说明位于 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) 中。
标签:BOF, Docker, ICS, NTLM Relay, PKINIT, Python, 安全防御评估, 工控安全, 无后门, 欺骗防御, 版权保护, 蜜罐, 证书利用, 请求拦截, 逆向工具, 防御绕过