紫队测试:在OT与IoT测试中应避免的事项,以防止工厂停产或钻井平台沉没
作者:Umair Ahmed
大家好,我是Umair Ahmed,目前担任HelloFresh的高级安全工程师。最近我在工业系统方面进行了相当多的紫队测试工作,想在这里分享我的经验。测试运营技术和物联网系统绝非易事,特别是在涉及工厂停产或钻井平台沉没等高风险场景时。我们每个开始测试OT/IoT系统旅程的人都对可能出现的意外情况感到紧张和谨慎。本文献给所有希望在这些情况下表现出色的同行们:
1. 准备、规划和范围界定
在开始之前,重点关注这些关键方面:网络服务、Web/API、CMS/应用、无线安全、社会工程、IaaS/PaaS/SaaS、物理安全和运营技术。将它们分解为可管理的类别有助于避免疏忽并改进规划。
关键步骤:
- 了解环境格局:全面了解现有的技术、流程和人员
- 提出问题:询问参与部署和维护的第三方公司、他们的角色、备份信息、灾难恢复计划、冗余配置等相关因素
- 研究和准备:为社会工程、命令与控制(C2)工具(C2 Matrix)、协作工具(如Vectr)、VPN(如果需要)以及不同用户行为的访问系统设置基础设施
2. 关键业务运营分析
从CIA三要素(机密性、完整性、可用性)中识别和分析关键因素。
考虑因素:
- 系统影响:了解系统离线对财务和运营的影响
- 冗余性:评估系统受影响时的成本(业务、人力、财务)
- 无线安全:评估其对IoT、OT和PLC通信的影响
- 标准操作程序(SOP):审查物理安全和现场安全的标准程序
- 环境特定的注意事项:确保合规性
- 测试设备:验证硬件测试的可用性和成本
3. 威胁建模
在了解业务、设施、硬件和SOP的基础上,基于已知信息建模威胁。通过与关键人员访谈、审查相关文档(如操作手册和事件报告)以及进行现场观察来有效收集这些知识。
关键步骤:
- APT研究:调查行业相关的APT及其TTPs(MITRE ATT&CK)
- 风险登记册:使用风险登记册验证可行性
- 威胁登记册:包括来自过去事件、威胁搜寻或预测的业务威胁
- 检测团队输入:利用检测和响应团队的见解验证威胁
- 业务洞察:纳入业务和供应链团队的输入
- 杀伤链场景:使用洛克希德·马丁的杀伤链等框架和Vectr等工具创建详细场景
最后,尽可能彻底地了解投放器、shell、命令、战术、流程和工具。这将为相关利益相关者提供可见性,如果某些内容被认为危险,将在下一步中被根除。
4. 利益相关者协调
协调利益相关者以有效降低风险。
关键行动:
- 定义目标:确保对目标、流程、时间表和行动有清晰理解
- 讨论风险:识别并减轻最坏情况
- 时机安排:在业务高峰时段之外安排测试
- 批准:获得所有利益相关者的同意
5. 执行
在执行过程中,仔细执行扫描、枚举和利用。例如,在进行漏洞扫描时,使用低强度模式以避免压垮网络。同样,在利用过程中,在受控环境中模拟入侵场景,以评估影响而不中断运营。这些预防措施确保测试有效且干扰最小。
最佳实践:
- 限制扫描强度:避免可用性问题
- 假设已被入侵:如果利用可能破坏系统,计划冗余
- API测试:从文档开始而不是直接扫描
- 访问控制检查:在网络和应用层进行测试
- 无线测试:从扩展范围测试以模拟入侵者场景
- 社会工程:专注于证据收集而不部署恶意负载
- 安全差距分析:审查人员、流程,并将结果编译到检查表中供将来参考
- 物理安全:检查锁具,记录敏感信息,并演示身份克隆技术(如Flipper Zero)
- OSINT和CTI:利用Shodan和Censys等工具获取设备足迹
- 监控证据:记录检测和监控结果
6. 清理
确保参与后恢复原状。
步骤:
- 硬件和软件:移除使用的任何工具
- 恢复更改:将配置恢复到原始状态
7. 报告
为技术和非技术受众创建全面的报告。包括关键部分,如执行摘要、方法论、带有证据的详细发现、影响分析和可操作的建议。使用图表等可视化工具使复杂数据更易于理解。
要点:
- 记录发现:提供证据和复现步骤
- 总结结果:为技术和非技术受众(包括业务领导层)提供摘要,包含明确的结果和行动项(后续步骤)
- 汇报:准备汇报演示文稿,并与所有利益相关者一起运行,以确定责任接受和相关团队将采取的后续步骤
- 简化流程:使所有流程易于团队遵循,并就明确的SLA和例外情况(如果有)达成一致
始终记住这是最重要的步骤,因为除非结果得到适当交付、理解并采取缓解措施,否则参与将毫无用处。
8. 漏洞管理(跟进)
此阶段测试您确保后续跟进的能力。
提示:
- 仪表板:使用上一步创建的仪表板来跟踪和监控行动项的进度
- 提醒:定期与团队跟进
在这个过程结束时,花点时间呼吸,享受生活,因为直到这个阶段你可能会很痛苦。
欢迎就此话题发表评论,我很想听听您的想法! 如果您想联系:LinkedIn:https://linkedin.com/in/umairahmedofficial X(Twitter):https://twitter.com/u_ahmedofficial
干杯!