您当前的位置:五五电子网电子知识plc技术PLC维护Stuxnet病毒是怎样“入侵”PLC的? 正文
Stuxnet病毒是怎样“入侵”PLC的?

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

点击数:7942 次   录入时间:03-04 11:51:55   整理:http://www.55dianzi.com   PLC维护

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

Stuxnet会根据目标系统的特点,使用不同的代码来感染PLC。一个感染的序列包括了许多PLC模块(代码模块和数据模块),用以注入PLC来改 变目标PLC的行为。这个威胁包括了三个感染序列。其中两个非常相似,功能也相同,我们将其命名为序列AB。第三个序列我们命名为序列C。 Stuxnet 通过验证“指纹”来判断系统是否为计划攻击的目标。它会检查: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。序列AB用 DP_RECV挂钩模块来拦截Profibus中的数据包,并根据在这些模块中找到的数值,来构造其他的数据包并发送出去。这由一个复杂的状态机控制(状 态机被建立在上面提到的FC模块中)。这个状态机可部分受控于数据块DB890中的DLL。在某些条件下,序列C会被写入一个PLC。这个序列比AB包 含更多的模块:FC6055FC6084DB8062,DB8063DB8061,DB8064DB8070(在运行中产生)。序列C主要为了将 I/O信息读写入PLC的内存文件映射的I/O区域,以及外围设备的I/O。程序A/B的控制流如下图所示,在之前的Step7编辑器的截图中也有部分显 示(数据模块FC1873

[1] [2]  下一页


本文关键字:暂无联系方式PLC维护plc技术 - PLC维护