检测并阻止网络攻击的制作方法

文档序号:25039070发布日期:2021-05-14 12:42阅读:111来源:国知局
检测并阻止网络攻击的制作方法

1.本公开涉及检测并阻止网络攻击。更具体地但非排他性地,本公开涉及检测并阻止运行技术网络中的中间人(“mitm”)攻击。
附图说明
2.参考附图描述了本公开的非限制性和非穷举的实施例,包括本公开的各种实施例,在附图中:
3.图1a示出了与本公开的实施例一致的系统的框图,该系统包括通过包括多个交换机的网络进行通信的第一智能电子装置(“ied”)和第二ied。
4.图1b示出了与本公开的实施例一致的图1a的系统,其中黑客已拦截了两个交换机之间的通信。
5.图2示出了与本公开的实施例一致的系统的框图,其中多个网络装置可以被配置为确定飞行时间。
6.图3示出了与本公开的实施例一致的系统,该系统包括与第一ied通信的第一时间源和与第二ied通信的第二时间源。
7.图4示出了在与本公开一致的包括无线通信信道的系统中的mitm攻击的框图。
8.图5示出了与本公开的实施例一致的用于检测并阻止网络攻击的方法的流程图。
9.图6示出了与本公开的实施例一致的用于确定多个网络分组的飞行时间的系统的框图。
具体实施方式
10.本公开涉及基于经过数据网络的数据分组的飞行时间和/或跳数来检测并阻止各种攻击。某些实施例可以针对与关键基础设施相关联的运营技术网络。此类网络可能容易受到攻击,因为基础设施元件通常分布在较大的地理区域内,保持长期使用,并且出于实际原因和经济原因两者而不被连续监视。
11.数据网络可以包括各种元件,诸如数据产生元件、数据消耗元件或数据路由元件。数据产生元件可以包括诸如传感器、监视器的部件,或产生要经由网络传输的信息的其他部件。一些数据产生装置可以创建机器生成的数据,而其他数据产生装置也可以包括人类生成的数据。数据消耗装置可以接收数据并作用于该数据,并且可以包括诸如控制系统、监视器和人机界面的部件。网络也可以包括路由或管理网络流量的各种元件,诸如交换机、路由器、防火墙等。
12.可以使用高精度时间源来使与本公开一致的网络元件同步。网络可以监视经过各个网络段的分组的飞行时间,并可以确定每个此类段的预期飞行时间。高精度时间源可用于确定飞行时间,因此提供飞行时间的高精度测量。在各种实施例中,可以选择高精度时间源以提供纳秒级的准确度。
13.可以将数据分组的飞行时间与一个或更多个网络段的预期飞行时间进行比较,以
确定通信信道是否已因攻击而改变。在一些实施例中,可以分析单个网络段;而在其他实施例中,可以分析可以使用多个网络元件连接的两个通信网络元件之间的总飞行时间。在飞行时间偏离预期值的情况下(例如,飞行时间长于预期值),该偏离可能归因于攻击。
14.在检测到攻击时,各种实施例可以实施保护动作以停止攻击。此类动作可以包括停用受损的网络段、重新路由所包括的网络段周围的流量、警告运行商等。
15.与本公开一致的某些实施例可以有效地检测并阻止mitm攻击。在mitm攻击中,攻击者会秘密中继并可能更改相信他们正彼此直接通信的两方之间的通信。成功的mitm攻击依赖于“中间人”保持未被检测到。可以通过监视通信信道以确定通信信道是否已更改来检测mitm攻击。预期飞行时间与实际飞行时间之间的偏差可以提供分组已结合mitm攻击而被重新路由的指示。各种网络元件可以连续或周期性地监视网络元件之间的飞行时间以检测mitm攻击。
16.在一些实施例中,还可以使用网络分组的飞行时间来检测并阻止影响网络时间元件的攻击。一些网络可包括用于同步网络内元件的活动的多个时间源。攻击者可以操纵时间源中的一个或更多个。此类操纵可能影响源自或经过受影响节点的数据分组的飞行时间。
17.参考附图,将最好地理解本公开的实施例,其中相似的部分始终由相似的数字表示。容易理解的是,如本文的附图中总体上描述和示出的,所公开的实施例的部件可以以多种不同的配置来布置和设计。因此,本公开的系统和方法的实施例的以下详细描述并非旨在限制所要求保护的本公开的范围,而仅是代表本公开的可能实施例。另外,除非以其他方式说明,否则方法的步骤不必以任何特定顺序执行,或甚至不必顺序执行,也不必仅将步骤执行一次。
18.在一些情况下,未详细示出或描述众所周知的特征、结构或操作。此外,在一个或更多个实施例中,所描述的特征、结构或操作可以以任何合适的方式组合。还将容易地理解,如本文的附图中总体上描述和示出的,实施例的部件可以以多种不同的配置来布置和设计。
19.所描述的实施例的几个方面将被图示为软件模块或部件。如本文所使用的,软件模块或部件可以包括位于存储器装置内,和/或作为电子信号通过系统总线或有线或无线网络传输的任何类型的计算机指令或计算机可执行代码。软件模块或部件可以例如包括计算机指令的一个或更多个物理或逻辑块,该物理或逻辑块可以被组织为执行一个或更多个任务或实现特定抽象数据类型的例程、程序、对象、部件、数据结构等。
20.在某些实施例中,特定软件模块或部件可以包括存储在存储器装置的不同位置中的不同指令,这些指令一起实现模块的所描述的功能。实际上,模块或部件可以包括单个指令或多个指令,并且可以分布在几个不同的代码段上、在不同程序之间以及跨几个存储器装置。可以在分布式计算环境中实践一些实施例,其中任务由通过通信网络链接的远程处理装置执行。在分布式计算环境中,软件模块或部件可以位于本地和/或远程存储器存储装置中。此外,在数据库记录中绑定或呈现在一起的数据可以驻留在同一存储器装置中,或者跨几个存储器装置驻留,并且可以跨网络在数据库中的记录字段中链接在一起。
21.实施例可以被提供作为包括机器可读介质的计算机程序产品,该机器可读介质具有在其上存储的指令,该指令可以用于对计算机(或其他电子装置)进行编程以执行本文描
述的过程。机器可读介质可以包括但不限于适用于存储电子指令的硬盘驱动器、软盘、光盘、cd

rom、dvd

rom、rom、ram、eprom、eeprom、磁卡或光卡、固态存储器装置,或其他类型的介质或机器可读介质。
22.图1a示出了与本公开的实施例一致的包括通过网络进行通信的第一ied 102和第二ied 104的系统100的框图,该网络包括多个交换机106

112。如本文所使用的,ied(诸如ied 102和104)可以指代在系统100内执行功能的任何基于微处理器的装置。此类装置可以监视、控制、自动化和/或保护系统100内的设备。此外,ied(诸如ied 102和104)可能消耗来自其他ied的信息,以便将此信息显示给用户、生成警报以及其他形式的人机交互。ied(诸如ied 102和104)可包括但不限于计算平台、可编程逻辑控制器(plc)、可编程自动化控制器、通信处理器、输入和输出模块、远程终端单元、差分继电器、距离继电器、方向继电器、馈线继电器,过电流继电器、调压器控制、电压继电器、断路器故障继电器、发电机继电器、电动机继电器、自动化控制器、机架控制器、仪表、重合闸控制器等。术语ied可用于描述单个ied或包括多个ied的系统。
23.系统100中的装置可以使用高精度时间源来同步。高精度时间源的一些示例包括全球导航卫星系统(gnss),诸如全球定位系统(gps)、glonas和galileo系统。可以使用各种技术来传送高精度时间信号,包括irig、wwvb或wwv、基于网络的系统(诸如ieee 1588精确时间协议)等。根据一个实施例,高精度时间源可以包括gnss同步的时钟(例如,可从华盛顿州铂尔曼的史威哲工程实验室(schweitzer engineering laboratories)有限公司获得的型号sel

2407)。在所示的实施例中,ied 104包括gps接收器105,以从gnss接收时间信号。可以使用ieee 1588精确时间协议将时间信号分发到系统100的其他部件。
24.数据分组的源或发射器可以确定将分组放在线路上的时间,可以将该时间称为ts或“发送时间”。在某些实施例中,巨型帧(jumbo frames)可用于容纳八字节时间戳。在一个实施例中,每个分组可以被发布,64位时间戳在偏移到数据字段中的预定义分组处,或者64位时间戳在分组末尾处。在一些实施例中,时间戳可以被附加到类似于prp标签的分组的末尾,或者可以是prp标签修改的一部分。
25.接收装置可以在接收到分组时给分组加上时间戳,这可以被称为tr或“接收时间”。接收装置然后可以使用等式1计算飞行时间。
26.飞行时间=接收时间

发送时间
ꢀꢀꢀ
等式1
27.可以确定并存储典型或预期的飞行时间值。在各种实施例中,可以使用各种技术来确定典型或预期的飞行时间。例如,可以在调试期间通过计算多个分组的平均飞行时间来确定典型或预期的飞行时间。
28.在操作中,系统100中的数据分组的安全性可以针对各种网络技术、装置和拓扑进行验证。可以为每条可能的路径确定每个客户端

服务器连接的网络跳数,以及每条可能的路径中每个链路的飞行时间。在所示的实施例中,ied 102可以通过两条可能的路径与ied 104交换信息。主路径10包括l1、l4、l3和l6,并且备用路径包括l1、l2、l5和l6。基于每个链路l1

l6的飞行时间(其可以分别表示为t1

t6),主路径和备用路径将各自具有固定的行进时间。因此,分组从ied 102行进到ied 104的飞行时间由等式2或等式3表示。
29.t’=t1+t2+t5+t6
ꢀꢀꢀ
等式2
30.或
31.t”=t1+t4+t3+t6
ꢀꢀꢀ
等式3
32.可以识别和/或标记不对应于t’或t”的分组。此外,主路径和备用路径具有固定的跳数。也可以标记具有与对应于主路径和备用路径的固定数量不同的跳数的分组。在所示的示例中,示出了两条路径(即,主路径和备用路径),但是应当理解,在各种实施例中可以存在任何数量的路径。
33.图1b示出了与本公开的实施例一致的图1a的系统100,其中黑客已拦截了两个交换机110、112之间的通信。如图所示,黑客装置114设置在交换机110和交换机112之间。这样,黑客装置114可以接收并中继交换机110和交换机112之间的通信,以避免检测。黑客装置114的添加增加了在交换机110、112之间通过的网络分组的飞行时间。这样,与本公开一致的系统和方法可以检测到黑客装置114。
34.如果沿着现有路径添加新的交换机以便添加网络端口来连接黑客装置114,则分组将不会沿同一主路径行进。分组现在将通过新电缆和交换机行进,并且由于飞行时间的变化,该技术将检测到新路径。在某些实施例中,每个分组可以包括报头,报头包括传输时间值和到达目的地所采取的跳数。
35.在飞行时间超过预期飞行时间的情况下,可以采取某些动作来重新配置系统100以减少与潜在的mitm攻击相关联的风险。例如,如果ied 102和ied 104之间的数据分组通过包括l1、l4、l3(即通过黑客装置114)和l6的路径进行路由,则系统100可以使用包括l1、l2、l5和l6的路径重新路由数据分组。重新路由的分组可以由此避开黑客装置114。在另一示例中,系统100可以创建隔离路径以创建蜜罐(honeypot)以将黑客导航到陷阱。
36.与本公开一致的实施例可以包括确定性和非确定性网络。在确定性网络(诸如软件定义网络(sdn))中,将定义分组通过网络的路径。这样,飞行时间应该具有可预测的飞行时间。在结合sdn元件的实施例中,可以响应于确定一个或更多个数据分组的飞行时间与有效飞行时间不一致而将流量重新路由到可替代流。
37.在非确定性网络中,可以确定主路径的飞行时间。网络的变化(例如,网络链路的故障)或网络状况的变化(例如,网络拥塞)可能导致数据路由的变化。响应于网络中的变化,可以使用协议(诸如生成树协议(stp)和快速生成树协议(rstp))来确定可替代路径。识别可替代路径可能导致更长的飞行时间。因此,飞行时间超过阈值的指示可以指示分组经过了可替代路径。表现出超过阈值的飞行时间的分组也可能是由恶意装置在恶意连接上对分组进行注入而导致的。运营商可以检查被标记为比预期更长的飞行时间的分组,并确定额外时间是通过可替代路径进行路由还是mitm攻击的结果。
38.某些实施例还可以利用哈希值来验证分组在传输中未被修改。在一个特定实施例中,可以使用源的标识符和要传输的数据来确定哈希值。接收者可能先前已接收到或已配置有源的标识符,并且因此,哈希值可以允许对数据和源两者进行验证。
39.图2示出了与本公开的实施例一致的系统200的框图,其中多个网络装置可以被配置为确定飞行时间。系统200可以在网络级别实现与本公开一致的飞行时间确定,而不是由通信装置直接实现。例如,交换机206

212可以从网络时钟216接收时间信号,并且可以将时间戳应用于由ied 202和204传输的分组。交换机还可以确定与此类分组相关联的飞行时间,并且确定飞行时间是否对应于期望值。此类实施例可以被用来向现有系统和装置提供额外的安全性,并且可以在网络设备的更新期间被添加。
40.网络时钟216可以包括授权的客户端列表,该列表可用于识别被授权连接到网络时钟216的装置。在各种实施例中,该列表可以包括媒体访问控制(mac)地址、序列号、ip地址或其他标识符。授权客户端列表上的装置(诸如ied 202和204)可以基于网络时钟216接收时间信号,并且可以使用来自网络时钟216的时间信号来确定网络分组的飞行时间。可以基于每个分组所包括的时间戳来确定特定分组的飞行时间。
41.交换机206

212可以将时间戳添加到来自授权源(诸如ied 202和204)的分组。在各种实施例中,可以在精确的时间协议标签处添加时间戳,或者可以将时间戳插入数据分组报头中。此外,交换机206

212可以确定与系统200中的数据分组相关联的飞行时间。可以将缺少时间戳的分组标记为源自未经授权的源。
42.在所示的实施例中,由于缺乏基于网络时钟216的时间戳,因此可以识别来自黑客装置214的分组。即使黑客装置214能够添加时间戳,该时间戳也可能与网络时钟216的时间戳不同。更进一步,即使假设网络时钟216和黑客装置214都依赖于公共时间源(例如,gps时间信号),飞行时间也会由于与从交换机210和交换机212中继分组相关联的延迟而有所不同。
43.图3示出了与本公开的实施例一致的系统300,该系统300包括与第一ied 302通信的第一时间源316和与第二ied 304通信的第二时间源318。在所示的实施例中,ied 302可以基于来自时间源316的时间信号给数据分组加上时间戳,而ied 304可以基于来自时间源318的时间信号给数据分组加上时间戳。
44.对系统300的攻击可能包括对时间源316的操纵。来自ied 302的分组可以包括反映对时间源316的操纵的时间戳。ied 304可以从ied 302接收包括反映被操纵的时间源316的时间戳的分组。
45.对时间源316的改变使得由ied 302传输的数据分组被标记有相应的时间。当ied 304接收到由ied 302传输的数据分组时,对时间源316的操纵可以反映在相关联的飞行时间中。因此,系统300可以标记分组,并且可以检测到对时间源316的操纵。
46.图4示出了与本公开一致的包括无线通信信道的系统400中的mitm攻击的框图。在所示的实施例中,ied 402和404分别与无线收发器408和410通信。无线收发器408和410可以利用各种通信技术(例如,无线电收发器,微波收发器等)和通信协议。此类技术可以允许跨越范围从相对短的距离到长距离的广泛变化的距离进行通信。无线收发器408和410允许ied 402和404通过无线通信信道420进行通信。
47.ied 402和404可以各自包括gnss接收器414和416,并且可以使用来自gnss的时间信号来给数据分组加上时间戳。ied 402和404可以基于与数据分组相关联的时间戳计算数据分组的飞行时间。飞行时间与预期值不同的数据分组可以被标记。
48.黑客装置406还包括gnss接收器418和无线收发器412,gnss接收器418从gnss接收时间信号,无线收发器412通过无线通信信道420进行通信。黑客装置406可以使用各种技术来干扰ied 402和404之间的通信。例如,黑客装置406可以尝试阻塞通过无线通信信道420的通信。在阻塞通信信道420的同时,黑客装置406可以通过在ied 402和404之间中继通信来实现mitm攻击。
49.可以基于与经由通信信道420传输的分组相关联的飞行时间来检测由黑客装置406实现的mitm攻击。例如,从ied 402传输、由黑客装置406拦截并中继到ied 404的数据分
组基于与黑客装置406接收、处理和中继消息相关联的延迟可能表现出超过预期值的飞行时间。
50.图5示出了与本公开的实施例一致的用于检测并阻止网络攻击的方法500的流程图。在502处,可以将时间戳添加到第一多个网络分组。在各种实施例中,时间戳可以由产生多个数据分组的装置添加到多个网络分组,或者可以由接收多个数据分组的网络装置添加。时间戳可以得自提供纳秒准确度的高精度时间源,诸如gnss。
51.在504处,可以通过网络传输第一多个数据分组。该网络可以包括有线或无线通信信道,并且可以利用各种类型的网络技术、拓扑和通信协议。
52.在506处,可以基于多个网络分组的时间戳来确定至少一个有效飞行时间。在某些实施例中,可能存在多个有效飞行时间。例如,如结合图1所讨论的,存在两个有效飞行时间并且其在等式2和等式3中指定。更进一步,某些实施例可以包括高度冗余的网络,并且因此可以包括多个有效飞行时间。
53.要素502、504和506可以构成配置过程520。在一些实施例中,可以在系统调试时执行配置过程520。此外,可以根据调度表或基于网络中的条件来执行配置过程520。周期性地执行配置过程520可以允许实现方法500的系统适应变化的条件。
54.在508处,可以将时间戳添加到第二多个网络分组,并且可以在510处传输第二多个网络分组。可以在512处基于第二多个网络分组的时间戳来确定飞行时间。
55.在514处,方法500可以确定第二多个网络分组的飞行时间是否与至少一个有效飞行时间一致。如果飞行时间与至少一个有效飞行时间一致,则可以得出结论,网络分组在传输中未被拦截或操纵。
56.如果在514处飞行时间与第二多个数据分组的所确定的飞行时间不一致,则可以在516处标记分组。在各种实施例中,可以检查标记的分组以确定飞行时间与预期值不同的原因。例如,额外的飞行时间可能与通信链路故障以及使用自愈协议(self

healing protocol)(诸如stp或rstp)发现新路径相关联。可替代地,飞行时间与至少一个有效飞行时间的偏差可能是由mitm攻击以及与中继第二多个网络数据分组的黑客装置相关联的延迟引起的。
57.在518处,可以实现保护动作。在一个实施例中,可以通过可替代路径重新路由数据分组。如以上结合图1b所讨论的,数据分组可以被重新路由以避开网络段l3,并因此避开黑客装置114。更进一步,在一个实施例中,系统可以创建隔离路径以创建蜜罐来将黑客导航到陷阱。
58.图6示出了与本公开的实施例一致的用于确定多个网络分组的飞行时间的系统600的框图。在某些实施例中,系统600可以包括ied和/或网络装置以在网络中路由数据分组。系统600可以使用硬件、软件、固件和/或其任何组合来实现。此外,本文描述的某些部件或功能可以与其他装置关联或由其他装置执行。具体示出的配置仅表示与本公开一致的一个实施例。
59.系统600包括被配置为与其他装置通信的通信接口616。在某些实施例中,通信接口616可以促进与另一个ied的直接通信或通过通信网络与另一个ied通信。通信接口616可以促进与多个ied的通信。
60.系统600还可以包括时间输入部612,时间输入部612可以用于接收时间信号(例
如,公共时间基准),从而允许系统600将时间戳应用于所采集的样本。在某些实施例中,可以经由通信接口616接收公共时间基准,并且因此,对于时间戳记和/或同步操作可能不需要单独的时间输入。一个此类实施例可以采用ieee 1588协议。被监视设备接口608可以被配置为从一件被监视设备接收状态信息,并且向其发出控制指令。
61.处理器624可以被配置为处理经由通信接口616、时间输入部612和/或被监视设备接口608接收的通信。处理器624可以使用任何数量的处理速率和架构来操作。处理器624可以被配置为执行本文描述的各种算法和计算。处理器624可以体现为通用集成电路、专用集成电路、现场可编程门阵列和/或任何其他合适的可编程逻辑器件。
62.计算机可读存储介质630可以是被配置为执行本文描述的方法中的任一种的各种软件模块的存储库。数据总线626可以将被监视设备接口608、时间输入部612、通信接口616和计算机可读存储介质630链接到处理器624。
63.通信模块632可以允许系统600经由通信接口616与各种外部装置中的任一个通信。通信模块532可以被配置用于使用各种数据通信协议(例如,以太网、iec 61850等)进行通信。
64.时间戳记模块634可以被配置为向由系统600传输的通信施加时间戳。时间戳记模块634可以从时间输入部612接收时间信号,并且可以使时间戳基于时间信号。尽管在图6中被示为软件模块,但是在其他实施例中,可以使用硬件元件来执行时间戳记。
65.哈希模块636可以生成哈希值,该哈希值可以用于验证分组在传输中未被修改。在一个特定实施例中,可以使用系统600的标识符和要传输的数据来确定哈希值。与600通信的装置可能先前已接收到或已配置有与系统600相关联的标识符,因此,哈希值可以允许数据和源两者的验证。
66.飞行时间模块638可以被配置为确定与多个数据分组相关联的至少一个有效飞行时间。在各种实施例中,可以在配置过程(诸如图5所示的配置过程520)期间确定有效飞行时间。此外,飞行时间模块638可以评估与系统600接收到的分组相关联的飞行时间,并且可以确定飞行时间是否与至少一个有效飞行时间一致。在确定飞行时间与至少一个有效飞行时间不一致的情况下,可以标记相关联的数据分组以用于额外检查。
67.保护动作模块640可以基于确定一个或更多个数据分组与有效飞行时间不一致来实现保护动作。在一些实施例中,保护动作可以包括重新路由网络中的流量、选择性地丢弃标记的分组以及创建蜜罐以将黑客导航到陷阱。
68.尽管已示出和描述了本公开的特定实施例和应用,但是应当理解,本公开不限于本文公开的精确配置和部件。因此,可以在不脱离本公开的基本原理的情况下对上述实施例的细节进行许多改变。因此,本发明的范围应仅由所附权利要求书确定。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1