电力系统网络中UDP端口的攻击与防护

2020-10-14 00:47丁琳
网络安全技术与应用 2020年10期
关键词:网络设备报文端口

◆丁琳

电力系统网络中UDP端口的攻击与防护

◆丁琳

(南京国电南自电网自动化有限公司 江苏 211100)

电力系统的网络环境越来越复杂,网络安全问题也越来越被大家所重视。本文从一次电力设备网络安全自检结果出发,以nmap为例阐述了对UDP端口的攻击原理,并基于此对UDP端口的网络安全防护进行研究,给出具体的防护要求、合理的防护方案以及在嵌入式系统中具有普遍意义和应用价值的几种实现方式。

电力系统;网络安全;UDP;nmap;端口攻击;端口防护

笔者从业于电力保护行业,电力系统作为国家关键基础设施的重要组成部分,其安全的重要性不言而喻[1]。随着网络融合、物联网、新基建等一系列建设发展要求的提出,电力系统的网络环境越来越复杂,越来越多的信息传输向通用协议靠拢,基于TCP/IP协议簇实现。而信息传输的便利伴随着安全的风险,应用通用的协议,便于设备接入和网络融合,但是同时也降低了攻击的难度,攻击者知道网络设备通信协议的实现细节,那么就能针对这些细节进行攻击。而传统的电力保护设备的网络安全防护能力往往很弱[2],究其原因有两点,一点是传统的电力保护设备在研发设计之初,由于单纯封闭的网络环境,往往没有考虑网络安全的问题;另一点是传统的电力保护设备上往往应用简化的操作系统甚至是不应用操作系统,那么本身的网络功能模块乃至网络安全模块就不完善。

随着近年来国际上工业控制网络的安全事件逐年上升[3],电力系统的网络安全越来越被大家所重视,这一点也体现在了一次次入网测试中客户对网络安全越来越多越来越具体的要求上。基于网络安全的行业客观要求以及产品用户基于自己理解提出的各项具体要求[4],各电力系统设备厂家在产品研发的过程中,对产品的网络安全会提前进行自检,而这个自检的过程其实就是模拟攻击,看产品是否能做好防护。笔者在一次产品自检的过程中,发现对UDP端口的扫描结果存在一些争议,深入研究后,得出一些结论,因此撰写本文,以nmap为例对UDP端口的攻击原理进行阐述,对扫描UDP端口的结果进行解析,并提出合理有效的防护要求和防护方案,同时给出部分具体的实现方式。

1 UDP端口攻击原理

我们知道,在网络通信协议公开通用的环境下,对网络上连接的各种网络设备可以进行端口扫描,判断出网络设备开放了哪些端口,并通过对这些端口的进一步访问,获取到网络设备运行的软件系统、应用服务的具体信息。收集这些信息是对网络设备进行渗透乃至攻击的第一步,而防止这些信息的外泄也就成为对抗网络攻击保证网络安全的第一步。因此我们通常把端口扫描结果作为网络设备网络安全性的一个重要指标[5],端口扫描也成为我们进行网络安全自检中的一项很重要的工作。目前对于tcp端口的扫描和攻击已经得到普遍关注和讨论[6-7],因此本文仅着重讨论UDP端口的扫描原理和防护策略。

我们能接触到很多种端口扫描工具或者叫网络嗅探工具,同时它们也是网络审计工具,因为它们的功能让它们在网络攻击和网络防护标准验证上都起着作用。它们的功能大同小异,区别无非是算法的不同进而体现在收集信息的能力不同,其中比较常用的一个是nmap,本文就以nmap为例来阐述对UDP端口进行扫描攻击的原理。

UDP协议是TCP/IP协议簇的一个子协议,详见RCF768标准。UDP协议与TCP协议同属于传输层协议,它的特点在于不建立连接直接传输数据,适用于传输性能要求高于传输质量要求的场合。UDP端口是UDP报文中的一个重要参数,可以看作是UDP传输中发送方和接收方的名片。在具体的协议规定中,UDP报文使用两个字节存放端口号,因此端口号的有效范围是从0到65535。nmap对网络设备的UDP端口进行扫描时,实际上就是对特定网段或者特定IP的整个端口范围进行扫描,对所有端口发送数据内容为空的UDP报文,然后根据收到回复报文的情况来确认被扫描网络设备UDP端口的使用情况。

由于UDP无连接传输的特性,若是端口未开启或者端口开启但没有收到合理的应用报文,UDP协议层不会给出任何回复,UDP协议层只会在应用层要求时发送报文。因此nmap的这个测试方案是不会收到UDP协议层的回复报文的。这个时候就需要提到TCP/IP协议簇的另一个子协议ICMP(Internet控制报文协议),该协议用于在IP主机之间传递控制消息,控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息,可以说是一个“错误侦测与回报机制”,其目的就是让我们能够检测网络的连线状况﹐也能确保连线的准确性[8]。ICMP协议通过不同的类别(Type)与代码(Code)来表示不同的状况。在我们当前讨论的案例中需要着重关注的是“端口不可达”类型,此时Type=3,Code=3。如果我们系统中的对应端口没有开放,则在接收到nmap发出的空的UDP报文时,ICMP协议就会回复这个“端口不可达”报文。

nmap判断端口的状态有open、close、filtered三种,在收到合法回复报文时,会判断端口为open状态,并继续进行进一步的嗅探,获取端口服务类型、版本等具体信息;在收到ICMP“端口不可达”报文时,会认为该端口是close的,不再进行进一步的攻击试探;在收到其它“不可到达”类型ICMP报文时,会认为该端口报文被过滤了;没有收到任何回复报文,则无法判断端口状态,显然不能认为端口是close的,那么给出的扫描结果就会是open|filtered,就是说无法确认端口是打开的没回复扫描报文还是被过滤掉了。表1简单给出了nmap判断端口状态的准则。

表1 nmap判断端口状态的准则

2 UDP端口安全防护

笔者遇到的案例中,就是对“open|filtered”状态的端口有争议,一方面可以认为这个端口没有被判定“open”,不会被攻击方获取到进一步的信息,算是防护成功;另一方面又可以认为这个端口没有被判定为“close”,是一个不确定的状态,还是有被继续攻击的可能性。笔者以为,第二种观点更合理,只要端口没有被判定为“close”而是以“open”、“open|filtered”甚至“filtered”的状态在扫描结果中列出,都有可能会被继续以其它方式进行嗅探或者攻击,甚至严格来说,被明确列出的端口信息,本身已经是一种信息泄漏。从攻击者的角度来看,如果有端口被他监测到filtered或者是open|filtered,那么他知道这个端口被做了特殊处理了,即使现在无法攻击这个端口,但是很明确的是,这个端口行为跟其它没有被使用的端口不一致,这个端口很大可能是被攻击设备正在使用或者准备使用的端口。攻击方可以结合其它的已知信息,比如市面上常用的操作系统可能开放的端口、第三方插件信息等,推论出被攻击设备的信息。在这种情况下攻击者会对这个端口进行长期监视,或者通过其它手段来获得端口的实际服务、访问方式等等,最终进行有效的攻击。因此我们在做UDP端口的防护工作时,要使得我们使用或者有可能使用的端口,在面对攻击时的表现与其它端口完全一致,这样才可以彻底保护设备的端口、服务、系统版本等具体信息。

我们在做端口防护时,最常采用的方式就是过滤,通过对某些特定端口报文进行拦截、丢弃,来达到保护该端口的目的。而根据前面分析的攻击原理和对安全要求的明晰,我们需要让我们使用或者可能使用的UDP端口与其它端口行为一致,也就是让嗅探工具判断这个端口也是close。那么解决方案就很明确了,就是要做到两点:过滤发送到这个端口的报文并丢弃;返回ICMP报文表示端口不可达。要实际做到这两点,在不同软件环境下的实现方式是不一样的。本文给出三个常见的场景如下:

(1)设备有操作系统,且操作系统有防火墙,且防火墙的机制做得比较好,在防火墙的规则中本身带了可配置项,可以通过设置防火墙的规则来实现过滤对应端口接收到的报文,并且发送ICMP报文表示端口不可达。

(2)设备有操作系统,且操作系统有防火墙,但是防火墙的机制比较简单,仅能够过滤报文,不能主动发送干扰报文,那么我们需要对防火墙模块进行完善,在针对UDP端口过滤报文的环节添加发送ICMP报文的操作。

(3)设备只有简单的操作系统,没有防火墙模块,也就是从报文过滤到发送ICMP报文都要由开发者实现。这种时候有两种实现方式,一种是在协议栈模块实现,在UDP报文处理过程中实现简单的防火墙功能;第二种是在链路层实现,也就是在报文接收的最前端,根据TCP/IP协议对报文进行解析,然后对目标类型报文进行过滤以及后续的ICMP报文发送操作。

另外笔者还遇到一类特殊的UDP端口,这种UDP端口属于操作系统本身使用的核心端口,比如调试用的端口,由于调试的特殊需求,比如存在调试协议栈的可能,调试部分模块的代码从原理上来说就应该独立于协议栈,也就绕过了防火墙。某些操作系统针对调试用的端口会实现一个独立的简化的协议层,借用协议规约,但是跟实际使用的协议层代码相独立。那么防火墙策略乃至协议层的处理都失效了,只能在它自有的代码模块或者链路层进行处理。

3 结束语

本文由一次网络安全自检出发,介绍了电力系统网络安全要求的行业背景,以nmap为例阐述了UDP端口的攻击原理,给出了合理的防护要求和防护方案,认为UDP端口的防护不能止于报文过滤,并基于此给出具有普遍适用性的几种实现方式。

[1]尹骞.电力行业工业控制网络的运维和安全研究[J].信息安全研究,2019.

[2]尹红旭,吕奋飞,刘念等.网络攻击影响电力基础设施的原因与实例分析[J].电力信息化,2013.

[3]郭庆来,辛蜀骏.由乌克兰停电事件看信息能源系统综合安全评估[J].电力工控系统自动化,2016.

[4]全国信息安全标准化技术委员会.GB/T22239-2019信息安全技术网络安全等级保护基本要求[S].北京:国家标准化管理委员会,2019.

[5]陈瑾.试论端口扫描与检测技术[J].网络安全技术与应用,2013.

[6]赵刚.端口和端口安全[J].安徽电子信息职业技术学院学报,2004.

[7]武装.网络端口扫描及对策研究[J].电子技术应用,2004.

[8]庄晓华.ICMP协议的应用及分析[J].济南职业学院学报,2011.

猜你喜欢
网络设备报文端口
基于J1939 协议多包报文的时序研究及应用
网络设备的安装与调试课程思政整体设计
网络设备故障分析与检测系统的需求分析
一种有源二端口网络参数计算方法
一种端口故障的解决方案
低轨星座短报文通信中的扩频信号二维快捕优化与实现
多按键情况下,单片机端口不足的解决方法
浅析反驳类报文要点
现有网络架构及迁移方案
地铁通信网络设备的维护