基于IPv6网络的移动目标防御与访问控制融合防护方法

2022-05-09 07:39李振宇
计算机研究与发展 2022年5期
关键词:访问控制数据包IP地址

李振宇 丁 勇,3 袁 方 张 昆

1(桂林电子科技大学计算机与信息安全学院 广西桂林 541004) 2(广西密码学与信息安全重点实验室(桂林电子科技大学) 广西桂林 541004) 3(鹏城实验室新型网络研究部 广东深圳 518000) 4(外交部通信总台 北京 100045) 5(国家信息中心 北京 100045)

随着5G技术的发展以及工业4.0的推进,全球正在快速进入工业互联网时代.在工业互联网中,大量的物联网设备已作为工业互联网的重要组成部分进行布署.同时,5G技术所带来的低延迟等特性,促进了工业互联网的万物互联[1].然而,万物互联需要大量使用互联网可直接访问的IP地址(公网IP地址)以支持工业互联网设备进行通信.因此,在互联网协议第4版(Internet Protocol version 4, IPv4)的网络中,为有效实现网络互联互通,通常采用网络地址转换(network address translation, NAT)技术以解决互联网IP数量不足的问题[2].然而,针对工业控制系统内的设备,例如可编程逻辑控制(programm-able logic controller, PLC)等,其通常需要使用固定的端口进行通信[3];而且,在工业4.0体系中,管理系统需要对传感器的信息进行高频率采集,如果传感器没有获得公网IP地址,将只能使用NAT技术进行网络通信.然而,NAT技术对使用固定端口的网络连接进行反向转换存在困难,也无法有效发挥5G等新技术所带来的优良特性[4].因此,在IP网络中,NAT技术难以满足工业互联网的需求.为此,针对工业互联网的特殊需求,将工业互联网与互联网协议第6版(Internet Protocol version 6, IPv6)相结合则成为一个可行的选择.

我国作为全球第一制造大国,在“十四五”期间拟结合工业互联网5G与IPv6网络架构的优点,在全国范围内全面推进基于IPv6工业互联网的部署[5].然而,在工业互联网IPv6的实际部署中,由于IPv6可直接使用公网IP地址进行通信,新的通信方式将导致传统工业企业以IPv4规划的网络安全边界被打破,从而造成大量设备暴露在公网中,给这些设备带来在IPv4网络中所没有的安全挑战[6].而这些设备可能包含关键基础设施,它们作为国民经济生产中的重要组成部分,关系着国家的稳定,这将吸引大量的高级持续性威胁(advanced persistent threat, APT)攻击者对其进行攻击[7].在APT活动中,APT攻击者会尝试获取工业设备的控制权限,以实现在指定时间对工业互联网设备进行破坏[8].

为此,针对当前面临的挑战,已有大量的安全防护技术用于工业互联网,以保护工业互联网设备的安全.其中,大约54%的移动目标防御技术是基于网络层面进行部署,然而这些技术主要针对IPv4架构进行讨论,缺乏对IPv6所带来的新特性以及新挑战的考虑.此外,虽然目前有IPv6相关的工业互联网安全防护技术,但是它们与传统的防火墙或者入侵检测系统的防御方式类似,其防护效能低,难以有效对APT攻击进行防护.同时,已有的移动目标防御技术基于理论研究居多,难以在实际环境中部署[9].因此,如何构建零信任的安全环境则成为未来工业互联网所面临的挑战.

为解决当前工业互联网面临的安全问题,本文提出网络层面的移动目标防御与访问控制技术互相融合的防护方法,以保护基于IPv6的工业互联网的设备安全.本文的主要贡献包括3个方面:

1) 提出了基于软件定义网络(software defined network, SDN)技术的IPv6网络移动目标防御与访问控制方法,其通过对用户侧可自由配置的IPv6网络地址进行随机的动态变换,并使用动态变换后的IP地址在互联网中传输,随后结合访问控制方法,使网络攻击发起方无法得知当前可访问的设备的真实IP地址,进而有效抵御外部网络对保护网络的扫描.

2) 本文提出的方法无须更改已有网络拓扑,即可兼容性地对目标网络进行保护.通过SDN技术,可对流经SDN处理器的所有数据包进行实时编辑,在互联网中使用编辑后的随机IPv6地址进行传输;随后在对端收到数据后,将编辑后的随机IPv6地址还原为原始的IPv6地址.因此,基于SDN技术可实现无须更改已有的任何设备以及网络拓扑,仅需将SDN处理器串联到需要保护的网络的出口上,即可对目标网络进行保护.

3) 本文提出的方法具备网络防火墙功能,可限制非法数据传输.访问控制方法是常用的网络管理方法,本文将其与移动目标防御相结合,对源和目的地址进行校验,可大幅度降低扫描、伪造数据包等攻击的成功概率,以接近100%的有效防护概率保护被保护的网络.

1 相关工作

网络层面的移动目标防御在具体实践中主要包含2种方法:1)在设备端进行实现;2)通过网络设备进行实现[10].其中,在设备端实现的网络层面的移动目标防御的相关研究中,黄廷辉等人[11]提出一个新的物联网安全协议名为L6HOP,通过将其部署在物联网节点中,直接实现网络地址跳变.Sagisi等人[12]提出在设备端嵌入专用集成电路,以实现网络地址变换.Bandi等人[13]提出在数据到达原有服务器之前,使用多个新的代理服务器用于校验数据的合法性.Moore等人[14]提出在操作系统层面,使用流控制传输协议(Stream Control Transmission Protocol, SCTP)替代用户数据报协议(User Datagram Protocol, UDP)等协议,以实现动态IP地址变换,进行数据传输.然而,在设备端实现的基于网络的移动目标防御技术,其虽然从数据源上进行IP地址变换,能彻底地进行网络层面的防护,但是其在定制化、模块化的工业互联网系统中难以进行二次开发,部署实施极其困难,不适宜在工业互联网中大范围使用.

同时,在通过网络设备实现的网络层面的移动目标防御相关研究中,主流实现移动目标防御研究的方向又分为使用特殊协议进行特殊处理的方法以及使用SDN的方法.在使用特殊协议进行特殊处理的方法中,Park等人[15]提出一种名为Ghost-MTD的技术,其使用预共享的一次性比特串来进行认证.其中,如果预共享一次性比特串通过认证,则允许外部设备与被保护设备进行数据交换;如果预共享一次性比特串认证失败,则重定向流量到诱饵模块中.然而,Ghost-MTD虽然能够提供较安全的通信环境,但是其需要更改已有设备,以实现对发送的数据包进行特殊处理.因此,使用Ghost-MTD技术除了需要额外的开销,还可能导致工业互联网审计设备对网络审计结果产生错误.

因此,为解决使用特殊协议进行特殊处理的方法以实现移动目标防御所带来的负面问题,使用SDN技术以实现移动目标防御是一个可行的选择[16].国内外研究人员均进行了大量的研究,许书彬等人[17]以及吴桦等人[18]均提出基于OpenFlow的软件定义网络方法,用于对IP进行虚拟变换,以防御分布式拒绝服务(distributed denial of service, DDoS)、扫描等相关类型的攻击.然而,文献[16-18]均没有考虑免升级部署的问题,需要客户端进行特殊的配置方可实现移动目标防御,难以在工业互联网中进行低成本的实施.此外,Narantuya等人[19]使用多个OpenFlow交换机作为SDN控制器,实现动态改变IP地址,以保证整体网络的安全性.然而,文献[19]提出的方法需要大量修改网络拓扑,在实际使用中,由于普通用户通常无权限对公共网络的基础网络设施进行管理,因此,该文献所提出的方法难以在现有的互联网中实施.此外,Hyder等人[20]提出了一种名为SMCDS的方法,其可通过多个具有相同功能的影子SDN控制器,并结合动态IP地址和网络端口以实现基于数据和控制平面的移动目标防御安全保护方法.然而,Hyder等人提出的方法由于受其核心的被动防御方法限制,仍有很大提升空间.Sharma等人[21]以及Niu等人[22]均提出基于SDN技术的移动目标防御方法,他们的方法可透明地对设备进行保护,而且不需要对已有设备以及网络拓扑进行修改.然而Sharma等人[21]以及Niu等人[22]的方法均没有支持访问控制,因此,攻击者进行探测所需的成本大幅降低.

此外,通过将移动目标防御技术与访问控制技术相融合,可使网络安全防御效能更进一步提升.例如,黄志兰等人[23]、史久根等人[24]使用软件定义网络技术与访问控制技术相结合的方法,均有效提升了其应用场景的安全性,但是他们提出的方法并不支持动态IP地址变换,从而对APT等高级别且隐蔽的网络攻击防御能力不足.

因此,本文针对工业互联网安全的研究现状,总结当前涉及工业互联网相关安全研究缺乏的问题,提出使用软件定义网络技术在IPv6网络中实现移动目标防御与访问控制,其对比与已有的研究成果,具有透明的、无须更改已有设备网络配置的优点,具备在工业互联网中简易部署并应用的条件.本文与其他文献的工作对比如表1所示:

Table 1 Related Work Comparison

2 基于IPv6的工业互联网的防护架构

本节主要描述了基于IPv6的工业互联网架构及其面临的安全威胁.随后,针对当前基于IPv6的工业互联网面临的安全威胁,提出移动目标防御架构,以解决所面临的安全威胁.本文所使用的符号定义如表2所示:

Table 2 Notation and Definition

2.1 基于IPv6的工业互联网

本文假设基于IPv6的工业互联网由n个IPv6路由器route组成,因此,基于IPv6的工业互联网的IPv6路由器集合为

R={route1,route2,…,routen}.

本文假设每一个路由器route包含n个工业控制设备device,因此,工业互联网每个网络中包含工业控制设备的集合为

D={device1,device2,…,devicen}.

同时,本文假设在基于IPv6的工业互联网中,网络攻击者会对工业互联网设备实施所有可以实施的网络攻击,从而对所有工业互联网设备造成安全威胁.因此,基于IPv6的工业互联网将面临3个安全问题:1)工业互联网设备如何防护扫描,以规避设备指纹被记录.针对此问题,常规的安全做法是针对例如TCP异常握手等信息进行屏蔽.2)如何防护DDoS.针对此问题,常规做法是把DDoS流量引入不可达IP地址中,但是DDoS流量引入不可达IP地址的方法通常会导致原始设备也变为不可达.3)如何拦截非法来源的数据,以保护设备不被破坏.常规做法是使用防火墙等方法,以拦截非法来源数据.此外,仍需要考虑工业互联网设备的局限性,其主要局限性是难以进行二次开发.因此,对现有网络及设备透明且无须升级的安全防护技术具备较高的实际应用价值.

2.2 移动目标防御架构

为解决2.1节中基于IPv6的工业互联网所面临的安全问题,本文提出使用移动目标防御方法以对工业互联网的网络进行安全防护,从而构建工业系统环境中的可信网络,推动零信任安全防护措施实施,其防护架构如图1所示:

Fig. 1 Industrial Internet architecture based on IPv6 and its protection architecture proposed in this paper图1 基于IPv6的工业互联网架构及本文提出的防护架构

首先,本文提出的方法需要在被保护的两端网络分别部署移动目标处理器,其用于对被保护网络传输的数据包进行IP地址随机变换及访问控制.随后,每个移动目标处理器均使用自身标识符,从随机地址生成与访问控制服务器(以下简称“核心控制器”)上获取随机IP地址组.特别地,在持续获取随机IP地址列表之前,本文假设移动目标处理器通过专用网络与核心控制器进行连接,而且其他互联网设备无法直接访问该专用网络内的设备.当核心控制器接收到移动目标处理器标识符后,结合访问控制列表,随机生成并返回与此移动目标处理器相关的随机IP地址组.使用核心控制器下发的随机IP地址组可减少移动目标处理器重复的访问控制配对运算,提升移动目标处理器的随机地址替换和访问控制效率.而且,通过核心控制器生成随机IP地址组,可进一步提高访问控制的安全性,避免移动目标处理器获取非必要的随机IP地址从而导致潜在的安全风险.接下来,当工业互联网设备发送数据包时,移动目标处理器将原始的IP地址替换为随机的IP地址;之后在到达另一侧的移动目标处理器时,通过移动目标处理器将接收到的数据包的随机IP地址还原为原始IP地址.因此,本文提出的移动目标防御架构需要解决2个问题:1)使用了随机IP地址后,如何保证在互联网上进行兼容性传输;2)确保随机IP地址在移动目标防御架构中的各个系统能完全同步,并且具有高可用性.

2.3 安全防护机制

为有效提升移动目标防御架构的安全防护效能及确保移动目标防御架构对现有网络架构的兼容性,需要使用多种机制以确保移动目标防御架构稳定运行.

2.3.1 兼容IPv6互联网传输的随机地址生成机制

在IPv6的部署实践中,根据RFC2373[25]及其后续更新的关于IPv6地址的相关标准,用户自定义接口长度IL计算为

IL=128-SPL,

其中,SPL是子网络前缀长度,其默认为64位.因此,IPv6的地址在互联网服务提供商(Internet service provider, ISP)分配给用户自定义的接口地址长度通常为64位.64位的用户自定义接口地址长度可帮助EUI-64等自动配置IP地址方法稳定运行[26],以实现全网无需网络地址转换的直接访问.

因此,假定用户自定义的IP地址addr有n个,用户自定义的所有IP地址集合为

A={addr1,addr2,…,addrn},

在用户自定义接口地址范围内,用户可对这部分IP地址进行自定义设置,其可用地址数Acount计算公式为

Acount=2IL-GWcount,

其中,GWcount为网关使用的地址数.因此,对于标准互联网接入,用户通常至少拥有264-GWcount个可用的IP地址.随机IP地址生成机制只要在可用IP地址范围内随机生成IP地址,则随机IP地址所传输的所有数据包均可通过互联网进行传输,随机IP地址的结构如图2所示:

Fig. 2 Random IP address structure图2 随机IP地址结构

2.3.2 支持两端时差冗余的随机地址机制

虽然每个移动目标处理器均从核心控制器中获取随机IP地址组列表,然而移动目标处理器在启动运行以及向核心服务器获取随机IP地址组时,均会开销些许时间,从而产生一定的时间偏差.因此,移动目标处理器的标准时间片段很大概率会出现与核心控制器的当前标准时间不一致的情况.为解决此问题,提出支持两端时差冗余的随机IP地址机制,其数据流示意图如图3所示.

支持两端时差冗余的随机IP地址机制需要满足:

|TA-TB|

其中,TA为移动目标处理器A的标准时间,TB为移动目标处理器B的标准时间,Trange为时间片段所包含的时间范围.当Trange设置过大时,会出现随机IP地址组更新缓慢,从而导致移动目标防御安全性下降,增加被攻击人员探测到所使用的临时IP地址的风险;当Trange设置过小时,不仅会导致移动目标处理器需要频繁更新内存中存储的随机IP地址组,而且可导致核心控制器计算更频繁,更会导致移动目标处理器对基于随机IP地址的网络传输的最低网络延迟要求提高.因此,为保证整个系统的稳定运行,设置恰当的Trange数值是非常重要的.

Fig. 3 Data exchange flow of clock-skew-supported random IP address based on central control图3 基于中心控制的时差冗余随机IP地址数据交换流程图

2.3.3 支持多线程的无锁随机IP地址选取机制

为保证移动目标处理器的多线程能快速稳定地处理数据,减少非必要的内存访问操作,提升整体移动目标防御与访问控制的效率,本文提出支持多线程的无锁随机IP地址选取机制,其示意图如图4所示.

在支持多线程的无锁随机IP地址选取机制的设计中,由于随机IP地址组列表占用的内存空间较小,因此,本文采取空间换时间的思路进行设计.本文定义随机IP地址组RAG={osIP,rsIP,odIP,rdIP},其中,osIP为原始源IP地址,rsIP为原始源IP地址对应的随机源IP地址,odIP为原始目的IP地址,rdIP为原始目的IP对应的随机目的IP地址.每个时间片段均包含其对应的1组随机的IP地址组列表RAGL={RAG1,RAG2,…,RAGn}.每次获取随机地址组列表时,将获取当前标准时间片段对应的RAGL以及前后各一个时间片段的RAGL.当获取新版本的随机地址组列表完成后,随机IP地址选取机制将上一个版本获取的随机IP地址组列表删除,随后标记当前获取的版本的各个时间片段的RAGL为新一个版本的随机地址组,并将版本号加1,以加快移动目标处理器的多线程处理速度.

Fig. 4 Multi-thread-supported lock-free random IP address selection mechanism图4 支持多线程的无锁随机IP地址选取机制

Fig. 5 Data flow diagram of moving target defense图5 移动目标防御数据流程图

3 移动目标防御与访问控制融合的防护技术

本节首先介绍移动目标防御与访问控制技术融合防护的应用样例,随后详细介绍移动目标防御与访问控制技术融合的防护技术所使用的3种方法,分别为:定时更新随机IP地址列表方法、地址变换方法以及访问控制方法.

3.1 应用样例

本文根据工业互联网跨网络访问的基础场景,提炼与移动目标防御架构研究相关的部分,进行更详细的分析,以解决IP地址随机性、网络拓扑兼容性的问题,并致力于提升抵抗攻击的效能.如图5所示,在本文提出的防护架构中,采取在基于IPv6的工业互联网的路由器出口处,串联移动目标防御处理器进行安全防护.首先,移动目标处理器会周期性地使用标识符,通过专用网络请求核心控制器,并从核心控制器上获取与该网络相关的随机IP地址列表信息.随后,当发送端的移动目标处理器接收到数据包后,其立即对IP数据包进行检查,以获取源IP地址和目的IP地址.接下来,发送端的移动目标处理器根据随机IP地址列表,将原始的IP地址替换成随机IP地址,并使用随机源IP地址和随机目的IP地址在互联网中进行传输;随后,随机化IP地址的IP数据包到达另外的对端网络后,再次利用移动目标防御处理器,根据随机IP地址列表以及访问控制规则,对随机IP地址进行处理,以将随机的IP地址还原为原始的IP地址.通过透明的IP地址替换方法,可确保无须对现有网络拓扑以及工业互联网设备进行任何修改,即可实现高效能安全防护.

3.2 定时更新方法

定时更新方法可为移动目标处理器定时获取核心控制器上最新的随机IP地址列表,其包含2个算法:核心控制器更新随机IP地址列表算法和获取随机IP地址列表算法.

核心控制器更新随机IP地址列表算法如算法1所示.首先,核心控制器更新随机IP地址列表算法需要输入所有被保护设备的原始IP地址列表,以及使用核心控制器的数据库上存储的数据,为异步快速处理提供支撑.另外,需要在随机IP地址列表生成的实例化程序上放置一个静态的变量,用以保存上次更新时间,避免频繁操作数据库而导致的额外系统资源开销.

算法1.核心控制器更新随机IP地址列表算法.

输入:设备原始IP地址列表sIPL、数据库S、上次更新时间Tupdate、当前时间Tc、更新周期Trange;

输出:数据库动作.

① if (Tc-Tupdate>Trange) then

②DeleteExpiredRandomIP(S,Tc-2);

③rIPL←BuildRandomIPList(sIPL,Tc+1);

/*使用兼容IPv6互联网传输的随机地址生成机制与支持两端时差冗余的随机地址机制辅助生成随机IP地址*/

④rIPL←TryBuildRandIPList(sIPL,Tc);

⑤rIPL←TryBuildRandIPList(sIPL,Tc-1);

⑥SaveToDatabase(rIPL);

⑦ endif

在核心控制器更新随机IP地址列表算法运行时,首先,其会检测当前时间与上次更新的时间是否大于更新周期.如果更新间隔大于更新周期,则进入更新数据库随机IP地址列表的步骤;否则,不进行任何操作(行①).随后,如果算法进入更新数据库随机IP地址列表的步骤,首先其会删除所有已经过期的随机IP地址列表,以减小数据库的存储压力和提升数据库的数据查找效率(行②);接下来,算法使用设备原始IP地址列表,提取出IP地址对应的子网前缀,并结合兼容IPv6互联网传输的随机IP地址生成机制,以生成后一个时间片段的随机IP地址(行③);此外还会根据支持两端时差冗余的随机IP地址机制的要求,如果当前时间片段和上一个时间片段的数据为空,则会尝试生成该时间片段对应的随机IP地址列表,其顺序为首先尝试生成当前时间片段的随机IP地址列表(行④),随后尝试生成前一个时间片段的随机IP地址列表(行⑤).当所有有效时间片段的随机IP地址列表生成完成后,算法将生成的随机IP地址存储到数据库,以备移动目标处理器获取随机IP地址列表算法使用(行⑥).

移动目标处理器获取随机IP地址列表算法在核心控制器更新随机IP地址列表算法至少执行一次后,方可获取有效数据,其算法细节如算法2所示.移动目标处理器向核心控制器请求数据时,需要提供移动目标处理器标识符给核心控制器,用于识别移动目标处理器具体负责保护的网络.在算法具体实施过程中,采用一串随机数字作为移动目标处理器标识符,由于其长度较长,因此,还可作为认证字符串使用.

算法2.获取随机IP地址列表算法.

输入:移动目标处理器标识符I、服务器随机地址列表库SrIPL;

输出:与当前移动目标处理器相关的随机地址组RAGL.

①A←Auth(I);

② if (A=PASS) then

③SIP←GetSourceIP(I);

④ACLs←GetACL(SIP);

⑤RAGL←BuildRAGList(SrIPL,ACLs);

⑥ endif

移动目标处理器获取随机IP地址列表算法开始执行时,核心控制器首先需要对移动目标处理器的标识符进行认证(行①).如果认证通过(行②),则核心控制器根据该移动目标处理器的标识符,计算出该移动目标处理器所管辖的原始IP地址(行③);随后,根据管辖的原始IP地址列表,获取对应的ACL列表,以协助确定该移动目标处理器所管辖范围内的所有可访问的IP地址(行④);接下来,使用核心控制器随机IP地址列表库结合ACL列表,返回所有与当前移动目标处理器相关的随机IP地址组,供地址变换以及访问控制使用(行⑤).

3.3 地址变换方法

地址变换方法是移动目标防御的核心算法,其细节如算法3所示.在使用地址变换算法时,除提供需要处理的数据包之外,还需提供随机IP地址组以帮助地址变换以更快的速度进行处理.经过地址变换算法处理后,其地址已变换的数据包可直接交给发送程序,直接从另一端的网络端口进行发送.

算法3.地址变换算法.

输入:随机IP地址组RAGL、需要处理的数据包pkt;

输出:地址已变换的数据包epkt.

①PsIP,PdIP←ParsePacket(pkt);

② if (ACLCheck(RAGL,PsIP,PdIP)=

PASS) then

③NsIP,NdIP←FindAddr(RAGL,PsIP,PdIP);/*使用支持多线程的无锁随机IP地址选取机制以支持地址快速替换*/

④ if (pkt.PORT=InnerPort) then

⑤epkt←ToRandom(pkt,NsIP,NdIP);

⑥ else

⑦epkt←ToOrigin(pkt,NsIP,NdIP);

⑧ endif

⑨ else

⑩epkt←null;

地址变换算法开始运行时,首先算法提取出当前需要处理数据包的源IP地址以及目的IP地址,这可帮助后续的步骤快速执行(行①).随后,使用核心控制器所返回的随机IP地址列表组,根据访问控制方法,对需要处理数据包的源IP地址以及目的IP地址进行检查,以确认其是否在访问控制允许的范围内(行②),如果需要处理的数据包在访问控制运行的范围内,则继续进行IP地址变换;否则,当需要处理的数据包不在访问控制允许的范围内时,则直接返回空结果,以标记当前处理的数据包被丢弃(行⑩).接下来,在数据包IP地址变换流程中(行③~⑧),为充分利用系统资源,提升多线程处理效能,在替换算法中,将替换为随机IP地址和还原为原始IP地址的2个过程进行统一.在替换步骤执行开始时,首先需要在随机IP地址组中查找当前数据包对应的随机IP地址,以备后续替换操作可以快速进行处理.在此,由于先前访问控制检查已经通过,因此,当前数据包的原始IP地址一定是在随机IP地址组内.同时,根据支持多线程的无锁随机IP地址选取机制的要求,首先检查当前时间片段内是否存在与当前处理数据包的源IP地址以及目的IP地址相匹配的记录.如果不存在匹配记录,则需要对前后各一个时间片段进行尝试性匹配(行③).接下来,地址变换算法判断当前处理数据包的接收端口(行④),如果当前处理数据包接收的端口为内部端口,则将当前处理数据包的源IP地址以及目的IP地址,替换为随机IP地址列表中当前时间片段对应的随机源IP地址以及随机目的IP地址(行⑤);否则,则对当前处理数据包的源IP地址以及目的IP地址,还原为原始的源IP地址以及原始的目的IP地址(行⑥~⑧).当数据包处理完成后,则将地址已变换的数据包进行输出,以提供给发送程序进行发送.

3.4 访问控制算法

访问控制算法用于对当前处理的数据包进行检查,以限制设备访问范围,其算法细节如算法4所示.通过访问控制算法的安全性加固,可进一步提升安全效能.由于访问控制方法需要数据包所包含的源IP地址和目的IP地址均匹配随机IP地址组所记录的数据后,数据包方可被放行,因此,可有效解决攻击者对网络扫描的问题.

算法4.访问控制算法.

输入:随机IP地址组RAGL、需要处理的数据包pkt;

输出:转发标记F.

①PsIP,PdIP←ParsePacket(pkt);

②result←Check(RAGL,PsIP,PdIP);

/*结合支持两端时差冗余的随机地址机制进行访问控制列表检测*/

③ if (resultis not null) then

④F←PASS;

⑤ else

⑥F←DROP;

⑦ endif

访问控制算法运行时,需要提供随机IP地址组以及需要处理的数据包.算法首先通过数据包解析器,提取出数据包中的源IP地址以及目的IP地址(行①).随后,将数据包中的源IP地址以及目的IP地址,在已获得的随机IP地址组中进行查找,以检测随机IP地址组中是否包含数据包中的源IP地址以及与目的IP地址一致的IP地址对(行②).如果匹配结果不为空,则表明访问控制方法需要放行当前正在处理的数据包(行③),并返回检测通过的标记(行④);否则,如果匹配结果为空,则表明访问控制方法需要拦截当前正在处理的数据包,并返回丢弃该数据包的标记(行⑤~⑦).

4 实验与评估

在本节,首先介绍开展实验所使用的环境,并介绍开展实验相关的测试所使用的用例,此外还将介绍实验平台相关的配置;随后对本文提出的算法进行性能测量;最后对所有实验进行总结.

4.1 实验环境

在实验拓扑的规划中,采用完全使用IPv6的网络架构对相关实验设备进行部署,因此,整个实验均不使用IPv4的地址.在实验中,我们的目标是对IPv6网络的设备,实现移动目标防御与访问控制融合的安全防护,且保证测试设备A与测试设备B在不更改任何配置的情况下进行通信,因此,本文所采用的实验网络拓扑如图6所示:

Fig. 6 Experimental topology图6 实验拓扑

在实验中,移动目标处理器通过专用的管理网络,与核心控制器进行通信,以周期性地获取当前时刻的随机IP地址列表;IPv6路由器B则用于模拟互联网以实现IPv6路由器A与IPv6路由器C之间的通信.此外,本文定义移动目标处理器靠近测试设备的一侧为内部端口,流经内部端口的数据包均从随机IP地址还原为真实IP地址;移动目标处理器靠近IPv6路由器B的端口为外部端口,所有流出外部端口的数据包均需要从真实IP地址变换为随机IP地址.

4.2 测试用例

在实验中,使用了Linux系统中的ping(1)https://github.com/torvalds/linux/blob/master/net/ipv4/ping.c程序以及iPerf3(2)https://iperf.fr程序对基于DPDK(3)https://www.dpdk.org编程的移动目标处理器所实现的移动目标防御及访问控制的有效性以及网络性能进行评估.Linux系统中的ping程序可通过发送ICMP数据包,测量2个设备之间通信的联通性及传输数据包所开销的时间.通过ping程序,可以确定移动目标处理器是否能满足工业互联网传输的最低要求.此外,iPerf3程序则是用于测试评估移动目标处理器所能处理的最大网络带宽.

4.3 实验装置

使用VMWare ESXi 6.7.0完成本文相关的实验.其中,所有设备的网络适配器均使用VMXNET 3,VMXNET 3可在VMWare ESXi虚拟化平台中支持大于1 Gb/s的性能测试.此外,宿主机的CPU使用支持超线程技术的6核Intel®Xeon®Gold 6128 CPU @ 3.40 GHz.本文实验平台所有设备的详细配置如表3所示.

在实验中,使用了2台设备用于运行ping程序以及iPerf3程序,它们分别为测试设备A与测试设备B;此外,还使用了测试设备C以测试本文提出的移动目标防御方法有效性.由于运行的程序对系统资源要求不高,因此,对每个运行测试程序的设备,在实验中均对其分配2个虚拟CPU以及2 GB内存.同时,移动目标处理器以及核心控制器需要对数据进行实时处理.因此,对于本文提出的安全设备,在实验中均对其分配4个虚拟CPU以及16 GB内存给每个设备使用.特别地,由于移动目标处理器使用了DPDK框架以实现本问题提出的方法,而且DPDK框架在运行时需要开销较多的系统资源,所以对移动目标处理器分配较多资源.最后,针对网络联通的需求,本文将开源的路由器系统OpenWRT部署在每个IPv6路由器上,用于数据转发.对每个IPv6路由器,均采用OpenWRT的默认设置,分别为2个虚拟CPU以及2 GB内存.

Table 3 Experimental Platform

4.4 测量方法

在有效测试过程中,使用测试设备A、测试设备B以及测试设备C互相通信,以测试本文提出的移动目标防御方法的有效性.随后,为了提升阅读体验,本文分析捕捉到的数据包,并将其关键数据提取后用流程图进行展示.

在性能测量过程中,在测试设备A与测试设备B上,使用ping程序与iPerf3程序在它们之间互相发送测试数据进行测试,并使用滑动窗口方差的方法取其中一段最为稳定的实验数据进行记录.

4.5 有效性测试

有效性使用ping程序进行测试,其用于验证网络是否能联通,进而可验证本文提出的移动目标防御与访问控制技术的有效性.有效性测试主要分为3个部分:外部网络的设备访问被保护网络的设备的测试、被保护网络的设备访问外部网络的设备的测试以及被保护网络的设备互相访问的测试.在本测试实验中,本文定义外部网络为不需要进行保护的网络;而内部网络则定义为需要保护的网络,例如本文假定要保护的网络为工业互联网设备所在的网络.

在外部网络的设备访问被保护网络的设备的测试中,本文在测试设备C上,分别使用ping程序向测试设备A以及测试设备B发送ICMP数据包,其分析后的数据流图如图7所示.由于测试设备C的IP不在随机IP地址组中,因此,移动目标处理器A以及移动目标处理器B均会将此发送的数据包丢弃.

Fig. 7 Test of external device accessing protected device图7 外部环境设备访问被保护设备的测试

Fig. 8 Test of protected device accessing external device图8 被保护设备访问外部环境设备的测试

在被保护网络的设备访问外部网络的设备的测试中,使用测试设备A尝试访问路由器,其分析后的数据流图如图8所示.由于移动目标处理A从核心控制器中获得的随机IP地址列表并不包含外部网络的路由器的IP地址,因此,移动目标处理器A会将测试设备A所发送的数据包丢弃.

在被保护网络的设备互相访问的测试中,使用测试设备A的ping程序向测试设备B发送ICMP数据包,并获取测试设备B响应的ICMP数据包,其分析后的数据流图如图9所示.在数据包流经移动目标处理器A时,由于测试设备A与测试设备B的IP地址均在核心控制器所提供的随机IP地址列表中,因此,移动目标处理器A将测试设备A发送出来的ICMP数据包替换为测试设备A和测试设备B所对应的随机IP地址,并将其发送到网络中.随后,经过一系列网络传输后,随机地址化的数据包到达移动目标处理器B时,移动目标处理器B检查所接收到的数据包是否在核心控制器所提供的随机IP地址列表中.由于当前的数据包为移动目标处理器A替换后的随机IP地址数据包,并且网络传输所开销的时间在本文所提出的支持两端时差冗余的随机地址机制的允许范围内,因此,移动目标处理器B根据随机IP地址列表,将随机化的IP地址还原为测试设备A以及测试设备B的原始IP地址,并发送到测试设备B.随后在测试设备B响应ICMP数据包至测试设备A的过程中,移动目标处理器A以及移动目标处理器B均进行与数据包由移动目标处理器A经过移动目标处理器B相同的操作.

Fig. 9 Test of mutual accessing of protected device图9 被保护设备互相访问的测试

通过外部网络的设备访问被保护网络的设备测试、被保护网络的设备访问外部网络的设备测试以及被保护网络的设备互相访问测试,共3个测试实验,可以验证本文所提出的移动目标防御与访问控制是有效的、符合预期的.

4.6 性能测量

在性能测量的实验中,主要为测试本文所提出的移动目标处理器的处理性能,其包含了传输速率测量以及传输延迟测量共2个部分,可用于评估添加移动目标处理器后对原网络产生的影响.性能测量实验分2个部分进行,均使用图6的实验拓扑进行连接.在测试的过程中,还通过直接连接的方法,临时去掉移动目标处理器,使得路由器A与路由器B直接连接、路由器B与路由器C直接连接,以通过对比的方式,有效评估本文提出的移动目标处理器对原有网络产生的影响.

在网络传输速度测试中,本文使用iPerf3进行连续一段时间的速度测试,并使用滑动窗口方差的方法取其中连续一段最为平滑的数据进行对比,其测试结果如图10所示:

Fig. 10 Experiment of transmission speed measurement图10 传输速度测量实验

如传输速度测量实验所示,直接传输的平均速度约为4 723 Mb/s;使用本文提出的移动目标防御技术后,进行数据包传输的速度约为4 376 Mb/s.因此,使用本文提出的带有访问控制的移动目标防御技术对网络进行安全防护后,其数据传输速度仍可达到无防护网络传输速度的92.6%,在可接受的范围内.

在传输延迟测量实验中,本文使用ping程序进行测试,此实验同样也使用滑动窗口方差的方法,取其中连续一段最为平滑的数据进行对比,其测试结果如图11所示:

Fig. 11 Experiment of transmission latency measurement图11 传输延迟测量实验

如图11所示,直接传输的平均网络延迟为0.78 ms;使用本文提出的移动目标防御技术后,进行传输的平均网络延迟为1.09 ms.因此,使用本文所提出的移动目标防御技术对网络进行安全防护后,会导致网络延迟上升0.31 ms,但是相对于互联网的巨大网络延时,其仍在可接受的范围内.同时,本文与Almusaher等人[16]的实验进行对比,其对比结果如表4所示.本文提出的方法比Almusaher等人[16]所使用的方法节约了约9.2%的时间,满足工业互联网应用需求.

Table 4 Comparison of Transmission Latency

4.7 安全性分析

为确认本文所提出的方法的安全性,本节从本文提出的方法的防御效能以及新增防御设备的安全性2个角度展开分析.

4.7.1 防御效能分析

由于本文所提出的移动目标防御方法的IPv6地址随机变化快、容量大,因此,直接使用实验测量的方法则难以产生可见的实验数据.因此,在本节,对本文提出的方法进行防御失效的概率分析.

防御失效概率是假定攻击者通过外部网络的设备,结合一定的网络攻击技术,以网络扫描的方式尝试探测某一台被保护网络的设备的存活状态,同时由于访问控制技术需要源IP地址和目的IP地址均正确,数据包方可通过移动目标处理器.因此,其防御失效概率(攻击成功的概率)为

其中,Addrcount为被保护网络可容纳的IP地址数,由于移动目标处理器需要源IP地址和目的IP地址均正确,其方可允许数据包通过.同时,源IP地址和目的IP地址应不相同,因此,地址空间可排列的数量为Addrcount×(Addrcount-1).此外,Attackcount为发送探测的次数;N为被保护的主机数,同时数据包中用于表示主机的源IP地址和目的IP地址应不相同,因此,主机地址可排列的数量为N×(N-1).特别地,由于本文的方法会动态改变有效的源IP地址和目的IP地址对,因此,扫描过程中应该进行随机扫描(有放回抽样).

为有效分析本文所提方案的安全性,本文将提出的方法与现有文献的方法进行对比.当主机数量与被保护网络可容纳的IP地址数相等时,所有移动目标防御方法均会失效,因此,只有对比最低防御失败率才具有意义,最低防御失败率对比结果如表5所示:

Table 5 Comparison of Minimal Attack Defense Failure Probability Base on Common IPv6 Network

在防御效能对比中,采用最极端情况——保护网络中仅有2台主机存活,以满足通信最低的要求.同时,以互联网服务提供商通常提供到用户端的IPv6网络的子网前缀长度64为例,在对比数据中,被保护的网络中拥有的IPv6地址数为264;同时,假定探测器探测次数为232(IPv4的所有地址容量),此数值为面向未来高速网络而进行的假设,实际情况下需要45 min方可扫描完成[28],其远超过本文所提方法的随机IP地址更新的最长时间.根据对比结果,相比于其他文献中所采用的仅实现移动目标防御而不采用访问控制的方法,在本文的IPv6移动目标防御与访问控制技术的融合应用下,可大幅降低防御失败率,以更高强度保证被保护网络的安全.

4.7.2 引入设备的安全性分析

本文引入核心控制器与移动目标处理器以实现本文所提出的安全技术.本文假设移动目标处理器通过专用网络与核心控制器进行连接,其他互联网设备无法直接访问该专用网络的设备.因此,核心控制器以及移动目标处理器的通信安全均由专用网络技术进行保障.此外,由于移动目标处理器用于处理数据部分的端口没有IP地址,也不会对IP数据包进行深度解析,因此,网络攻击几乎不可能攻击一个看似不存在的设备.同时,移动目标处理器也不会把被保护网络(工控设备所在网络区域)的数据与管理网络的数据进行交互.因此,从被保护网络发起的任何攻击均不会影响管理网络.同时,管理网络的设备之间也构成一个安全闭环,确保整个专用网络都在一个封闭的网络中,外部的攻击均无法到达这个网络区域,从而保障了核心控制器及各个移动目标处理器的安全,进而间接确保网络攻击无法对被保护网络实施攻击.

4.8 实验总结

通过有效性测试、性能测试、安全性分析,均表明本文提出的移动目标防御与访问控制技术可以保护IPv6下的工业互联网,但由于本文所使用的SDN框架——DPDK对系统资源要求较高,因此,部署需要较多的硬件资源.

5 总结与未来展望

为解决万物互联时代工业互联网所面临的安全问题,本文提出基于IPv6的移动目标防御与访问控制融合的防护技术,应用了多种机制保证IP地址的随机性和移动目标处理器的性能.此外,在我们的方法中,使用移动目标处理器实现IP地址变化为随机IP地址的功能,以实现安全防御.最后,本文通过一系列的实验证明本文提出的方法从性能、安全性方面均可满足基于IPv6的工业互联网安全防护的要求.

然而,由于使用通用的SDN处理框架DPDK,其性能要求较高,因此,下一步工作拟使用专用数据逻辑电路实现对数据包的IP地址与随机IP地址进行相互替换,以实现更廉价的移动目标防御和访问控制方案.

致谢:感谢实验室的王玉珏老师对本文提出有价值的建议,也感谢实验室的刘德华和谢浩然对本文安全性分析的公式进行正确性讨论.

作者贡献声明:李振宇负责提出科学问题、阅读文献、算法设计、实验和初稿写作;丁勇提供研究基金并审查论文;袁方负责对算法的有效性进行分析;张昆负责对实验结果进行分析.

猜你喜欢
访问控制数据包IP地址
基于时隙ALOHA与NOMA的通信系统性能分析
C#串口高效可靠的接收方案设计
云的访问控制研究
云计算访问控制技术研究综述
网络数据包的抓取与识别
《IP地址及其管理》教学设计
计算机的网络身份IP地址
轻松明白网络IP地址以及子网划分问题
校园骨干层网络交换机的访问控制技术