CN110830416A - 网络入侵检测方法和装置 - Google Patents
网络入侵检测方法和装置 Download PDFInfo
- Publication number
- CN110830416A CN110830416A CN201810897340.7A CN201810897340A CN110830416A CN 110830416 A CN110830416 A CN 110830416A CN 201810897340 A CN201810897340 A CN 201810897340A CN 110830416 A CN110830416 A CN 110830416A
- Authority
- CN
- China
- Prior art keywords
- message
- feature
- regular expression
- word
- characteristic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
Abstract
本发明公开了网络入侵检测方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:采用多模匹配算法遍历当前网络的每个报文,当该报文中存在特征单词库中的特征单词时,获取该报文中的特征单词;确定该报文中每个特征单词所映射的正则表达式;根据每个特征单词所映射的正则表达式对当前网络进行入侵检测。该实施方式能够能够大大降低算法复杂度,提高入侵检测效率,进而提高实时大流量下的监控能力。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及网络入侵检测方法和装置。
背景技术
随着网络信息技术的不断发展,人们对于网络信息的依赖程度不断的加深,在这种情况下,网络安全已经成为影响社会经济发展的核心问题,因而网络安全技术的存在和发展非常必要,对网络的健康和持续发展至关重要。
曾经作为主要的计算机网络安全防范手段的防火墙技术,已经不能满足人们对日益增长的网络安全需求,作为对防火墙技术的有益补充,引入一种全新的计算机网络安全技术——网络入侵检测系统 (Intrusion Detection System,IDS)。入侵检测系统作为一种积极主动的网络安全防护技术,提供对内部网络攻击、外部网络攻击与误操作实时保护,在网络系统体系受到危害之前作出响应入侵;入侵检测系统能很好的弥补防火墙技术的不足,在网络安全技术中占有重要的地位。
如图1和2所示,基于网络的IDS通过连接在网络上的站点捕获网上的报文,并分析其是否具有已知的攻击模式,以此来判别是否为入侵者。图1中,101代表网络,102代表路由器,103代表防火墙, 104代表IDS,105代表交换机,106代表服务器。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
(1)难以突破大流量瓶颈、性能有待提高
由于现有的IDS系统采用被动的监听实时的镜像报文模式,根据 OSI七层模型对网络报文协议栈进行详细的解析,需要将原始报文以源 IP、目的IP、源端口、目的端口、协议类型(通常称为五元组)进行报文关联,然后再采用模式匹配、正则匹配等技术,对报文中一些特征进行匹配,最后对匹配结果实时进行攻击行为风险判断。然而硬件的架构仍然采用传统的pc机、服务器硬件架构,因此决定了其监控能力无法得到实质性的突破。
报文的捕获、处理、分析都需要大量的计算。传统的协议识别方法,如正则表达式、模式匹配等算法,在实时大流量下处理能力显得捉襟见肘。
(2)不具有攻击事件的回溯、和长时间的关联攻击的分析能力。
传统的IDS系统通常采用单机+数据库的模式,只会对分析的结果进行存储,由于磁盘存储IO性能的限制,实时的流量、连接等信息无法存储,当攻击事件发生时,无法通过历史数据进行溯源,确认是否是真实的攻击,还是误处理。因此传统IDS的误报率高,常常被人诟病。其结果对网络安全分析只能够作为参考。
发明内容
有鉴于此,本发明实施例提供一种网络入侵检测方法和装置,能够大大降低算法复杂度,提高入侵检测效率,进而提高实时大流量下的监控能力。
根据本发明实施例的一个方面,提供了一种网络入侵检测方法。
根据本发明实施例的一种网络入侵检测方法,包括:
采用多模匹配算法遍历当前网络的每个报文,当该报文中存在特征单词库中的特征单词时,获取该报文中的特征单词;
确定该报文中每个特征单词所映射的正则表达式;
根据每个特征单词所映射的正则表达式对当前网络进行入侵检测。
可选地,采用多模匹配算法遍历每个报文,包括:对于每个报文,提取该报文的连接信息,连接信息包括:协议类型;确定与该报文的协议类型匹配的特征单词库;采用多模匹配算法遍历该报文,确定该报文中是否存在特征单词库中的特征单词。
可选地,获取该报文中的特征单词之后,还包括:根据第一映射关系,确定该报文中每个特征单词的特征标识;第一映射关系是特征单词及其对应的特征标识之间的一一对应关系;
确定该报文中每个特征单词所映射的正则表达式,包括:根据第二映射关系,确定每个特征标识所映射的正则表达式;第二映射关系是特征标识及其对应的正则表达式之间的对应关系。
可选地,连接信息还包括:报文摘要;根据每个特征单词所映射的正则表达式对当前网络进行入侵检测,包括:对于每个特征单词所映射的正则表达式,当该正则表达式与该报文摘要匹配时,确定当前网络存在入侵攻击。
可选地,连接信息还包括以下至少之一:源IP,目的IP,源端口,目的端口,开始时间,结束时间,上行当前传输字节数,下行当前传输字节数,协议字段。
可选地,确定该报文中每个特征单词的特征标识之后,还包括:将该报文的连接信息、特征单词以及每个特征单词的特征标识作为一条数据记录存储至ES数据库;以及,
采用Spark读取所述ES数据库中的数据记录,以确定该报文中每个特征单词所映射的正则表达式,并根据每个特征单词所映射的正则表达式对当前网络进行入侵检测。
可选地,确定当前网络存在入侵攻击之后,还包括:获取与报文摘要匹配的正则表达式对应的告警信息,以进行告警处理。
根据本发明实施例的一个方面,提供了一种网络入侵检测装置。
根据本发明实施例的网络入侵检测装置包括:
获取模块,采用多模匹配算法遍历当前网络的每个报文,当该报文中存在特征单词库中的特征单词时,获取该报文中的特征单词;
分析模块,确定该报文中每个特征单词所映射的正则表达式;根据每个特征单词所映射的正则表达式对当前网络进行入侵检测。
可选地,获取模块采用多模匹配算法遍历每个报文,包括:对于每个报文,提取该报文的连接信息,连接信息包括:协议类型;确定与该报文的协议类型匹配的特征单词库;采用多模匹配算法遍历该报文,确定该报文中是否存在特征单词库中的特征单词。
可选地,获取模块还用于:获取该报文中的特征单词之后,根据第一映射关系,确定该报文中每个特征单词的特征标识;第一映射关系是特征单词及其对应的特征标识之间的一一对应关系;
分析模块确定该报文中每个特征单词所映射的正则表达式,包括:根据第二映射关系,确定每个特征标识所映射的正则表达式;第二映射关系是特征标识及其对应的正则表达式之间的对应关系。
可选地,连接信息还包括:报文摘要;分析模块根据每个特征单词所映射的正则表达式对当前网络进行入侵检测,包括:对于每个特征单词所映射的正则表达式,当该正则表达式与报文摘要匹配时,确定当前网络存在入侵攻击。
可选地,连接信息还包括以下至少之一:源IP,目的IP,源端口,目的端口,开始时间,结束时间,上行当前传输字节数,下行当前传输字节数,协议字段。
可选地,获取模块还用于:确定该报文中每个特征单词的特征标识之后,将该报文的连接信息、特征单词以及每个特征单词的特征标识作为一条数据记录存储至ES数据库;以及,
分析模块采用Spark读取所述ES数据库中的数据记录,以确定该报文中每个特征单词所映射的正则表达式,并根据每个特征单词所映射的正则表达式对当前网络进行入侵检测。
可选地,分析模块还用于:确定当前网络存在入侵攻击之后,获取与报文摘要匹配的正则表达式对应的告警信息,以进行告警处理。
根据本发明实施例的另一个方面,提供了一种网络入侵检测电子设备。
根据本发明实施例的网络入侵检测电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当该一个或多个程序被该一个或多个处理器执行,使得该一个或多个处理器实现本发明实施例第一方面提供的网络入侵检测方法。
根据本发明实施例的还一个方面,提供了一种计算机可读介质。
根据本发明实施例的计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例第一方面提供的网络入侵检测方法。
上述发明中的一个实施例具有如下优点或有益效果:将传统的正则表达式规则转化为特征单词库并建立每个特征单词与正则表达式之间的映射关系。在需要对报文进行实时分析时,采用多模匹配算法遍历报文,使得特征匹配只需要一次遍历报文,大大降低算法复杂度,提高入侵匹配效率,进而提高实时大流量下的监控能力。将命中了特征单词的报文的连接信息、特征单词以及每个特征单词的特征标识作为一条数据记录存储至ES数据库信息,采用Spark从ES中有选择范围的拉取数据进行详细分析,存储规模相对于全量存储大大减小,且具有攻击事件的回溯、和长时间的关联攻击的分析能力。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是现有技术中IDS在网络中所处的位置示意图;
图2是现有技术中IDS的工作流程示意图;
图3是根据本发明实施例的网络入侵检测方法的主要流程的示意图;
图4是根据本发明实施例中特征单词与正则表达式之间的映射关系示意图;
图5是根据本发明一些实施例的网络入侵检测装置的主要模块的示意图;
图6是根据本发明另一些实施例的网络入侵检测装置的主要组成的示意图;
图7是本发明实施例可以应用于其中的示例性系统架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
报文是网络中交换与传输的数据单元。Snort为极具代表性的开源 IDS系统之一,其基于Libpcap(一个网络数据包捕获函数库)收取报文,支持多平台部署实时流量分析。现有技术中,Snort分析网络数据流并匹配用户定义的一些IDS规则(即判定IDS报文是否为入侵攻击的规则),根据这些IDS规则进行入侵检测,并根据检测结果采取一定的动作。现有技术中,为了保证不同厂家的IDS规则通用,IDS规则采用了一种特定的语法结构,支持特征匹配、正则表达式模式匹配等。例如:“alert tcp$EXTERNAL_NET any->$HOME_NET 21 (msg:"FTP MDTM command overflow attempt"; flow:to_server,established;content:"MDTM";nocase;pcre:"/MDTM\s+\d{1 4}[+-][^]{48,}\s+.+/smi";reference:bugtraq,9751;reference:cve,2004-0330; classtype:attempted-admin;sid:2416;rev:5;)”为一条通用的IDS规则,该规则指定了连接的类型为TCP,方向为外到内,目的端口为21,协议为ftp(一种文件传输协议)协议等特征。正文部分采用PCRE(Perl Compatible RegularExpressions,是一个Perl(一种计算机语言)库,包括Perl兼容的正则表达式库)正则表达式语法对报文全文进行匹配。
网络上的报文通过端口镜像的方式实时到达Snort所在设备的网卡, Snort通过相关的收报接口将原始的报文收到用户空间。根据OSI(Open System Interconnection,开放式系统互联)网络协议对报文进行解析,获得源IP(Internet Protocol,网络之间互连的协议)、目的IP、源端口、目的端口、传输层协议、应用层协议等信息。对TCP/IP数据报文进行连接跟踪,寻找到匹配TCP协议、由外到内、目的端口为21的 TCP连接。针对这类TCP连接加载以上的IDS规则,进行正则表达式匹配,如果命中(即当前网络连接中匹配到符合IDS规则的特征)则判断当前报文为攻击行为。
如果在该连接上存在N(N为正整数)条正则表达式规则,则要对此连接上的所有报文进行N次遍历匹配,假如每秒钟探针接收到的连接报文数为M,正则表达式IDS规则条数为N,则每秒钟需要进行正则匹配的次数为M*N,算法复杂度为O(M*N)。
由于流量实时到达,必须要即时分析处理,如报文不能及时处理则收包队列阻塞,后续的报文将无法处理,只能进行丢包处理。由此可见,正则表达式匹配是导致传统IDS系统效率低下的主要原因。
有鉴于此,本发明实施例将传统的正则表达式规则转化为特征单词库并建立每个特征单词与正则表达式之间的映射关系。在需要对报文进行实时分析时,采用多模匹配算法遍历报文,使得特征匹配只需要一次遍历报文,大大降低算法复杂度,提高入侵匹配效率,进而提高实时大流量下的监控能力。
根据本发明实施例的一个方面,提供了一种网络入侵检测方法。
图3是根据本发明实施例的网络入侵检测方法的主要流程的示意图。如图3所示,网络入侵检测方法,包括:步骤S101、步骤S102 和步骤S103。
步骤S101、采用多模匹配算法遍历当前网络的每个报文,当该报文中存在特征单词库中的特征单词时,获取该报文中的特征单词。
特征单词库中含有多个元素,每个元素即为一个特征单词,当报文中含有特征单词库中的元素时,表明报文中存在对应的特征单词。在识别特征之前往往需要加载特征单词库。有些规则只对特定类型的协议有效,比如在HTTP(Hyper Text Transport Protocol,超文本传输协议)协议中如果报文中有insert特征(即报文中有字符串insert)比较危险,在SMB(Server Message Block,是一种协议的名称)协议中如果报文中有.exe特征(即报文中有字符串.exe)比较危险。鉴于此,采用多模匹配算法遍历每个报文可以包括:对于每个报文,提取该报文的连接信息,连接信息包括:协议类型;确定与该报文的协议类型匹配的特征单词库;采用多模匹配算法遍历该报文,确定该报文中是否存在特征单词库中的特征单词。根据协议类型匹配调整单词库,能够提高匹配效率和准确性。
可选地,连接信息还包括:报文摘要;根据每个特征单词所映射的正则表达式对当前网络进行入侵检测,包括:对于每个特征单词所映射的正则表达式,当该正则表达式与该报文摘要匹配时,确定当前网络存在入侵攻击。
可选地,获取该报文中的特征单词之后,还包括:根据第一映射关系,确定该报文中每个特征单词的特征标识;第一映射关系是特征单词及其对应的特征标识之间的一一对应关系。特征标识用于识别和区分特征单词,采用特征标识识别和区分特征单词,能够大大降低存储特征单词和对应的正则表达式的数据库的存储压力。
现有技术中当攻击事件发生时,无法通过历史数据进行溯源。鉴于此,本发明实施例的连接信息可以包括以下至少之一:源IP,目的 IP,源端口,目的端口,开始时间,结束时间,上行当前传输字节数,下行当前传输字节数,协议字段。本发明实施例中的协议字段包括传输层协议(例如TCP、UDP、ICMP等)的字段和应用层协议(例如HTTP、DNS等)的字段,具体哪个字段可以根据实际情况进行选择性设置,例如HTTP协议会提取主机HOST信息。当采用本发明实施例的方法判定当前报文为入侵攻击时,一方面能够通过上述各项连接信息进行溯源,确认当前报文是真实的入侵攻击还是误处理,另一方面,也能够充分了解入侵攻击的相关信息,便于有针对性地进行处理。
本发明实施例中的多模匹配算法是指AC(Aho–Corasick)算法, AC算法是由Alfred V.Aho和Margaret J.Corasick发明的字符串搜索算法,用于在输入的一串字符串中单次遍历匹配有限组“字典”中的子串,它与普通字符串匹配的不同点在于同时与所有字典串进行匹配。采用多模匹配算法遍历报文,使得特征匹配只需要一次遍历报文即可得出所有的命中特征对此,相对于现有技术中的正则表达式匹配算法,大大降低算法复杂度,提高入侵匹配效率,进而提高实时大流量下的监控能力。进一步地,可以采用分布式并行计算的方式遍历各个报文,从而大大的提高了入侵检测的计算效率。
步骤S102、确定该报文中每个特征单词所映射的正则表达式。
在一些实施例中,可以预先确定每个特征单词与正则表达式之间的映射关系,也可以通过两个或多个映射关系确定报文中每个特征单词所映射的正则表达式。例如,获取该报文中的特征单词之后,根据第一映射关系确定该报文中每个特征单词的特征标识;确定该报文中每个特征单词所映射的正则表达式,包括:根据第二映射关系,确定每个特征标识所映射的正则表达式;第二映射关系是特征标识及其对应的正则表达式之间的对应关系。
图4是根据本发明实施例中特征单词与正则表达式之间的映射关系示意图。图4中的映射关系A即第一映射关系,图4中的映射关系 B即第二映射关系。本发明实施例中的IDS规则,一方面包括特征单词库,另一方面还包括特征单词库中每个特征单词与正则表达式之间的映射关系。本领域技术人员可以按照如下方法确定本发明实施例中的IDS规则:
1.对于现有技术中原有的基于正则表达式匹配的规则进行特征抽象,例如/MDTM\s+\d{14}[+-][^]{48,}\s+.+/smi可以抽象成特征单词 /MDTM和/smi。根据最长特征原则,将原有的正则表达式进行抽象成一个或多个特征单词。对于无法抽象成特征单词的正则表达式,可以分析正则表达式能否穷举出单词特征,或是否有可以替代的正则表达式;
2.为每个特征单词分配特征标识id,形成一个特征单词->特征id 的映射,如图4的映射关系A。将这个映射关系可以存放在数据库或者配置文件中。在初始化时自动加载该映射关系到程序中;
3.确定每个特征id与正则表达式之间的映射关系。如图4所示映射关系B,每一个特征id可以映射多个正则表达式,比如特征单词/smi 也可能出现在另外一个正则表达式的规则中,所以一个特征单词可能对应多个正则表达式。当一条疑似攻击数据包含此类特征单词时,则需要逐一匹配其映射的所有正则表达式。映射关系B也可以存放在数据库或配置文件中任务启动时自动加载所需要的特征id以及其对应的正则表达式集合。
这样,将原先需要匹配所有的正则表达式计算,通过特征单词抽取的方式,将其分成了一个个小的集合。在实时进行流量数据处理时,并不需要去匹配这些正则表达式,通过多模匹配算法进行一次遍历即可得出所有的命中特征id。比如,采用Spark(一种计算引擎)确定每个特征id对应的正则表达式。由于Spark为离线模式,同时只需要抽取部分特征所映射的正则表达式进行匹配,且可以采用分布式并行计算,从而大大的提高了入侵检测的计算效率。
步骤S103、根据每个特征单词所映射的正则表达式对当前网络进行入侵检测。
当所映射的正则表达式存在于报文中时,判定当前网络存在入侵攻击。若映射的所有正则表达式都不存在于报文中时,判定当前网络不存在入侵攻击。可选地,连接信息还包括:报文摘要;根据每个特征单词所映射的正则表达式对当前网络进行入侵检测,包括:对于每个特征单词所映射的正则表达式,当该正则表达式与该报文摘要匹配时,确定当前网络存在入侵攻击。根据所映射的正则表达式预报文摘要进行匹配,能够大大简化匹配计算步骤,提高匹配效率。
例如,报文摘要为:
2f4d44544d2031313131313131313131313131312d616161616161616 161616161616161616161616161616161616161616161616161616161616 16161616161616161616161202e2f736d69,
通过将报文摘要转化为字符串string,得到:
/MDTM
11111111111111-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa./smi
若报文中的特征单词为/MDTM和./smi,对应的特征id为1,2,则这条记录中的攻击特征id为1,2。
Spark分析服务通过攻击特征id查出正则表达式为:
正则表达式1:/MDTM\s+\d{14}[+-][^]{48,}\s+.+/smi
正则表达式2:/MDTM\s+\d{14}[+-][^]{48,}\s+.+/exe
将正则表达式1与报文摘要转化得到的字符串string匹配,则匹配结果为命中,即当前网络中存在入侵攻击;将正则表达式2与报文摘要转化得到的字符串string匹配,同样特征单词还也可以对应另外一条正则表达式,则匹配结果为未命中。
如果通过攻击特征id查出正则表达式为:/MDTM\s+\d{18}[+-][^]{48,}\s+.+/smi,将其与报文摘要转化得到的字符串string匹配,则匹配结果为不匹配。
可选地,确定该报文中每个特征单词的特征标识之后,还包括:将该报文的连接信息、特征单词以及每个特征单词的特征标识作为一条数据记录存储至ES(Elasticsearch,一种非关系型数据库)数据库;以及,采用Spark读取所述ES数据库中的数据记录,以确定该报文中每个特征单词所映射的正则表达式,并根据每个特征单词所映射的正则表达式对当前网络进行入侵检测。例如,将该报文的连接信息、特征单词以及每个特征单词的特征标识作为一条数据记录存储至ES数据库,采用Spark数据分析服务定时从ES数据库中有选择范围地拉取数据记录进行详细分析,根据每条携带了特征单词的数据记录映射的正则表达式进行精确的正则表达式匹配,为攻击识别的准确性提供了保证。采用ES数据库进行信息存储、引入Spark从ES中有选择范围的拉取数据进行详细分析,存储规模相对于全量存储大大减小,且具有攻击事件的回溯、和长时间的关联攻击的分析能力。
可选地,确定当前网络存在入侵攻击之后,还包括:获取与报文摘要匹配的正则表达式对应的告警信息,以进行告警处理。进一步地,进行告警处理时可以关联详细的告警明细以提醒用户应该采用怎样的应对策略,或者便于用户确定当前网络是否真的存在入侵攻击。
根据本发明实施例的一个方面,提供了一种实现本发明实施例第一方法的网络入侵检测方法的网络入侵检测装置。
图5是根据本发明一些实施例的网络入侵检测装置的主要模块的示意图。如图5所示,网络入侵检测装置500包括:
获取模块501,采用多模匹配算法遍历当前网络的每个报文,当该报文中存在特征单词库中的特征单词时,获取该报文中的特征单词;
分析模块502,确定该报文中每个特征单词所映射的正则表达式;根据每个特征单词所映射的正则表达式对当前网络进行入侵检测。
可选地,获取模块采用多模匹配算法遍历每个报文,包括:对于每个报文,提取该报文的连接信息,连接信息包括:协议类型;确定与该报文的协议类型匹配的特征单词库;采用多模匹配算法遍历该报文,确定该报文中是否存在特征单词库中的特征单词。
可选地,获取模块还用于:获取该报文中的特征单词之后,根据第一映射关系,确定该报文中每个特征单词的特征标识;第一映射关系是特征单词及其对应的特征标识之间的一一对应关系;
分析模块确定该报文中每个特征单词所映射的正则表达式,包括:根据第二映射关系,确定每个特征标识所映射的正则表达式;第二映射关系是特征标识及其对应的正则表达式之间的对应关系。
可选地,连接信息还包括:报文摘要;分析模块根据每个特征单词所映射的正则表达式对当前网络进行入侵检测,包括:对于每个特征单词所映射的正则表达式,当该正则表达式与报文摘要匹配时,确定当前网络存在入侵攻击。
可选地,连接信息还包括以下至少之一:源IP,目的IP,源端口,目的端口,开始时间,结束时间,上行当前传输字节数,下行当前传输字节数,协议字段。
可选地,获取模块还用于:确定该报文中每个特征单词的特征标识之后,将该报文的连接信息、特征单词以及每个特征单词的特征标识作为一条数据记录存储至ES数据库;以及,
分析模块采用Spark读取所述ES数据库中的数据记录,以确定该报文中每个特征单词所映射的正则表达式,并根据每个特征单词所映射的正则表达式对当前网络进行入侵检测。
可选地,分析模块还用于:确定当前网络存在入侵攻击之后,获取与报文摘要匹配的正则表达式对应的告警信息,以进行告警处理。
图6是根据本发明另一些实施例的网络入侵检测装置的主要模块的示意图。以下结合图6对本发明实施例的网络入侵检测装置进行示例性说明。图6中,601代表获取模块,602代表ES数据库,603代表 Spark,604代表告警信息数据库,图中未示出分析模块。
1、从交换机的镜像口通过配置端口镜像策略,将通过交换机的流量镜像上行下行以及各个网段之间的交互流量都推送到获取模块601 (例如探针设备);
2、探针为一个类似于Snort的设备,可以通过高性能的收包接口将镜像流量收取到用户空间。探针多线程循环接收通过交换机镜像过来的原始报文,对报文逐条进行分析,通过对报文的五元组信息(即源IP、目的IP、源端口、目的端口、协议类型)关联,还原TCP/IP连接信息,还原得到的连接信息包括不限于连接开始时间、当前连接上下行流量,报文摘要,协议类型,协议字段(如HTTP协议会提取HOST 信息)提取等;
3、探针通过协议类型确定对应的特征映射关系(第一映射关系和第二映射关系),根据该特征映射关系确定报文中每个特征单词的特征标识。然后调用ES的导入数据接口,将报文的连接信息、特征单词以及每个特征单词的特征标识作为一条数据记录输出到ES数据库。探针采用多连接并行输出,以提高输出效率。ES数据库作为分布式nosql (非关系型的数据库)的存储系统,内部集成了Lucene(一种全文搜索引擎)搜索功能,可以对特定的字段分词、建立倒排索引,并对数据进行快速增量存储。同时ES数据库对外提供了高效的查询接口,从而支持对特定时间段的连接信息进行快速检索查询;
4、Spark根据协议类型确定任务类型,然后以ES数据库的数据作为输入。不同协议类型的协议处理不同的任务。各个任务还可以以时间维度进行数据分隔,也就是每个任务会处理一种协议一段时间内的攻击数据。例如若要对sql(关系型的数据库)注入攻击进行分析,则从ES数据库中拉取sql注入的攻击类型数据到内存中,攻击类型探针已经存放在一个特定的字段,通过ES的检索功能,能够快速的将数据过滤提取出。Spark再以五元组为维度,将一个连接上所有命中的特征 id进行整合,通过特征id映射的完整的正则表达式再进行完全的正则表达式匹配;通过引入了Spark数据分析服务,定时从ES中有选择范围的拉取数据进行详细分析,根据每条携带了单词特征串的数据映射的正则表达式,再进行精确的正则表达式匹配,为攻击识别的准确性提供了保证;
5、用户可以通过可视化界面对ES数据进行直接管理和搜索,例如针对时间、五元组、协议类型、告警id(用于唯一标识一条告警信息,每条告警信息唯一对应一个告警id)等信息进行搜索。搜索结果再根据五元组,完整的还原TCP连接的主要信息。这样用户可以对相关的告警信息,进行追溯,进一步的确认是否被攻击。
根据本发明实施例的另一个方面,提供了一种网络入侵检测电子设备。
根据本发明实施例的网络入侵检测电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当该一个或多个程序被该一个或多个处理器执行,使得该一个或多个处理器实现本发明实施例第一方面提供的网络入侵检测方法。
图7示出了可以应用本发明实施例的属性信息填充方法或属性信息填充装置的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705 交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息-- 仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的网络入侵检测方法一般由服务器705执行,相应地,网络入侵检测装置一般设置于服务器705 中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808 加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/ 输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU) 801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括:获取模块,采用多模匹配算法遍历当前网络的每个报文,当该报文中存在特征单词库中的特征单词时,获取该报文中的特征单词;分析模块,确定该报文中每个特征单词所映射的正则表达式;根据每个特征单词所映射的正则表达式对当前网络进行入侵检测。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,分析模块还可以被描述为“采用多模匹配算法遍历当前网络的每个报文、当该报文中存在特征单词库中的特征单词时获取该报文中的特征单词的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:采用多模匹配算法遍历当前网络的每个报文,当该报文中存在特征单词库中的特征单词时,获取该报文中的特征单词;确定该报文中每个特征单词所映射的正则表达式;根据每个特征单词所映射的正则表达式对当前网络进行入侵检测。
根据本发明实施例的技术方案,具有如下优点或有益效果:将传统的正则表达式规则转化为特征单词库并建立每个特征单词与正则表达式之间的映射关系。在需要对报文进行实时分析时,采用多模匹配算法遍历报文,使得特征匹配只需要一次遍历报文,大大降低算法复杂度,提高入侵匹配效率,进而提高实时大流量下的监控能力。将命中了特征单词的报文的连接信息、特征单词以及每个特征单词的特征标识作为一条数据记录存储至ES数据库信息,采用Spark从ES中有选择范围的拉取数据进行详细分析,存储规模相对于全量存储大大减小,且具有攻击事件的回溯、和长时间的关联攻击的分析能力。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。