Stuxnet病毒是怎样“入侵”PLC的?

时间:2023-03-20来源:佚名

1.如何选择需要感染的plc

Stuxnet会根据目标系统的特点,使用不同的代码来感染PLC。一个感染的序列包括了许多PLC模块(代码模块和数据模块),用以注入PLC来改 变目标PLC的行为。这个威胁包括了三个感染序列。其中两个非常相似,功能也相同,我们将其命名为序列AB。第三个序列我们命名为序列CStuxnet 通过验证“指纹”来判断系统是否为计划攻击的目标。它会检查:PLC种类/家族:只有CPU6ES7-4176ES7-315-2 会被感染。系统数据模块:SDB会被解析;根据他们包含的数据,感染进程会选择A,B或其它感染方式开始行动。当解析SDB时,代码会搜索这两个值是否存 在--7050hand9500h;然后根据这两个数值的出现次数,选择序列AB中的一种来感染PLC。代码还会在SDB模块的50h子集中搜索字节序 2CCB0001,这个字节序反映了通信处理器CP342-5(用作Profibus-DP)是否存在。而选择序列C进行感染的条件则由其他因素构成。

2.感染方法。

Stuxnet使用“代码插入”的感染方式。当Stuxnet感染OB1时,它会执行以下行为:增加原始模块的大小;在模块开头写入恶意代码;在恶意 代码后插入原始的OB1代码。Stuxnet也会用类似于感染OB1的方式感染OB35。它会用自身来取代标准的协同处理器DP_RECV代码块,然后在 Profibus(一个标准的用作分布式I/O的工业网络总线)中挂钩网络通信。利用A/B方法的感染步骤如下:检查PLC类型;该类型必须为S7 /315-2;检查SDB模块,判断应该写入序列AB中的哪一个;找到DP_RECV,将其复制到FC1869,并用Stuxnet嵌入的一个恶意拷贝 将其取代;在序列中写入恶意模块(总共20个),由Stuxnet嵌入;感染OB1,令恶意代码可以在新的周期开始时执行;感染OB35,它将扮演“看门 狗”的角色。

3.感染代码。

被注入OB1功能的代码是用来感染序列AB的。这些序列包含了以下模块:代码块:FC1865FC1874,FC1876FC1880(注 意:FC1869并非Stuxnet的一部分,而是PLCDP_RECV模块的一个拷贝);数据模块:DB888DB891。序列ABDP_RECV挂钩模块来拦截Profibus中的数据包,并根据在这些模块中找到的数值,来构造其他的数据包并发送出去。这由一个复杂的状态机控制(状 态机被建立在上面提到的FC模块中)。这个状态机可部分受控于数据块DB890中的DLL。在某些条件下,序列C会被写入一个PLC。这个序列比AB包 含更多的模块:FC6055FC6084DB8062,DB8063DB8061,DB8064DB8070(在运行中产生)。序列C主要为了将 I/O信息读写入PLC的内存文件映射的I/O区域,以及外围设备的I/O。程序A/B的控制流如下图所示,在之前的Step7编辑器的截图中也有部分显 示(数据模块FC1873

4.RootkitStuxnetPLCrootkit代码全部藏身于假冒的s7otbxdx.dll中。

为了不被PLC所检测到,它至少需要应付以下情况:对自己的恶意数据模块的读请求;对受感染模块(OB1,OB35,DP_RECV)的读请求;可能 覆盖Stuxnet自身代码的写请求。Stuxnet包含了监测和拦截这些请求的代码,它会修改这些请求以保证StuxnetPLC代码不会被发现或被 破坏。下面列出了几个Stuxnet用被挂钩的导出命令来应付这些情况的例子:s7blk_read:监测读请求,而后Stuxnet会返回:真实请求的 DP_RECV(保存为FV1869);错误信息,如果读请求会涉及到它的恶意模块;OB1OB35的干净版本的拷贝s7blk_write:监测关于 OB1/OB35的写请求,以保证他们的新版本也会被感染。s7blk_findfirst/s7blk_findnext:这些例程被用于枚举PLC中 的模块。恶意模块会被自动跳过。s7blk_delete:监测对模块的“删除”操作。如上文所述,Stuxnet是一个非常复杂的威胁,而其中的PLC 感染代码令问题更加难以解决。

相关阅读

电力电缆单根理论最大长度、大尺度电缆分盘

电缆过长时,一般会作分段处理,而接头处是电缆最薄弱的地方容易产生故障和事故。据统计:中间接头故障占线路故障超过70%。每增加一个接头就增加了一处风险,因此在施工允许的情况...
2024-08-21
电力电缆单根理论最大长度、大尺度电缆分盘

维修电工真是有苦说不出,8000块钱的工资并不高

在很多人的眼里,特别是工厂老板的眼里,都一致认为维修电工是一份很清闲的工作,可以轻松赚钱。设备坏了只需要快速查找到故障,然后快速把备件更换上去,恢复设备正常运行,...
2023-04-04
维修电工真是有苦说不出,8000块钱的工资并不高

​【涨知识】零线带电的原因及处理方法

在电气系统中,零线带电是一种常见的故障现象,需要及时查明原因并采取相应的处理措施,以确保电气设备的安全运行和人员的安全。 一、零线带电的原因 1. 零线未良好接地 - 正常...
2024-09-03
​【涨知识】零线带电的原因及处理方法

基于LM317的可调低压电源电路图

电子产品的专业人士和业余爱好者都可能受益于可调低压电源。它提供一致且可调节的直流电压输出,可以对其进行修改以满足各种电子电路和零件的独特需求。该电路原理图展示了如...
2023-08-06
基于LM317的可调低压电源电路图

电力变压器纵差保护运行工作中容易出现的问题及其处理方法

电力 变压器纵差保护是所有电气 元件差动保护中最复杂的一种。在运行过程中,保护误动作的现象也时有发生,在1997年华北电网220kV及以上变压器不正确动作统计中,共不正确动作18次,其...
2023-03-21

热销商品

EPDM配电箱机柜密封条三元乙丙橡胶半圆海绵自粘发泡胶条20*10mm

EPDM配电箱机柜密封条采用优质三元乙丙橡胶(EPDM)材质,具备优异的耐候性、耐臭氧、耐高低温(-40℃~+120℃)及抗老化性能,适用于户外及严苛环境。其半圆海绵结构设计,兼具...
1.08

加长球头内六角扳手L型六方棱套装万能2 2.5 3 4 5 6 8 10-30号mm

加长球头内六角扳手L型六方棱套装(22.5–30mm)专为高扭矩与深孔作业设计,适用于机械维修、工业装配及精密设备维护。套装涵盖22.5、3、4、5、6、8、10至30mm等多种规...
1.15

京生国标包塑金属软管 穿线波纹管电线套管蛇皮护线管16 20 25 40

京生国标包塑金属软管(穿线波纹管/电线套管/蛇皮护线管)规格涵盖16、20、25、40mm,采用优质镀锌钢带为基材,外层包覆阻燃PVC,兼具柔韧性与抗压性。产品符合国家标准,具...
1.05

内六角扳手套装梅花螺丝刀6角六棱内六方六边形加长万能板手工具

内六角扳手套装是一款多功能精密工具,适用于拧紧或拆卸内六角螺丝,广泛应用于家具组装、自行车维修、机械设备及电子产品等领域。套装包含多种规格(如1.5mm至10mm)的6...
8.9

L型内六角扳手内六角螺丝刀单个内六方形匙套装0.9-2-3-4-5-6-8mm

L型内六角扳手套装,包含0.9、2、3、4、5、6、8mm共七种常用规格,适用于各类内六角螺丝的拧紧与拆卸。采用高强度合金钢制造,表面经防锈处理,坚固耐用,抗磨损性强。L型...
2.23

网站栏目