文献标识码:A
DOI:10.16157/j.issn.0258-7998.181173
中文引用格式:郭肖旺,闵晓霜,韩庆敏. 基于自适应深度检测的工控安全防护系统设计[J].电子技术应用,2019,45(1):85-87,91.
英文引用格式:Guo Xiaowang,Min Xiaoshuang,Han Qingmin. Design of industrial control safety protection system based on adaptive depth detection[J]. Application of Electronic Technique,2019,45(1):85-87,91.
0 引言
在现有技术中,工业控制系统的安全防护一般采取逐层防护的方式部署,即在攻击路径上的任意位置(如企业网入口、监控层网络入口、现场层网络入口)设置特定的防护措施,以阻断攻击,实现对安全等级最高的现场层的保护。传统防火墙是专家根据经验实现设定好过滤规则[1-2],以实现系统的安全防护,需要预先定义各种总线协议及防护规则,通过对每种应用服务建立专门的代理服务程序,但是只能按照事先定义好的过滤规则,在网络层对数据报进行监控与分析,只能提供单一层面的、静态的网络安全防护。其过滤规则是由网络安全专家根据经验和已有的知识设定,很难适应网络的千变万化[3-4]。虽然可以实现监控和控制应用层通信流的作用,但是其速度较慢,消耗过多的CPU资源,使得防护设备成为安全防护的瓶颈。尤其是在防护设备的CPU资源占用较多、接口流量过大时,处理速度过慢,安全防护设备成为响应瓶颈,对一切数据进行过滤分析导致速度过慢,数据交换有较大的时延,不适应工控系统的实时性要求,严重影响工控现场网络,甚至造成网络瘫痪,无法动态地适应现场情况,进而造成无法弥补的损失。
本文研究基于自适应深度检测的工控安全防护系统,所要解决的问题是克服现有技术的不足,提供一种自适应深度检测方法及系统,对安全防护设备的实际情况进行动态自适应分析,根据用户配置和防护设备的状态动态调整安全防护级别,避免造成设备瘫痪的情况。
1 系统设计
如图1所示,基于自适应深度检测的工控安全防护系统包含6个模块:网络连接管理模块、设备状态检测模块、工控协议数据包深度检测模块、自适应检测模块、用户配置子系统、日志管理子系统。本系统安装在工控前置机上工作,工控前置机安装在被保护设备的上游,需提前配置网络信息和保护规则。
(1)网络连接管理模块:包含统透明代理、加载网络驱动、网络监听服务、会话管理、内存池管理、接口管理等功能。
(2)设备状态检测模块:检测设备的状态,检测指标包括并发用户数、接口流量、内存使用、进程数、CPU占用。这些指标检测可用户配置,以使用户能够灵活地在不同的环境下配置需要监测的网络状态,给后续的自适应算法提供计算依据。
(3)工控协议数据包深度检测模块:实现协议识别、协议深度检测、协议过滤规则库管理等功能。
①协议识别是根据协议端口、动态端口检测等识别工控协议;
②协议深度检测模块即调用网络状态检测算法、工控协议数据包深度检测算法、自适应检测算法等完成协议的深度检测;
③协议过滤规则库管理:包括预置规则、用户自定义规则。
(4)自适应检测调整模块:根据用户配置的检测级别适应规则,自动按照系统状态进行深度检测的自适应调整。
(5)用户配置子系统:用户可以通过界面或者Console命令方式配置如下配置项:自适应算法检测指标(并发用户数、接口流量、内存使用、进程数、CPU占用);前置机设备网络接口、DNS配置;系统工作模式(代理模式、路由模式)配置;网络访问控制的IP、MAC、IP范围、子网掩码、阻断/通过;工控防护自适应级别配置;端口控制配置。
(6)日志管理子系统:日志审计部分记录系统运行日志、安全防护日志、访问日志、安全监控日志等,审计的内容包括协议检查、过滤、交换、阻断等内容,包括正常操作和异常操作,每一条审计日志至少应包括事件发生的日期、时间、源IP、目的IP、协议、事件描述和结果。
1.1 设备状态检测模块
设备状态检测模块用于根据用户配置的检测指标,提供不同指标的检测信息,用户能够灵活地在不同的环境下配置需要监测的网络状态,以给后续的自适应算法提供计算依据。检测指标包括:响应时间、并发用户数、吞吐量、服务器指标(内存使用、进程数、CPU占用)。
算法步骤如下:
(1)响应时间,检测对请求作出响应所需要的时间;
(2)并发用户数,检测系统并发连接的数量;
(3)吞吐量,检测系统吞吐量,记录服务器承受的压力和系统的负载能力;
(4)检测服务器或操作系统性能的一些数据指标,如使用内存数、进程时间等。
1.2 工控协议数据包深度检测模块
深度检测分为不同的检测级别,从0~5共6个级别,级别0为最低。定义如下:
0级:基于IP、MAC地址的网络访问控制;
1级:流量控制、端口控制;
2级:协议控制、完整性检查、合法性检查等;
3级:功能码控制、参数控制;
4级:预置规则库匹配控制;
5级:参数范围自定义设置,更加深入地匹配协议的每个控制位和数据位,用户可以设定具体到协议每个数据位的数据保护规则。
本模块完成不同工控协议的数据包深度检测,检测过程如下:
(1)启动前置,捕获每一个经过它的网络数据包;
(2)根据检测级别,获取匹配的检测顺序,该检测顺序按照级别从低到高,不允许跨级检测;
(3)检测网络访问控制,根据规则过滤;
(4)根据网络数据包端口号过滤;
(5)识别协议,网络数据包格式符合协议完整性检查、合法性检查等规则,过滤出数据包;
(6)根据对应的预置工控协议功能码控制、参数控制规则,检测协议中的各个数据位;
(7)根据用户配置的自定义规则,检测协议中的各个数据位。
1.3 自适应检测调整模块
自适应检测调整模块用于根据网络状态进行自动调整,调整流程如下:
(1)调用网络状态检测算法,获得网络状态数据结构。
(2)根据网络状态及用户配置的检测级别适应规则自动调整深度检测算法的检测级别。默认状态下,系统按照最高深度检测级别工作,自适应算法按照网络状态逐级降级调整,网络并发最大数量默认500,超过500后系统降级深度检查;用户根据网络拥塞状态、流量控制信息和系统信息等配置降级工作规则。
2 系统工作流程
本系统利用工控前置机进行工作,工控前置机设置在工业网络和被保护设备网段之间,外部设备向被保护设备发送数据包,数据包被前置机截获,系统工作流程如图2所示。
2.1 深度检测模块
嵌入在前置机设备内的自适应深度检查方法处理所述数据包,按照0~5级控制顺序,逐级检测数据包是否合法:
(1)判断该数据包的IP地址、MAC地址是否合法,合法则进入下一步,不合法则丢弃,并记录日志;
(2)解析数据包得到数据包的源端口、目的端口,判断端口是否合法,合法进入下一步,不合法丢弃,并记录日志;
(3)判断数据包的协议类型,根据用户配置的协议控制要求,判断该协议数据包的完整性、合法性,合法进入下一步,不合法丢弃,并记录日志;
(4)根据协议类型,判断该协议中某些字段,如功能码控制、参数控制等是否合法,合法进入下一步,不合法丢弃并记录日志;
(5)根据协议类型匹配预置规则库匹配,合法进入下一步,不合法丢弃并记录日志;
(6)对用户自定义规则进行批评,合法进入下一步,不合法则丢弃并记录日志。
2.2 自适应检测模块
设备状态检测模块周期性运行检查设备状态,每5 s运行一次,检测设备状态包括并发用户数、接口流量、内存使用、进程数、CPU占用,检测到的结果提供给自适应检测模块。
自适应检测模块接收到设备检测模块检测到的数据,根据用户配置到触发条件,动态调节深度检测级别:
(1)设备状态为:并发用户数500、接口流量30 MB/s、内存使用60%、进程数50、CPU占用70%;
(2)用户配置可自适应动态调整触发为真;
(3)假设用户配置的触发条件为:
①并发用户数<500、接口流量<20 MB/s、内存使用
<50%、进程数<50、CPU占用<50%时,第二步深度检测为完全检测,即2.1节(1)~(6)完全步骤检测;
②接口流量20~50 MB/s、CPU占用50%~80%时, 第二步深度检测为不完全检测,即2.1节(1)~(5)不完全步骤检测,降级减少用户自定义规则匹配部分;
③接口流量50~100 MB/s、CPU占用80%~90%时深度检测基本降级,第二步工作步骤设置为2.1节(1)~(4);
④接口流量>100 MB/s、CPU大于95%时,采用不检查机制,完全放行,或完全阻塞;
(4)根据用户配置条件,系统根据当时的设备状态,动态调整第二步工作步骤为2.1节(1)~(5)不完全检测。
这样系统处理速度加快,待系统恢复正常时,自适应检测算法会再一次调整到完全检测状态,防止系统因为某一时段过大的数据流量或设备高负载时造成设备宕机,引起系统瘫痪。
(5)在用户任务网络不够安全时,可设置可自适应动态调整触发为假,系统不再进行自适应深度调整,则工作方式与一般工控防火墙一致。
3 测试对比
在不使用本系统的工控前置机中,采用透明代理防火墙工作方式保护现场工控网络,该前置机为内存4 GB的1U设备,安装一般防火墙软件,在防火墙软件中设定网络连接数最大500,接口流量最大为100 Mb/s;测试采用2台PC,两台PC仿真客户端与服务器之间的TCP通信过程。在保持旧的通信会话联接仍有效的基础上,以批量方式增加新的通信会话过程,通过调整批量的大小,测试装有一般防火墙软件前置机能支持的有效TCP并发连接速率,当并发数量在每秒200左右时出现延迟,延迟最大为0.046 s,并发数量超过300每秒时,出现延迟最大为0.53 s,严重影响现场工作;
采用本系统的前置机进行测试,前置机为内存4 GB的1U设备,测试方法相同。此时用户设置深度检测规则为200<并发用户数<300时,采用自适应深度调整,取消级别5的检测;在300<并发用户数<400时,取消级别4的检测。测试时,在每秒220左右连接时,系统出现延迟,系统自适应深度检测级别调整后,延迟消失;继续增加并发数量超过320每秒时,再次出现延迟,延迟最大为0.025 s,系统再次自适应调整,延迟消失;降低并发连接数到270时,系统自动调整添加级别4的检测。在整个过程中,系统不会出现延迟越来越严重的想象,不会造成系统瘫痪,且如果用户关闭自适应深度调整,本系统的工作方式将与防火墙等防护系统的工作方式一致,不会形成因自动调整而降低安全策略的情况。
4 总结
本文研究了基于自适应深度检测的工控安全防护系统,并提出了自适应深度检测的相关方法。采用对比测试的方法比较了传统防火墙和本系统的测试结果,证明本研究可以提供一种自适应深度检测方法及系统,对安全防护设备的实际情况进行动态自适应分析,避免造成设备瘫痪的情况。
参考文献
[1] STOUFFER K,FALCO J,SCARFONE K.Guide to industrial control systems(ICS) security[J].NIST Special Publication,2011,800 (82):1-2.
[2] GAO W,MORRIS T H.On cyber attacks and signature based intrusion detection for MODBUS based industrial control systems[J].Journal of Digital Forensics,Security and Law,2014,9(1):37-56.
[3] 谭湘.基于防火墙的企业网络安全设计与实现[D].西安:西安电子科技大学,2013.
[4] 郝玉洁.深度包检测主机防火墙的研究与实现[D].成都:电子科技大学,2010.
作者信息:
郭肖旺,闵晓霜,韩庆敏
(中国电子信息产业集团有限公司第六研究所,北京100083)