一种基于文件序列化的自动机远程分发和初始化方法技术领域
本发明涉及大规模分布式特征实时检测和匹配技术领域,尤其涉及到使用
自动机匹配技术进行多模式子串匹配的分布式检测系统。
背景技术
互联网的飞速发展伴随着大量的网络攻击和恶意代码的传播,如何从海量
的互联网流量中检测出这些攻击特征和恶意代码成为一个巨大的挑战。基于知
名的开源引擎如SNORT,BRO等而形成的分布式特征检测与匹配系统是解决这个
挑战的主要技术之一。而在这些分布式系统中,特征检测和匹配算法是其中的
关键技术,基于自动机的匹配算法是众多匹配算法中的使用比较广泛的一种特
征匹配算法。
原来自动机匹配算法的实现方式是先将所有的规则和特征分发到每一台
处理机上,各自根据规则和特征初始化生成匹配自动机,然后基于自动机进行
特征匹配。这种方式使得特征和规则暴露在所有的处理机上,形成安全隐患,
而且每一台处理机都要进行同样的初始化过程,系统开销较大。
发明内容
本发明要解决的技术问题是提供一种基于文件序列化的自动机远程分发
和初始化方法,将位于内存的自动机序列化成本地文件,然后将序列化后的文
件进行分发和快速部署,以替代原有的基于规则和特征的分发和部署方式。
一种基于文件序列化的自动机远程分发和初始化方法,该方法包括步骤:
S1.配置后端服务器,将特征和规则进行初始化生成自动机;
S2.在所述后端服务器上将自动机序列化到本地,以文件形式存储;
S3.配置分发网络和n台处理机,所述后端服务器将文件形式存在的自动
机通过分发网络发送给所有需要进行匹配处理的处理机;
S4.每台处理机都接收文件形式存在的自动机,并初始化到内存;
S5.处理机根据新生成自动机进行特征的匹配和检测处理。
本发明的有益效果:
本发明提供了一种可靠的自动机序列化方法,将位于内存的自动机序列化
成本地文件,然后将序列化后的文件进行分发和快速部署,以替代原有的基于
规则和特征的分发和部署方式。
具体实施方式
本发明提供了一种基于文件序列化的自动机远程分发和初始化方法,该方
法包括步骤:
S1.配置后端服务器,将特征和规则进行初始化生成自动机;
S2.在后端服务器上将自动机序列化到本地,以文件形式存储;
S3.配置分发网络和n台处理机,后端服务器将文件形式存在的自动机通
过分发网络发送给所有需要进行匹配处理的处理机;
S4.每台处理机都接收文件形式存在的自动机,并初始化到内存;
S5.处理机根据新生成自动机进行特征的匹配和检测处理;
其中,步骤S1之前还包括步骤:
A1.启动异步消息网络系统;
其中,步骤S1还包括步骤:
S1.1后端服务器在自动机算法实现时将其数据结构分成两类,一类是纯
指针,一类是纯数据;所有的指针都指向纯数据部分的内存地址;
S1.2后端服务器开辟两块连续的内存,一块用来存放纯指针,一块用来存
放纯数据;
S1.3后端服务器按照前面两点进行自动机的构建和初始化工作。
其中,步骤S2还包括步骤:
S2.1以下所有操作都在后端服务器上完成;
S2.2将存贮纯数据的内存内容直接以字符格式原样写出到文件file1里
面,并在file1文件中记录下字符的总长度len1;这块内存的起始地址记为
p0;
S2.3存储指针数据的内存起始地址为记为p1,对每一个指针i,其中0
≤i<len2,计算偏移量offset[i]=p1[i]–p0,将每一个偏移量以32位整
数格式写入到文件file2中,并在file2记录下总偏移量的个数len2;
S2.4将file1和file2按照一定的格式封装,形成完整的自动机序列化后
的文件。
其中,步骤S4还包括步骤:
S4.1以下所有操作都在处理机上完成;
S4.2收到自动机序列化文件后,首先从文件中获取len1的值,在内存中
开辟len1长度的空间,将file1的字符内容原样写入到内存,并记录下这块
内存的起始地址p2;
S4.3从自动机文件中获取len2的值,在内存开辟len2个连续的指针;
从自动机文件中获取偏移量offset[i],其中0≤i<len2,对每一个指针重新
赋值offset[i]+p2;
S4.4至此,处理机上的自动机初始化工作完成。