CN105429968B - 基于布隆过滤器的网络取证载荷归属方法及系统 - Google Patents

基于布隆过滤器的网络取证载荷归属方法及系统 Download PDF

Info

Publication number
CN105429968B
CN105429968B CN201510752320.7A CN201510752320A CN105429968B CN 105429968 B CN105429968 B CN 105429968B CN 201510752320 A CN201510752320 A CN 201510752320A CN 105429968 B CN105429968 B CN 105429968B
Authority
CN
China
Prior art keywords
load
bloom filter
window
inquiry
piecemeal
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.)
Active
Application number
CN201510752320.7A
Other languages
English (en)
Other versions
CN105429968A (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.)
Beijing Shuzhiyuan Technology Co Ltd
Original Assignee
Beijing Shuzhiyuan Technology 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 Beijing Shuzhiyuan Technology Co Ltd filed Critical Beijing Shuzhiyuan Technology Co Ltd
Priority to CN201510752320.7A priority Critical patent/CN105429968B/zh
Publication of CN105429968A publication Critical patent/CN105429968A/zh
Application granted granted Critical
Publication of CN105429968B publication Critical patent/CN105429968B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
    • H04L63/302Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information gathering intelligence information for situation awareness or reconnaissance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/325Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1491Countermeasures against malicious traffic using deception as countermeasure, e.g. honeypots, honeynets, decoys or entrapment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Technology Law (AREA)
  • Software Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提出了一种基于布隆过滤器的网络取证载荷归属方法及系统,包括:抓取预备取证的网络数据流,对网络数据流进行预处理;并对载荷进行分块,将分块内容代入指定的哈希函数中,得到的哈希函数的结果为对应的布隆过滤器的编号,将分块内容根据布隆过滤器的编号分别存储至对应的布隆过滤器中;获取预备查询的字段,对预备查询字段中的所有分块逐个进行哈希运算,判断预备查询的字段的所有分块是否均映射到对应的布隆过滤器的位置,如果是则判断载荷包括预备查询的字段。本发明能够较好地支持通配符的查询,不仅解决了首块偏移问题、对齐问题和连续性问题,而且在可接受的数据压缩比率下,减小了假阳性误报比率,提高了查询速度和验证准确度。

Description

基于布隆过滤器的网络取证载荷归属方法及系统
技术领域
本发明涉及网络取证技术领域,特别涉及一种基于布隆过滤器的网络取证载荷归属方法及系统。
背景技术
随着信息技术的飞速发展,网络上的犯罪行为日益猖獗,由于网络犯罪的复杂性、不确定性以及多样性,无法从技术上完全遏制网络犯罪的发生,因此,网络取证技术逐渐成为研究的热点,网络犯罪事件发生之后的溯源、追踪与处置发挥着越来越重要的作用。于是,对于数据流量的高效存储并提供事后的精确查询成为值得研究的方向。
载荷归属是识别出现在网络上的和包含特定字段的所有包的源和目的的一个过程。载荷归属结构对网络流量进行相应的处理存储以便事后的识别分析,在帮助判定网络事件的攻击者和受害者并分析安全事件方面是一个极其有价值的工具。
在载荷归属的研究中,最重要的是载荷的收集、存储和字段的查询。解决这些问题的最直观的方法就是对网络数据流量进行分块。最经典的一个数据结构就是布隆过滤器(Bloom Filter,BF)。
传统的Bloom Filter用于判断集合中的元素是否存在,它是一个大小为m的位数组,带有k个随机选取的哈希函数。但是由于其结构的原因,存在着假阳性误报的可能。在Bloom Filter的基础上,又提出了基于分块的布隆过滤器(BBF)、分层布隆过滤器(HBF)结构、旋转布隆过滤器(RBF)结构、固定分块重叠(FBS)、可变分块重叠(VBS)、高级可变分块重叠(EVBS)、多哈希(MH)、高级多哈希(EMH)、Winnowing分块重叠(WBS)、Winnowing多哈希(WMH)等结构。这些分块方法可以按照不同的分类方法进行分类,如表1所示。
表1
但是,上述这些方法均存在着一些问题,例如:首块偏移问题、对齐问题、连续性问题,而且大多不支持通配符的查询。
通配符是一种替代字符,可以用“?”和“*”两种符号来表示,仅用于占位而不具体指代某一个或某一些字符,表示出现该符号的位置可以是任何一个或多个字符。通常情况下,“?”用于匹配1个字符,“*”则用于匹配0个或以上的任意字符。现有的技术限制于自身能够响应的查询类型,导致不能够很好地支持通配符查询。
发明内容
本发明的目的旨在至少解决所述技术缺陷之一。
为此,本发明的目的在于提出一种基于布隆过滤器的网络取证载荷归属方法及系统,能够较好地支持通配符的查询,不仅解决了首块偏移问题、对齐问题和连续性问题,而且在可接受的数据压缩比率下,减小了假阳性误报比率,提高了查询速度和验证准确度。
为了实现上述目的,本发明一方面的实施例提供一种基于布隆过滤器的网络取证载荷归属方法,包括如下步骤:
步骤S1,抓取预备取证的网络数据流,并对所述网络数据流进行预处理,得到预处理后的网络数据流作为载荷;
步骤S2,对所述载荷进行分块,并将分块内容代入指定的哈希函数中,得到的哈希函数的结果为对应的布隆过滤器的编号,将所述分块内容根据所述布隆过滤器的编号分别存储至对应的布隆过滤器中,在所述步骤S2中,对所述载荷进行分块,包括如下步骤:
设所述载荷为{c1,c2,...,cn},
首先,在所述载荷上设置一个大小为k的滑动窗口,其中,第i个窗口内的字符为{ci,ci+1,...,ci+k-1},1≤i≤n-k+1;
然后,对每个所述窗口计算哈希值H(ci,ci+1,...,ci+k-1),其中,
H(ci,ci+1,...,ci+k-1)=(ci mod q)×pk-1+(ci+1 mod q)×pk-2+...+(ci+k-1 mod q)×p0
其中,p为预设固定的素数,q为预设常数,mod为取模运算;
其次,将计算出的哈希值H(ci,ci+1,...,ci+k-1)存入哈希数组{h1,h2,...,hi,...},其中第i项hi=H(ci,ci+1,...,ci+k-1);
最后,在所述哈希数组{h1,h2,...,hi,...}上滑动一个大小为w的窗口,在每一个窗口内选取最小值,在选取的哈希值所对应的载荷窗口的首个字符后插入一个块边界,每两个连续的块边界之间的内容连接上紧邻的u个字符的内容,作为分块内容;
步骤S3,获取预备查询的字段,对所述预备查询字段中的所有分块逐个进行哈希运算,分别得到对应的布隆过滤器,判断所述预备查询的字段的所有分块是否均映射到对应的所述布隆过滤器的位置,如果是则判断所述载荷包括所述预备查询的字段。
进一步,在所述步骤S1中,对所述网络数据流进行预处理,包括如下步骤:去除所述网络数据流中头部数据和元数据,仅保留用于传输的真实数据,作为载荷。
进一步,所述在每一个窗口内选取最小值,包括如下步骤:
如果在一个窗口内,存在一个以上的最小值,则根据数值在窗口内的顺序,在多个最小值中,选择最右边的值作为所述最小值。
进一步,在所述步骤S3中,判断所述预备查询的字段的所有分块是否均映射到对应的所述布隆过滤器的位置,包括如下步骤:判断所述预备查询的字段的所有分块被映射到所属布隆过滤器的位置是否置1,如果是,则判断所述载荷包括所述预备查询的字段。
本发明的实施例还提出一种基于布隆过滤器的支持通配符的网络取证载荷归属系统,包括:网络数据流抓取模块,用于抓取预备取证的网络数据流,并对所述网络数据流进行预处理,得到预处理后的网络数据流作为载荷;载荷分块模块,用于对所述载荷进行分块,得到分块内容,所述载荷分块模块对所述载荷进行分块,包括:
设所述载荷为{c1,c2,...,cn},
首先,在所述载荷上设置一个大小为k的滑动窗口,其中,第i个窗口内的字符为{ci,ci+1,...,ci+k-1},1≤i≤n-k+1;
然后,对每个所述窗口计算哈希值H(ci,ci+1,...,ci+k-1),其中,
H(ci,ci+1,...,ci+k-1)=(ci mod q)×pk-1+(ci+1 mod q)×pk-2+...+(ci+k-1 mod q)×p0
其中,p为预设固定的素数,q为预设常数,mod为取模运算;
其次,将计算出的哈希值H(ci,ci+1,...,ci+k-1)存入哈希数组{h1,h2,...,hi,...},其中第i项hi=H(ci,ci+1,...,ci+k-1);
最后,在所述哈希数组{h1,h2,...,hi,...}上滑动一个大小为w的窗口,在每一个窗口内选取最小值,在选取的哈希值所对应的载荷窗口的首个字符后插入一个块边界,每两个连续的块边界之间的内容连接上紧邻的u个字符的内容,作为分块内容;布隆过滤器存储模块,用于将所述分块内容代入指定的哈希函数中,得到的哈希函数的结果为对应的布隆过滤器的编号,将所述分块内容根据所述布隆过滤器的编号分别存储至对应的布隆过滤器中;查询模块,用于获取预备查询的字段,对所述预备查询字段中的所有分块逐个进行哈希运算,分别得到对应的布隆过滤器,判断所述预备查询的字段的所有分块是否均映射到对应的所述布隆过滤器的位置,如果是则判断所述载荷包括所述预备查询的字段。
进一步,所述网络数据流抓取模块用于去除所述网络数据流中头部数据和元数据,仅保留用于传输的真实数据,作为载荷。
进一步,如果在一个窗口内,存在一个以上的最小值,则所述载荷分块模块根据数值在窗口内的顺序,在多个最小值中,选择最右边的值作为所述最小值。
进一步,所述查询模块判断所述预备查询的字段的所有分块被映射到所属布隆过滤器的位置是否置1,如果是,则判断所述载荷包括所述预备查询的字段。
根据本发明实施例的基于布隆过滤器的网络取证载荷归属方法及系统,采用相比于同类算法更为有优势的Winnowing指纹算法,得到的分块进行哈希运算后插入到布隆过滤器中存储起来,能够较好地支持通配符的查询,不仅解决了首块偏移问题、对齐问题和连续性问题,而且在可接受的数据压缩比率下,减小了假阳性误报比率,提高了查询速度和验证准确度。实验表明,同等条件下,本发明的通配符查询速度大约是目前已有最优方法的20倍。通过严密的数学推导证明,本发明中的假阳性误报可以近似看作仅由布隆过滤器的假阳性误报造成,算法具有可接受的准确率。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的基于布隆过滤器的网络取证载荷归属方法的流程图;
图2为根据本发明实施例的滑动载荷窗口的示意图;
图3为根据本发明实施例的滑动哈希窗口的示意图;
图4为根据本发明实施例的基于布隆过滤器的网络取证载荷归属方法的查询准确率的示意图;
图5为根据本发明实施例的基于布隆过滤器的网络取证载荷归属方法的查询速度的示意图;
图6为根据本发明实施例的基于布隆过滤器的网络取证载荷归属系统的结构图;
图7为根据本发明实施例的摘要设备和取证服务器的系统拓扑结构图;
图8为根据本发明实施例的摘要设备和取证服务器的内部结构图;
图9为根据本发明实施例的摘要设备和取证服务器的数据流程图。
具体实施方式
下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
本发明提出一种基于布隆过滤器的网络取证载荷归属方法及系统,可以支持对通配符的查询,具有较高的准确性和时效性。
如图1所示,本发明实施例的基于布隆过滤器的网络取证载荷归属方法,包括如下步骤:
步骤S1,抓取预备取证的网络数据流,并对网络数据流进行预处理,得到预处理后的网络数据流作为载荷。
具体地,对网络数据流进行预处理,包括如下步骤:去除网络数据流中头部数据和元数据等额外信息,仅保留用于传输的真实数据,作为载荷。即,仅抓取由去向目的地的数据包所发送的真实数据,即出于传输的基本目的而传输的真实数据。
步骤S2,对载荷进行分块,并将分块内容代入指定的哈希函数中,得到的哈希函数的结果为对应的布隆过滤器的编号,将分块内容根据布隆过滤器的编号分别存储至对应的布隆过滤器中。这部分是本发明的核心。
下面对载荷的分块过程进行说明。设载荷为{c1,c2,...,cn}。
第一步,在载荷上设置一个大小为k的滑动窗口,其中,第i个窗口内的字符为{ci,ci+1,...,ci+k-1},1≤i≤n-k+1。具体地,第一个窗口内的字符为{c1,c2,...,ck},第二个窗口内的字符为{c2,c3,...,ck+1},依此类推,第i个窗口内的字符为{ci,ci+1,...,ci+k-1},1≤i≤n-k+1。
第二步,对每个窗口计算哈希值H(ci,ci+1,...,ci+k-1),其中,
H(ci,ci+1,...,ci+k-1)=(ci mod q)×pk-1+(ci+1 mod q)×pk-2+...+(ci+k-1 mod q)×p0
其中,p是一个固定的素数,q是一个常数,q≤p<256,mod为取模运算。
根据多项式的性质,为了加快处理速度,后一个载荷窗口的哈希值可以由前一个载荷窗口计算而得,即:
H(ci+1,ci+2,...,ci+k)=pH(ci,ci+1,...,ci+k-1)+(ci+k mod q)-(ci mod q)×pk
第三步,将计算出的哈希值H(ci,ci+1,...,ci+k-1)存入哈希数组{h1,h2,...,hi,...},其中第i项hi=H(ci,ci+1,...,ci+k-1)。
第四步,在哈希数组{h1,h2,...,hi,...}上滑动一个大小为w的窗口,在每一个窗口内选取最小值,在选取的哈希值所对应的载荷窗口的首个字符后插入一个块边界。例如,某窗口内选取的最小哈希值为hi,则在载荷中的字符ci后插入一个块边界。每两个连续的块边界之间的内容连接上紧邻的u个字符的内容,作为分块内容。其中,u为根据实验得到的经验数值。
需要说明的是,如果在一个窗口内,存在一个以上的最小值,则根据数值在窗口内的顺序,在多个最小值中,选择最右边的值作为最小值。
本发明采用多个布隆过滤器对数据进行存储,将得到的分块内容存入对应的布隆过滤器中。使用256个独立的Bloom Filter,编号范围是[0,255]。对于每个分块,将其代入指定的哈希函数中,得到的结果就是对应布隆过滤器的编号,将相应分块插入将对应布隆过滤器中。为了提高处理速度,本发明中的每一个布隆过滤器仅使用一个哈希函数。
在本发明中,对上述载荷分块和布隆过滤器的存储中涉及的参数采用t组不同的值来替换,再依次执行t遍上述的操作。其中,t值越小查询速度越快,但是t值过小又会影响方法的准确性。因此,用户可以根据自身对时效性的要求选取t值。
步骤S3,获取预备查询的字段,对预备查询字段中的所有分块逐个进行哈希运算,分别得到对应的布隆过滤器,判断预备查询的字段的所有分块是否均映射到对应的布隆过滤器的位置,如果是则判断载荷包括预备查询的字段。
首先接收查询请求,从该查询请求中获取预备查询的字段,对该预备预备查询的字段进行分块,分块过程参考上述实施例,不再赘述。对查询字段中的所有分块分别代入指定的哈希函数中,得到的结果就是对应布隆过滤器的编号,查询分块映射到布隆滤波器的位置是否被置1。如果循环t次后,字段所有分块被映射到的位置都被置1,则认为载荷中包含相应字段。
下面参考图2和图3对本发明实施例的基于布隆过滤器的网络取证载荷归属方法进行说明。以字符串“thisistheWMWQinstance”一次循环的处理过程为例,
如图2所示,设载荷窗口的大小k=6,则滑动产生16个窗口的内容依次为:
“thisis”、”hisist”、”isisth”、”sisthe”、”istheW”、”stheWM”、”theWMW”、”heWMWQ”、”eWMWQi”、”WMWQin”、”MWQins”、”WQinst”、”Qinsta”、”instan”、”nstanc”、”stance”。
分别计算每个窗口内容的哈希值得数组为:
{652,245,323,955,475,63,164,478,384,728,959,617,814,697,339,756}。
如图3所示,在该数组上滑动一个大小为w=5的窗口,则产生的12个窗口的内容一次为{652,245,323,955,475}、{245,323,955,475,63}、{323,955,475,63,164}、{955,475,63,164,478}、{475,63,164,478,384}、{63,164,478,384,728}、{164,478,384,728,95}、{478,384,728,959,617}、{384,728,959,617,814}、{728,959,617,814,697}、{959,617,814,697,339}、{617,814,697,339,756}。
对上述每个窗口选取最小哈希值,依次为:245、63、164、384、617、339。参考图2,每个窗口的最小值相应于载荷中的字符下标依次为1、5、6、8、11、14,分块边界即插入在这些字符的后面。再连接上紧邻的u=2个字符的内容,于是第一次循环产生的分块依次为“isisth”、“the”、“heWM”、“WMWQi”、“Qinst”。
接着,对于参数k、w、p、q、o,设置t组新的取值,再进行t次类似的操作,这就完成了载荷的处理过程。其中,t=2。
接收查询请求,从该查询请求中获取预备查询的字段,对该预备预备查询的字段进行分块,分块过程参考上述实施例,不再赘述。对查询字段中的所有分块分别代入指定的哈希函数中,得到的结果就是对应布隆过滤器的编号,查询分块映射到布隆滤波器的位置是否被置1。如果循环2次后,字段所有分块被映射到的位置都被置1,则认为载荷中包含相应字段。
在本发明的实施例中,分块边界的选择基于载荷内容本身,可以有效地解决在字段的查询阶段由于字段中第一个匹配的分块从哪个位置开始未知而需要尝试所有可能位置的对齐问题。
为了支持通配符查询,在哈希值的计算中以q为模数,这样就可以将每一个字符映射到[0,q-1]之间的一个类中,因此可以限制查询空间。在哈希值的计算中只会用到[0,q-1]范围内的值而不是[0,255]之间的所有可能值。
具体地,假设需要查询字符串“abcd?eghi”,模数q=4。查询是通过构建4个子串来处理的:“abcd0eghi”、“abcd1eghi”、“abcd2eghi”、“abcd3eghi”。每一个子串被独立查询,如果任何一个子串被查询到,则判断原始字段包含在载荷中。
本发明也能够处理更复杂的查询。例如,查询字段是“abcde[m-p]fghij”,模数q=8。那么通过将4个可能的未知字符(m,n,o,p)映射到[0,7]之间恰当的分类中来创建子串,分别是“abcde5fghij”、“abcde6fghij”、“abcde7fghij”、“abcde0fghij”。
通过求模运算,大大减小了运算空间,加快了处理速度,以致于7个未知字符的通配符查询仅需要不到1秒的时间来处理,但是如果采用先前的方法处理相同的查询则需要4500年,本发明大大提高了查询速度。
图4为根据本发明实施例的基于布隆过滤器的网络取证载荷归属方法的查询准确率的示意图。其中,1-本发明的基于布隆过滤器的网络取证载荷归属方法,2-WMH,3-CMBF。
如图4所示,在实验环境中,使用Wireshark工具捕捉实验室一周内的网络流量。当查询字段长度分别为50、70、100、120、150、200、250字节时,本发明的查询准确率比同类方法高。
图5为根据本发明实施例的基于布隆过滤器的网络取证载荷归属方法的查询速度的示意图。A-本发明的基于布隆过滤器的网络取证载荷归属方法,B-CMBF。
如图5所示,在通配符数量分别是5、6、7、8时,本发明的查询速度明显大于同类其它方法,并且随着通配符数量的增加趋势更加明显。
综上,通过对本发明设计的数据结构的性能进行评估,并且与之前已被证明性能最优的结构WMH、CMBF进行比较。实验表明,在可接受的数据压缩比率下,本发明提供的基于布隆过滤器的网络取证载荷归属方法具有更高的查询准确率和更快的查询速度。
具体地,判断预备查询的字段的所有分块被映射到所属布隆过滤器的位置是否置1,如果是,则判断载荷包括预备查询的字段。
本发明实施例还提出一种基于布隆过滤器的支持通配符的网络取证载荷归属系统,在介绍该网络取证载荷归属系统之前,首先对其原型设计进行说明。如图7所示,该原型设计包括两个重要的功能组件:摘要设备和取证服务器。
摘要设备定期向取证服务器发送摘要,取证服务器负责存储和查询。存储的数据有两个时间戳:开始时间和结束时间。一段时间间隔内的负载存储在一个布隆滤波器(Bloom Filter)中,需要存储所有流经的网络数据流的ID(flow ID)。该信息也可以从防火墙、入侵检测系统或其它日志文件收集的连接记录中来。
摘要设备最关键的部分是处理摘要的数据结构和算法。其中,构建数据流的摘要有许多方法,本发明采用布隆滤波器(Bloom Filter),处理摘要的数据结构采用WMWQ数据结构,核心算法则是Winnowig算法。摘要设备能够被集成到网络组件中,例如交换机或路由器,它可以概括和记录在一段长时间内它附近的网络事件,并且能够以特定的置信度证实这些事件。
取证服务器集中管理它的取证域内的摘要设备组。取证服务器接收来自取证域外部的查询要求,协调取证域中的摘要设备进行处理,再经过验证后向发送者返回结果。在负载处理阶段,经过部署了负载归属系统的网络的所有流量的负载会被检测,一些信息被保存到永久存储设备中。这必须是线性速度完成的,内部的原始包捕获组件会对数据包进行一些过滤,例如,选择只处理HTTP流,过滤掉其他类型的数据流。
联网的摘要设备形成基层,它的上层是取证服务器的联网,每个取证服务器管理其取证域范围内的摘要设备,如图7所示。联网一个取证域内的摘要设备将有利于它们共享数据和存储,使得它们能够正确地协作回答查询。这些摘要设备在没有中心控制的情况下能够以一个纯粹的P2P架构排布来互相合作。使用一个分层的结构更为简便并且将工作得更好。
在分层结构中,一个取证域内的所有摘要设备形成一个网络并同域内的取证服务器相联系。取证服务器的作用是在域内进行集中管理控制,经认证之后,从域外接收查询,将查询传递到取证服务器上的查询处理器和存储管理单元。
具体地,摘要设备的网络形成了分层结构的第一层。将取证服务器也联网起来在内部取证域中协同工作,这形成了分层结构的第二层。需要跨越域边界的查询会经过恰当的取证服务器。取证服务器是从域边界之外发送到取证域内的查询的网关。发送到一个取证域的查询由这个域内的取证服务器来处理,由服务器进行验证并将查询传递到域内恰当的摘要设备。同样地,来自于摘要设备的结果被发送到取证域内的取证服务器并进行验证。事实上,查询可能起始于分层结构中一个分支的叶节点,在更高层上遍历取证服务器,截止于另一个分支的叶节点。查询通常与网络攻击或网络犯罪反方向进行。
如图8所示,原型设计系统包括:网络流过滤器、摘要引擎、摘要控制器、缓冲区管理器、安全管理器、配置管理器、查询处理器、隐私处理器。
下面对上述各个器件的功能进行说明。
摘要设备可能不需要处理经过路由器的每一个数据包,其处理网络过滤器抽取的有用数据包。概要引擎的核心内容是本文提出的WMWQ数据结构和Winnowing算法,能够精炼地表示网络流量。
由于数据压缩比率和假阳性误报比率之间是一种权衡,出于其它的考虑,也可以使用配置管理器调节数据结构和算法以及其中的参数。经过滤器传送进入摘要引擎的数据包是否要被处理的依据是从摘要控制器接收来的信号。摘要控制器指示摘要引擎中的摘要技术是否要处理一个数据包。
用户提出的规则集和配置管理器处理的规则集允许用户修改数据包被摘要引擎处理的方式。配置管理器是网络管理员跟摘要设备之间的接口,它允许网络管理员调整摘要设备的多种操作。将会由查询处理器响应的每一个查询必须由安全管理器验证以使得来自于未知用户的恶意查询会被简单地忽略。
安全管理器会对每一个写入数据库中的条目签名并打上时间戳以确保完整性和能够用于法庭。查询处理器处理所有的数据库访问和查询处理问题。
如图9所示,数据流程为:网络流量经过网络过滤器的过滤后进入摘要引擎,默认情况下摘要引擎使用WMWQ数据结构和Winnowing算法对数据进行摘要处理,进入的数据包是否需要进行处理受到摘要控制器的控制。这里可以通过配置管理器修改摘要设备中的参数,优化系统性能。摘要设备的缓冲区管理器定期将缓冲器中的数据发送到取证服务器进行存档。
下面举例对本发明的基于布隆过滤器的支持通配符的网络取证载荷归属方法进行说明。
假设某蠕虫通过感染运行在UDP端口1434上的未打补丁的SQL服务器来传播,分析人员需要找到该蠕虫的源头。假设本发明被广泛部署于互联网上,分析人员需要判定蠕虫从互联网的哪个区域开始它的传播。
因为摘要设备跟踪了本地环境中的许多事件,分析人员将能够判定任何网络内对于端口1434的流量的渗透。从任何一个网络开始,分析人员可以查询到在网络中对于端口1434增量活动的首次出现,并且递归查询报告最早的任何网络。这些递归查询将最终能够找到蠕虫起始传播的特定网络。这样一来,分析人员就可以集中他们的调查资源到一个特定的网络中,以便定位发送第一个恶意数据包到端口1434的主机。对于主机的进一步定位可以用到前述类似的方式,以便找到蠕虫的真正发出者。
下面参考图6对本发明实施例的基于布隆过滤器的支持通配符的网络取证载荷归属系统进行说明。
如图6所示,本发明还提出一种基于布隆过滤器的支持通配符的网络取证载荷归属系统,包括:网络数据流抓取模块1、载荷分块模块2、布隆过滤器存储模块3和查询模块4。
具体地,网络数据流抓取模块1用于抓取预备取证的网络数据流,并对网络数据流进行预处理,得到预处理后的网络数据流作为载荷。
在本发明的一个实施例中,网络数据流抓取模块1去除网络数据流中头部数据和元数据,仅保留用于传输的真实数据,作为载荷。即,网络数据流抓取模块1仅抓取由去向目的地的数据包所发送的真实数据,即出于传输的基本目的而传输的真实数据。
下面对载荷分块模块2的分块过程进行说明。设载荷为{c1,c2,...,cn}。
第一步,载荷分块模块2在载荷上设置一个大小为k的滑动窗口,其中,第i个窗口内的字符为{ci,ci+1,...,ci+k-1},1≤i≤n-k+1。具体地,第一个窗口内的字符为{c1,c2,...,ck},第二个窗口内的字符为{c2,c3,...,ck+1},依此类推,第i个窗口内的字符为{ci,ci+1,...,ci+k-1},1≤i≤n-k+1。
第二步,载荷分块模块2对每个窗口计算哈希值H(ci,ci+1,...,ci+k-1),其中,
H(ci,ci+1,...,ci+k-1)=(ci mod q)×pk-1+(ci+1 mod q)×pk-2+...+(ci+k-1 mod q)×p0
其中,p是一个固定的素数,q是一个常数,q≤p<256,mod为取模运算。
根据多项式的性质,为了加快处理速度,后一个载荷窗口的哈希值可以由前一个载荷窗口计算而得,即:
H(ci+1,ci+2,...,ci+k)=pH(ci,ci+1,...,ci+k-1)+(ci+k mod q)-(ci mod q)×pk
第三步,载荷分块模块2将计算出的哈希值H(ci,ci+1,...,ci+k-1)存入哈希数组{h1,h2,...,hi,...},其中第i项hi=H(ci,ci+1,...,ci+k-1)。
第四步,载荷分块模块2在哈希数组{h1,h2,...,hi,...}上滑动一个大小为w的窗口,在每一个窗口内选取最小值,在选取的哈希值所对应的载荷窗口的首个字符后插入一个块边界。例如,某窗口内选取的最小哈希值为hi,则在载荷中的字符ci后插入一个块边界。每两个连续的块边界之间的内容连接上紧邻的u个字符的内容,作为分块内容。其中,u为根据实验得到的经验数值。
需要说明的是,如果在一个窗口内,存在一个以上的最小值,则根据数值在窗口内的顺序,在多个最小值中,选择最右边的值作为最小值。
布隆过滤器存储模块3用于将分块内容代入指定的哈希函数中,得到的哈希函数的结果为对应的布隆过滤器的编号,将分块内容根据布隆过滤器的编号分别存储至对应的布隆过滤器中。
本发明采用多个布隆过滤器对数据进行存储,将得到的分块内容存入对应的布隆过滤器中。使用256个独立的Bloom Filter,编号范围是[0,255]。对于每个分块,将其代入指定的哈希函数中,得到的结果就是对应布隆过滤器的编号,将相应分块插入将对应布隆过滤器中。为了提高处理速度,本发明中的每一个布隆过滤器仅使用一个哈希函数。
在本发明中,对上述载荷分块和布隆过滤器的存储中涉及的参数采用t组不同的值来替换,再依次执行t遍上述的操作。其中,t值越小查询速度越快,但是t值过小又会影响方法的准确性。因此,用户可以自身对时效性的要求选取t值。
查询模块4用于获取预备查询的字段,对预备查询字段中的所有分块逐个进行哈希运算,分别得到对应的布隆过滤器,判断预备查询的字段的所有分块是否均映射到对应的布隆过滤器的位置,如果是则判断载荷包括预备查询的字段。
具体地,首先查询模块4接收查询请求,从该查询请求中获取预备查询的字段,对该预备预备查询的字段进行分块,分块过程参考上述实施例,不再赘述。查询模块4对查询字段中的所有分块分别代入指定的哈希函数中,得到的结果就是对应布隆过滤器的编号,查询分块映射到布隆滤波器的位置是否被置1。如果循环t次后,字段所有分块被映射到的位置都被置1,则认为载荷中包含相应字段。根据本发明实施例的基于布隆过滤器的网络取证载荷归属方法及系统,采用相比于同类算法更为有优势的Winnowing指纹算法,得到的分块进行哈希运算后插入到布隆过滤器中存储起来,能够较好地支持通配符的查询,不仅解决了首块偏移问题、对齐问题和连续性问题,而且在可接受的数据压缩比率下,减小了假阳性误报比率,提高了查询速度和验证准确度。实验表明,同等条件下,本发明的通配符查询速度大约是目前已有最优方法的20倍。通过严密的数学推导证明,本发明中的假阳性误报可以近似看作仅由布隆过滤器的假阳性误报造成,算法具有可接受的准确率。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求极其等同限定。

Claims (8)

1.一种基于布隆过滤器的网络取证载荷归属方法,其特征在于,包括如下步骤:
步骤S1,抓取预备取证的网络数据流,并对所述网络数据流进行预处理,得到预处理后的网络数据流作为载荷;
步骤S2,对所述载荷进行分块,并将分块内容代入指定的哈希函数中,得到的哈希函数的结果为对应的布隆过滤器的编号,将所述分块内容根据所述布隆过滤器的编号分别存储至对应的布隆过滤器中,在所述步骤S2中,对所述载荷进行分块,包括如下步骤:
设所述载荷为{c1,c2,...,cn},
首先,在所述载荷上设置一个大小为k的滑动窗口,其中,第i个窗口内的字符为{ci,ci+1,...,ci+k-1},1≤i≤n-k+1;
然后,对每个所述窗口计算哈希值H(ci,ci+1,...,ci+k-1),其中,
H(ci,ci+1,...,ci+k-1)=(ci mod q)×pk-1+(ci+1mod q)×pk-2+...+(ci+k-1modq)×p0
其中,p为预设固定的素数,q为预设常数,mod为取模运算;
其次,将计算出的哈希值H(ci,ci+1,...,ci+k-1)存入哈希数组{h1,h2,...,hi,...},其中第i项hi=H(ci,ci+1,...,ci+k-1);
最后,在所述哈希数组{h1,h2,...,hi,...}上滑动一个大小为w的窗口,在每一个窗口内选取最小值,在选取的哈希值所对应的载荷窗口的首个字符后插入一个块边界,每两个连续的块边界之间的内容连接上紧邻的u个字符的内容,作为分块内容;
步骤S3,获取预备查询的字段,对所述预备查询字段中的所有分块逐个进行哈希运算,分别得到对应的布隆过滤器,判断所述预备查询的字段的所有分块是否均映射到对应的所述布隆过滤器的位置,如果是则判断所述载荷包括所述预备查询的字段。
2.如权利要求1所述的基于布隆过滤器的网络取证载荷归属方法,其特征在于,在所述步骤S1中,对所述网络数据流进行预处理,包括如下步骤:去除所述网络数据流中头部数据和元数据,仅保留用于传输的真实数据,作为载荷。
3.如权利要求1所述的基于布隆过滤器的网络取证载荷归属方法,其特征在于,所述在每一个窗口内选取最小值,包括如下步骤:
如果在一个窗口内,存在一个以上的最小值,则根据数值在窗口内的顺序,在多个最小值中,选择最右边的值作为所述最小值。
4.如权利要求1所述的基于布隆过滤器的网络取证载荷归属方法,其特征在于,在所述步骤S3中,判断所述预备查询的字段的所有分块是否均映射到对应的所述布隆过滤器的位置,包括如下步骤:
判断所述预备查询的字段的所有分块被映射到所属布隆过滤器的位置是否置1,如果是,则判断所述载荷包括所述预备查询的字段。
5.一种基于布隆过滤器的支持通配符的网络取证载荷归属系统,其特征在于,包括:
网络数据流抓取模块,用于抓取预备取证的网络数据流,并对所述网络数据流进行预处理,得到预处理后的网络数据流作为载荷;
载荷分块模块,用于对所述载荷进行分块,得到分块内容,所述载荷分块模块对所述载荷进行分块,包括:
设所述载荷为{c1,c2,...,cn},
首先,在所述载荷上设置一个大小为k的滑动窗口,其中,第i个窗口内的字符为{ci,ci+1,...,ci+k-1},1≤i≤n-k+1;
然后,对每个所述窗口计算哈希值H(ci,ci+1,...,ci+k-1),其中,
H(ci,ci+1,...,ci+k-1)=(ci mod q)×pk-1+(ci+1 mod q)×pk-2+...+(ci+k-1 mod q)×p0
其中,p为预设固定的素数,q为预设常数,mod为取模运算;
其次,将计算出的哈希值H(ci,ci+1,...,ci+k-1)存入哈希数组{h1,h2,...,hi,...},其中第i项hi=H(ci,ci+1,...,ci+k-1);
最后,在所述哈希数组{h1,h2,...,hi,...}上滑动一个大小为w的窗口,在每一个窗口内选取最小值,在选取的哈希值所对应的载荷窗口的首个字符后插入一个块边界,每两个连续的块边界之间的内容连接上紧邻的u个字符的内容,作为分块内容;
布隆过滤器存储模块,用于将所述分块内容代入指定的哈希函数中,得到的哈希函数的结果为对应的布隆过滤器的编号,将所述分块内容根据所述布隆过滤器的编号分别存储至对应的布隆过滤器中;
查询模块,用于获取预备查询的字段,对所述预备查询字段中的所有分块逐个进行哈希运算,分别得到对应的布隆过滤器,判断所述预备查询的字段的所有分块是否均映射到对应的所述布隆过滤器的位置,如果是则判断所述载荷包括所述预备查询的字段。
6.如权利要求5所述的基于布隆过滤器的网络取证载荷归属系统,其特征在于,所述网络数据流抓取模块用于去除所述网络数据流中头部数据和元数据,仅保留用于传输的真实数据,作为载荷。
7.如权利要求5所述的基于布隆过滤器的网络取证载荷归属系统,其特征在于,如果在一个窗口内,存在一个以上的最小值,则所述载荷分块模块根据数值在窗口内的顺序,在多个最小值中,选择最右边的值作为所述最小值。
8.如权利要求5所述的基于布隆过滤器的网络取证载荷归属系统,其特征在于,所述查询模块判断所述预备查询的字段的所有分块被映射到所属布隆过滤器的位置是否置1,如果是,则判断所述载荷包括所述预备查询的字段。
CN201510752320.7A 2015-11-06 2015-11-06 基于布隆过滤器的网络取证载荷归属方法及系统 Active CN105429968B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510752320.7A CN105429968B (zh) 2015-11-06 2015-11-06 基于布隆过滤器的网络取证载荷归属方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510752320.7A CN105429968B (zh) 2015-11-06 2015-11-06 基于布隆过滤器的网络取证载荷归属方法及系统

Publications (2)

Publication Number Publication Date
CN105429968A CN105429968A (zh) 2016-03-23
CN105429968B true CN105429968B (zh) 2018-10-30

Family

ID=55507910

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510752320.7A Active CN105429968B (zh) 2015-11-06 2015-11-06 基于布隆过滤器的网络取证载荷归属方法及系统

Country Status (1)

Country Link
CN (1) CN105429968B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105871932B (zh) * 2016-06-22 2019-07-05 江苏迪纳数字科技股份有限公司 车联网云数据的防泄漏方法
CN108632131B (zh) * 2017-03-16 2020-10-20 哈尔滨英赛克信息技术有限公司 一种基于指纹型可变长布鲁姆过滤器的邮件地址匹配方法
CN107944294A (zh) * 2017-11-24 2018-04-20 云易天成(北京)安全科技开发有限公司 基于布隆过滤器过滤数据库数据的数据防泄漏方法及设备
CN110825940B (zh) * 2019-09-24 2023-08-22 武汉智美互联科技有限公司 网络数据包存储和查询方法
EP3859552B1 (en) * 2020-01-30 2021-11-17 Ovh Method and system for handling content of data packet/frames using an adapted bloom filter
CN112016131B (zh) * 2020-08-25 2023-11-07 南京大学 一种用于分布式云取证可信度验证系统及其方法
CN112667629A (zh) * 2020-12-22 2021-04-16 互联网域名系统北京市工程研究中心有限公司 基于布隆过滤器的威胁检测方法和系统
CN113590606B (zh) * 2021-09-27 2021-12-31 浙江九州量子信息技术股份有限公司 一种基于布隆过滤器的大数据量密钥去重方法及系统
CN114884675B (zh) * 2022-04-29 2023-12-05 杭州博盾习言科技有限公司 基于比特传输的多方隐私求交方法、装置、设备及介质
CN114595280B (zh) * 2022-05-10 2022-08-02 鹏城实验室 基于滑动窗口的时间成员查询方法、装置、终端及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345472A (zh) * 2013-06-04 2013-10-09 北京航空航天大学 基于有限二叉树布隆过滤器的去冗文件系统及其构建方法
CN104794170A (zh) * 2015-03-30 2015-07-22 中国科学院信息工程研究所 基于指纹多重哈希布隆过滤器的网络取证内容溯源方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110257889A1 (en) * 2010-02-24 2011-10-20 Pacific Biosciences Of California, Inc. Sequence assembly and consensus sequence determination
US8380736B2 (en) * 2010-05-21 2013-02-19 Microsoft Corporation De-duplication in billing system
US8549004B2 (en) * 2010-09-30 2013-10-01 Hewlett-Packard Development Company, L.P. Estimation of unique database values
US9465826B2 (en) * 2012-11-27 2016-10-11 Hewlett Packard Enterprise Development Lp Estimating unique entry counts using a counting bloom filter

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345472A (zh) * 2013-06-04 2013-10-09 北京航空航天大学 基于有限二叉树布隆过滤器的去冗文件系统及其构建方法
CN104794170A (zh) * 2015-03-30 2015-07-22 中国科学院信息工程研究所 基于指纹多重哈希布隆过滤器的网络取证内容溯源方法

Also Published As

Publication number Publication date
CN105429968A (zh) 2016-03-23

Similar Documents

Publication Publication Date Title
CN105429968B (zh) 基于布隆过滤器的网络取证载荷归属方法及系统
Diro et al. Leveraging LSTM networks for attack detection in fog-to-things communications
CN105871832B (zh) 一种基于协议属性的网络应用加密流量识别方法及其装置
Chernyshev et al. Internet of things forensics: The need, process models, and open issues
Lévy-Leduc et al. Detection and localization of change-points in high-dimensional network traffic data
Liu et al. Detecting DNS tunnel through binary-classification based on behavior features
CN104794170B (zh) 基于指纹多重哈希布隆过滤器的网络取证内容溯源方法和系统
CN108965248B (zh) 一种基于流量分析的p2p僵尸网络检测系统及方法
CN111464485A (zh) 一种加密代理流量检测方法和装置
CN109120602B (zh) 一种IPv6攻击溯源方法
Sakib et al. Using anomaly detection based techniques to detect HTTP-based botnet C&C traffic
CN107046468A (zh) 一种物理层认证门限确定方法及系统
CN109831448A (zh) 针对特定加密网页访问行为的检测方法
CN106899978A (zh) 一种无线网络攻击定位方法
CN102714652B (zh) 监测数据网络中包括多个数据流的通讯会话
Thi et al. Federated learning-based cyber threat hunting for apt attack detection in SDN-enabled networks
CN114172731A (zh) IPv6地址的快速验证溯源方法、装置、设备及介质
Foremski On different ways to classify Internet traffic: a short review of selected publications
Park et al. Performance improvement of payload signature-based traffic classification system using application traffic temporal locality
RU2472211C1 (ru) Способ защиты информационно-вычислительных сетей от компьютерных атак
Haghighat et al. Payload attribution via character dependent multi-bloom filters
Zhao et al. A classification and identification technology of TLS encrypted traffic applications
Prathibha et al. Analysis of hybrid intrusion detection system based on data mining techniques
Dener et al. Rfse-gru: Data balanced classification model for mobile encrypted traffic in big data environment
RU2622788C1 (ru) Способ защиты информационно-вычислительных сетей от компьютерных атак

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