diff --git a/data.json b/data.json index 0b169d2f..73523437 100644 --- a/data.json +++ b/data.json @@ -19798,5 +19798,6 @@ "https://mp.weixin.qq.com/s/WHdtbiBdWmUYW5SiloIh1Q": "Windows Defender 0Day漏洞PoC曝光;Anthropic拒美军AI武器化遭封杀 | FreeBuf周报", "https://mp.weixin.qq.com/s/DQX6I-a5-DvEQIOaDdRLFA": "【工业控制系统网络安全系列课程】第2课-工业控制系统的网络安全风险-过程控制漏洞利用(三)漏洞利用技术详解", "https://mp.weixin.qq.com/s/GfMl2I7h0Rgou8U1V2rzXw": "AI路由漏洞可被利用注入恶意代码并窃取敏感数据", - "https://mp.weixin.qq.com/s/pgtf9R-smm085Jsi3BwbZA": "Storm-1175 高频勒索攻击全链路:从 N-day 漏洞到 Medusa 部署最快仅 24 小时" + "https://mp.weixin.qq.com/s/pgtf9R-smm085Jsi3BwbZA": "Storm-1175 高频勒索攻击全链路:从 N-day 漏洞到 Medusa 部署最快仅 24 小时", + "https://mp.weixin.qq.com/s/lV3b77o9XjT7PPADKpWy7A": "【工业控制系统网络安全系列课程】第2课-工业控制系统的网络安全风险-过程控制漏洞利用(四)真实案例分析" } \ No newline at end of file diff --git a/doc/2026-04/【工业控制系统网络安全系列课程】第2课-工业控制系统的网络安全风险-过程控制漏洞利用(四)真实案例分析.md b/doc/2026-04/【工业控制系统网络安全系列课程】第2课-工业控制系统的网络安全风险-过程控制漏洞利用(四)真实案例分析.md new file mode 100644 index 00000000..557ffcd9 --- /dev/null +++ b/doc/2026-04/【工业控制系统网络安全系列课程】第2课-工业控制系统的网络安全风险-过程控制漏洞利用(四)真实案例分析.md @@ -0,0 +1,465 @@ +# 【工业控制系统网络安全系列课程】第2课-工业控制系统的网络安全风险-过程控制漏洞利用(四)真实案例分析 +原创 老付话安全 + 老付话安全 老付话安全 2026-04-12 12:20 + + + +**点击蓝字** + +**关注我们** + +关注我,带给你不一样的精彩 + +世界因你的沉淀而出彩 + +**始于理论,源于实践,终于实战** + +**老付话安全,每天一点点** + +**激情永无限,进步看得见** + + + + +**严正声明** + + + +本号所写文章方法和工具只用于学习和交流,严禁使用文章所述内容中的方法未经许可的情况下对生产系统进行方法验证实施,发生一切问题由相关个人承担法律责任,其与本号无关。 + +特此声明!!! + +本文字数: + +6159字 + +阅读时间: + +16分钟 + + + + + + + + +本课重点讲解ICS环境中过程控制层的漏洞类型、利用方式及实际影响 +### 目标 +- 理解ICS过程控制层常见漏洞原理 + +- 掌握漏洞利用的基本路径与方法 + +- 能够识别漏洞可能引发的物理过程影响 + +- 了解典型攻击案例与防御思路 + +### +#### 2.8 历史事件分析 +- **Stuxnet** +:离心机控制逻辑篡改 + +- **Havex** +:ICS后门植入与数据收集 + +- **Industroyer/CrashOverride** +:电网断路器攻击 + +- **Triton/Trisis** +:安全仪表系统(SIS)攻击 + +工控系统安全领域发生过多次具有里程碑意义的攻击事件,这些事件不仅揭示了工业基础设施面临的真实威胁,也推动了工控安全技术的发展。以下对四个最著名的工控攻击事件进行详细分析。 +#### 1. Stuxnet(震网病毒)——离心机控制逻辑篡改 + +**时间** +:首次发现于2010年,实际攻击可能始于2005年 +**目标** +:伊朗纳坦兹核设施的铀浓缩离心机 +**攻击者** +:据信为美国与以色列联合开发(“奥林匹克游戏”行动) + +**背景** +: + +纳坦兹核设施拥有数千台IR-1型离心机,用于将六氟化铀气体分离为浓缩铀。离心机由西门子S7-300系列PLC控制,通过调节转速来维持稳定运行。设施采用了物理隔离(气隙),即不直接连接互联网。 + +**攻击过程与技术细节** +: +1. **初始入侵** +:通过U盘摆渡攻击。攻击者将感染了Stuxnet的U盘遗弃在工厂停车场或内部,被员工捡起并插入内部计算机。Stuxnet利用Windows的多个零日漏洞(如LNK漏洞、打印机后台程序漏洞)自动执行,无需用户点击。 + +1. **传播与横向移动** +:Stuxnet在内网中通过多种方式传播(网络共享、RPC漏洞、WinCC数据库),最终找到安装了西门子Step 7工程软件的工程师站。 + +1. **PLC攻击** +:Stuxnet的核心目标是修改S7-300 PLC的控制逻辑。它实现了以下技术: + +1. **动态链接库劫持** +:替换了Step 7软件中用于与PLC通信的DLL文件(s7otbxdx.dll)。当工程师使用Step 7连接PLC时,恶意DLL会拦截并修改发送给PLC的代码块。 + +1. **修改功能块** +:Stuxnet向PLC下载了两个恶意功能块(FB):一个用于控制离心机转速,另一个用于记录正常转速并回传给HMI(欺骗操作员)。正常离心机转速应为1064 Hz,而恶意逻辑使转速在1410 Hz(共振区)和840 Hz(低效区)之间来回振荡,加速离心机损坏。 + +1. **拦截报警** +:Stuxnet修改了PLC中用于处理报警的代码,阻止向HMI发送超速报警,使操作员完全 unaware。 + +1. **物理破坏** +:在长达数年的时间里,约1000台离心机被物理损坏,严重迟滞了伊朗的核计划。 + +**影响与启示** +: +- 首次证明了针对工控系统的网络攻击可以造成物理破坏。 + +- 揭示了PLC逻辑篡改的巨大威胁,以及通过欺骗HMI掩盖异常的攻击手法。 + +- 强调了供应链安全(U盘)和物理隔离并非绝对安全。 + +- 推动了工控安全行业的发展,催生了PLC完整性校验、网络行为分析等防御技术。 + +#### 2. Havex——ICS后门植入与数据收集 + +**时间** +:2013-2014年活跃 +**目标** +:能源、航空航天、国防等多个行业的工控系统 +**攻击者** +:据信为俄罗斯背景的APT组织“Energetic Bear” + +**背景** +: + +Havex是一种针对工业控制系统的远程访问木马(RAT),主要通过供应链攻击进行传播,目的是窃取工业系统的情报信息,为后续攻击做准备。 + +**攻击过程与技术细节** +: +1. **供应链感染** +:攻击者攻陷了多家工业设备厂商(如西门子、施耐德、罗克韦尔)的官方网站或下载服务器,在合法软件安装包(如PLC编程软件、HMI软件)中植入了Havex恶意代码。当用户下载并安装这些软件时,系统即被感染。这是首次大规模针对工控的供应链攻击。 + +1. **水坑攻击与钓鱼邮件** +:除了供应链,Havex也通过水坑网站(攻击者认为目标员工常访问的工控论坛)和带有恶意附件的钓鱼邮件传播。 + +1. **信息收集** +:一旦感染,Havex会收集系统信息、网络配置、文件列表,并上传至C2服务器。它最独特的功能是**OPC扫描模块** +: + +1. 通过枚举本地网络,发现OPC服务器。 + +1. 连接OPC服务器,使用OPC DA协议枚举所有可用的标签(Tags),包括标签名、数据类型、读写权限、工程单位等。 + +1. 将这些标签信息上传,使攻击者能够远程了解工艺流程、关键参数和设备型号,为后续攻击(如Industroyer)提供了精确的地图。 + +1. **后门功能** +:除了信息收集,Havex还具备文件上传下载、执行命令、更新自身等功能,可随时根据C2指令发起进一步破坏。 + +**影响与启示** +: +- 展示了供应链攻击在工控领域的威力,软件下载站、厂商官网成为风险点。 + +- 强调了OPC服务器的暴露风险,即使内网不直接暴露,恶意软件也可从内部扫描。 + +- 防御方面,应加强软件来源验证(数字签名),实施应用白名单,监控对OPC标签的批量访问。 + +#### 3. Industroyer / CrashOverride——电网断路器攻击 + +**时间** +:2016年12月17日 +**目标** +:乌克兰基辅北部变电站 +**攻击者** +:据信为俄罗斯背景的APT组织“Sandworm” + +**背景** +: + +这是继2015年乌克兰电网攻击后第二次针对电力系统的攻击,但技术更加先进。攻击者使用了专门设计的恶意软件Industroyer(也称CrashOverride),旨在直接操纵变电站的断路器,造成停电。 + +**攻击过程与技术细节** +: +1. **初始入侵** +:据分析,攻击者可能通过钓鱼邮件或VPN漏洞进入电力公司内部网络,获得了对操作员站的控制。 + +1. **恶意软件部署** +:在目标网络中部署Industroyer恶意软件,它由多个模块组成: + +1. **主控模块** +:负责协调攻击。 + +1. **通信模块** +:支持多种工控协议,包括IEC 60870-5-104、IEC 61850(MMS)、OPC DA等,可针对不同设备下发指令。 + +1. **后门模块** +:提供远程Shell、文件传输功能。 + +1. **擦除器模块** +:攻击完成后清除痕迹并造成系统瘫痪。 + +1. **攻击实施** +: + +1. 恶意软件首先扫描网络,发现支持IEC 104的RTU和IED。 + +1. 攻击者远程下达指令,Industroyer开始向变电站RTU发送恶意IEC 104控制报文,**反复断开和闭合断路器** +,造成变电站跳闸停电。 + +1. 同时,攻击者利用OPC DA模块篡改HMI显示,使操作员无法看到真实状态。 + +1. 攻击持续了约1小时,导致基辅北部部分区域停电。 + +1. **拒绝服务与擦除** +:攻击结束后,Industroyer启动了擦除器模块,覆盖系统文件,使操作员站无法重启,延长了恢复时间。 + +**技术亮点** +: +- 首次使用恶意软件直接支持IEC 61850(现代智能变电站的标准),显示了攻击者对电力系统协议的深刻理解。 + +- 模块化设计,可灵活适配不同电力环境。 + +- 结合了物理破坏(断路器控制)与系统瘫痪(擦除器),最大化攻击效果。 + +**影响与启示** +: +- 证明了针对电力系统的自动化攻击工具已经成熟。 + +- 强调了变电站自动化系统(特别是IEC 61850)的安全风险,这些系统原本设计为可信网络。 + +- 防御方面,应加强网络分段,对IEC 104/61850流量进行深度检测,部署专用工控防火墙,并对关键控制指令实施双因子认证。 + +#### 4. Triton / Trisis——安全仪表系统(SIS)攻击 + +**时间** +:2017年首次发现 +**目标** +:中东某石油化工设施 +**攻击者** +:据信为俄罗斯背景的APT组织“Xenotime” + +**背景** +: + +Triton(也称Trisis)是迄今为止最危险的工控恶意软件之一,因为它直接攻击**安全仪表系统(SIS)** +。SIS是独立于基本过程控制系统的安全层,当过程参数超出安全阈值时,SIS会自动触发紧急停车,防止爆炸、泄漏等灾难。攻击SIS意味着攻击者可以禁用最后一道物理安全防线。 + +**攻击过程与技术细节** +: +1. **初始入侵** +:攻击者通过钓鱼邮件或VPN漏洞进入石油化工设施的办公网,然后横向移动到过程控制网络。 + +1. **发现SIS** +:攻击者在网络中扫描,发现了施耐德电气的Triconex安全控制器(一种常用的SIS)。 + +1. **恶意固件植入** +:Triton的核心攻击是向Triconex控制器下载恶意固件。它利用Triconex的工程软件(TriStation)的漏洞,绕过了认证,将恶意代码注入到控制器的内存中。 + +1. 恶意代码修改了SIS的逻辑,使控制器在检测到危险条件时**不执行紧急停车** +,而是向攻击者发送一个“成功绕过”的确认信号。 + +1. 攻击者还篡改了HMI的显示,使操作员看到SIS正常工作。 + +1. **触发测试** +:攻击者本意可能是保持潜伏,等待真实事故发生时造成严重后果。但他们在测试过程中触发了SIS的故障,导致工厂自动停车(安全仪表系统检测到自身故障而触发安全动作)。这一意外事件暴露了攻击的存在。 + +1. **后果** +:幸运的是,工厂只是停车,未发生爆炸。但若攻击未被发现,下一次真实危险来临时SIS将不会动作,后果不堪设想。 + +**技术细节** +: +- Triton恶意软件包含三个组件:注入器、植入器和通信模块。 + +- 它通过TriStation协议与Triconex通信,利用内存覆盖技术修改控制器的运行逻辑。 + +- 攻击者需要深入了解Triconex的专有指令集和内存布局,表明其具有极高的逆向工程能力。 + +**影响与启示** +: +- 首次证明SIS可被网络攻击,突破了工控安全的最后一道防线。 + +- 强调了**功能安全与信息安全的交织** +:信息安全问题可直接导致功能安全失效。 + +- 防御方面,应严格隔离SIS网络,实施纵深防御,对SIS的工程访问进行强认证和审计,并定期验证SIS逻辑的完整性。 + +- 对SIS的监控同样重要,任何异常(如非预期的固件下载)应立即告警。 + +#### 2.9 实验室环境演示案例 +- 通过Metasploit攻击模拟PLC + +- 使用PLC-Blaster修改设备逻辑 + +- 模拟传感器数据欺骗 + +为了加深对工控攻击的理解,可以在实验室环境中模拟部分攻击过程。以下提供三个典型的实验室演示案例。 +#### 1. 通过Metasploit攻击模拟PLC + +**目标** +:演示如何使用Metasploit框架对Modbus/TCP PLC进行攻击,实现读取和写入寄存器。 + +**环境准备** +: +- 一台运行Kali Linux的攻击机(安装Metasploit)。 + +- 一台模拟PLC的设备(如Raspberry Pi运行Modbus从站模拟器,或使用西门子/施耐德的真实PLC)。 + +- 网络连接确保攻击机与PLC可达。 + +**演示步骤** +: + +**扫描发现PLC** +: + +``` +nmap -p 502 --open 192.168.1.0/24 +``` + +使用Nmap扫描局域网内的Modbus端口(502)。 + +加载Metasploit模块: +``` +use auxiliary/scanner/scada/modbus_findunitid +set RHOSTS 192.168.1.100 run + +启动msfconsole。 +使用Modbus辅助模块扫描PLC信息。 +``` + +**读取寄存器** +: +``` +use auxiliary/scanner/scada/modbusclient +set RHOST 192.168.1.100 +set ACTION READ_HOLDING_REGISTERS +set NUMBER 10 +set DATA_ADDRESS 0 +run +``` + +观察返回的寄存器值。使用modbusclient模块读取保持寄存器。 + +**写入寄存器** +: +``` +set ACTION WRITE_REGISTERset DATA_ADDRESS 0set DATA 1234 +run +``` + +再次读取确认值已更改。 +1. 修改ACTION为WRITE_REGISTER,设置要写入的地址和值。 + +停止CPU(如果PLC支持) +: +``` +use auxiliary/admin/scada/siemens_cpu_stop +set RHOST 192.168.1.101run +``` + +(注意:此操作可能导致真实PLC停机,实验室中仅对模拟器使用) + +对于某些PLC(如西门子),可使用特定模块。 + +**预期结果** +:参与者能够直观看到攻击者无需认证即可读写PLC数据,理解Modbus协议的安全缺陷。 + +**防御演示** +:可同时演示部署工业防火墙后,此类攻击被检测并阻断的效果。 +#### 2. 使用PLC-Blaster修改设备逻辑 + +**目标** +:演示如何向PLC植入恶意固件/逻辑,实现持久化控制。 + +**环境准备** +: +- 一个支持固件修改的PLC模拟环境或真实PLC(如西门子S7-1200,需谨慎)。 + +- 运行PLC-Blaster工具(开源项目)的攻击机。 + +- 注意:PLC-Blaster可能对设备造成不可逆损害,建议使用虚拟化环境(如西门子PLCSIM)或专门的模拟器。 + +**演示步骤** +: +1. **搭建环境** +:在虚拟机上运行西门子S7-1200模拟器(如使用SIMATIC S7-PLCSIM)或配置开源模拟器(如Snap7)。 + +1. **正常功能** +:演示PLC正常运行,例如控制一盏LED灯闪烁。 + +1. **植入恶意固件** +: + +1. 使用PLC-Blaster工具连接到PLC(需要知道IP和通信参数)。 + +1. 执行固件植入命令,PLC-Blaster会向PLC下载修改后的固件,该固件包含后门功能(如监听特定端口、响应特定指令)。 + +1. 工具会显示植入成功。 + +1. **验证后门** +: + +1. 重启PLC(模拟现场断电重启)。 + +1. 使用后门客户端连接到PLC,发送恶意指令(如强制开启所有输出、修改内部寄存器)。 + +1. 观察PLC行为改变,但HMI可能显示正常(如果固件也修改了反馈数据)。 + +1. **检测挑战** +:讨论如何检测此类攻击,例如通过固件哈希校验、网络行为异常等。 + +**预期结果** +:参与者深刻理解固件攻击的隐蔽性和持久性,认识到传统杀毒软件无法检测此类威胁。 + +**安全提示** +:切勿在生产环境中演示,务必在隔离的实验室进行。 +#### 3. 模拟传感器数据欺骗 + +**目标** +:演示攻击者如何通过中间人攻击或直接篡改通信,向HMI注入虚假传感器读数,误导操作员。 + +**环境准备** +: +- 一台PLC(或模拟器)连接一个模拟传感器(如电位器模拟液位)。 + +- 一台运行HMI软件的计算机(如SCADA软件)显示传感器值。 + +- 攻击机安装Ettercap或bettercap,以及Modbus/TCP数据包修改工具(如scapy)。 + +- 所有设备在同一网络。 + +**演示步骤** +: +1. **正常通信** +:在HMI上观察传感器实时值(如液位50%),同时物理调整传感器(转动电位器),HMI值同步变化。 + +1. **实施中间人攻击** +: + +1. 使用ARP欺骗或交换机端口镜像,使攻击机位于PLC与HMI之间。 + +1. 使用Scapy脚本捕获Modbus/TCP报文,识别功能码03(读寄存器)的响应包。 + +1. **篡改数据** +: + +1. 当检测到PLC返回给HMI的传感器值(例如,寄存器值为150)时,脚本将其修改为另一个值(如50),然后转发给HMI。 + +1. HMI显示被篡改后的值(50),而真实物理值已变为150。 + +1. **演示欺骗效果** +: + +1. 操作员看到液位正常(50%),但实际上已接近溢流(150%)。 + +1. 如果操作员根据虚假读数发出控制指令,可能导致错误操作(如关闭进料阀,而实际需开启)。 + +1. **扩展** +:也可演示篡改写入PLC的指令,如将HMI发出的“关闭阀门”指令修改为“开启阀门”。 + +end + +**往期内容回顾** +