Stuxnet的PLC感染方式

合集下载

面临黑客网络攻击如何有效保护PLC

面临黑客网络攻击如何有效保护PLC

最近有朋友发给我一个中国信通院专家支撑起草的国家标准文件《GB 40050-2021网络关键设备安全通用要求》,其中指出:“为了落实《网络安全法》第二十三条网络关键设备和网络安全专用产品应当按照相关国家标准的强制性要求,由具备资格的机构安全认证合格或者安全检测符合要求后,方可销售或者提供”。

该标准于2021年2月20日正式发布,并于2021年8月1日起实施。

标准适用于网络关键设备,为网络运营者采购网络关键设备时提供依据,还适用于指导网络关键设备的研发、测试、服务等。

目前,根据四部门联合发布的公告《网络关键设备和网络安全专用产品目录(第一批)》,第一批网络关键设备包括了性能较高的路由器、交换机、服务器和PLC设备,具体设备类型及范围如下表:我看了文件以后,产生一个疑问,是不是要求接入网络的关键设备PLC其指令执行时间必须小于等于0.08微秒?那么这个指令执行时间是指最快指令执行时间还是平均指令执行时间?如果是指平均指令执行时间,那么平均执行时间又如何定义?依据又是什么?难道指令执行时间大于0.08微秒的PLC就没有接入网络的需求?目前几十万台在役运行的老型号PLC就没有接入工业互联网的资格,如果接入就难以保证网络安全吗?有鉴于此,引发出本文想讨论的主题,即PLC接入网络后要保证具有足够的安全性,即使在黑客攻击之下仍能安全运行,关键是什么呢?PLC信息安全的架构概述按照ISA 95基于普渡模型的定义,从结构化的架构的视角看工业自动化控制系统(IACS),可以分成四个区域(图1):安全区、单元/区段(生产线车间)、制造运营与控制区,以及企业区。

现场的实际情况可能与普渡模型有一些差异,但将安全系统与控制自动化系统分割,是大多数工业行业遵循的原则,特别是那些有防爆严格要求的行业,如石化、化工等。

图1 基于普渡模型的企业信息架构以往PLC与企业网络和互联网之间往往采用多层结构、便于实施网络安全的隔离方法。

但是,由于实时数据远程存取的需求不断增长,许多连接进入了控制自动化系统。

威努特---工业病毒的超级进化—PLC-Blaster,一种能够在PLC独立存活的蠕虫病毒

威努特---工业病毒的超级进化—PLC-Blaster,一种能够在PLC独立存活的蠕虫病毒

工业病毒的超级进化(一)——PLC-Blaster,一种能够在PLC独立存活的蠕虫病毒摘要:工业生产过程由可编程逻辑控制器(PLC)控制。

目前销售的许多PLC 都配有以太网端口,其可以通过IP进行通信。

我们将基于西门子SIMATIC S7-1200演示一个蠕虫病毒。

该蠕虫不需要通过任何额外的PC来进行扩散,其只在PLC上运行和存活。

该蠕虫会扫描网络中的新攻击目标(PLCs),然后攻击这些目标并自我复制到这些目标上。

在目标PLC上运行的原始主程序并不会被修改。

一旦目标被后蠕虫感染后会再次开始扫描。

我们将分析蠕虫对目标的影响以及可能的防护技术。

★0x01 前言IT系统是现代工业生产过程中的关键组件。

没有现代通信网络,这些过程将是不可能实现的。

不幸的是,在工业系统采用现代IT系统和通信网络会使用户暴露在久负盛名的IT攻击世界中。

IT黑客攻击可能以几种方式破坏工业系统。

它们可引起系统故障和高额的经济损失,同时还可能对工人的身心健康造成负面影响。

这些攻击的效果已被震网(Stuxnet)蠕虫证明[1]。

西门子可编程逻辑控制器被修改后破坏了伊朗浓缩裂变材料过程。

蠕虫病毒利用微软Windows 操作系统的漏洞在铀浓缩电脑上进行传播。

PLC的软件以这样的方式被修改最终破坏了浓缩过程离心机。

该蠕虫需要一台PC传播并通过PC攻击PLC。

本文将展示仅通过PLC本身来传播的蠕虫,不需要任何PC。

蠕虫可能通过被控制的PLC 植入工厂,然后,该蠕虫通过复制自身感染其他PLC并执行。

本文是基于西门子公司的SIMATIC S7-1200v3,蠕虫病毒采用结构化文本(ST)编写,ST是用于开发PLC软件的一种语言。

0x02 相关研究2015年在美国的BlackHat2015KLICK等人曾展示过运行在PLC的恶意软件[2],他们使用PLC的通信特性执行了一个代理。

我们采用与其相同的通信协议来传播蠕虫程序,使用此协议蠕虫病毒能够从某个PLC直接传播到另一个PLC,此蠕虫程序不需要其他系统来支撑,我们基于SIMATIC S7-1200协议来开展我们的工作,而前者采用SIMATIC S7-300来实现。

信捷plc如何和电脑网口通讯

信捷plc如何和电脑网口通讯

信捷plc如何和电脑网口通讯信捷PLC是一种常用的工业自动化设备,可以实现机器的控制和监控。

在现代工业中,PLC与电脑的通讯变得越来越重要,因为电脑拥有更强大的计算和数据处理能力,可以远程监控和管理多个PLC设备。

本文将探讨信捷PLC如何与电脑网口进行通讯,以及如何实现双向数据传输和控制。

首先,要实现PLC与电脑之间的通讯,我们需要了解PLC设备的基本原理。

PLC的核心是一个控制器,它由CPU、存储器和各种输入输出模块组成。

PLC的输入模块可以接收来自传感器和开关等外部设备的信号,而输出模块则可以控制执行器和执行各种操作。

通过编程,我们可以将PLC设备配置为执行预定的任务,例如控制机器的运行和监控生产过程。

为了与电脑进行通讯,我们常常使用以太网口或串口连接PLC与电脑。

以太网口是一种通用的网络接口,可以实现高速数据传输和多设备连接。

而串口则是一种简单的串行接口,适用于短距离数据传输和少量设备连接。

当我们使用以太网口连接PLC与电脑时,首先需要确保电脑和PLC设备都处于同一个局域网内。

通过设置IP地址和子网掩码,我们可以将电脑和PLC设备的网络配置在同一个子网内。

然后,我们需要在电脑上安装PLC设备的通讯驱动程序,并配置好通讯参数。

通讯驱动程序负责将电脑上的命令转换成PLC可以理解的信号,并将PLC的响应传回电脑。

通过这种方式,电脑可以实现远程监控和管理PLC设备,从而提高生产效率和质量。

除了以太网口,我们还可以使用串口连接PLC与电脑。

串口连接相对简单,只需要一根串口线即可实现数据传输。

但是,串口的传输速率较慢,适用于数据量较小的应用场景。

在使用串口连接时,我们需要在电脑上安装串口驱动程序,并设置好通讯参数。

通讯参数包括波特率、数据位数、校验位等,需要与PLC设备的设置相匹配。

通过串口连接,电脑可以向PLC发送指令,并读取PLC的响应数据。

无论是使用以太网口还是串口,通讯的关键是数据协议的制定和遵守。

课件:震网病毒

课件:震网病毒
• 特别是针对西门子公司的SIMATIC WinCC过程监控与数据采集 (SCADA) 系统 的攻击。由于该系统在我国被广泛用于钢 铁、电力、能源、化工等的人机交互与监 控。一旦攻击成功,代价惨重。
stuxnet特点
震网病毒最大的特点:打破恶意程序只攻击用户电脑 的“惯例”,将攻击目标偏向于用户的生活与生存环境上 来。 一旦用户的电脑不幸遭受超级工厂病毒Stuxnet入侵,不 但会使用户电脑变成任由其摆布的“肉鸡,严重影响到用 户的日常生活,而且还会引发“多米诺骨牌效应”,导致 与受害用户联网的人群遭受同样攻击。
mrxnet.sys通过 修改一些内核 调用来隐藏被 拷贝到U盘的 lnk文件和DLL
文件
特点:简单 、波及范围广、危害程度高
存在此漏洞的系统收到精心构造的RPC请求时,可允许远程 执行代码。在Windows 2000、Windows XP和Windows Server 2003 系统中,利用这一漏洞,攻击者可以通过恶意构造的网络 包直接发起攻击,无需通过认证地运行任意代码,并且获 取完整的权限。因此该漏洞常被蠕虫用于大规模的传播和 攻击。
• Stuxnet已经感染了全球超过 45000个网络,60% 的个 人电脑感染了这种病毒。
• 传播途径:该病毒主要通过U盘和局域网进行传播。
• “历史贡献”:曾造成伊朗核电站推迟发电。
Stuxnet简介
• Stuxnet能够利用5个针对wi统的漏 洞进行攻击。
Stuxnet蠕虫利用这个漏洞实现在内部局域网中的传 播
•。
• 1.使用相关专杀工具或手工清除Stuxnet蠕 虫
• 2. 安装被利用漏洞的系统补丁
• 3.安装西门子发布的WinCC系统安全更新补 丁
• 1.使用Atool管理工具,结束系统中的父进程 不是winlogon.exe的所有lsass.exe进程

信捷以太网口跟西门子PLC通讯

信捷以太网口跟西门子PLC通讯

信捷以太网口跟西门子PLC通讯随着工业自动化技术的飞速发展,以太网通常被广泛应用于工业控制系统中,它提供了高速、稳定、可靠的数据传输方式。

而西门子PLC作为工业自动化领域的重要设备,其与以太网的通讯也成为了一个热门话题。

本文将介绍信捷以太网口与西门子PLC通讯的原理和应用。

要想实现信捷以太网口与西门子PLC的通讯,首先需要了解两者的工作原理。

信捷以太网口是一种用于连接PLC和计算机网络的设备,它通过将PLC的数据经过转换后发送到以太网上,再经过网络传输到计算机,从而实现PLC与计算机之间的数据共享。

而西门子PLC则是一种用于工业自动化控制的设备,负责控制和调度工业生产中的各种设备和系统。

在实际的应用中,信捷以太网口通常与西门子PLC进行Modbus TCP/IP协议的通讯。

Modbus是一种通用的工业协议,广泛应用于各种PLC和设备之间的通讯。

通过使用Modbus TCP/IP协议,信捷以太网口可以直接与西门子PLC进行数据交互,实现实时监控、远程控制等功能。

同时,Modbus协议还具有数据采集、存储、传输、处理等功能,满足了工业自动化领域不同需求的通讯要求。

在信捷以太网口与西门子PLC的通讯中,需要注意一些技术细节。

首先,要保证网络连接的稳定性和可靠性。

在工业环境中,信号干扰、电磁波干扰等因素可能导致网络连接断开或数据传输错误。

为了解决这个问题,可以采用双备份网络、抗干扰技术等措施,确保通讯的稳定性。

其次,也需要注意PLC和计算机系统之间的数据格式转换。

由于PLC通常采用二进制数据格式,而计算机通常采用ASCII码格式,因此在数据交互过程中需要进行相应的数据格式转换,以确保数据的正确传输和解析。

信捷以太网口与西门子PLC通讯的应用非常广泛。

例如,在工业自动化控制系统中,信捷以太网口可以实现PLC数据的远程监控和远程控制,实时了解设备的运行状态、故障信息以及生产数据等。

同时,基于以太网技术,还可以将多个PLC连接到同一个网络中,形成一个分布式控制系统,提高系统的可扩展性和可靠性。

信捷plc网口通讯怎么做

信捷plc网口通讯怎么做

信捷plc网口通讯怎么做信捷PLC是一种常用的工业自动化控制设备,广泛应用于各行各业。

在实际应用中,PLC网口通讯是实现PLC与其他设备之间数据传输的重要方式。

本文将介绍信捷PLC网口通讯的具体实现方法。

一、PLC网口通讯概述PLC网口通讯是通过网络连接PLC和其他设备,实现数据的读取和传输。

PLC作为控制中心,通过网口与各种传感器、执行机构等设备进行通讯,以实现自动化控制。

二、信捷PLC网口通讯的硬件要求要实现信捷PLC网口通讯,首先需要确保硬件设备满足要求。

首先,PLC需要具备网口接口,一般为以太网接口,用于与其他设备进行通讯。

其次,将PLC与其他设备连接的网线需要正常工作,无断线、短路等问题。

三、信捷PLC网口通讯的软件配置实现信捷PLC网口通讯还需要进行软件配置。

通常情况下,信捷PLC提供特定的编程软件,可通过该软件进行通讯参数的配置。

具体步骤如下:1. 打开PLC编程软件,在软件界面中选择相应的PLC型号和通讯接口类型。

2. 进入通讯参数设置界面,在该界面中可以设置通讯方式、通讯协议等参数。

一般来说,可以选择TCP/IP协议,然后设置通讯IP地址、端口号等。

3. 根据实际需求设置其他相关参数,如数据读取周期、数据格式等。

4. 完成参数设置后,保存配置文件并下载到PLC中,使其生效。

四、信捷PLC网口通讯的编程实现在进行信捷PLC网口通讯时,通常需要进行编程实现。

编程语言一般为Ladder Diagram(梯形图),下面是一个简单的例子来展示如何进行信捷PLC网口通讯的编程实现。

1. 首先,在Ladder Diagram中设置一个网络通讯数据块,用于存储通讯数据。

2. 设置一个周期触发的定时器,用于定时读取数据。

3. 使用网络通讯指令,从其他设备读取数据,并将读取的数据保存到通讯数据块中。

4. 读取完数据后,根据需求对数据进行处理、判断等操作,然后输出相应的信号,控制其他设备的运行。

五、信捷PLC网口通讯的注意事项在进行信捷PLC网口通讯时,需要注意以下几点:1. 确保PLC的IP地址和其他设备的IP地址在同一局域网下。

WINCC使用普通网卡通过TCPIP连接PLC

WINCC使用普通网卡通过TCPIP连接PLC

WINCC使用普通网卡通过TCPIP连接PLCWINCC使用普通网卡通过TCP/IP连接PLC通过以太网实现PLC系统与WINCC通讯的前提条件是PLC系统配备以太网模或者使用带有PN接口的PLC,以太网模块列表如下表所示:注:只有支持ISO通讯协议的模块才支持(Industrial Ethernet 工业以太网)通讯,具体情况可察看STEP7中的模块信息。

本文档下列步骤应用CPU 315-2PN/DP型号的PLC,使用普通以太网卡连接。

组态过程1.STEP7硬件组态使用STEP7编程软件对PLC系统进行软件组态,在Hardware界面内插入实际的PLC硬件,如下图3.1所示:在PN-IO槽双击弹出PN-IO属性对话框,如图所示:点击上图属性对话框,弹出网络参数设置对话框,如图所示:点击New按钮,新建一个工业以太网络,输入该PN模块的IP address(IP地址)和Subnet mask(子网掩码),在简单使用的情况下,不启用网关。

当您使用的是CPU+以太网模块通讯时,双击以太网模块,会自动弹出以太网模块的属性信息,设置以太网通讯模块的IP地址和子网掩码。

方法与PN-IO的属性设置相同,如下图所示:注意如果要使用TCPIP通讯方式,必须启动IP Protocol being used,设置IP地址与子网掩码,如图所示:2.设置IP地址与通讯检测设置安装有WINCC计算机的windows操作系统的TCP/IP参数,将WINCC组态计算机的IP地址设置成为和PLC以太网通讯模块或者PN-IO的IP地址保证是一个网段,注意子网掩码的设置,如图所示:通过在程序à运行中键入CMD进入DOS界面,使用网络命令PING测试以太网通讯是否建立,PING的命令如下:ping 目标IP地址–参数如下图所示:此例中,PN-IO的IP地址为192.168.0.100 子网掩码:255.255.255.0;组态计算机的IP地址为192.168.0.244 子网掩码:255.255.255.0,此处显示表示以太网通讯已经建立,并且状态良好。

施耐德PLC网口怎么通讯

施耐德PLC网口怎么通讯

施耐德PLC网口怎么通讯施耐德PLC(可编程逻辑控制器)是一种用于自动化控制系统的重要设备,它能够实现工业生产中的自动化控制和智能化管理。

而在施耐德PLC的使用过程中,网络通讯技术无疑发挥着至关重要的作用。

本文将围绕施耐德PLC的网口通讯展开讨论,深入探索其通讯原理、常见问题及解决方法。

施耐德PLC的网口通讯基于以太网技术,通过网络连接实现与其他设备的数据交互。

在PLC应用中,网口通讯主要用于实现监视、控制和数据采集等功能。

根据不同的通讯需求,施耐德PLC提供了多种通讯方式,包括以太网TCP/IP、Modbus TCP/IP等。

用户可以根据具体情况选择合适的通讯方式,并进行相应的配置。

在进行施耐德PLC网口通讯时,最常见的问题之一是网络设置不当。

要确保PLC与其他设备在同一局域网内,IP地址和子网掩码设置正确,并且网络中没有冲突的IP地址。

此外,还要确保网络连接稳定,避免因为网络抖动或信号干扰导致通讯中断。

在实际应用中,可以通过使用网络诊断工具进行网络检测,发现问题并及时解决。

除了网络设置问题,另一个常见的困扰用户的问题是通讯协议选择不当。

施耐德PLC支持多种通讯协议,而不同的设备通常采用不同的协议。

因此,在进行PLC网口通讯时,必须选择与目标设备兼容的通讯协议。

在施耐德PLC中,Modbus TCP/IP是一种广泛应用的通讯协议,可与大多数常见设备互通。

此外,施耐德还提供了其它自有的通讯协议,如Uni-Telway、Fipway等,用户可以根据实际需求进行选择。

在实际使用中,施耐德PLC的网口通讯还需要注意数据格式和数据传输方式。

不同设备之间的数据格式可能存在差异,必须根据实际情况进行数据格式的转换和处理。

同时,还需要关注数据传输的方式,例如是否采用二进制传输、字符传输,选择合适的传输方式可以提高通讯效率和稳定性。

除了常见问题的解决方法,有时候我们还需要考虑PLC网络通讯的安全性。

在现代工业控制系统中,网络安全被赋予了重要的意义。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Stuxnet蠕虫病毒(超级工厂病毒)是世界上首个专门针对工业控制系统编写的破坏性病毒,能够利用对windows系统和西门子SIMATIC WinCC系统的7个漏洞进行攻击。

特别是针对西门子公司的SIMATIC WinCC监控与数据采集 (SCADA) 系统进行攻击,由于该系统在我国的多个重要行业应用广泛,被用来进行钢铁、电力、能源、化工等重要行业的人机交互与监控。

传播途径:该病毒主要通过U盘和局域网进行传播。

历史―贡献‖:曾造成伊朗核电站推迟发电。

2010-09-25,进入中国。

目录编辑本段由于Stuxnet蠕虫病毒是首个针对工业控制系统编写的破坏性病毒,对大型工业、企业用户存在一定的风险,所以,冠群金辰公司病毒防护专家给企业用户提出如下安全防护建议,以提高企业抵御未知安全风险的能力:在终端设备上开启防火墙功能。

为终端设备上所有的应用系统安装最新的补丁程序。

在终端上安装防病毒系统,设置为实时更新病毒库,并将病毒库升级到最新版本。

在终端上的用户设置最小用户权限。

在打开附件或通过网络接收文件时,弹出安全警告或提示。

在打开网络链接时,发出安全警告或提示。

尽量避免下载未知的软件或程序。

使用强口令,以保护系统免受攻击。

两个月前,赛门铁克首次披露了W32.Stuxnet针对工业生产控制系统(ICS) 进行攻击,如应用于管道和核动力工厂的控制系统。

读者可参见赛门铁克2010年7月19日的博客–―W32.Stuxnet 攻击微软零日漏洞利用USB设备大肆传播‖。

2010年9月29日,我们还将在Virus Bulletin 会议上发布一篇包含W32.Stuxnet详尽技术细节的论文。

同时我们也注意到,最近非常多的人开始对Stuxnet感染系统且不易检测的事情表示关注。

由于Stuxnet针对某个特定的工业生产控制系统进行攻击,而这些行为不会在测试环境中出现,因此在测试环境下观察到的病毒行为不全面,很可能产生误导。

事实上,运行后,Stuxnet会立即尝试进入一个可编程逻辑控制器(PLC) 的数据块—DB890。

这个数据块其实是Stuxnet自己加的,并不属于目标系统本身。

Stuxnet 会监测并向这个模块里写入数据,以根据情况和需求实时改变PLC 的流程。

在这篇博客里,我们会深入探讨Stuxnet的PLC感染方式和Rootkit功能,特别是以下几个方面:它如何选择作为攻击目标的工业生产控制系统;感染PLC代码块的方法;注入PLC的恶意代码;在被感染Windows机器中的PLC Rootkit代码。

这四点我们会分开讲,因为用来实现这些目的的代码差异很大。

Stuxnet的目的是通过修改PLC来改变工业生产控制系统的行为,包括拦截发送给PLC的读/写请求,以此判断系统是否为潜在的攻击目标;修改现有的PLC代码块,并往PLC中写入新的代码块;利用Rootkit功能隐藏PLC感染,躲避PLC管理员或程序员的检测。

这些任务之间差别很大,比如,在被感染的Windows 机器中隐藏感染代码使用的是标准的C/C++ 代码,而Stuxnet 试图在工业生产控制系统及PLC中执行的恶意代码则是用MC7字节码写的。

MC7 是PLC 环境中运行的一种汇编语言,并常用STL 进行编写。

在讨论Stuxnet攻击PLC的技术之前,让我们先来看看PLC是如何访问和编写的。

要进入PLC, 首先需要安装特殊的软件;Stuxnet 会专门针对编写PLC某些模块的WinCC/Step 7软件进行攻击。

安装这些软件后,程序员可以通过数据线连接PLC,以访问其中的内容,重新配置PLC,下载程序至PLC,或调试之前加载的代码。

一旦PLC被配置和编译后,Windows机器就可以断开和PLC的联系了,PLC会自行运行。

为了使您有一个更直观的感受,下图显示了在实际操作中,实验室里一些基本的设备配置:被Stuxnet修改后的s7otbxdx.dll 文件保留了原来的导出表,导出函数为109个,这就令Stuxnet可以应付所有相同的请求。

大部分导出命令会转发给真正的DLL,即重命名后的s7otbxsx.dll,并不会出现什么难对付的状况;事实上,109种导出形式中的93种都会照这样处理。

然而,真正的―诡计‖使用在剩下的16种导出命令中。

这16种导出不会被简单的转发,而是被改动后的DLL 拦截了。

被拦截的导出命令为在PLC中读、写、定位代码块的例程。

通过拦截这些请求,Stuxnet 可以在PLC 管理员没有察觉的情况下,修改发送至PLC 或从PLC返回的数据。

同时,通过利用这些例程,Stuxnet 可以将恶意代码隐藏在PLC 中。

为了更好的了解Stuxnet 如何进入和感染PLC,我们先来看看各种类型的数据。

PLC 会处理由管理员加载到PLC的代码和数据。

这里,我们将简要介绍一下最常见的模块和他们的功能:数据模块(DB)包含了程序相关的数据,比如数字,结构等。

系统数据模块(SDB) 包含了PLC 的配置信息;它们是根据连接到PLC 的硬件模块的数量/种类设立的。

组织模块(OB) 是程序的入口。

他们由CPU 循环执行。

针对Stuxnet,有两个特别需要的OB:OB1 是PLC 程序的入口。

它没有特别的时间要求,总是循环执行。

OB35 是一个标准的―看门狗‖模块,系统会每100ms执行一次。

这个功能可能包含了所有用于监控紧要输入的逻辑,以达到立即响应,执行功能的目的。

功能模块(FC)都是标准的代码快。

它们包含了会被PLC 执行的代码。

一般说来,OB1模块会引用至少一个FC 模块。

下面的部分会详细讲述之前提到的威胁的四大方面。

编辑本段感染原理1. 如何选择需要感染的PLCStuxnet会根据目标系统的特点,使用不同的代码来感染PLC。

一个感染的序列包括了许多PLC 模块(代码模块和数据模块),用以注入PLC来改变目标PLC 的行为。

这个威胁包括了三个感染序列。

其中两个非常相似,功能也相同,我们将其命名为序列A和B。

第三个序列我们命名为序列C。

Stuxnet通过验证―指纹‖来判断系统是否为计划攻击的目标。

它会检查:PLC种类/家族:只有CPU 6ES7-417 和6ES7-315-2 会被感染。

系统数据模块:SDB 会被解析;根据他们包含的数据,感染进程会选择A,B或其它感染方式开始行动。

当解析SDB 时,代码会搜索这两个值是否存在-- 7050h and9500h;然后根据这两个数值的出现次数,选择序列A 或B 中的一种来感染PLC。

代码还会在SDB 模块的50h 子集中搜索字节序2C CB 00 01, 这个字节序反映了通信处理器CP 342-5 (用作Profibus-DP) 是否存在。

而选择序列C进行感染的条件则由其他因素构成。

2. 感染方法Stuxnet使用―代码插入‖的感染方式。

当Stuxnet 感染OB1时,它会执行以下行为:增加原始模块的大小;在模块开头写入恶意代码;在恶意代码后插入原始的OB1 代码。

Stuxnet也会用类似于感染OB1的方式感染OB35。

它会用自身来取代标准的协同处理器DP_RECV 代码块,然后在Profibus (一个标准的用作分布式I/O的工业网络总线) 中挂钩网络通信。

利用A/B方法的感染步骤如下:检查PLC 类型;该类型必须为S7/315-2;检查SDB 模块,判断应该写入序列A 或B 中的哪一个;找到DP_RECV,将其复制到FC1869,并用Stuxnet嵌入的一个恶意拷贝将其取代;在序列中写入恶意模块(总共20个),由Stuxnet 嵌入;感染OB1,令恶意代码可以在新的周期开始时执行;感染OB35, 它将扮演―看门狗‖的角色。

对自己的恶意数据模块的读请求;对受感染模块(OB1 , OB35, DP_RECV) 的读请求;可能覆盖Stuxnet自身代码的写请求。

Stuxnet包含了监测和拦截这些请求的代码,它会修改这些请求以保证Stuxnet 的PLC 代码不会被发现或被破坏。

下面列出了几个Stuxnet用被挂钩的导出命令来应付这些情况的例子:s7blk_read: 监测读请求,而后Stuxnet 会返回:真实请求的DP_RECV (保存为FV1869);错误信息,如果读请求会涉及到它的恶意模块;OB1或OB35的干净版本的拷贝s7blk_write: 监测关于OB1/OB35的写请求,以保证他们的新版本也会被感染。

s7blk_find first / s7blk_find next: 这些例程被用于枚举PLC 中的模块。

恶意模块会被自动跳过。

s7blk_delete: 监测对模块的―删除‖操作。

如上文所述,Stuxnet 是一个非常复杂的威胁,而其中的PLC 感染代码令问题更加难以解决。

仅仅关于注入的MC7代码(我们于几个月前通过逆向工程获得)就可以讨论很久。

若想了解更多关于PLC 感染例程和Stuxnet的总体情况,请务必关注我们即将于Virus Bulletin会议中发布的白皮书。

编辑本段卡巴斯基关于360解读“超级工厂”的声明卡巴斯基实验室于2010年7月15日向全球公布了对―Stuxnet‖病毒(国内译成―震网‖、―超级病毒‖或―超级工厂‖,以下称―超级工厂‖)的技术分析,并于9月24日由其创始人及CEO尤金@卡巴斯基先生公布了更为深入的行业解读:1、―超级工厂‖病毒采用了复杂的多层攻击技术,同时利用四种―零日漏洞‖对微软操作系统进行攻击,利用两种有效的数字证书(Realtek和JMicron),让自己隐身。

2、―超级工厂‖的目的不像一般的病毒,干扰电脑正常运行或盗窃用户财产和隐私,其最终目的是入侵Simatic WinCC SCADA系统,该系统主要被用做工业控制系统,能够监控工业生产、基础设施或基于设施的工业流程。

类似的系统在全球范围内被广泛地应用于输油管道、发电厂、大型通信系统、机场、轮船甚至军事设施中。

3、―超级工厂‖已然是网络武器,被用于攻击敌对方的有重要价值的基础设施。

它标志着网络军备竞赛的开始。

4、―超级工厂‖的幕后团队是技术非常高超的专业人员,并且具有广泛的资源以及强大的财力做后盾,他们应该是得到了某个国家或政府机构的支持。

对于这样一款标志着全球网络安全进入―基础设施保护时代‖的恶性病毒,360不但没有做出任何得到微软承认的实质性贡献,却在10月2日,即卡巴斯基公布技术分析两个月后,发表了一份可谓―一派胡言‖的官方新闻,声称―超级工厂‖利用了―已知的‖微软漏洞,更口出狂言:―因为有360系列安全软件的存在‖,―中国已躲过‗超级工厂‘病毒攻击‖ 。

事实上,―超级工厂‖利用的正是―未知的‖微软漏洞(国际上通常称之为―零日漏洞‖),也即它是在微软尚没有认识到该漏洞之前进行系统攻击的。

相关文档
最新文档