论文部分内容阅读
摘 要:本文结合经典的中间人网络攻击方式与工业控制系统中常用的Modbus协议在现实应用场景中的网络状况,介绍了在利用ARP协议实施MAC地址欺骗的前提下,实现针对Modbus TCP协议数据传输与控制的有效攻击的技术方法以及实现流程,对于结合传统网络安全技术与现代工业控制系统特点,实现工业控制系统安全有很好的借鉴意义。
关键词:工业控制系统;中间人攻击;ARP欺骗;Modbus TCP协议
中图分类号: TM921.5 文献标识码:A DOI:10.12296/j.2096-3475.2021.07.087
一 、引言
工业控制系统(ICS)是指用于操作、控制、辅助控制自动化工业生产过程的设备、系统、网络以及控制器的集合[1]。近年来,工业控制系统向“互联网化”不断推进,其从孤立封闭的系统发展为开放交互的标准系统,致使工控系统信息安全风险日益增加。工业控制网络不再独立与封闭,越来越开放和互联,广泛地采用接口技术,实现数据的交互,其所面临的安全风险也已由内部扩展到外部,工业控制系统的网络安全形势日益严峻。
在此种大形势下,电力系统作为工业控制系统中最为重要的领域之一,维护电力工业控制网络系统(简称电力网络)的安全性,也就成为工业控制系统网络安全测试的关键领域。Modbus协议是电力工控行业最常见的协议之一,针对Modbus协议开展攻击技术测试研究,对于加强电力工控行业的安全性具有很好的示范意义。
而在现实场景中,攻击者往往难以直接接触到电力工控设备,无法直接对设备开展漏洞攻击或协议攻击,在此类场景下,如何在安全测试者掌握较少的网络权限环境,探索开展远程安全测试技术的技术方法,实现对电力设备的攻击测试,本文着重探讨了在基于工业控制协议Modbus TCP通信条件下,处于网络中间人攻击位置下,利用ARP欺骗开展工控协议内容篡改的原理与技术实现,并设计了试验环境与系统来测试实现了攻击过程。
二、 Modbus TCP协议
Modbus协议1978年由施耐德制定,是应用于电子控制器上的一种通用语言,用以实现控制器相互之间、控制器经由网络(例如以太网)和其它设备之间的通信,支持传统的 RS-232-/422/485设备和以太网设备。到1996 年施耐德公司推出了基于TCP/IP的Modbus协议即Modbus TCP协议,该协议成本低廉,适用于各种应用的解决方案,是一种高效的控制方案解决标准,已成为自动化设备最广泛支持的协议[2]。作为工业控制领域常用的通信协议Modbus,在工业控制领域显示了巨大的影响力,由于其简单而精致的结构,在电力系统中也得到了广泛的应用[3]。
Modbus TCP协议属于Modbus协议的一种,标准的Modbus协议的报文(或帧)的基本格式是:表头 + 功能码 + 数据区 + 校验码,校验码的存在主要是为了确保Modbus协议数据传输的安全可靠,而在Modbus TCP中,这种保障由TCP/IP协议本身的安全校验机制就可以完成,因此Modbus TCP去掉了CRC校验的部分,其数据帧可分为两部分:ADU=MBAP+PDU = MBAP + 功能碼 + 数据域,MBAP 7byte,功能码1byte,数据域不确定,由具体功能决定。
由此可以看出,Modbus协议本身在传输中的安全校验主要依托于TCP/IP协议本身,而TCP/IP的校验和机制都是公开的,任何掌握TCP之上的应用层协议内容的发送方,都可以构造符合校验机制的TCP/IP数据包传送给接收方,从而使得攻击者在劫持数据后的伪造封装变得没有困难。
三、 中间人攻击
中间人攻击(Man-in-the-Middle Attack)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。
随着计算机通信网技术的不断发展,中间人攻击也越来越多样化。最初,攻击者只要将网卡设为混杂模式,伪装成代理服务器监听特定的流量就可以实现攻击,这是因为很多通信协议都是以明文来进行传输的,如HTTP、FTP、Telnet等。后来,随着交换机代替集线器,简单的嗅探攻击已经不能成功,必须先进行ARP欺骗才行。
ARP欺骗的核心就是向被攻击者发送伪造的IP-MAC映射。假设主机C为实施ARP欺骗的攻击者,其目的是截获主机B和主机A之间的通信数据。C先向B发送ARP应答包,其中源IP地址为A的IP地址,但是源MAC地址却是主机C的MAC地址。主机B收到该ARP应答后,将根据新的IP地址与MAC映射对更新ARP缓存。这以后当B给A发送数据包时,目标MAC地址将使用C的MAC地址,因此交换机根据C的MAC地址就将数据包转发到攻击者C所在的端口。同理,攻击者C发送ARP应答使主机A确信主机B的MAC地址为C的MAC地址。在间歇的发送虚假ARP应答的同时,攻击者C将被劫持的数据包转发到正确的目的主机,这时攻击者对主机A和B来说是完全透明的,通信不会出现异常,但实际上数据包却被C非法截获,攻击者C成为了“中间人”[4]。 四、攻击系统的设计与实现
1.实验环境设计
考虑到实现中间人环境的网络目标环境,简化相关的工控系统与环节,设置一台PC机作为工业控制上位机,一台使用Modbus TCP协议通信的工业控制设备,中间用一个交换机作为网络连接设备,一台接入同一交换机下的PC机作为攻击机。试验环境如下图所示:
2.试验系统设计与实现
(1)系统总体结构
由于对上位机和PLC之间的通信进行劫持攻击,为了便于测试开展,测试系统设计了用户可配置输入的接口,便于在不同的定制化环境下开展测试研究,同时综合利用Winpcap底层驱动库进行底层抓包和发包,通过ARP协议包伪造欺骗和TCP/IP数据重定向分析两个线程的处理,一方面将上位机和PLC之间的通信劫持到攻击机,一方面对TCP/IP以及封装在TCP/IP之上的Modbus协议进行修改重组,完成对上位机和PLC组成的电力工控系统的攻击测试,系统总体结构如图2所示:
用户通过配置输入解析获取外部给予的IP地址、MAC地址、协议类型等各种参数配置,在此配置下,绑定相应目标机网卡,进行数据劫持。其中底层数据包的捕获依赖于Winpcap底层的NDIS动态库,通过底层的包过滤驱动程序将相应的数据包过滤抓取到本地缓冲区后,软件利用网络数据抓包接口进行以太网数据的抓包分析,同时利用Winpcap底层的网络数据发送接口,通过伪造ARP协议包并向目标进行发送,完成ARP协议欺骗的效果,综合利用抓取欺骗过来的数据包的转发,实现TCP/IP数据重定向,将目标机与工业控控设备之间的数据重定向到本地进行转发,实现数据的劫持。在此之上,对TCP/IP协议之上的Modbus协议规格进行分析,从而对符合条件的数据进行修改替换。整个系统按以上设计可以分为主程序、ARP欺骗模块和数据分析处理模块三个主要部分。
(2)系统主程序流程
首先对软件中使用的部分变量参数进行预设置与准备工作,然后通过处理输入参数获得外部指定设置的参数,包括发起攻击的IP和MAC(即本机)、目标IP和MAC(即上位机)、网关IP和MAC(即工控设备)以及IEC104协议的端口号、协议种类(遥信/遥测)、地址点位、替换数值等。而后测试网卡是否能够正常打开、设置混杂模式并创建ARP欺骗处理接口线程和数据劫持修改处理接口线程,最后在线程出错退出的情况下,释放网卡等相关资源。
(3) ARP欺骗流程
流程如图所示,先对ARP欺骗中使用的部分变量参数进行预设置与初始化准备工作,然后通过死循环判定:欺骗数据包是否发送足够多次,若是则结束ARP欺骗流程,否则判断是否已接到外部停止欺骗信号,若是则结束ARP欺骗流程,否则修改ARP数据包MAC地址欺骗网关攻击机为目标机,并向网关发送修改后的ARP数据包,然后判断发送数据包是否出错,若出错则打印出错信息并退出ARP欺骗,否则修改ARP数据包MAC地址欺骗目标机攻击机为网关,并向目标机发送修改后的ARP数据包,然后判断发送数據包是否出错,若出错则打印出错信息并退出ARP欺骗,否则返回死循环之初开始判断发送欺骗包次数,完成整个欺骗流程。
(4) 数据分析处理流程
用户通过配置输入解析获取外部给予的IP地址、MAC地址、协议类型等各种参数配置,在此配置下,绑定相应目标机网卡,进行数据劫持。其中底层数据包的捕获依赖于Winpcap底层的NDIS动态库,通过底层的包过滤驱动程序将相应的数据包过滤抓取到本地缓冲区后,软件利用网络数据抓包接口进行以太网数据的抓包分析,同时利用Winpcap底层的网络数据发送接口,通过伪造ARP协议包并向目标进行发送,完成ARP协议欺骗的效果,综合利用抓取欺骗过来的数据包的转发,实现TCP/IP数据重定向,将目标机与工业控控设备之间的数据重定向到本地进行转发,实现数据的劫持。在此之上,对TCP/IP协议之上的Modbus协议规格进行分析,从而对符合条件的数据进行修改替换。
(5) 试验结果
为了验证上述软件的正常运行,研究人员针对IP地址为192.168.1.11的Modbus TCP工控通信机和IP地址为192.168.1.100的上位机之间的通信数据进行了劫持,将原本回应给上位机的数据包最后一位0xf9改为0x08,即实现了将开关线圈状态True修改为False。
五、结语
本文通过研究中间人攻击技术以及Modbus协议特点,针对电力工控环境下的Modbus TCP协议传输条件下,攻击者位于上位机和电力设备网络之间的场景,提出了针对上位机和电力工控设备之间的Modbus TCP协议传输进行数据劫持篡改的攻击测试思路,并构建了模拟的试验环境网络,利用Winpcap作为底层网络数据捕获和伪造支撑基础,设计程序流程并编程实现了针对Modbus TCP协议的ARP欺骗劫持攻击测试流程,从实践结果看,效果良好,从研究和测试实践结果来看,Modbus TCP协议在传输中由于缺少身份认证等安全机制,易使系统遭受ARP欺骗攻击。
参考文献:
[1]Wilhiot K.Who’s really attacking your ICS equipment[R].Silicon Valley:Trend Micro Incorporated,2013
[2]邓欣茹,丁建兴,杨翼,邢建春.Modbus/Tcp工业以太网的现状与发展[J].工业控制计算机,2004年第9期,14-16
[3]张海源,任春梅,张冉.Modbus协议在电力系统中的应用[J].继电器,2007年第35卷17期,31-34
[4]杨萍,李杰.基于ARP欺骗的中间人攻击的分析与研究[J].计算机时代,2007年第5期,26-27
基金项目:四川省科技计划项目资助(2020YFG0202)“基于电力网络高性能推演的攻防辅助平台”
(成都锦江电子系统工程有限公司 四川成都 610051)
关键词:工业控制系统;中间人攻击;ARP欺骗;Modbus TCP协议
中图分类号: TM921.5 文献标识码:A DOI:10.12296/j.2096-3475.2021.07.087
一 、引言
工业控制系统(ICS)是指用于操作、控制、辅助控制自动化工业生产过程的设备、系统、网络以及控制器的集合[1]。近年来,工业控制系统向“互联网化”不断推进,其从孤立封闭的系统发展为开放交互的标准系统,致使工控系统信息安全风险日益增加。工业控制网络不再独立与封闭,越来越开放和互联,广泛地采用接口技术,实现数据的交互,其所面临的安全风险也已由内部扩展到外部,工业控制系统的网络安全形势日益严峻。
在此种大形势下,电力系统作为工业控制系统中最为重要的领域之一,维护电力工业控制网络系统(简称电力网络)的安全性,也就成为工业控制系统网络安全测试的关键领域。Modbus协议是电力工控行业最常见的协议之一,针对Modbus协议开展攻击技术测试研究,对于加强电力工控行业的安全性具有很好的示范意义。
而在现实场景中,攻击者往往难以直接接触到电力工控设备,无法直接对设备开展漏洞攻击或协议攻击,在此类场景下,如何在安全测试者掌握较少的网络权限环境,探索开展远程安全测试技术的技术方法,实现对电力设备的攻击测试,本文着重探讨了在基于工业控制协议Modbus TCP通信条件下,处于网络中间人攻击位置下,利用ARP欺骗开展工控协议内容篡改的原理与技术实现,并设计了试验环境与系统来测试实现了攻击过程。
二、 Modbus TCP协议
Modbus协议1978年由施耐德制定,是应用于电子控制器上的一种通用语言,用以实现控制器相互之间、控制器经由网络(例如以太网)和其它设备之间的通信,支持传统的 RS-232-/422/485设备和以太网设备。到1996 年施耐德公司推出了基于TCP/IP的Modbus协议即Modbus TCP协议,该协议成本低廉,适用于各种应用的解决方案,是一种高效的控制方案解决标准,已成为自动化设备最广泛支持的协议[2]。作为工业控制领域常用的通信协议Modbus,在工业控制领域显示了巨大的影响力,由于其简单而精致的结构,在电力系统中也得到了广泛的应用[3]。
Modbus TCP协议属于Modbus协议的一种,标准的Modbus协议的报文(或帧)的基本格式是:表头 + 功能码 + 数据区 + 校验码,校验码的存在主要是为了确保Modbus协议数据传输的安全可靠,而在Modbus TCP中,这种保障由TCP/IP协议本身的安全校验机制就可以完成,因此Modbus TCP去掉了CRC校验的部分,其数据帧可分为两部分:ADU=MBAP+PDU = MBAP + 功能碼 + 数据域,MBAP 7byte,功能码1byte,数据域不确定,由具体功能决定。
由此可以看出,Modbus协议本身在传输中的安全校验主要依托于TCP/IP协议本身,而TCP/IP的校验和机制都是公开的,任何掌握TCP之上的应用层协议内容的发送方,都可以构造符合校验机制的TCP/IP数据包传送给接收方,从而使得攻击者在劫持数据后的伪造封装变得没有困难。
三、 中间人攻击
中间人攻击(Man-in-the-Middle Attack)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。
随着计算机通信网技术的不断发展,中间人攻击也越来越多样化。最初,攻击者只要将网卡设为混杂模式,伪装成代理服务器监听特定的流量就可以实现攻击,这是因为很多通信协议都是以明文来进行传输的,如HTTP、FTP、Telnet等。后来,随着交换机代替集线器,简单的嗅探攻击已经不能成功,必须先进行ARP欺骗才行。
ARP欺骗的核心就是向被攻击者发送伪造的IP-MAC映射。假设主机C为实施ARP欺骗的攻击者,其目的是截获主机B和主机A之间的通信数据。C先向B发送ARP应答包,其中源IP地址为A的IP地址,但是源MAC地址却是主机C的MAC地址。主机B收到该ARP应答后,将根据新的IP地址与MAC映射对更新ARP缓存。这以后当B给A发送数据包时,目标MAC地址将使用C的MAC地址,因此交换机根据C的MAC地址就将数据包转发到攻击者C所在的端口。同理,攻击者C发送ARP应答使主机A确信主机B的MAC地址为C的MAC地址。在间歇的发送虚假ARP应答的同时,攻击者C将被劫持的数据包转发到正确的目的主机,这时攻击者对主机A和B来说是完全透明的,通信不会出现异常,但实际上数据包却被C非法截获,攻击者C成为了“中间人”[4]。 四、攻击系统的设计与实现
1.实验环境设计
考虑到实现中间人环境的网络目标环境,简化相关的工控系统与环节,设置一台PC机作为工业控制上位机,一台使用Modbus TCP协议通信的工业控制设备,中间用一个交换机作为网络连接设备,一台接入同一交换机下的PC机作为攻击机。试验环境如下图所示:
2.试验系统设计与实现
(1)系统总体结构
由于对上位机和PLC之间的通信进行劫持攻击,为了便于测试开展,测试系统设计了用户可配置输入的接口,便于在不同的定制化环境下开展测试研究,同时综合利用Winpcap底层驱动库进行底层抓包和发包,通过ARP协议包伪造欺骗和TCP/IP数据重定向分析两个线程的处理,一方面将上位机和PLC之间的通信劫持到攻击机,一方面对TCP/IP以及封装在TCP/IP之上的Modbus协议进行修改重组,完成对上位机和PLC组成的电力工控系统的攻击测试,系统总体结构如图2所示:
用户通过配置输入解析获取外部给予的IP地址、MAC地址、协议类型等各种参数配置,在此配置下,绑定相应目标机网卡,进行数据劫持。其中底层数据包的捕获依赖于Winpcap底层的NDIS动态库,通过底层的包过滤驱动程序将相应的数据包过滤抓取到本地缓冲区后,软件利用网络数据抓包接口进行以太网数据的抓包分析,同时利用Winpcap底层的网络数据发送接口,通过伪造ARP协议包并向目标进行发送,完成ARP协议欺骗的效果,综合利用抓取欺骗过来的数据包的转发,实现TCP/IP数据重定向,将目标机与工业控控设备之间的数据重定向到本地进行转发,实现数据的劫持。在此之上,对TCP/IP协议之上的Modbus协议规格进行分析,从而对符合条件的数据进行修改替换。整个系统按以上设计可以分为主程序、ARP欺骗模块和数据分析处理模块三个主要部分。
(2)系统主程序流程
首先对软件中使用的部分变量参数进行预设置与准备工作,然后通过处理输入参数获得外部指定设置的参数,包括发起攻击的IP和MAC(即本机)、目标IP和MAC(即上位机)、网关IP和MAC(即工控设备)以及IEC104协议的端口号、协议种类(遥信/遥测)、地址点位、替换数值等。而后测试网卡是否能够正常打开、设置混杂模式并创建ARP欺骗处理接口线程和数据劫持修改处理接口线程,最后在线程出错退出的情况下,释放网卡等相关资源。
(3) ARP欺骗流程
流程如图所示,先对ARP欺骗中使用的部分变量参数进行预设置与初始化准备工作,然后通过死循环判定:欺骗数据包是否发送足够多次,若是则结束ARP欺骗流程,否则判断是否已接到外部停止欺骗信号,若是则结束ARP欺骗流程,否则修改ARP数据包MAC地址欺骗网关攻击机为目标机,并向网关发送修改后的ARP数据包,然后判断发送数据包是否出错,若出错则打印出错信息并退出ARP欺骗,否则修改ARP数据包MAC地址欺骗目标机攻击机为网关,并向目标机发送修改后的ARP数据包,然后判断发送数據包是否出错,若出错则打印出错信息并退出ARP欺骗,否则返回死循环之初开始判断发送欺骗包次数,完成整个欺骗流程。
(4) 数据分析处理流程
用户通过配置输入解析获取外部给予的IP地址、MAC地址、协议类型等各种参数配置,在此配置下,绑定相应目标机网卡,进行数据劫持。其中底层数据包的捕获依赖于Winpcap底层的NDIS动态库,通过底层的包过滤驱动程序将相应的数据包过滤抓取到本地缓冲区后,软件利用网络数据抓包接口进行以太网数据的抓包分析,同时利用Winpcap底层的网络数据发送接口,通过伪造ARP协议包并向目标进行发送,完成ARP协议欺骗的效果,综合利用抓取欺骗过来的数据包的转发,实现TCP/IP数据重定向,将目标机与工业控控设备之间的数据重定向到本地进行转发,实现数据的劫持。在此之上,对TCP/IP协议之上的Modbus协议规格进行分析,从而对符合条件的数据进行修改替换。
(5) 试验结果
为了验证上述软件的正常运行,研究人员针对IP地址为192.168.1.11的Modbus TCP工控通信机和IP地址为192.168.1.100的上位机之间的通信数据进行了劫持,将原本回应给上位机的数据包最后一位0xf9改为0x08,即实现了将开关线圈状态True修改为False。
五、结语
本文通过研究中间人攻击技术以及Modbus协议特点,针对电力工控环境下的Modbus TCP协议传输条件下,攻击者位于上位机和电力设备网络之间的场景,提出了针对上位机和电力工控设备之间的Modbus TCP协议传输进行数据劫持篡改的攻击测试思路,并构建了模拟的试验环境网络,利用Winpcap作为底层网络数据捕获和伪造支撑基础,设计程序流程并编程实现了针对Modbus TCP协议的ARP欺骗劫持攻击测试流程,从实践结果看,效果良好,从研究和测试实践结果来看,Modbus TCP协议在传输中由于缺少身份认证等安全机制,易使系统遭受ARP欺骗攻击。
参考文献:
[1]Wilhiot K.Who’s really attacking your ICS equipment[R].Silicon Valley:Trend Micro Incorporated,2013
[2]邓欣茹,丁建兴,杨翼,邢建春.Modbus/Tcp工业以太网的现状与发展[J].工业控制计算机,2004年第9期,14-16
[3]张海源,任春梅,张冉.Modbus协议在电力系统中的应用[J].继电器,2007年第35卷17期,31-34
[4]杨萍,李杰.基于ARP欺骗的中间人攻击的分析与研究[J].计算机时代,2007年第5期,26-27
基金项目:四川省科技计划项目资助(2020YFG0202)“基于电力网络高性能推演的攻防辅助平台”
(成都锦江电子系统工程有限公司 四川成都 610051)