基于报文截取的内网视频文件监控系统的制作方法

文档序号:7570361阅读:170来源:国知局
专利名称:基于报文截取的内网视频文件监控系统的制作方法
技术领域
本发明涉及网络安全领域,尤其涉及一种基于报文截取的内网视频文件监控系 统。
背景技术
网络视频随着互联网的普及,网络视频渐渐成为一种非常重要的信息载体,而网络视频流 量在整个互联网流量中也占到了非常大的比例。网络视频是指视频网站提供的在线视频播放服务,主要利用流媒体格式的视频文 件,众多的流媒体格式中,flv格式由于文件小,占用客户端资源少等优点成为网络视频所 依靠的主要文件格式。视频格式可以分为适合本地播放的本地影像视频和适合在网络中播放的网络流 媒体影像视频两大类。尽管后者在播放的稳定性和播放画面质量上可能没有前者优秀,但 网络流媒体影像视频的广泛传播性使之正被广泛应用于视频点播、网络演示、远程教育、网 络视频广告等等互联网信息服务领域。swf (shock wave flash)是Macromedia(现已被ADOBE公司收购)公司的动画设 计软件Flash的专用格式,是一种支持矢量和点阵图形的动画文件格式,被广泛应用于网 页设计,动画制作等领域,swf文件通常也被称为Flash文件。FLV是FLASH VIDEO的简称,FLV流媒体格式是一种新的视频格式。由于它形成的 文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文 件导入Flash后,使导出的SWF文件体积庞大,不能在网络上很好的使用等缺点。目前各在线视频网站均采用此视频格式。如新浪播客、六间房、56、优酷、土豆、酷 6、y0UtUbe等,无一例外。FLV已经成为当前视频文件的主流格式。FLV是目前被众多新一 代视频分享网站所采用,是目前增长最快、最为广泛的视频传播格式。是在sorenson公司 的压缩算法的基础上开发出来的。FLV格式不仅可以轻松的导入Flash中,速度极快,并且 能起到保护版权的作用,并且可以不通过本地的微软或者REAL播放器播放视频。报文截获网络报文截获是网络入侵检测系统的基础。一般指通过截获整个网络的所有信息 流量,根据信息源主机,目标主机,服务协议端口等信息简单过滤掉不关心的数据,再将用 户感兴趣的数据发送给更高层的应用程序进行分析。Iibpcap是imix/linux平台下的网络数据包捕获函数包,大多数网络监控软件都 以它为基础。Libpcap可以在绝大多数类imix平台下工作。Libpcap提供了系统独立的用户级别网络数据包捕获接口,并充分考虑到应用程 序的可移植性。Libpcap可以在绝大多数类unix平台下工作。在windows平台下,一个与 Iibpcap很类似的函数包winpcap提供捕获功能。内网监控
计算机和互联网的普及和应用为企业带来了巨大的经济效益,同时不容忽视的问 题是企业的员工上班期间都是内网的计算机来工作,还是占用上班时间来玩游戏,或是聊 天、炒股、上与工作无关的网站?还有部分下载电影占用大量的带宽而影响其他员工的工 作?还有一些员工将公司的机密文件或者代码通过U盘、邮件、IM等方式泄露出去,给公 司造成损失。如何提升工作效率,如何让公司信息资产免受损失是摆着每个企业面前的难 题?很多内网监控是专门针对解决以上问题所研发的,管理人员在办公室中既可以实 时监控所有被控计算机的工作状况,也可以像电视墙一样查阅全屏幕录像,还可以看到所 有的需要监控的员工使用计算机的历史记录,包括访问的网站、外发的资料、收发邮件的内 容及附件、聊天内容、拷贝重要资料等所有操作,安装非法软件、黑客程序、闲聊、盗窃公司 重要资料等行为,提高企业信息化管理的效率,保护企业信息资产安全。目前的这些内网监控软件,往往是服务企业的。但是,从信息监控的角度看,目前 有很多内网监控系统尚没有发现对内网中的视频文件进行监视的系统。随着社会的发展, 视频以其信息量丰富,越来越成为重要的信息载体。从信息监控的角度看,对视频文件信息 进行监控也正在越来越成为一种安全需要。

发明内容
本发明利用winpcap函数包实现了报文的截获,实现了内网中对fIv视频文件进 行监视的系统。通过该系统,可以实现对内网中所有计算机的网络视频信息的捕获还原,实 现监控的目的。该系统采用了一种高效率和低内存占用的视频文件还原方法,提高了实用 性。根据本发明的一种基于报文截取的内网视频文件监控系统,包括监控时间设定器,用于进行监控时间的设定,设定对内网实施视频监控的时间段, 即监控启动时间和停止时间,到达指定的监控时间时,启动监控系统;网络探测器,向内网中广播ARP请求报文,根据收到的回复报文,得到内网主机的 IP列表;网卡选择器,监控主机可能有多个网卡,首先选定进行视频监控所使用的网卡;端口设定器,为每个IP地址设定需要监控的源端口列表,默认设定源端口为80 ;报文截取与分流器,进行报文截取与分流,截获进入内网的网络原始报文,随后进 行报文解析,将报文的链路层、IP层、TCP层的报文头、以及TCP载荷分别解析出来,根据报 文IP头指定的目的IP地址,将报文分流到该IP的报文处理器;报文处理器,在接收到分流过来的报文后,分析TCP层报文头,如果报文的源端口 与端口设定器设定的端口相同,则创建视频报文缓存文件,其中将每个报文存储为一个记 录,记录内容包括该报文的TCP序列号、期望序列号、报文载荷长度、报文载荷内容,并记录 该报文的源IP,作为视频源IP,记录该报文的目的端口,作为视频目的端口,并设置视频报 文启动标识;当视频报文启动标识启动且后续接收到的报文的源IP与所述视频源IP相同 时,将所述后续接收到的报文以预设格式写入当前视频报文缓存文件;如果在设置时间段 内没有收到来自视频源IP的报文,视为该视频传输结束,关闭视频报文缓存文件;视频文件处理器,打开视频报文缓存文件,并将文件中的所有记录的载荷内容按照TCP序列号升序的方式,重新写入一个目标文件,完成后得到的文件,即为还原后的视频 文件。更具体的,所述报文处理器进一步包括源端口判断单元、视频首报文判断单元、中 间报文处理单元、视频结束判断单元、循环监控单元,其中源端口判断单元用于分析接收到分流过来的报文的TCP层报文头,如果报文的源 端口与端口设定器设定的端口相同,则继续;否则,丢弃该报文,退出报文处理流程;视频首报文判断单元,在TCP载荷中搜索flv视频的起始标志字符串,如果找到, 则新建一个视频报文缓存文件,其中将每个报文存储为一个记录,记录内容包括该报文的 TCP序列号、TCP序列号加报文载荷长度的和、报文载荷长度、报文载荷内容,同时,记录该 报文的源IP,作为视频源IP,记录该报文的目的端口,作为视频目的端口,并设置视频报文 启动标识;中间报文处理单元,判断后续接收的视频报文启动标识,如果没有启动,则丢弃该 报文,报文处理流程结束,如果已经启动,则判断该报文的源IP是否与所述视频源IP相同, 如果相同,将该后续接收的报文的TCP序列号、期望序列号、报文载荷长度、报文载荷内容 作为一个记录写入当前的视频报文缓存文件;如果不同,丢弃该报文;视频结束判断单元,如果在设置时间内没有收到来自视频源IP的报文,视为该视 频传输结束,关闭视频报文缓存文件;循环监控单元,在监控结束时间结束之前,循环往复进行报文的截获、分流和处理 流程。更具体的,所述视频文件处理器,读取视频报文缓存文件中的第一个记录,设置第 一变量值tcpSeqWant的值为期望序列号,将报文载荷内容写入目标文件,从视频缓存文件 中读取下一个记录,设置第二变量值tcpSeq的值为该记录的TCP序列号,通过比较前一记 录的期望序列号与后一记录的TCP序列号的大小,确定是否将后一记录的报文载荷内容 写入目标文件,写入目标文件后,更新第一变量值tcpSeqWant的值为后一记录的期望序列 号,直至视频报文缓存文件所有记录读取完毕,生成最终还原视频文件。


图1示意性的示出了根据本发明的基于报文截取的内网视频文件监控系统的逻 辑框图;图2示意性的示出了根据本发明的报文处理器的逻辑框图;图3示意性的示出了根据本发明的报文处理器对抓取的报文进行还原的流程图。
具体实施例方式参照图1,示出了本发明的视频文件监控系统的逻辑框图。其中包括监控时间设 定器101,用于进行监控时间的设定,设定对内网实施视频监控的时间段,即监控启动时间 和停止时间。到达指定的监控时间时,启动监控系统。网络探测器102,向内网中广播ARP 请求报文,根据收到的回复报文,得到内网主机的IP列表。网卡选择器103,监控主机可能 有多个网卡,首先选定进行视频监控所使用的网卡。端口设定器104,为每个IP地址设定 需要监控的源端口列表,由于目前视频信息绝大多数是基于web的,故默认设定源端口为80。报文截取与分流器105,进行报文截取与分流,首先截获进入内网的网络原始报文;进 行报文解析将报文的链路层、IP层、TCP层的报文头、以及TCP载荷分别解析出来;报文分 流(器)根据报文IP头指定的目的IP地址,将报文分流到该IP的报文处理器106。如 图2所示,每个IP的报文处理器106进一步包括源端口判断单元201、视频首报文判断单元 202、中间报文处理单元203、视频结束判断单元204、循环监控单元205,在接收到分流过来 的报文后,启动报文处理流程如下源端口判断分析TCP层报文头,如果报文的源端口与端口设定器104设定的端口 相同,则继续;否则,丢弃该报文,退出报文处理流程视频首报文判断在TCP载荷中搜索flv视频的起始标志字符串(“FLV” ),如果 找到,则新建一个文件,该文件称为视频报文缓存文件。文件中将每个报文存储为一个记 录,记录内容包括该报文的TCP序列号、TCP序列号加报文载荷长度的和(本发明称之为期 望序列号)、报文载荷长度、报文载荷内容。同时,记录该报文的源IP,作为视频源IP,记录 该报文的目的端口,作为视频目的端口,并设置视频报文启动标识,报文处理流程结束。如 果没有找到起始标志字符串,进入下一步。判断视频报文启动标识,如果没有启动,则丢弃该报文,报文处理流程结束。如果 已经启动,则判断该报文的源IP是否与上述的视频源IP相同,如果相同,将该报文的TCP 序列号、TCP序列号加报文载荷长度的和(本发明称之为期望序列号)、报文载荷长度、报文 载荷内容作为一个记录写入当前的视频报文缓存文件;如果不同,丢弃该报文,报文处理流 程结束。视频结束判断连续3分钟没有收到来自视频源IP的报文,视为该视频传输结束。 关闭视频报文缓存文件。循环监控报文的截获、分流和处理流程循环往复,一直持续到监控结束时间。监控结束时间到达后,停止报文的截获、分流和处理,将已经生成的视频报文缓存 文件提交给视频文件处理器107进行处理。视频文件处理器107处理视频报文缓存文件。由于视频报文在传递的过程中可能 会发生乱序,所以必须要对接收到的报文重新排序。但是,如果实时的进行排序,会因为机 器的性能限制,造成较严重的丢包,即无法抓取到所有的到达网络的视频报文。所以需要先 将报文保存在视频报文缓存文件,在监控结束后由视频文件处理器107进行处理。如图3所示,视频文件处理器107打开视频报文缓存文件,并将文件中的所有记录 的载荷内容按照TCP序列号升序的方式,重新写入一个目标文件,完成后得到的文件,即为 还原好的视频文件,从而实现了对内网中视频信息的监控。首先通过第一记录读取步骤,从视频报文缓存文件中读取第一个记录,设置 tcpSeqffant值为期望序列号,将报文载荷内容写入目标文件。后续记录读取步骤,从视频缓存文件中读取下一个记录,设置tcpSeq值为该记录 的TCP序列号。序列号比较步骤,判断tcpSeq大于、等于还是小于tcpSeqffant ;如果tcpSeq < tcpSeqffant,则判断传输过程出错而出现重复报文,丢弃该报文重新进行后续记录读取 步骤;如果tcpSeq > tcpSeqffant,则转到早到报文处理步骤;如果二者相等,则转到记录载 荷写入步骤。
早到报文处理步骤,判断接收到的该记录对应的tcp报文早到,将该记录按TCP序 列号升序的方式放入记录缓冲链表;如果记录缓冲链表尚未建立,则建立该链表,并将该记 录按TCP序列号升序的方式放入记录缓冲链表。转到后续记录读取步骤,进行下一记录的 读取。记录载荷写入步骤,将tcpSeqWant值更新为当前记录的期望序列号,将该记录的 载荷写入目标文件。记录缓冲链表查询步骤,查询记录缓冲链表中是否有记录,使得该记录的TCP序 列号=tcpSeqWant,如果有,则从记录缓冲链表中读取该记录,将tcpSeqWant值设置为该 记录的期望序列号,并将记录的载荷内容写入目标文件;然后从链表中删除该项记录,并进 行下一轮查询;如果没有,则转到后续记录读取步骤,进行下一记录的读取。为了实现还原视频文件的目的,也可以先将所有记录从视频报文缓存文件中读入 一个链表,然后对链表排序,最后重新写入目标文件;但是,采用这种方法会占用较多的存 储资源,而且,先读入全部的记录然后排序,其排序工作量也会比较大。与这种方法相比,本 发明采用的方法具有较高的速度和较低的资源占用。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种基于报文截取的内网视频文件监控系统,包括监控时间设定器,用于进行监控时间的设定,设定对内网实施视频监控的时间段,即监 控启动时间和停止时间,到达指定的监控时间时,启动监控系统;网络探测器,向内网中广播ARP请求报文,根据收到的回复报文,得到内网主机的IP列表;网卡选择器,监控主机可能有多个网卡,首先选定进行视频监控所使用的网卡; 端口设定器,为每个IP地址设定需要监控的源端口列表,默认设定源端口为80 ; 报文截取与分流器,进行报文截取与分流,截获进入内网的网络原始报文,随后进行报 文解析,将报文的链路层、IP层、TCP层的报文头、以及TCP载荷分别解析出来,根据报文IP 头指定的目的IP地址,将报文分流到该IP的报文处理器;报文处理器,在接收到分流过来的报文后,分析TCP层报文头,如果报文的源端口与端 口设定器设定的端口相同,则创建视频报文缓存文件,其中将每个报文存储为一个记录,记 录内容包括该报文的TCP序列号、期望序列号、报文载荷长度、报文载荷内容,并记录该报 文的源IP,作为视频源IP,记录该报文的目的端口,作为视频目的端口,并设置视频报文启 动标识;当视频报文启动标识启动且后续接收到的报文的源IP与所述视频源IP相同时,将 所述后续接收到的报文以预设格式写入当前视频报文缓存文件;如果在设置时间段内没有 收到来自视频源IP的报文,视为该视频传输结束,关闭视频报文缓存文件;视频文件处理器,打开视频报文缓存文件,并将文件中的所有记录的载荷内容按照TCP 序列号升序的方式,重新写入一个目标文件,完成后得到的文件,即为还原后的视频文件。
2.根据权利要求1的系统,所述报文处理器进一步包括源端口判断单元、视频首报文 判断单元、中间报文处理单元、视频结束判断单元、循环监控单元,其中源端口判断单元用于分析接收到分流过来的报文的TCP层报文头,如果报文的源端口 与端口设定器设定的端口相同,则继续;否则,丢弃该报文,退出报文处理流程;视频首报文判断单元,在TCP载荷中搜索flv视频的起始标志字符串,如果找到,则新 建一个视频报文缓存文件,其中将每个报文存储为一个记录,记录内容包括该报文的TCP 序列号、TCP序列号加报文载荷长度的和、报文载荷长度、报文载荷内容,同时,记录该报文 的源IP,作为视频源IP,记录该报文的目的端口,作为视频目的端口,并设置视频报文启动 标识;中间报文处理单元,判断后续接收的视频报文启动标识,如果没有启动,则丢弃该报 文,报文处理流程结束,如果已经启动,则判断该报文的源IP是否与所述视频源IP相同,如 果相同,将该后续接收的报文的TCP序列号、期望序列号、报文载荷长度、报文载荷内容作 为一个记录写入当前的视频报文缓存文件;如果不同,丢弃该报文;视频结束判断单元,如果在设置时间内没有收到来自视频源IP的报文,视为该视频传 输结束,关闭视频报文缓存文件;循环监控单元,在监控结束时间结束之前,循环往复进行报文的截获、分流和处理流程。
3.根据权利要求1的系统,其中所述视频文件处理器,读取视频报文缓存文件中的第 一个记录,设置第一变量值tcpSeqWant的值为期望序列号,将报文载荷内容写入目标文 件,从视频缓存文件中读取下一个记录,设置第二变量值tcpSeq的值为该记录的TCP序列号,通过比较前一记录的期望序列号与后一记录的TCP序列号的大小,确定是否将后一记 录的报文载荷内容写入目标文件,写入目标文件后,更新第一变量值tcpSeqWant的值为后 一记录的期望序列号,直至视频报文缓存文件的所有记录读取完毕,生成最终还原视频文 件。
全文摘要
一种基于报文截取的内网视频文件监控系统,包括监控时间设定器,用于到达指定的监控时间时,启动监控系统;网络探测器,向内网中广播ARP请求报文,根据收到的回复报文,得到内网主机的IP列表;网卡选择器,选定进行视频监控所使用的网卡;端口设定器,为每个IP地址设定需要监控的源端口列表;报文截取与分流器,进行报文截取与分流,截获进入内网的网络原始报文,随后进行报文解析,创建视频报文缓存文件;视频文件处理器,打开视频报文缓存文件,并将文件中的所有记录的载荷内容按照TCP序列号升序的方式,重新写入一个目标文件,完成后得到的文件,即为还原后的视频文件,由此获得较高的处理速度和较低的资源占用,实现对内网视频文件的监控。
文档编号H04L12/26GK102082709SQ20111002555
公开日2011年6月1日 申请日期2011年1月24日 优先权日2011年1月24日
发明者刘明, 刘波, 张静, 王天佐, 王怀民, 肖枫涛, 胡华平, 陈新, 陈林 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1