本发明涉及工控网络安全技术领域,尤其是一种工业规则的快速匹配方法。
背景技术:
随着信息技术的发展,工业控制系统逐步走向联网化。很多工业控制协议逐渐运行于工业以太网上,针对工业控制系统的攻击也更加普遍。
工控网络中的恶意威胁软件,一旦潜入成功后,很大一部分不会立即对工业网络造成破坏。目前,针对工业控制网络异常行为的检测技术主要有两种办法,白名单和黑名单。由于工业控制系统的实时性要求,提高白名单和黑名单的匹配效率具有较高的应用价值。
现有的白名单与黑名单规则匹配技术,主要是线性匹配。在规则预处理阶段,根据协议,地址等内容,把规则以链表的形式组织起来。在规则匹配阶段,遍历此链表,查看规则是否匹配。这种方法效率低下,当规则数目较大时,对实时性影响大。规则预处理复杂,无法对单独的规则进行处理。在新增或删除单条规则时,必须对所有规则重新加载。在规则数量较大时,影响设备处理性能。
技术实现要素:
本发明要解决的技术问题是提供一种工业规则的快速匹配方法,能够解决现有技术的不足,降低工业规则对设备的影响,以满足工业控制系统的实时性要求。
为解决上述技术问题,本发明所采取的技术方案如下。
一种工业规则的快速匹配方法,包括以下步骤:
a、对工业规则进行预处理;
b、对预处理后的工业规则进行匹配。
作为优选,步骤a中,对工业规则进行预处理包括以下步骤,
a1、对工业规则进行解析,判断是否具有深度解析内容;
a2、若不具有深度解析内容,则插入协议对应的链表,预处理结束;
a3、若具有深度解析内容,则根据协议提供的hash函数进行hash运算,然后判断规则内容条目是否已在hash表中;
a4、若不在hash表中,则创建规则条目和二分查找树后将源地址插入规则条目;
a5、若在hash表中,则直接将源地址插入规则条目。
作为优选,步骤b中,对工业规则进行匹配包括以下步骤,
b1、根据数据包解析内容生成hash;
b2、在hash表中查找规则;
b3、根据数据包的源地址在二分查找树中查找对应的条目;
b4、判断条目是否存在;
b5、若条目不存在,则转至步骤b9;
b6、若条目存在,则根据数据包的目的地址在条目中查找,然后再次判断条目是否存在;
b7、若条目存在,则在协议链表内查找,若查找到对应条目,则根据规则id判断匹配成功的规则,若未查找到对应的条目,则匹配成功规则;
b8、若条目不存在,则转至步骤b9;
b9、在协议链表中根据源地址和目的地址进行查找。
采用上述技术方案所带来的有益效果在于:本发明使用hash算法,快速匹配规则内容。避免低效率的线性匹配。通过组合简单的hash与二分查找树,降低规则预处理的复杂度与内存的占用。
附图说明
图1是本发明一个具体实施方式中对工业规则进行预处理的流程图。
图2是本发明一个具体实施方式中对工业规则进行匹配的流程图。
具体实施方式
参照图1-2,本发明一个具体实施方式包括以下步骤:
a、对工业规则进行预处理;
b、对预处理后的工业规则进行匹配。
步骤a中,对工业规则进行预处理包括以下步骤,
a1、对工业规则进行解析,判断是否具有深度解析内容;
a2、若不具有深度解析内容,则插入协议对应的链表,预处理结束;
a3、若具有深度解析内容,则根据协议提供的hash函数进行hash运算,然后判断规则内容条目是否已在hash表中;
a4、若不在hash表中,则创建规则条目和二分查找树后将源地址插入规则条目;
a5、若在hash表中,则直接将源地址插入规则条目。
步骤b中,对工业规则进行匹配包括以下步骤,
b1、根据数据包解析内容生成hash;
b2、在hash表中查找规则;
b3、根据数据包的源地址在二分查找树中查找对应的条目;
b4、判断条目是否存在;
b5、若条目不存在,则转至步骤b9;
b6、若条目存在,则根据数据包的目的地址在条目中查找,然后再次判断条目是否存在;
b7、若条目存在,则在协议链表内查找,若查找到对应条目,则根据规则id判断匹配成功的规则,若未查找到对应的条目,则匹配成功规则;
b8、若条目不存在,则转至步骤b9;
b9、在协议链表中根据源地址和目的地址进行查找。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。