本发明涉及信息技术领域。
背景技术:
icmp,internetcontrolmessageprotocol,即internet控制报文协议。它是tcp/ip协议簇的一个子协议,用于在ip主机、路由器之间传递控制消息。在企业中,经常会使用icmp协议测试网络连通状态.所以在很多情况下防火墙默认不会拦截,利用这点,黑客可以通过icmp协议穿透防火墙与外界进行非法通信,实现诸如远程控制、文件传输等操作。
传统的检测方法一般通过检查icmp内容数据和长度,是否符合icmp协议标准,费时费力,对设备性能要求高,且误报率较高。
现有技术说明
payload即负载,在计算机科学与电信领域,负载payload是数据传输中所欲传输的实际信息,通常也被称作实际数据或者数据体。不同于负载的信头与元数据,称为开销数据,仅用于辅助数据传输。在计算机病毒或电脑蠕虫领域中,负载指的是进行有害操作的部分,例如:数据销毁、发送垃圾邮件等。
技术实现要素:
鉴于现有技术的不足,本发明提供的一种icmp隐蔽隧道检测方法及装置由icmp流量采集器、icmp数据分组器、icmp数据负载长度判断器、icmp特征码提取器、隧道概率判断器和请求包与应答包对比器组成;
由icmp流量采集器从路由设备采集原始的网络流量,并将原始的网络流量中的icmp流量记录到icmp流量表,icmp流量表每60秒更新一次;icmp流量采集器将icmp流量表发送给icmp数据分组器;icmp流量表记录每条icmp数据记录的信息包括:源ip、目的ip、请求类型和负载;
icmp数据分组器将icmp流量表中源ip和目的ip相同的icmp数据分到同一个icmp数据组;由icmp数据分组器统计icmp数据组中icmp数据的总数,当icmp数据组中icmp数据的总数大于100时,icmp数据分组器将icmp数据组发送给icmp数据负载长度判断器;
由icmp数据负载长度判断器统计icmp数据组中icmp数据的长度,并将icmp数据组中负载长度不是32字节和56字节的icmp数据组合生成疑似通道数据组,icmp数据负载长度判断器将疑似通道数据组发送给icmp特征码提取器;
由icmp特征码提取器提取疑似通道数据组中的每条icmp数据的负载内容符合特征码的个数,特征码有两个分别是字符串abcdefghijklmnopqrstuvwabcdefghi和字符串$!"#$%&'()* ,-./01234567;icmp特征码提取器计算疑似通道数据组中的每条icmp数据的负载内容的长度,长度单位为字节;icmp特征码提取器将疑似通道数据组中的每条icmp数据的负载内容的长度和疑似通道数据组中的每条icmp数据的负载内容符合特征码的个数发送给隧道概率判断器;
由隧道概率判断器计算疑似通道数据组中的每条icmp数据作为icmp隧道数据的概率,icmp隧道数据的概率=(icmp数据的负载内容符合特征码的个数乘以4)除以icmp数据的负载内容的长度,隧道概率判断器将icmp隧道数据的概率大于0.9的icmp数据发送给请求包与应答包对比器;
由请求包与应答包对比器对icmp数据的请求包和应答包进行比对,当icmp数据的请求包和应答包不同时,请求包与应答包对比器输出请求包和应答包不同的icmp数据为icmp隧道数据组。
有益效果
本发明采用基于统计综合分析的方法对icmp隧道进行检测,对机器性能要求不高,能极大降低icmp隧道误判比率。
附图说明
图1是本发明的系统结构图。
具体实施方式
参看图1实现本发明提供的一种icmp隐蔽隧道检测方法及装置由icmp流量采集器1、icmp数据分组器2、icmp数据负载长度判断器3、icmp特征码提取器4、隧道概率判断器5和请求包与应答包对比器6组成;
由icmp流量采集器1从路由设备a采集原始的网络流量,并将原始的网络流量中的icmp流量记录到icmp流量表,icmp流量表每60秒更新一次;icmp流量采集器1将icmp流量表发送给icmp数据分组器2;icmp流量表记录每条icmp数据记录的信息包括:源ip、目的ip、请求类型和负载;
icmp数据分组器2将icmp流量表中源ip和目的ip相同的icmp数据分到同一个icmp数据组;正常icmp数据每秒发送的数据包个数不会超过两个数据包,而icmp隧道每秒发送的数据包个数很多,在短时间会发送成百上千个icmp数据;由icmp数据分组器2统计icmp数据组中icmp数据的总数,当icmp数据组中icmp数据的总数大于100时,icmp数据分组器2将icmp数据组发送给icmp数据负载长度判断器3;
由于操作系统默认icmp数据大小为32字节和56字节两种长度,而icmp隧道的数据包中负载的长度可以是任意大小的原理;由icmp数据负载长度判断器3统计icmp数据组中icmp数据的长度,并将icmp数据组中负载长度不是32字节和56字节的icmp数据组合生成疑似通道数据组,icmp数据负载长度判断器3将疑似通道数据组发送给icmp特征码提取器4;
由于操作系统默认icmp数据的负载为固定内容,windows操作系统下icmp数据的负载内容为abcdefghijklmnopqrstuvwabcdefghi,linux操作系统下icmp数据的负载内容为$!"#$%&'()* ,-./01234567,当指定icmp发送的数据长度时,icmp数据的负载呈现为不断重复的固定字符串;由icmp特征码提取器4提取疑似通道数据组中的每条icmp数据的负载内容符合特征码的个数,特征码有两个分别是字符串abcdefghijklmnopqrstuvwabcdefghi和字符串$!"#$%&'()* ,-./01234567;icmp特征码提取器4计算疑似通道数据组中的每条icmp数据的负载内容的长度,长度单位为字节;icmp特征码提取器4将疑似通道数据组中的每条icmp数据的负载内容的长度和疑似通道数据组中的每条icmp数据的负载内容符合特征码的个数发送给隧道概率判断器5;
由隧道概率判断器5计算疑似通道数据组中的每条icmp数据作为icmp隧道数据的概率,icmp隧道数据的概率=(icmp数据的负载内容符合特征码的个数乘以4)除以icmp数据的负载内容的长度,隧道概率判断器5将icmp隧道数据的概率大于0.9的icmp数据发送给请求包与应答包对比器6;
正常的情况下icmp数据请求包与应答包中的数据包是一致的,而icmp隧道的请求数据包与应答可以相同,也可以不相同;由请求包与应答包对比器6对icmp数据的请求包和应答包进行比对,当icmp数据的请求包和应答包不同时,请求包与应答包对比器6输出请求包和应答包不同的icmp数据为icmp隧道数据组60。
1.一种icmp隐蔽隧道检测装置,其特征在于由icmp流量采集器、icmp数据分组器、icmp数据负载长度判断器、icmp特征码提取器、隧道概率判断器和请求包与应答包对比器组成;
由icmp流量采集器从路由设备采集原始的网络流量,并将原始的网络流量中的icmp流量记录到icmp流量表,icmp流量表每60秒更新一次;icmp流量采集器将icmp流量表发送给icmp数据分组器;icmp流量表记录每条icmp数据记录的信息包括:源ip、目的ip、请求类型和负载;
icmp数据分组器将icmp流量表中源ip和目的ip相同的icmp数据分到同一个icmp数据组;由icmp数据分组器统计icmp数据组中icmp数据的总数,当icmp数据组中icmp数据的总数大于100时,icmp数据分组器将icmp数据组发送给icmp数据负载长度判断器;
由icmp数据负载长度判断器统计icmp数据组中icmp数据的长度,并将icmp数据组中负载长度不是32字节和56字节的icmp数据组合生成疑似通道数据组,icmp数据负载长度判断器将疑似通道数据组发送给icmp特征码提取器;
由icmp特征码提取器提取疑似通道数据组中的每条icmp数据的负载内容符合特征码的个数,特征码有两个分别是字符串abcdefghijklmnopqrstuvwabcdefghi和字符串$!"#$%&'()* ,-./01234567;icmp特征码提取器计算疑似通道数据组中的每条icmp数据的负载内容的长度,长度单位为字节;icmp特征码提取器将疑似通道数据组中的每条icmp数据的负载内容的长度和疑似通道数据组中的每条icmp数据的负载内容符合特征码的个数发送给隧道概率判断器;
由隧道概率判断器计算疑似通道数据组中的每条icmp数据作为icmp隧道数据的概率,icmp隧道数据的概率=(icmp数据的负载内容符合特征码的个数乘以4)除以icmp数据的负载内容的长度,隧道概率判断器将icmp隧道数据的概率大于0.9的icmp数据发送给请求包与应答包对比器;
由请求包与应答包对比器对icmp数据的请求包和应答包进行比对,当icmp数据的请求包和应答包不同时,请求包与应答包对比器输出请求包和应答包不同的icmp数据为icmp隧道数据组。
技术总结