一种http协议还原中两个会话数据合并的方法

文档序号:7888944阅读:231来源:国知局
专利名称:一种http协议还原中两个会话数据合并的方法
技术领域
本发明属于数据通信领域,涉及一种HTTP协议还原中两个会话数据合并的方法。
背景技术
基于HTTP协议的WEB应用种类繁多,包括BBS、BL0G、CHAT等。将其内容进行解析还原,对当今网络安全有重大意义。传统WEB应用协议还原方法针对每个HTTP数据包,从中取出登录信息、邮件内容等感兴趣的信息,数据包之间没有联系。而对于网页邮件、论坛之类的协议,通常支持附件上传。上传的附件与发表的正文位于两个不同的HTTP数据包中。使用传统的WEB类协议还原方法,可以分别提取两个数据包中的信息,但无法体现出二者之间的关系,不能满足更高的协议还原要求。

发明内容
针对上述传统WEB类协议还原的局限性,本发明提出了一种数据合并的方法,用于将附件信息与正文、登录等信息关联起来。本发明针对传统WEB类协议还原不能将附件与正文关联起来的局限性,提出了一种HTTP协议还原中两个会话数据合并的方法,实现了数据的合并。本发明的主要技术内容为I)根据绝大多数情况,假定传送附件的数据包(此文档中命名为附件数据包)总是在传送正文的数据包(此文档中命名为正文数据包)之前;2)对于每个被协议还原设备从登录数据包中截获到的用户登陆信息,将其加入到一个哈希表中(此文档中命名为登录信息表),如果没有截获到登录信息,则使用附件数据包或正文数据包中提取的用户信息作为一条登录信息,然后将其加入到哈希表中;3)登录信息表中每一项包含一个预先设置的指针,用于存储事先到达的附件信息,附件信息中包含附件的个数、每个附件的名称以及具体的文件内容;4)若有多个附件,则后续附件数据包处理中需要查找登录信息表中对应的指针是否为空,若为空,则将本次附件数据包处理中获取的附件信息(包括文件名、文件长度、文件内容)做为一个整体结构保存到一个队列中,并将队列首地址存储到登录信息表中对应的指针中;若不为空,则需要在已有的队列中增加新的附件信息索引项;5)正文数据包到来时,需要查询对应的登录信息表,若用于存储附件信息的指针不为空,则将此正文数据与指针指向的附件数据合并起来。具体做法是生成一个新的结构,其中包含源IP、目的IP、URL、账号、标题、正文内容、附件个数、附件名称、附件内容,并使用从本次正文数据包中解析出的正文信息内容以及在登录信息表中查询到的附件信息的内容来填充这一结构,用于输出;6)将合并后的数据按照事先在输出接口中约定的格式输出一条结构化信息,包含源IP、目的IP、URL、账号、标题、正文内容、附件个数、附件名称,并输出一个包含附件内容的压缩包,结构化信息文件与压缩包存储在本地磁盘/data目录下。所述步骤I)适合绝大多数WEB类应用,如网页邮件、网页论坛、博客、微博等,因此可以做这样的合理假设。所述步骤2)是将登录信息组织为一个哈希表,以方便管理和查询。对于没有截获到登录信息的数据,可以使用附件数据包本身包含的用户信息生成对应的登录信息。所述步骤3)是数据合并的关键,在登录信息中维护着指向预先到达的附件数据的指针,步骤5)中使用该指针来完成数据的合并。所述步骤4)针对多个附件的情况,如果是第一个附件,那么登录信息中的指针应为空,此时将解析出的附件信息存储到一个队列中,并将队列首地址存储到这个指针上;如果不是第一个,那么需要将解析出的附件信息添加到早先的附件信息队列中。所述步骤5)解析出已经到达的正文信息,根据正文信息中包含的账号(正文中本身包含,或采取用户ID关联的方法从协议还原设备已经解析到的登录信息中获取)查找到对应的登录信息表项后,取下附件内容(若无,则忽略),与解析出的正文内容合并。所述步骤6)将已经合并的数据按照事先约定的文件格式输出到本地磁盘,等待入数据库。步骤3)中所述登录信息表如图I所示,在哈希表Table中利用用户IP地址和端口形成的哈希值来索引该表,找到对应的Att_ptr,即存储附件信息的指针。指针可关联多个附件,均存储在Att_ptr指向的ATT表(存储附件信息表)中。整个合并的流程如图2所示。同时,将哈希表项置于超时链表中,在规定的时间到达后,丢弃表中超时的项。这样可以防止内存过度占用,避免存储浪费,这一点针对只有附件,没有正文的数据非常有效。 与现有技术相比,本发明的优点与积极效果一般的WEB类协议还原仅针对单包数据或单个连接,数据被还原以后没有任何关联,给一些行为分析和监控带来了不便。本发明所述的方法将相互关联的数据(如一次发送网页邮件过程中发送的附件与正文)合并在一起,描述一次完整的网络操作,在网络行为分析上带来了很大的便利。


图I为登录信息表结构;图2为数据合并流程。
具体实施例方式可以在一台配备双网卡的普通服务器上实现本文所述方法。假定网卡编号分别为 ethO与ethl,ethO用于接收待还原数据,ethl用于数据通讯。具体实施步骤如下I)由ethO接收的网络数据,经过上层解析,判断出HTTP协议大类,再由应用层解析判断出WEB应用类型,如网页邮件等;2)经过一次完整的网络操作,如登录、发送带有附件及正文的网页邮件;3)本模块将解析出的用户登录信息加入到登录信息表中;4)附件数据包到来,本模块查找登录信息表,取得对应的登录信息,将解析出的附件信息存储到到登录信息表项中的附件指针所指向的附件队列中;5)若后续还有附件,则继续添加到对应的附件表中;6)正文数据到来,本模块根据解析出的内容找到对应的登录信息表项,判断登录信息表项对应的附件指针是否为空,若不为空,则表示之前有上传附件的行为,此时,需要将附件信息从指针上摘下,与当前解析出的正文信息合并在一起;7)将合并后的信息格式化输出到文件,等待入库,或通过socket传送到其他服务器。至此,已经完成了一次完整的网络操作信息的合并输出。若仅有上传附件行为,没有后续的正文,则用户信息表项在超时后,会根据配置项选择丢弃信息,或者输出仅包含附件的信息。
权利要求
1.一种HTTP协议还原中两个会话数据合并的方法,其步骤为1)协议还原设备从登录数据包中截获用户登陆信息;2)将用户登录信息加入到一登录信息表中;所述登录信息表中每一项包含一个预先设置的指针,用于存储该用户的附件信息;3)收到该用户的正文数据包时,根据该用户登录信息查询所述登录信息表对应指针, 若该用户的用于存储附件信息的指针不为空,则将此正文数据与指针指向的附件数据合并起来。
2.如权利要求I所述的方法,其特征在于步骤2)中,若用户的附件信息为多个附件,则将第一个附件中解析出的附件数据包附件信息存储到一个附件信息队列中,并将该队列首地址存储到所述登录信息表对应指针上;然后将后续附件解析出的附件数据包附件信息索弓I项添加到该附件信息队列中。
3.如权利要求I所述的方法,其特征在于如果协议还原设备没有截获到登录信息,则使用附件数据包或正文数据包中提取的用户信息作为一条登录信息,然后将其加入到所述登录息表中。
4.如权利要求I或2所述的方法,其特征在于所述用户的附件信息包含附件的个数、 每个附件的名称以及文件内容;所述附件数据包附件信息包括文件名、文件长度、文件内容。
5.如权利要求I或2或3所述的方法,其特征在于所述登录信息表为一哈希表。
6.如权利要求5所述的方法,其特征在于将所述哈希表的哈希表项置于超时链表中, 在规定的时间到达后,丢弃表中超时的项。
7.如权利要求5所述的方法,其特征在于在哈希表中利用用户IP地址和端口形成的哈希值来索引所述登录信息表,找到对应的存储附件信息的指针。
8.如权利要求7所述的方法,其特征在于所述指针关联一个或多个附件,均存储在对应存储附件信息的指针指向的存储附件信息表中。
9.如权利要求I所述的方法,其特征所述数据合并的方法为将正文数据与指针指向的附件数据合并起来生成一个新的结构,该结构包含源IP、目的IP、URL、账号、标题、正文内容、附件个数、附件名称、附件内容,并使用从本次正文数据包中解析出的正文信息内容以及在登录信息表中查询到的附件信息的内容来填充这一结构;然后根据正文信息中包含的账号查找到所述登录信息表对应的表项后,取下附件内容与解析出的正文内容合并。
10.如权利要求I或9所述的方法,其特征在于将合并后的数据按照设定的格式输出一条结构化信息,并输出一个包含附件内容的压缩包,结构化信息文件与压缩包存储在本地磁盘;所述结构化信息包含源IP、目的IP、URL、账号、标题、正文内容、附件个数、附件名称。
全文摘要
本发明公开了一种HTTP协议还原中两个会话数据合并的方法,属于数据通信领域。本方法为1)协议还原设备从登录数据包中截获用户登陆信息;2)将用户登录信息加入到一登录信息表中;所述登录信息表中每一项包含一个预先设置的指针,用于存储该用户的附件信息;3)收到该用户的正文数据包时,根据该用户登录信息查询所述登录信息表对应指针,若该用户的用于存储附件信息的指针不为空,则将此正文数据与指针指向的附件数据合并起来。与现有技术相比,本发明将相互关联的数据合并在一起,描述一次完整的网络操作,在网络行为分析上带来了很大的便利。
文档编号H04L29/08GK102594880SQ20121002664
公开日2012年7月18日 申请日期2012年2月7日 优先权日2012年2月7日
发明者魏伟光 申请人:北京锐安科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1