基于流量的工业控制系统入侵检测技术
扫描二维码
随时随地手机看文章
引 言
工业控制系统(Industrial Control System,ICS)指能够对工业生产起到调控作用的系统,包含监视控制与数据采集系统(SCADA)、分布式控制系统(DCS)及其他工业有关部门和生产现场的小型控制系统(PLC)等,是电力、能源、化工等国家关键基础设施的核心 [1-2]。
互联与共享成为工业控制系统新的发展方向,工控系统与企业办公网和互联网逐渐相连,工业控制网络环境变得越来越开放。而由于传统工业控制系统本身缺乏对网络信息安全的保障,缺乏专门的安全防御措施 [3]。近年来,工业控制系统新型攻击手段层出不穷,尤其是震网(Stuxnet)病毒事件发生后,鉴于工业控制系统的安全直接关系到国家关键基础设施的安危,影响社会稳定,因此引起各国高度重视。
工业控制系统需从设备安全和信息数据安全两方面保障系统稳定运行,从 ICS 自身结构看,由于通信协议相对简单、操作系统和软件没有相应的防护措施,这些漏洞都可被利用进行破坏性的操作 ;从外部网络环境看,ICS 广泛使用 TCP/IP等通信协议,导致传统的 IT系统攻击行为蔓延到工控网络, 致使工业控制系统面临更大的安全威胁 [4]。
1 工业控制系统入侵检测技术发展现状
目前,工业控制入侵检测系统(IDS)是依据安全架构和策略进行设计,并对系统进行安全漏洞扫描、安全配置加强、身份认证处理,同时采用访问控制、渗透检测等技术进行安全防御,保障工控系统安全稳定运行 [5]。入侵检测是一种主动的安全防护技术,通过对系统通信行为的实时监视、分析, 以检测出异常的攻击行为操作,并在攻击行为产生危害前进行拦截、报警、系统恢复等操作 [6]。
当前,已经有很多面向 ICS 的安全产品,如杀毒软件、工控火墙、网闸等。但安全产品的研发需考虑 ICS 的特殊性, 若直接使用IT 领域原有的产品,不但达不到期望的效果,反而会带来新的适应性问题。
2 基于流量的入侵检测设计
目前广泛应用的 ICS 入侵检测主要采用基于特征和基于异常两种原理。基于特征的检测技术类似杀毒软件,对于已发生的攻击方式检测效率较高,但无法识别新类型的攻击方式 ;基于异常的入侵检测与攻击方式无关,因此具有更高的安全性[7]。但由于技术发展尚不成熟,误报率和漏报率相比前者要高。对于传统的 TCP/IP 网络,入侵检测系统是一个研究成熟的领域,但由于通信协议和工业安全要求的特殊性,传统的入侵检测系统不能提供针对工业控制系统攻击的有效安全防护。以 SCADA 系统为例,最近发布了一些可检测针对SCADA 协议的攻击的规则和预程序模型,利用这些规则的IDS 能够确定基于单包的攻击。然而,针对 SCADA 的攻击不仅基于单包,需要一个攻击的关联机制。本文提出了一种基于流量的入侵检测方法,其原理是根据通过数据包的 IP 地址和端口号来确定不同的通信双方,从而可更加准确地检测通过的数据包,提高入侵检测系统的准确性。
2.1 入侵检测技术的原理
实际的工业生产基本都具有周期性特点,这也是 ICS 网络跟传统 IT 网络之间的区别。IT 网络由于使用者的随机性很强,比如在某个办公网内,不能保证各时间段内使用人数不变, 因此网络流量呈现出不确定的特点 ;但针对工业控制系统通信网络来说,由于生产流程需预先设定,因此周期性特点较突出, 而这也是将流量特征作为检测特征的原因。
工业控制系统通信网络具有周期性特点,这是基于流量特征的入侵检测模块的适用条件。基于流量特征的入侵检测模块选取的检测特征是流量特征,具体来说即某个时间段内, 由IP 地址和端口号确定通信双方通过的数据包数量。流量特征的选取意味着要求工业控制系统通信网络需要具有周期性特点假设工业控制系统通信网络不具有周期性特点,即任意时间段内,由 IP 地址和端口号确定的通信双方之间通过的数据包数量是随机的,将会导致流量特征失效,无法使用流量特征作为入侵模块的检测特征。
根据工业控制系统环境中通信的周期性特点,将实际的通信流量和时间的对应关系作为一种检测特征,根据生产工艺特征,计算出不同时间段内通过流量的上限阈值和下限阈值。检测过程中,若某个时间段内出现数值不在上、下阈值范围内的情况则报警。
2.2 入侵检测流程
本文提出了一种基于流量特征的入侵检测方法,先记录下控制端和执行端的 IP 和端口号等,再处理数据,将流量和时间对应的特征建立向量集合,最后进行入侵检测 ;若发现有未知 IP 地址或端口进行通信,且某个时间段内的通信流量大于或小于学习阶段的阈值,则报警。这种方法能极大地提高系统的通信安全性,具体流程如图 1 所示。
图1 基于流量统计的入侵检测流程图
当系统数据包经过基于流量特征的入侵检测模块时,检测模块会统计对应时间段内通过的数据包数量,并跟预先设定的对应数据包数量做比对,若检测合法则令其通过,否则报警。
该流程为基于流量特征的入侵检测流程,其中数据包截取字段后需要处理成(YIP,Yd,DIP,Dd,T,N)向量格式。YIP是通信数据包的源 IP 地址 ;Yd为通信数据包源端口;DIP为通信数据包目的IP 地址 ;Dd为通信数据包目的端口;T 为时刻值 ; N 为T 时间段内通过的数据包数量。超过统计合法数据包范围, 判断为通信异常,这代表攻击者通过对服务器端发送大量的请求数据包使得服务器端无法正常响应。
2.3 检测技术的应用
假设主设备 1 的 IP 地址是 192.10.16.222, 端口号是228,跟 3个不同的从设备通信分别使用 3个不同的端口1228,2228,3228,3个从设备的 IP地址分别为 192.10.16.101,192.10.16.102,192.10.16.103,此处从设备通信对待检测的工业控制系统通信进行数据包检测、识别和分析。首先进行数据包截取,提取的字段包括源 IP 地址、源端口号、目的 IP 地址、目的端口号等。
根据双方通信的数据包数量进行统计分析,而此处的通信双方不仅是不同的主设备和从设备组合,还包含同样的主设备、从设备组合中的不同端口组合。通信数据包的上限为 60, 下限为 30,第 3行中通信数据包的数量是 120,远远超过了统计合法数据包范围,判断为通信异常,这代表攻击者通过对通信的服务器端发送大量的请求数据包,使得服务器端无法响应流量数据包样本见表 1所列。
对于多设备间互相传输的工业控制系统来说,可将数据包组合成 M×N 组向量的形式。在 M×N 组数据中,分别将每组数据组成向量(YIP,Yd,DIP,Dd,T,N),再将 M×N 组向量传入检测模块,基于两个条件判断其是否异常:
基于时间流量的入侵检测模块监测某一组向量是否出现非法 IP,非法端口或非法组合,若出现非法的数据包流向, 则判断该组向量异常;
根据源 IP地址和设备端口号确定通信双方,若时刻值 T通信双方的通信数据包数量 N在合法的通信数据包上、下限阈值之间,则判断该组向量正常,否则判断该组向量异常, 并报警。
3 结 语
针对当今工业控制系统入侵检测技术针对性不强的问题, 本文根据工业生产周期性的特点,提出了一种基于流量特征的入侵检测技术,通过 IP地址和端口号将不同的通信方区分开, 针对工业控制网络设备多、线路多的特点,先通过数据流向判断其是否合法,再根据流量的上、下限阈值识别出异常数据, 提高检测的准确性,经验证,该方法有效、可靠。