作为网络取证技术一方面要大范围地收集网络数据流,不能仅仅收集有限的日志信息,另一方面要克服海量数据传输和存储带来的资源瓶颈。为了解决这一矛盾的策略就是对原始的网络数据流进行的压缩存储,同时不影响压缩后的数据对事后分析机制的支持,重构网络事件。Bloom-filter加密算法良好数据映射压缩性能、支持高效的查询机制能正好可以解决这个问题。

Bloom-filter加密算法在网络取证中的应用

一、Bloom-filter加密算法介绍

Bloom-filter是一个非常优秀的数据结构,由Bloom在1970年提出来,现已经广泛应用于计算机系统中庞大的数据集表达,提高查找效率。

1、Bloom-filter加密算法的基本原理

分配一个具有m位的向量y,所有的位被初始化为0。选择k个相互独立的hash函数h1,h2,h3,…,hk。,值域为{1,2,…,m}。对于n个数据对象的集合,{s=s1,s2,…,sn}(m>n)的每个数据对象计算一个地址序列h1(s),h2(s),…,hk(s),然后将位向量对应地址序列位置1。查询某个数据对象是否是集合s的成员时,检查表示s的Bloom-filter对应数据对象地址序列的位,如果均为1,则判定该数据对象属于s,否则不属于s。在Bloom-filter加密算法中可能对位向量中的同一个位多次置1,所以在查询数据对象是否为集合元素时会存在“假肯定”(FalsePositive)现象。假肯定的概率叫做假肯定率(FP),计算公式为:

FP(1一(1—1/m)kn)k≈一(1-e-kn/m)k(1)

对公式(1)进行求导,可推出当k=ln2*(m/n),FP取得最小值:

FPmin≈0.6185m/n(2)

定义存储空问压缩率d=1-m/(n*b)(3)

其中b为数据元素大小。

二、基于Bloom-filter加密算法的网络取证系统结构设计

Bloom-filter数据结构通过小概率的假肯定换来了空间效率,将其应用于网络取证系统中,将采集到的原始网络数据切片为大小为b的数据元素进行Bloom-filter映射存储会大大降低数据证据的存储量和通信量。事后取证时,只需要找到网络事件的特征片断,进行相应的处理,结合数据存储的附加信息如源目的IP地址、连接时间等就可以查洵到网络事件是否发生过,都和哪些主机相关,危害到哪些主机,追踪相关事件发起者,采取措施。在查洵单个Bloom-filter时,仅仅和参数M有关,与所映射存储的数据元素个数N没有关系,这种特性使得Bloom-filter加密算法应用于网络取汪有很好的查询效率。

Bloom-filter加密算法在网络取证中的应用

整个取证系统由两大核心部件组成:数据处理器和取汪服务器。数据处理器被嵌入到网络设备(如:路由器、网关、交换机等)之中,进行网络数据的收集映射存储,取证服务器提供Bloom-filter处理后的数据归档管理,并提供用户的取证事后分析查询。安装了数据处理器的网络设备与取证服务器相连接,形成一个层次的网络结构,取证服务器位于网络的核心位置,对所归属域的数据处理器进行协凋管理。

(1)数据采集

数据处理器和取证服务器的层次网络结构,给数据采集带来了便利,作为层次结构叶结点数据处理器收集建立微观视图所必需的细粒度的网络数据,包括的数据种类主要有:连接协议、连接传输内容、源目的IP地址、连接时间等,提供完整的事后分析查询。而处于核心位置的取证服务器则收集用于建立宏观视图的粗粒度信息,包括流量信息、连接记录、系统日志等信息,给取证分析查询提供更多数据支持。

(2)数据映射压缩处理

网络数据包先由数据过滤模块进行过滤,提取有用的数据包,包过滤策略由配置管理模块进行管理控制,过滤后的数据包交由Bloom-filter引擎映射压缩处理。Bloom-filter引擎主要负责Bloom-filter的生命期管理、Bloom-filter的参数进行配置管理和对过滤后的网络数据进行映射压缩处理。Bloom-filter的参数配置由参数配置管理模块进行配置,用户可以通过用户管理模块对其中的压缩率,假肯定率和数据元素的大小进行设置。映射压缩后的数据由数据处理器上的内存管理模块进行管理,先由本地数据处理器存储设备暂时存储,再定期发送到取证服务器上进行归档。安全管理模块会给每—个写到数据库的数据进行签名和打上时间戳,确保存档数据的完整性。同时安全管理模块还负责对查询请求进行认证,屏蔽非法欺诈性查询,保证数据安全。

(3)取证分析查询

用户进行取证查询时,由查询分析模块进行分析,得出查询的范围、查询方法、查询的内容选段等,具体的查询方案由查询计划模块完成。查询计划生成之后将会定位到某个取证服务器上,提交查询请求,读取Bloom-filter相关档案,进行比对查询,以确定这个查询选段(特征选段)是否在网络上进行了传播,以及相关联的主机地址,连接记录等信息。查询结果通过可视化显示模块返回给查询用户。在查询选段的选取时,大小应在26大小附近才能保持查询的正确性,因为查洵时把查询选段切片成大小为b,再依字节向右进行位移进行比对,选段过小会漏查,导致结果不正确;过大会增加查询代价。

小知识之数据映射

利用特定转换程序对不同元数据元格式进行转换,称为元数据映射(Metadata Mapping/Crosswalking)。目前已有大量的转换程序存在,供若干流行元数据格式之间的转化。