CN104954351A - 数据检测方法和装置 - Google Patents

数据检测方法和装置 Download PDF

Info

Publication number
CN104954351A
CN104954351A CN201410223219.8A CN201410223219A CN104954351A CN 104954351 A CN104954351 A CN 104954351A CN 201410223219 A CN201410223219 A CN 201410223219A CN 104954351 A CN104954351 A CN 104954351A
Authority
CN
China
Prior art keywords
data
detection
internal memory
reading
read
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.)
Granted
Application number
CN201410223219.8A
Other languages
English (en)
Other versions
CN104954351B (zh
Inventor
孙亚东
刘宁
宗泽
胡珀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201410223219.8A priority Critical patent/CN104954351B/zh
Publication of CN104954351A publication Critical patent/CN104954351A/zh
Application granted granted Critical
Publication of CN104954351B publication Critical patent/CN104954351B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种数据检测方法和装置。其中,数据检测方法包括:获取用于进行入侵检测的检测数据;通过第一进程将检测数据缓存到内存中;通过第二进程从内存中读取缓存后的数据,其中,第二进程为与第一进程不同的进程;以及对从内存中读取的数据进行入侵检测。通过本发明,解决了对数据的检测时间长导致无法及时检测出入侵行为的问题,达到了减少入侵检测的时间以便于及时检测出入侵行为的效果。

Description

数据检测方法和装置
技术领域
本发明涉及数据检测领域,具体而言,涉及一种数据检测方法和装置。
背景技术
入侵检测系统(intrusion detection system,简称“IDS”)是一种对网络传输进行即时监控,在发现可疑网络传输时发出警报或者采取主动反应措施的网络安全设备。根据数据来源不同,可分为基于主机的入侵检测系统(HIDS)和基于网络的入侵检测系统(NIDS)。
在进行入侵检测过程中,需要不断收集各种各样的数据,这些数据的数据量巨大。例如中等规模的IDC,随着收集的数据不断增多,每天产生的原始数据,就达到TB级别,甚至几十TB,数据总记录数能达到万亿的级别。大规模IDC集群的数据量则更多。
目前,通常采用数据库技术进行数据实时检测,然而数据库只能够支持千万条数据记录的结构化数据处理。还有采用分布式计算框架,如hadoop等,通过MapReduce作业并行计算以进行入侵检测,然而在数据量巨大的情况下,仍需要数个小时、甚至数天才能完成入侵检测,对数据的检测时间长,无法及时检测出入侵行为。
针对现有技术中对数据的检测时间长导致无法及时检测出入侵行为的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例的主要目的在于提供一种数据检测方法和装置,以解决对数据的检测时间长导致无法及时检测出入侵行为的问题。
为了实现上述目的,根据本发明实施例的一个方面,提供了一种数据检测方法。根据本发明实施例的数据检测方法包括:获取用于进行入侵检测的检测数据;通过第一进程将检测数据缓存到内存中;通过第二进程从内存中读取缓存后的数据,其中,第二进程为与第一进程不同的进程;以及对从内存中读取的数据进行入侵检测。
为了实现上述目的,根据本发明实施例的另一方面,提供了一种数据检测装置。根据本发明实施例的数据检测方法包括:获取单元,用于获取用于进行入侵检测的检测数据;缓存单元,用于通过第一进程将检测数据缓存到内存中;读取单元,用于通过第二进程从内存中读取缓存后的数据,其中,第二进程为与第一进程不同的进程;以及检测单元,用于对从内存中读取的数据进行入侵检测。
在本发明实施例中,获取用于进行入侵检测的检测数据,通过第一进程将检测数据缓存到内存中,通过第二进程从内存中读取缓存后的数据,对从内存中读取的数据进行入侵检测,解决了对数据的检测时间长导致无法及时检测出入侵行为的问题,达到了减少入侵检测的时间以便于及时检测出入侵行为的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种计算机的结构框图;
图2是根据本发明第一实施例的数据检测方法的流程图;
图3是根据本发明第二实施例的数据检测方法的流程图;
图4是根据本发明第三实施例的数据检测方法的流程图;
图5是根据本发明实施例的数据结构的示意图;
图6是根据本发明实施例的分析作业计算的流程图;
图7是根据本发明第一实施例的数据检测装置的示意图;
图8是根据本发明实施例的数据检测装置的硬件结构示意图;
图9是根据本发明第二实施例的数据检测装置的示意图;以及
图10是根据本发明实施例的又一数据检测装置的框架结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,可以提供了一种可以用于实施本申请装置实施例的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本发明实施例,提供了一种数据检测方法,该方法可由计算机或者类似的运算装置执行。图1所示为一种计算机的结构框图。如图1所示,计算机100包括一个或多个(图中仅示出一个)处理器102、存储器104、以及传输模块106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储软件程序以及模块,如本发明实施例中的数据检测方法和装置对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据检测方法和装置,例如对网络传输的数据进行入侵检测。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机100。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输模块106包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网进行通讯。在一个实例中,传输模块106可以是射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
图2是根据本发明第一实施例的数据检测方法的流程图。如图所示,该数据检测方法包括以下步骤:
步骤S202,获取用于进行入侵检测的检测数据。
检测数据可以是通过传输模块106传输的网络数据,即来自网络的信息流。具体地,传输模块106连接至网络,接收来自网络的各种各样的数据,入侵检测系统在对网络传输进行及时监控的过程中,需要实时收集网络传输的数据。另外,检测数据还可以是主机数据,例如主机的审计日志等数据。本发明实施例中,获取的检测数据优选为网络数据和主机数据,以便于将网络数据和主机数据进行关联分析,检测出入侵行为。获取检测数据,以便于对检测数据进行收集。可以是实时获取检测数据,以便对网络传输的数据进行实时检测。
步骤S204,通过第一进程将检测数据缓存到内存中。
获取到检测数据之后,通过第一进程将该检测数据缓存到内存中,该内存可以是存储器104。同时,由于内存的读写速度比传统的基于硬盘读写的数据库要快,且能快上好几个数量级,使得系统的分析计算效率波传统的数据库快几个数量级,从而减少在数据读写上的耗时,提高数据入侵检测的效率。第一进程可以是守护进程,由守护进程对检测数据进行写入,同时,守护进程还可以对写入内存的数据进行维护等操作。
步骤S206,通过第二进程从内存中读取缓存后的数据。
第二进程为与第一进程不同的进程,第二进程可以为多个进程,可以采用多个进程同时从内存中读取数据,以进行相应的分析,提高数据检测分析的速度。其中,多个进程可以采用无锁并行的方式从内存中读取数据。
步骤S208,对从内存中读取的数据进行入侵检测。
对读取的数据进行入侵检测,可以是对读取的数据进行入侵分析和计算,得到分析计算结果,以检测出是否存在入侵行为。
根据本发明实施例,通过获取检测数据,第一进程将检测数据缓存到内存中,第二进程从内存中读取缓存后的数据,对从内存中读取的数据进行入侵检测,解决了对数据的检测时间长导致无法及时检测出入侵行为的问题,达到了减少入侵检测的时间以便于及时检测出入侵行为的效果。
优选地,通过第一进程将检测数据缓存到内存中包括:对所述检测数据进行过滤,得到过滤后的数据;以及通过所述第一进程将所述过滤后的数据缓存到内存中。
由于用于进行入侵检测的数据量巨大,在获取到检测数据之后,对该数据进行过滤,以便于减少进行入侵检测的数据量。具体地,对检测数据进行过滤可以是先对该数据进行异常行为分析以分析出检测数据中的异常数据,该异常数据中包含有入侵行为的数据。获取到的检测数据量巨大,然而检测数据中异常数据量少,且该异常数据中包含有入侵行为的数据,因此,通过对检测数据进行过滤,得到过滤后的数据,从而减少进行入侵检测的数据量,提高入侵检测的效率。
由于对数据进行过滤后,数据量降低,因此可以将过滤后的数据缓存到内存中,降低内存存储压力。
图3是根据本发明第二实施例的数据检测方法的流程图。该实施例的数据检测方法可以作为上述实施例的数据检测方法的一种优选实施方式。如图所示,该数据检测方法包括:
步骤S302与步骤S202相同,这里不做赘述。
步骤S304,将检测数据与预设的匹配条件进行匹配。
匹配条件用于对检测数据进行过滤,预设的匹配条件可以是具有疑似入侵数据的特征,或者是具有一定条件的过滤规则,将获取到的检测数据与匹配条件进行匹配,以便于从中筛选出与匹配条件相匹配的数据。
步骤S306,将检测数据中与匹配条件匹配的数据作为过滤后的数据。
通过将检测数据与匹配条件进行匹配,得到与匹配条件匹配的数据,这些数据可以是疑似入侵行为的异常数据。这些异常数据相对于获取到的数据而言,数据量小,因此可以将这些数据作为过滤后的数据缓存到内存中,以便于从内存中读取数据,提高数据读写的速度。
具体的,由于入侵检测系统收集各种各样的数据,分析数据的异常行为,而这些数据中异常数据的比例较低;再加上入侵检测的时效性,通过分析实时数据发现当前的异常行为;综上两个方面,系统不用关注过去很长一段时间的全部数据;只需要分析实时数据,和过去的异常数据。尽管系统每天分析的数据量很大,然而实时分析的数据量有限,这样就可以将这些数据缓存到内存中,附加超时淘汰的方式,即将超时无效的数据及时从内存中删除。
步骤S308,通过第一进程将过滤后的数据缓存到内存中。
步骤S310、步骤S312依次与步骤S206、步骤S208相同,这里不做赘述。
根据本发明实施例,通过将检测数据与预设的匹配条件进行匹配,以对检测数据进行过滤,从而降低用于进行入侵检测的数据量,进一步提高入侵检测的速度,以快速检测出入侵行为。
图4是根据本发明第三实施例的数据检测方法的流程图。该实施例的数据检测方法可以作为上述实施例的数据检测方法的一种优选实施方式。如图所示,该数据检测方法包括以下步骤:
步骤S402、步骤S404依次与图2所示的步骤S202、步骤S204相同,这里不做赘述。
步骤S406,建立缓存后的数据的索引。
步骤S408,通过第二进程基于索引从内存中读取缓存后的数据。
在将检测数据缓存到内存之后,建立缓存后的数据的索引,这样,通过第二进程读取数据时,可以直接通过索引从内存中读取相应的数据。由于建立了索引,可以使得更加快速地找到需要读取的数据,提高数据读取的效率。同时,由于采用了索引,在对数据进行入侵检测时,可以同构索引查找到相互关联的数据,从而可以将相互关联的数据进行关联分析,以检测是否有入侵行为。
由于随着入侵检测系统(IDS)的发展,入侵方式也日趋多样化。依赖单一数据纬度的入侵检测系统越来越满足不了入侵发现的需要。本发明实施例,通过实时收集各种各样的数据,例如网络数据和主机数据,并对该数据进行关联分析、交互印证,从而发现入侵行为。
步骤S410与步骤S208相同,这里不做赘述。
优选地,建立缓存后的数据的索引包括:按照时间顺序建立缓存后的数据的时间索引;和/或,获取缓存后的数据的标识,对标识作哈希计算,得到标识对应的哈希值,将哈希值作为缓存后的数据的索引,其中,标识用于表示缓存后的数据的来源。
建立的索引可以是建立存入到内存中的数据的时间索引,可以按照时间先后顺序建立时间索引。建立的索引还可以是根据用于表示缓存后的数据来源的标识建立的索引,具体地,可以是获取缓存到内存中的数据的标识,对该标识作哈希计算,得到哈希值,将该哈希值作为数据的索引。
具体地,如图5所示,时间索引可以是环形队列索引(滑动时间窗口):以时间先后顺序保存数据的索引指针;读取数据时可以直接通过该索引查询。
Hash:以agent_id值做hash,该agent_id用于表示数据的来源,例如服务器、网关设备、交换机的设备的ID;做hash过程中发生碰撞时,可以采用开链法,放在在Agent指针链中。其中,Agent指针链可以以agent_id递增序排列。
数据链为以数据插入时间先后顺序排列的数据链。
滑动时间窗口采用环形队列,以时间先后顺序缓存数据。
在新数据插入时,直接插入到数据链尾部(push_back),时间复杂度O(1)。
在旧数据删除时,删除环形队列(滑动时间窗口)头部超时数据(rm_head),时间复杂度O(1)。
数据节点采用json格式,支持非结构化数据快速存储,和读取。
由于本发明实施例中,将数据缓存到内存中,可以支持非结构化的数据存储,避免采用数据库中导致无法存储非结构化的数据的问题。
优选地,第一进程为守护进程,其中,通过第一进程将检测数据缓存到内存中包括:通过守护进程采用原子操作将检测数据写入到内存中。
将检测数据写入到内存中,该过程中写操作由一个守护进程执行,并采用原子操作进行,使得缓存数据无修改,避免读取数据时读取到被修改前的数据(即脏数据)。具体地,守护进程对内存中数据进行维护可以包括以下情况:
数据增加push_back。增加最新数据。先写数据内容,然后原子操作添加环形队列尾部。
数据删除rm_head。删除最旧数据。首先原子操作删除索引,之后清空数据内容。
内存中缓存数据内容不修改:保证不读取脏数据,数据只增删,不修改。
优选地,第二进程包括多个进程,其中,通过第二进程从内存中读取缓存后的数据包括:通过多个进程从内存中读取缓存后的数据。通过多个进程从内存中读取数据,并进行入侵检测,从而提高入侵检测的效率。其中,多个进程可以采用无锁并行的方式对数据进行读取操作。
多个进程以无锁并行从内存中读取数据,其中,无锁并行是指读写同步进行,无冲突;无须加锁。多个进程可以称为多个分析作业,多个进程可以同时读取内存中的数据,相互不影响。数据读取只读取安全数据:比如缓存最近4个小时数据,只读最近3.5小时内的数据,保证数据读取时不被删除。
通过索引读取数据:根据环形队列(滑动时间窗口)索引直接取数据。
原内存数据不修改:可以多个作业无锁并行读取,分析处理后的数据(可修改),经过分析作业直接展示出来。
根据本发明实施例,通过采用多进程以无锁并行方式读取和分析数据,可以充分利用多核CPU的优势,进行并行分析计算,提高入侵检测的效率。
进一步地,多个进程包括第一读取进程和第二读取进程,其中,通过多个进程从内存中读取缓存后的数据包括:第一读取进程在不对读取的数据进行加锁的情况下从内存中读取缓存数据,缓存数据为缓存后的数据中的部分数据;以及第二读取进程在第一读取进程读取缓存数据的过程中读取缓存数据。
第一读取进程在不对读取的数据进行加锁的情况下从内存中读取缓存数据,第二读取进程在第一读取进程读取缓存数据的过程中读取缓存数据,这一过程即第一读取进程与第二读取进程以无锁并行的方式对缓存数据进行读取,从而使得多个进程在对同一数据进行读取时,相互之间不受到影响。
本发明实施例中,将主机数据和网络传输的数据进行关联分析,因此多个进程在读取数据过程中,会读取到相同的数据(缓存数据),通过采用采用上述方式,避免读取进程读取数据时相互影响,降低数据读取效率,而延长入侵检测时间的问题。
具体地,多个进程数据读取分析流程如图6所示,包括以下步骤:
步骤S602,分析作业开始执行(即读取进程开始执行)。
步骤S604,加载配置、内存数据接口。加载相关配置和内存数据接口,以便于从内存中读取数据。
步骤S606,是否有新数据。即判断内存中是否存在新数据。如果是,则执行步骤S608,反之,则执行步骤S612,休眠(sleep)。
步骤S608,根据索引读取数据、分析计算。具体地,根据在向内存中缓存数据时建立的索引,从内存中读取该数据,并进行入侵检测分析和计算,得到分析计算结果。
步骤S610,输出分析计算结果。根据分析计算结果确定该数据是否有入侵行为。
在输出计算结果或者判断出没有新数据之后,进程继续判断是否有新的数据,从而实现对新数据的实时检测。
本发明实施例的数据检测方法通过数据流式处理、内存缓存、分析作业无锁并发、分析逻辑配置化,来实现大数据下,入侵检测非结构化数据,实时关联分析计算,可以实现数十秒内发现、告警入侵行为。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的数据检测方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本发明实施例,还提供了一种用于实施上述数据检测方法的数据检测装置,该装置主要用于执行本发明实施例上述内容所提供的数据检测方法,以下对本发明实施例所提供的数据检测装置做具体介绍。
图7是根据本发明第一实施例的数据检测装置的示意图。如图所示,该数据检测装置包括:获取单元10、缓存单元30、读取单元40和检测单元50。
获取单元10用于获取用于进行入侵检测的检测数据。
检测数据可以是通过传输模块106传输的网络数据,即来自网络的信息流。具体地,传输模块106连接至网络,接收来自网络的各种各样的数据,入侵检测系统在对网络传输进行及时监控的过程中,需要实时收集网络传输的数据。另外,检测数据还可以是主机数据,例如主机的审计日志等数据。本发明实施例中,获取的检测数据优选为网络数据和主机数据,以便于将网络数据和主机数据进行关联分析,检测出入侵行为。获取检测数据,以便于对检测数据进行收集。可以是实时获取检测数据,以便对网络传输的数据进行实时检测。
缓存单元30用于通过第一进程将检测数据缓存到内存中。
获取到检测数据之后,通过第一进程将该检测数据缓存到内存中,该内存可以是存储器104。同时,由于内存的读写速度比传统的基于硬盘读写的数据库要快,且能快上好几个数量级,使得系统的分析计算效率波传统的数据库快几个数量级,从而减少在数据读写上的耗时,提高数据入侵检测的效率。第一进程可以是守护进程,由守护进程对检测数据进行写入,同时,守护进程还可以对写入内存的数据进行维护等操作。
读取单元40用于通过第二进程从内存中读取缓存后的数据。
第二进程为与第一进程不同的进程,第二进程可以为多个进程,可以采用多个进程同时从内存中读取数据,以进行相应的分析,提高数据检测分析的速度。其中,多个进程可以采用无锁并行的方式从内存中读取数据。
检测单元50用于对从内存中读取的数据进行入侵检测。
对读取的数据进行入侵检测,可以是对读取的数据进行入侵分析和计算,得到分析计算结果,以检测出是否存在入侵行为。
根据本发明实施例,通过获取检测数据,第一进程将检测数据缓存到内存中,第二进程从内存中读取缓存后的数据,对从内存中读取的数据进行入侵检测,解决了对数据的检测时间长导致无法及时检测出入侵行为的问题,达到了减小入侵检测的时间以便于及时检测出入侵行为的效果。
具体地,如图8所示,可以通过分析引擎来获取检测数据,其中,分析引擎包括内存和处理器,处理器可以为多个,如图中处理器1,处理器2至处理器N,分析引擎通过第一进程将获取到检测数据缓存到内存中,多个处理器通过第二进程从内存中依次读取缓存后的数据,用于进行入侵检测,得到检测结果。
优选地,缓存单元30包括:过滤模块,用于对所述检测数据进行过滤,得到过滤后的数据;以及缓存模块,用于通过所述第一进程将所述过滤后的数据缓存到内存中。
由于用于进行入侵检测的数据量巨大,在获取到检测数据之后,对该数据进行过滤,以便于减少进行入侵检测的数据量。具体地,对检测数据进行过滤可以是先对该数据进行异常行为分析以分析出检测数据中的异常数据,该异常数据中包含有入侵行为的数据。获取到的检测数据量巨大,然而检测数据中异常数据量少,且该异常数据中包含有入侵行为的数据,因此,通过对检测数据进行过滤,得到过滤后的数据,从而减少进行入侵检测的数据量,提高入侵检测的效率。
由于对数据进行过滤后,数据量降低,因此可以将过滤后的数据缓存到内存中,降低内存存储压力。
图9是根据本发明第二实施例的数据检测装置的示意图。该实施例的数据检测装置可以作为上述实施例的数据检测装置的一种优选实施方式。如图所示,该数据检测装置包括:获取单元10、缓存单元30、读取单元40和检测单元50,其中,缓存单元30包括过滤模块301和缓存模块302,过滤模块301包括匹配子模块3011和生成子模块3012。
匹配子模块3011用于将检测数据与预设的匹配条件进行匹配。
匹配条件用于对检测数据进行过滤,预设的匹配条件可以是具有疑似入侵数据的特征,或者是具有一定条件的过滤规则,将获取到的检测数据与匹配条件进行匹配,以便于从中筛选出与匹配条件相匹配的数据。
生成子模块3012用于将检测数据中与匹配条件匹配的数据作为过滤后的数据。
通过将检测数据与匹配条件进行匹配,得到与匹配条件匹配的数据,这些数据可以是疑似入侵行为的异常数据。这些异常数据相对于获取到的数据而言,数据量小,因此可以将这些数据作为过滤后的数据缓存到内存中,以便于从内存中读取数据,提高数据读写的速度。
具体的,由于入侵检测系统收集各种各样的数据,分析数据的异常行为,而这些数据中异常数据的比例较低;再加上入侵检测的时效性,通过分析实时数据发现当前的异常行为;综上两个方面,系统不用关注过去很长一段时间的全部数据;只需要分析实时数据,和过去的异常数据。尽管系统每天分析的数据量很大,然而实时分析的数据量有限,这样就可以将这些数据缓存到内存中,附加超时淘汰的方式,即将超时无效的数据及时从内存中删除。
根据本发明实施例,通过将检测数据与预设的匹配条件进行匹配,以对检测数据进行过滤,从而降低用于进行入侵检测的数据量,进一步提高入侵检测的速度,以快速检测出入侵行为。
优选地,数据检测装置还包括:建立单元,用于在通过第一进程将检测数据缓存到内存中之后,建立缓存后的数据的索引,读取单元包括第一读取模块,用于通过第二进程基于索引从内存中读取缓存后的数据。
在将缓存后的数据缓存到内存之后,建立缓存后的数据的索引,这样,通过第二进程读取数据时,可以直接通过索引从内存中读取相应的数据。由于建立了索引,可以使得更加快速地找到需要读取的数据,提高数据读取的效率。同时,由于采用了索引,在对数据进行入侵检测时,可以同构索引查找到相互关联的数据,从而可以将相互关联的数据进行关联分析,以检测是否有入侵行为。
由于随着入侵检测系统(IDS)的发展,入侵方式也日趋多样化。依赖单一数据纬度的入侵检测系统越来越满足不了入侵发现的需要。本发明实施例,通过实时收集各种各样的数据,进行关联分析、交互印证,从而发现入侵行为。
优选地,建立单元包括:第一建立模块,用于按照时间顺序建立缓存后的数据的时间索引;和/或,第二建立模块,用于获取缓存后的数据的标识,对标识作哈希计算,得到标识对应的哈希值,将哈希值作为缓存后的数据的索引,其中,标识用于表示缓存后的数据的来源。
建立的索引可以是建立存入到内存中的数据的时间索引,可以按照时间先后顺序建立时间索引。建立的索引还可以是根据用于表示缓存后的数据来源的标识建立的索引,具体地,可以是获取缓存到内存中的数据的标识,对该标识作哈希计算,得到哈希值,将该哈希值作为数据的索引。
具体地,如图5所示,时间索引可以是环形队列索引(滑动时间窗口):以时间先后顺序保存数据的索引指针;读取数据时可以直接通过该索引查询。
Hash:以agent_id值做hash,该agent_id用于表示数据的来源,例如服务器、网关设备、交换机的设备的ID;做hash过程中发生碰撞时,可以采用开链法,放在在Agent指针链中。其中,Agent指针链可以以agent_id递增序排列。
数据链为以数据插入时间先后顺序排列的数据链。
滑动时间窗口采用环形队列,以时间先后顺序缓存数据。
在新数据插入时,直接插入到数据链尾部(push_back),时间复杂度O(1)。
在旧数据删除时,删除环形队列(滑动时间窗口)头部超时数据(rm_head),时间复杂度O(1)。
数据节点采用json格式,支持非结构化数据快速存储,和读取。
由于本发明实施例中,将数据缓存到内存中,可以支持非结构化的数据存储,避免采用数据库中导致无法存储非结构化的数据的问题。
优选地,第一进程为守护进程,其中,缓存单元包括:写入模块,用于
通过守护进程采用原子操作将检测数据写入到内存中。
将检测数据写入到内存中,该过程中写操作由一个守护进程执行,并采用原子操作进行,使得缓存数据无修改,避免读取数据时读取到被修改前的数据(即脏数据)。具体地,守护进程对内存中数据进行维护可以包括以下情况:
数据增加push_back。增加最新数据。先写数据内容,然后原子操作添加环形队列尾部。
数据删除rm_head。删除最旧数据。首先原子操作删除索引,之后清空数据内容。
内存中缓存数据内容不修改:保证不读取脏数据,数据只增删,不修改。
优选地,第二进程包括多个进程,其中,读取单元包括:第二读取模块,用于通过多个进程从内存中读取缓存后的数据。通过多个进程从内存中读取数据,并进行入侵检测,从而提高入侵检测的效率。其中,多个进程可以采用无锁并行的方式对数据进行读取操作。
多个进程以无锁并行从内存中读取数据,其中,无锁并行是指读写同步进行,无冲突;无须加锁。多个进程可以称为多个分析作业,多个进程可以同时读取内存中的数据,相互不影响。数据读取只读取安全数据:比如缓存最近4个小时数据,只读最近3.5小时内的数据,保证数据读取时不被删除。
通过索引读取数据:根据环形队列(滑动时间窗口)索引直接取数据。
原内存数据不修改:可以多个作业无锁并行读取,分析处理后的数据(可修改),经过分析作业直接展示出来。
根据本发明实施例,通过采用多进程以无锁并行方式读取和分析数据,可以充分利用多核CPU的优势,进行并行分析计算,提高入侵检测的效率。
进一步地,多个进程包括第一读取进程和第二读取进程,其中,第二读取模块包括:第一读取子模块,用于第一读取进程在不对读取的数据进行加锁的情况下从内存中读取缓存数据,缓存数据为缓存后的数据中的部分数据;以及第二读取子模块,用于第二读取进程在第一读取进程读取缓存数据的过程中读取缓存数据。
第一读取进程在不对读取的数据进行加锁的情况下从内存中读取缓存数据,第二读取进程在第一读取进程读取缓存数据的过程中读取缓存数据,这一过程即第一读取进程与第二读取进程以无锁并行的方式对缓存数据进行读取,从而使得多个进程在对同一数据进行读取时,相互之间不受到影响。
本发明实施例中,将主机数据和网络传输的数据进行关联分析,因此多个进程在读取数据过程中,会读取到相同的数据(缓存数据),通过采用采用上述方式,避免读取进程读取数据时相互影响,降低数据读取效率,而延长入侵检测时间的问题。
图10是根据本发明实施例的又一数据检测装置的框架结构图。如图所示,该数据检测装置包括标准化中心、分析引擎和存储器。
标准化中心用于接收外接网络客户端(Client)发送的检测数据,并对网络传输数据进行过滤,得到过滤后的数据。标准化中心可以实现本发明实施例前面所述的过滤单元20的功能。
分析引擎用于对标准化中心传输过来的数据缓存到共享内存中,并对该数据进行分析计算,以检测入侵行为。分析引擎可以用于实现本发明实施例中缓存单元30、建立单元、读取单元40和检测单元50的功能。在分析引擎中,将过滤后的数据缓存到共享内存中,并按照时间先后顺序建立数据的索引,以滑动时间窗口的形式展现,多个进程(即分析作业1、分析作业2至分析作业N)从共享内存中以无锁并行的方式读取数据并进行分析计算,得到分析计算结果。
存储器用于存储分析引擎输出的分析计算结果。
本发明实施例的数据检测装置还对外提供读写接口;数据存储采用共享内存hash,并有滑动时间窗口,可在0(1)时间内读取数据,实现了数据的快速读取、计算。数据读写方式:为一写、多读,通过环形队列,实现无锁并发。分析作业可以动态添加、删除,而不相互影响。
整个分析引擎框架采用一写多读。由分析引擎的一个守护进程维护内存的数据,写入和删除。可以有多个分析作业同时读取数据、进行分析。该守护进程维护的内存数据机构如下图所示。内存表修改,采用gcc原子操作,避免分析作业读脏数据。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (16)

1.一种数据检测方法,其特征在于,包括:
获取用于进行入侵检测的检测数据;
通过第一进程将所述检测数据缓存到内存中;
通过第二进程从所述内存中读取缓存后的数据,其中,所述第二进程为与所述第一进程不同的进程;以及
对从所述内存中读取的数据进行入侵检测。
2.根据权利要求1所述的数据检测方法,其特征在于,通过第一进程将所述检测数据缓存到内存中包括:
对所述检测数据进行过滤,得到过滤后的数据;以及
通过所述第一进程将所述过滤后的数据缓存到所述内存中。
3.根据权利要求2所述的数据检测方法,其特征在于,对所述检测数据进行过滤,得到过滤后的数据包括:
将所述检测数据与预设的匹配条件进行匹配;以及
将所述检测数据中与所述匹配条件匹配的数据作为所述过滤后的数据。
4.根据权利要求1所述的数据检测方法,其特征在于,
在通过第一进程将所述检测数据缓存到内存中之后,所述数据检测方法还包括:建立所述缓存后的数据的索引,
通过第二进程从所述内存中读取缓存后的数据包括:通过所述第二进程基于所述索引从所述内存中读取所述缓存后的数据。
5.根据权利要求4所述的数据检测方法,其特征在于,建立所述缓存后的数据的索引包括:
按照时间顺序建立所述缓存后的数据的时间索引;和/或
获取所述缓存后的数据的标识,对所述标识作哈希计算,得到所述标识对应的哈希值,将所述哈希值作为所述缓存后的数据的索引,其中,所述标识用于表示所述缓存后的数据的来源。
6.根据权利要求1所述的数据检测方法,其特征在于,所述第一进程为守护进程,其中,通过第一进程将所述检测数据缓存到内存中包括:通过所述守护进程采用原子操作将所述检测数据写入到所述内存中。
7.根据权利要求1所述的数据检测方法,其特征在于,所述第二进程包括多个进程,其中,
通过第二进程从所述内存中读取缓存后的数据包括:通过所述多个进程从所述内存中读取所述缓存后的数据。
8.根据权利要求7所述的数据检测方法,其特征在于,所述多个进程包括第一读取进程和第二读取进程,其中,通过所述多个进程从所述内存中读取所述缓存后的数据包括:
所述第一读取进程在不对读取的数据进行加锁的情况下从所述内存中读取缓存数据,所述缓存数据为所述缓存后的数据中的部分数据;以及
所述第二读取进程在所述第一读取进程读取所述缓存数据的过程中读取所述缓存数据。
9.一种数据检测装置,其特征在于,包括:
获取单元,用于获取用于进行入侵检测的检测数据;
缓存单元,用于通过第一进程将所述检测数据缓存到内存中;
读取单元,用于通过第二进程从所述内存中读取缓存后的数据,其中,所述第二进程为与所述第一进程不同的进程;以及
检测单元,用于对从所述内存中读取的数据进行入侵检测。
10.根据权利要求9所述的数据检测装置,其特征在于,所述缓存单元包括:
过滤模块,用于对所述检测数据进行过滤,得到过滤后的数据;以及
缓存模块,用于通过所述第一进程将所述过滤后的数据缓存到所述内存中。
11.根据权利要求10所述的数据检测装置,其特征在于,所述过滤模块包括:
匹配子模块,用于将所述检测数据与预设的匹配条件进行匹配;以及
生成子模块,用于将所述检测数据中与所述匹配条件匹配的数据作为所述过滤后的数据。
12.根据权利要求9所述的数据检测装置,其特征在于,所述数据检测装置还包括:
建立单元,用于在通过第一进程将所述检测数据缓存到内存中之后,建立所述缓存后的数据的索引,
其中,所述读取单元包括:第一读取模块,用于通过所述第二进程基于所述索引从所述内存中读取所述缓存后的数据。
13.根据权利要求12所述的数据检测装置,其特征在于,所述建立单元包括:
第一建立模块,用于按照时间顺序建立所述缓存后的数据的时间索引;和/或
第二建立模块,用于获取所述缓存后的数据的标识,对所述标识作哈希计算,得到所述标识对应的哈希值,将所述哈希值作为所述缓存后的数据的索引,其中,所述标识用于表示所述缓存后的数据的来源。
14.根据权利要求9所述的数据检测装置,其特征在于,所述第一进程为守护进程,其中,所述缓存单元包括:写入模块,用于通过所述守护进程采用原子操作将所述检测数据写入到所述内存中。
15.根据权利要求9所述的数据检测装置,其特征在于,所述第二进程包括多个进程,其中,
所述读取单元包括:第二读取模块,用于通过所述多个进程从所述内存中读取所述缓存后的数据。
16.根据权利要求15所述的数据检测装置,其特征在于,所述多个进程包括第一读取进程和第二读取进程,其中,所述第二读取模块包括:
第一读取子模块,用于所述第一读取进程在不对读取的数据进行加锁的情况下从所述内存中读取缓存数据,所述缓存数据为所述缓存后的数据中的部分数据;以及
第二读取子模块,用于所述第二读取进程在所述第一读取进程读取所述缓存数据的过程中读取所述缓存数据。
CN201410223219.8A 2014-05-23 2014-05-23 数据检测方法和装置 Active CN104954351B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410223219.8A CN104954351B (zh) 2014-05-23 2014-05-23 数据检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410223219.8A CN104954351B (zh) 2014-05-23 2014-05-23 数据检测方法和装置

Publications (2)

Publication Number Publication Date
CN104954351A true CN104954351A (zh) 2015-09-30
CN104954351B CN104954351B (zh) 2018-05-04

Family

ID=54168711

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410223219.8A Active CN104954351B (zh) 2014-05-23 2014-05-23 数据检测方法和装置

Country Status (1)

Country Link
CN (1) CN104954351B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107172058A (zh) * 2017-06-01 2017-09-15 国家电网公司 一种基于流数据分析的Web 攻击实时在线检测系统
CN108388797A (zh) * 2018-01-23 2018-08-10 北京奇艺世纪科技有限公司 一种入侵检测方法、装置及电子设备
CN110134439A (zh) * 2019-03-30 2019-08-16 北京百卓网络技术有限公司 无锁化的数据结构构建方法和写入数据、读取数据的方法
CN116990622A (zh) * 2023-09-26 2023-11-03 国网辽宁省电力有限公司电力科学研究院 变电站直流系统的故障录波方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101087210A (zh) * 2007-05-22 2007-12-12 网御神州科技(北京)有限公司 高性能的Syslog日志处理和存储方法
CN101610264A (zh) * 2009-07-24 2009-12-23 深圳市永达电子股份有限公司 一种防火墙系统、安全服务平台及防火墙系统的管理方法
CN102438026A (zh) * 2012-01-12 2012-05-02 冶金自动化研究设计院 工业控制网络安全防护方法及系统
CN103678553A (zh) * 2013-12-06 2014-03-26 上海寰创通信科技股份有限公司 基于共享内存设计的无线终端数据库构建方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101087210A (zh) * 2007-05-22 2007-12-12 网御神州科技(北京)有限公司 高性能的Syslog日志处理和存储方法
CN101610264A (zh) * 2009-07-24 2009-12-23 深圳市永达电子股份有限公司 一种防火墙系统、安全服务平台及防火墙系统的管理方法
CN102438026A (zh) * 2012-01-12 2012-05-02 冶金自动化研究设计院 工业控制网络安全防护方法及系统
CN103678553A (zh) * 2013-12-06 2014-03-26 上海寰创通信科技股份有限公司 基于共享内存设计的无线终端数据库构建方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107172058A (zh) * 2017-06-01 2017-09-15 国家电网公司 一种基于流数据分析的Web 攻击实时在线检测系统
CN107172058B (zh) * 2017-06-01 2020-06-05 国家电网公司 一种基于流数据分析的Web攻击实时在线检测系统
CN108388797A (zh) * 2018-01-23 2018-08-10 北京奇艺世纪科技有限公司 一种入侵检测方法、装置及电子设备
CN110134439A (zh) * 2019-03-30 2019-08-16 北京百卓网络技术有限公司 无锁化的数据结构构建方法和写入数据、读取数据的方法
CN110134439B (zh) * 2019-03-30 2021-09-28 北京百卓网络技术有限公司 无锁化的数据结构构建方法和写入数据、读取数据的方法
CN116990622A (zh) * 2023-09-26 2023-11-03 国网辽宁省电力有限公司电力科学研究院 变电站直流系统的故障录波方法、装置、设备及介质
CN116990622B (zh) * 2023-09-26 2023-12-15 国网辽宁省电力有限公司电力科学研究院 变电站直流系统的故障录波方法、装置、设备及介质

Also Published As

Publication number Publication date
CN104954351B (zh) 2018-05-04

Similar Documents

Publication Publication Date Title
CN111092852B (zh) 基于大数据的网络安全监控方法、装置、设备及存储介质
CN107666410B (zh) 网络安全分析系统及方法
Wang et al. Privacy-aware traffic flow prediction based on multi-party sensor data with zero trust in smart city
CN107667370B (zh) 用于异常过程检测的方法和系统
US9590880B2 (en) Dynamic collection analysis and reporting of telemetry data
CN105577440B (zh) 一种网络故障时间定位方法和分析设备
CN111262722A (zh) 一种用于工业控制系统网络的安全监测方法
CN105531712A (zh) 移动设备上的基于数据流的行为分析
CN107800591A (zh) 一种统一日志数据的分析方法
CN103106364A (zh) 程序分析系统和方法
US11032303B1 (en) Classification using projection of graphs into summarized spaces
CN105721406A (zh) 一种获取ip黑名单的方法和装置
CN104954351A (zh) 数据检测方法和装置
US11989161B2 (en) Generating readable, compressed event trace logs from raw event trace logs
CN113132311A (zh) 异常访问检测方法、装置和设备
CN107800722A (zh) 隔离工控设备与外部网络服务器的方法及装置
CN112287339A (zh) Apt入侵检测方法、装置以及计算机设备
CN111800292A (zh) 基于历史流量的预警方法、装置、计算机设备及存储介质
US20220179764A1 (en) Multi-source data correlation extraction for anomaly detection
CN116737495A (zh) 运行状态确定方法、装置、计算机设备和存储介质
CN115589339A (zh) 网络攻击类型识别方法、装置、设备以及存储介质
Htun et al. Evidence data collection with androsics tool for android forensics
CN111565311B (zh) 网络流量特征生成方法及装置
KR102343139B1 (ko) 어노멀리 검출방법 및 그 장치
CN109598488B (zh) 群红包异常行为识别方法、装置、介质及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190806

Address after: 518000 Nanshan District science and technology zone, Guangdong, Zhejiang Province, science and technology in the Tencent Building on the 1st floor of the 35 layer

Co-patentee after: Tencent cloud computing (Beijing) limited liability company

Patentee after: Tencent Technology (Shenzhen) Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518000 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.