用于MODBUS RTU和ASCII工业控制系统的改造网络入侵检测系统外文翻译资料
2022-12-12 17:23:10
英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料
用于MODBUS RTU和ASCII工业控制系统的改造网络入侵检测系统
Thomas Morris,Rayford Vaughn,Yoginder Dandass
摘要:MODBUS RTU/ASCII Snort是一款用于改进基于串行通信的工业控制系统的软件,该软件添加了Snort入侵检测和入侵防御功能。本文通过描述MODBUS RTU/ASCII工业控制系统中可能被利用的4种入侵漏洞(拒绝服务、命令注入、响应注入和系统侦察)来分析对这种系统的需求。本文还提供了Snort规则如何检测和防止这种入侵的的详细细节。最后,文章描述了MODBUS RTU/ASCII Snort的实现方式,提供了如何在控制系统中设置MODBUS RTU/ASCII Snort主机以最大限度地提高入侵检测和预防能力的细节,并讨论了如何验证系统。
- 介绍
根据国家电力可靠性理事会(NERC)关键基础设施保护(CIP)标准0054a的要求,公共设施和其他责任实体需要将关键网络资产置于电子保全周边设备的范围之内。电子保全周边设备必须进行脆弱性分析,使用访问控制技术,并包含可进行监控和记录电子安全设备的访问历史的系统。其他关键行业的工业控制系统运营商都跟上了电力传输和发电业的脚步,开始采用电子安全周边设备来保护控制室和现场的网络资产。电子周边安全设备最大限度地减少了非法网络渗透的威胁,但是深度防御的概念激励了包括但不限于病毒扫描和入侵检测系统(IDS)和入侵防御系统(IPS)的部署的电子安全范围内的网络安全防御。该课题记录了MODBUS RTU和MODBUS ASCII数据记录器的一种扩展,以便能够使用Snort入侵检测和入侵防御系统功能在电子安全范围内保护改装工业控制系统资产。
最近发现的Stuxnet蠕虫强调更加突出了保护遗留串行网络资产的需求,如远程终端单元(RTU)和智能电子设备(IED)。截至2010年9月,Stuxnet蠕虫已经感染了超过155个国家的超过100,000台计算机。Stuxnet蠕虫首先搜索安装了西门子WinCC人机界面软件包的主机。如果找到了WinCC主机系统,而且这台WinCC主机又正好连接到Simatic S7-417 PLC和某些符合目标物理过程控制的签名,Stuxnet就会更改该PLC中的固件。Simatic S7-400 PLC系列支持以太网和串行端口通讯。这表明在一个HMI主机节点受到威胁后,和该PLC通过串行方式连接的RTU,IED或PLC的固件有可能会被更改。
通过串行方式连接到一个控制系统设备上的受损计算机还可能会注入控制系统命令和错误的测量结果,改变设备上的配置设置,并对设备执行拒绝服务攻击。
串行控制系统设备通常使用工业无线电连接。这种无线电链路可能会受到影响,以便攻击者远程注入控制系统命令和错误的测量结果,并执行系统侦察攻击或者拒绝服务攻击。
许多安全专业人员认为串行链路是安全的,因为它们是不可路由的协议。然而,Stuxnet蠕虫和易受攻击的工业无线电链路的存在表明了这种想法是不准确的,并且激发了对用于保护连接到串行链路的RTU,IED和PLC类型设备的入侵检测和入侵防御系统的需求。
本文的主体包含了讨论相关课题的环节。下一个环节会讨论针对各种威胁的工业控制系统中的入侵检测。再下一节会介绍MODBUS RTU/ASCII Snort的实现,包括MODBUS RTU/ASCII到MODBUS TCP/IP转换的详细信息,MODBUS RTU/ASCII Snort软件架构的详细信息,MODBUS RTU/ASCII网络中Snort如何设置主机的指南,以及有关MODBUS RTU/ ASCII Snort如何验证的信息。本文以对未来课题和结论的讨论作为结束。
- 相关工作
Snort是一款有章可循的的开源网络入侵检测和入侵防御工具。Snort收集和记录网络流量,通过搜索违规行为分析网络流量,并向管理员报告可疑活动。Snort通常用于监视以太网和TCP/IP通信流量。
Quickdraw是一款Snort预处理器,也是一组使用MODBUS/TCP,DNP3和Ether/IP通信标准的为工业控制系统开发的Snort规则。快速绘制规则包括了针对无效设备配置攻击、线圈和寄存器读写攻击、高流量攻击、异常MODBUS应用数据单元(ADU)内容攻击、无响应的设备环境以及端口和功能代码扫描攻击的警报。目前,Quickdraw预处理器和Snort规则仅限于对TCP/IP系统的保护。本文介绍了一种机制,可以使用Quickdraw Snort规则和其他Snort规则来保护基于串行通信的工业控制系统。Quickdraw MODBUS/TCP规则用于验证本文中描述的成果。目前没有已知的Snort规则或预处理器支持监控工业控制串行端口协议。
许多研究人员已经开发了针对工业控制系统的基于统计数据的入侵检测系统。统计入侵检测系统使用统计方法将网络流量分类为正常或异常(或更小的子类),可以使用各种模型类型或分类器来构建统计模型,包括神经网络,线性方法,回归模型和贝叶斯网络。入侵检测系统有两种误差:假警报和假安全。假警报会在没有入侵时产生一个虚假警报,假安全则会漏过一个实际的入侵。假警报可能会导致有效通信包被丢弃,而这会在工业控制系统上产生灾难性结果。Snort通过模式匹配来确定性地检测违规行为。正确的规定不会产生假警报。因为Snort是确定性的,所以经过验证的规则可以与Snort在入侵防御模式——一种丢弃非法网络数据包的模式下一起使用。
- 工业控制系统概述
工业控制系统是分布式的网络物理系统。图1展示了典型的工业控制系统的示例。图中的远程终端单元连接到传感器和执行器,以便与受控物理系统直接连接。RTU通过存储控制参数并执行算法代码(如梯形逻辑图或C程序)来直接控制物理过程。工业控制系统还支持监控和数据采集。工业控制系统包括了通过通信链路连接到RTU的主终端单元(MTU)。此通信可以使用以太网或串行端口技术,包括RS-232和RS-485。用于MTU到RTU通信的通用应用层协议是MODBUS,其包括用于以太网的MODBUS TCP和用于串行端口网络的MODBUS RTU或MODBUS ASCII。MTU定期轮询RTU,从受控进程中读取物理测量结果。该信息显示在人机界面(HMI)上,以允许情境观测和控制。HMI允许控制系统操作员与物理进程进行交互,例如,操作员可以打开一个断路器以隔离一部分电路,或打开一个阀门以释放管中的压力或直线物料流。MTU、RTU、通信链路、HMI和操作员组成一个监控反馈控制回路。
图1展示了一个典型的工业控制系统网络。通常,工业控制系统通过以太网连接到用于日常业务运营的公司网络。在图中,公司网络和控制系统网络通过一个安全网关隔离。公司和控制系统网络的隔离可以通过使用虚拟LAN,执行各种授权方案的网关设备和/或防火墙来实现。
图 1工业控制系统通信架构示例
图1包括了4台联网设备:HMI,MTU,Historian和RTU。在工业控制系统中通常使用多种通信链路。在示例网络中,安全网关通过以太网链路连接到HMI主机和历史数据库。HMI主机通过RS-232串行链路连接到MTU。MTU通过RS-232或RS-485串行链路与RTU进行通信。MTU到RTU链路包含了一个专用的无线电链路。无线电链路通常用于远程连接设备而无需安装有线链路。HMI到MTU和MTU到RTU链路使用MODBUS RTU或MODBUS ASCII协议。图1所示的系统与MSU SCADA安全实验室中的控制系统相匹配,包括多个使用商业硬件和软件的工业控制系统以及来自各个关键行业的实验室规模的功能性物理进程。
图1所示的系统有许多改进型。当代系统通常用以太网链接替代串行链路,也可以用其他多种类型的无线链路和应用层协议。
本文介绍了一种用于MODBUS网络(MODBUS RTU和MODBUS ASCII)的基于串口和Snort的入侵检测和预防系统。MODBUS由于其在工业控制系统中的普及性而被选中用于初始开发。本文中描述的方法可以扩展到支持任何使用串行通信的其他通信协议。
- 对工业控制系统的攻击检测
四种对工业控制系统通信网络的攻击分别是拒绝服务、响应注入、命令注入和侦察攻击。
拒绝服务(DOS)攻击旨在破坏远程终端和主终端或人机界面之间的通信链路。断开主站终端或人机界面与远程终端之间的通信链路会破坏反馈控制回路,使过程控制不可行。DOS攻击有很多形式,许多DOS攻击都旨在淹没通信链路一端的硬件或软件,使其不再响应。其他DOS攻击则包括发送时间或格式不正确的网络数据包,引发远程设备网络堆栈中的错误,并导致远程设备无响应。
MODBUS设备包括了配置设置、允许操作员远程强制RTU进入监听模式、远程重启通信和远程清除RTU计数器和诊断寄存器等功能,攻击者可以利用这些功能来执行拒绝服务攻击。包含Snort规则的Quickdraw工具可以检测这些配置漏洞,使用MODBUS RTU/ASCII Snort MODBUS串行控制系统也可以防范这些威胁。
在Reaves等人讨论如何发现并连接连接用于形成MTU到RTU通信链路的专有SCADA无线电(如图1所示)。这种渗透使攻击者能够对工业控制系统执行拒绝服务攻击。用于演示此攻击的工业无线电将会使用载波侦听和撤销仲裁方案来管理从设备无线传输。如果单个设备不间断地传输,网络中的其他无线电从设备将退出并等待发送,直到攻击者停止发送。实际上,这种攻击可以阻止MTU和RTU之间的通信,并将导致HMI不能再使用新的物理过程测量更新数据并让操作员看到测量进程。没有入侵检测系统的话,操作员可能甚至都不知道系统正在被攻击。唯一的征兆是HMI输入似乎对受控过程没有影响。该攻击可以通过连续发送诸如无效的随机数据流或连续传输其他有效的MODBUS业务来执行。在任一情况下,Snort规则都可用于检测攻击。这样的规则可以是基于分组长度的,例如超过MODBUS/TCP最大长度或给定时间帧内的业务量限制。Quickdraw工具包含了一个用于检测非法长度的数据包的Snort规则。MODBUS RTU/ASCIISnort在连续传输超过300字节的情况下将会作为超时处理,并将捕获的流量作为TCP/IP数据包传输,以使Snort能够检测大量连续的数据流。
在MODBUS MTU和RTU设备中实现的网络堆栈可能不会复杂到能够接收格式错误的通信流量,然后导致某些设备在收到错误的数据包时将会自行重置或挂起。许多设备供应商已经认识到这个问题,现代设备通常也包含了更强大的网络堆栈。然而,现有控制系统中的许多串行系统并不支持畸形分组检查的传统设备。Quickdraw工具包含了用于检测网络上的非MODBUS/TCP流量的Snort规则。这些特定的规则会检查在MODBUS RTU/ASCII协议中未使用的字段,因此不适用于这些协议。不过上述的长度检查规则却可以用作最小畸形分组检查。另外,使用MODBUS RTU/ASCII协议可能会出现一些格式错误的数据包。例如,只有0-247范围内的地址可以被允许使用一个可以保存大于247的数字的字段。Snort规则可以检查具有非法地址的数据包。其他与之相关的检测格式错误的数据包规则也是可行的。
RTU和PLC控制算法通常对器件测量执行数学计算。当这种计算包括分割操作时,必须注意确保分母从不为零以避免除以零异常。当发生零异常时,许多RTU会停止正在运行的程序。程序停止后进程控制也会被停止直到程序重新启动。这里可以使用Snort规则来防止RTU线圈和寄存器被将导致除以零异常的值远程加载。这些规则根据受控程序进行定制,不能通用。
受到攻击的设备可能会在查询时通过持续报告忙碌来表现被攻击的症状。包括Snort规则的Quickdraw工具可用于检测过多的设备忙响应并确认异常代码响应。用于这些规则的字段也可以用于MODBUS RTU和MODBUS ASCII系统,因此这些字段也可用于检测串行MODBUS控制系统可能出现的相似症状。
响应注入攻击会将错误的响应注入到控制系统中。由于控制系统依赖于负责进行控制决策之前监控物理过程数据的反馈控制回路,因此保护传感器测量的完整性至关重要。黑客可以使用虚拟响应注入来使控制算法和操作人员做出错误的决策。
在MODBUS RTU或MODBUS ASCII网络中,MTU会定期查询RTU以读取和物理进程状态相关的寄存器。在正常操作中,RTU用取自所请求寄存器的数据响应MTU查询。如果对单个查询收到了两个响应,MTU会接受第一个响应并拒绝后续响应。可以利用前文描述的专有无线漏洞来窃听从MTU到RTU的通信,并向MTU通信数据包注入假的RTU数据。在发出查询后,此漏洞可用于注入伪造的MODBUS响应数据包。攻击者监视无线网络进行MODBUS查询。如果攻击者的伪造响应在有效响应之前到达MTU,MTU就会接受错误的响应。可以通过两种方式让伪造响应速度超过RTU。首先,攻击者可以利用MTU查询的周期性,并在MTU查询传输完成之前向队列插入一个错误的响应。在这种情况下可以通过开发Snort规则,在多个MODBUS响应在小到不足以接收两个响应的一段时间内,接收到两个相同地址相同功能码的响应的时候产生警告,若在正常查询期内出现了两个响应则表示表示受到了攻击。
在这种攻击的第二个版本中,因为攻击者已经通过前文讲述的的连续传输DOS攻击的方式终止了所有合法的RTU无线电的传输,所以会只有一个响应。攻击者在DOS流量的连续流中插入伪造的MODBUS响应。用于这些攻击的专有无线电网络使用了用于MTU到RTU通信和RTU到MTU通信的专用插槽的时隙通信方式。在DOS攻击期间,MTU将会继续查询RTU。在这种情况下,前文提到的Snort规则对大于合法MODBUS数据包大小的数据
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[27143],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。