摘 要: 从研究隐蔽通信的角度出发,介绍了一种基于Sniffer原理的隐蔽通信技术,提出了检测与防范这种隐蔽通信的方法,并对隐蔽通信的发现方法进行了讨论。
关键词: Sniffer 隐蔽通信 隐蔽信道 检测 防范
隐蔽技术是黑客技术的重要组成部分,其具体内容包括入侵行为的隐蔽技术、非法进程的隐蔽技术和隐蔽通信技术等。隐蔽通信技术指黑客和其在受害主机上安装的恶意代理(木马或者后门等)之间或者各个恶意代理之间进行隐蔽通信的技术。黑客的入侵活动密切依赖于隐蔽技术。与黑客相关的隐蔽行为一旦被安全人员发现就意味着入侵活动的失败。因此隐蔽与反隐蔽技术的对抗是网络安全研究中永恒的主题。由于网络入侵行为的实施必然需要通信,因此隐蔽通信是双方关注的焦点。
早期的黑客隐蔽通信技术很低级,如著名的Back Orifice木马、冰河木马等采用的通信技术都是简单的TCP连接方式。因而用户很容易就可以发现非法的连接,从而发现恶意代理的存在。后来,黑客的隐蔽通信技术不断发展,如端口反弹技术、ICMP型木马技术等隐蔽通信技术纷纷出现。但是随着防火墙与入侵检测等安全技术的发展,目前对这些隐蔽通信方式都有了应对办法。本文介绍的基于Sniffer原理的隐蔽通信技术就是一种目前尚未引起足够重视但是危害极大的隐蔽通信技术。本文将首先分析该技术的原理与实施方法,然后针对其特点分析检测与防范这种隐蔽通信的方法。
1 基于Sniffer技术的隐蔽通信原理
1.1 Sniffer技术介绍
Sniffer即为嗅探器。Sniffer技术是指在网络上监听数据报文的方法。一般来说,Sniffer技术的应用环境为共享式以太网(Hub-based Ethernet)。交换式网络(Switch-based Network)上的Sniffer技术实施较为复杂,不适于隐蔽通信。
共享式以太网中Sniffer的原理是基于以太网中所有的通信都是广播的这一事实。在同一网段的所有网络接口(网卡)都可以访问在物理媒体上传输的所有数据。一般情况下,网卡只接收报文中MAC地址与自己MAC地址相同的报文。但是,如果把网卡的接收模式设为混杂模式(Promiscuous Mode),则可以接收网络上的所有数据报文。这样就实现了对网络数据的监听,即Packet Sniffing。
1.2 隐蔽通信与隐蔽信道
本文中的隐蔽通信是指黑客与恶意代理间或者恶意代理相互之间的隐蔽通信。其中隐蔽是指通信双方的通信活动对监视者(安全管理人员、防火墙和入侵检测系统等)是透明的。
隐蔽通信中信息的流动途径称为隐蔽信道。一种隐蔽通信方式对应一种隐蔽信道。
1.3 基于Sniffer技术的隐蔽通信
基于Sniffer技术的隐蔽通信即利用Sniffer技术构造隐蔽信道,并利用它进行隐蔽通信。其通信模型如图1所示。
图中,局域网为共享式以太网。Host k是一台已经被黑客安装恶意代理的计算机。隐蔽通信的双方是黑客与Host k。可能的监视者有Host k的管理员、个人防火墙、网络入侵检测系统(NIDS)和局域网防火墙。
通信原理:黑客事先知道Host k所在网段的IP地址范围,因此黑客构造IP报文,其目的地址为局域网内某台主机的地址(可以随便设定),源地址也可以随意设定,然后向局域网内发送报文。Host k中的恶意代理使用Sniffer技术监听网络数据报文,并且依据黑客事先设定的通信协议来辨别和提取黑客的数据报文。这样就构造了一条隐蔽信道,实现了隐蔽通信。
其隐蔽性表现在三方面:
(1)源地址的隐蔽:源地址可以伪造。
(2)目的地址的隐蔽:目的地址可以伪造。
(3)通信信道的隐蔽:防火墙与入侵检测系统不能发现和阻止恶意代理获取信息。
2 基于Sniffer技术隐蔽通信的实例
为了研究方便,设计并实现了一个基于Sniffer技术的隐蔽通信的实例,程序开发环境为VC++6.0。通信程序包括二部分:采用Sniffer技术的恶意代理程序和可以发送伪造IP报文的控制端程序。实现中的技术要点如下。
2.1 Sniffer技术的实现
Sniffer实现时利用了WinSock 2的特性,可以不使用驱动程序,因此程序代码很少。程序核心部分代码如下。
(1)打开一个Socket,参数必须是 AF_INET、SOCK_RAW和IPPROTO_IP,否则不能设置SIO_RCVALL属性。
m_s=Socket(AF_INET,SOCK_RAW,IPPROTO_IP);
(2)设置该Socket的超时参数等选项。
int rcvtimeo=4000;
setsockopt(m_s,SOL_SOCKET,SO_RCVTIMEO,(const
char*)&rcvtimeo,sizeof(rcvtimeo));
将该Socket与本机的某个网络接口绑定(代码省略)。
(3)设置SIO_RCVALL属性。
WSAIoctl(m_s,SIO_RCVALL,&dwBufferInLen,sizeof(dwBufferInLen),&dwBufferLen,
sizeof(dwBufferLen),&dwBytesReturned,NULL,NULL));
……
此后就可以利用这个Socket来读取网络上的数据包了。
2.2 通信协议设定
隐蔽通信的通信协议设计可以有很多方法,在编制通信协议时也可以对数据报文加密。这里不做详细讨论,只给出一个简单但是能反映其原理的协议。该协议构造于IP协议的基础之上。隐蔽通信报文结构(宽度为32位)如图2所示。
图中,控制口令用来区分黑客发送的报文与网络中的正常报文。恶意代理一旦检测到含有控制口令的报文,就可以确定其为黑客发送的报文。IP报文头部的设置与普通报文一样,这样可以避开入侵检测系统和防火墙系统。
实验方法:通过在局域网外的控制端向局域网内的主机A(未安装恶意代理)发送结构如图2所示的报文。观察局域网内的主机k(已安装恶意代理程序)能否接收并处理该报文。同时观察安装在主机k上的个人防火墙能否发现并阻止该隐蔽通信。
实验表明,这种通信方法不能被个人防火墙(用天网防火墙和诺顿防火墙最新版实验)发现和阻止,即使采用监视IP报文的规则检测也不能发现通信的进行。
3 针对这类隐蔽通信的检测与防范技术
3.1 目前的检测和防范技术
通过对图1中隐蔽通信模型的观察和对通信原理的分析可以发现,在主机上检测这种隐蔽通信是无效的,因此必须采用基于网络的入侵检测系统(NIDS)。网络入侵检测系统有2种:基于规则的和基于异常行为的。下面分别讨论这2种系统的有效性。
对于基于规则的系统来说,需要借助入侵检测规则才能发现入侵行为。观察图2所示的通信协议,其中只有控制口令可以作为检测规则,因为其他报文一般是经过加密的,没有规律可循。但是控制口令可按黑客的意愿随意指定,因此检测规则的设定就失去了意义。此外,前面提到过,通信协议有多种实现方法,基于规则的入侵检测系统无法应付这么多的可能性。因此,基于规则的入侵检测系统只能检测某一具体的隐蔽信道,而无法检测这一类隐蔽信道。
对于基于异常行为的入侵检测系统来说,其核心思想是通过异常的通信状况来检测入侵活动。而本文所述的隐蔽通信由于采用的是基于IP报文的报文构造,其IP报头内容和报文长度都可以随机伪造成正常网络报文,因此几乎不会表现出异常。所以,基于异常的入侵检测系统对检测这种隐蔽通信无效。
可以考虑通过给局域网防火墙加上新规则来阻断隐蔽通信的进行。这种隐蔽通信是基于IP报文构造的数据报文,因此它可以伪装成局域网内的正常用户的任意通信形式(TCP、UDP、HTTP和FTP等)。所以,在局域网防火墙上设定规则的办法也很难奏效。
总之,目前的检测和防范技术都不是很有效,因此需要采用其他的技术。
3.2 对 策
本文介绍的隐蔽通信方式的特点就是利用基于共享式网络的Sniffer技术进行通信。因此,如果采用交换式的网络,可以不必考虑如何检测和防范这种隐蔽通信方式。目前很多局域网都是采用共享式以太网,所以对共享式网络上这种隐蔽通信的检测与防范技术进行研究是很有意义的。
本文提出一种针对共享式以太网中这类隐蔽通信的防范技术。该技术通过扩展局域网防火墙系统的结构和功能,采用了“严进宽出”的安全原则和信道分流加密方法对流入局域网的数据进行控制。理论分析表明,采用这种技术可以完全阻止基于Sniffer技术的隐蔽通信的实施。技术原理如下。
(1)在局域网防火墙中增加一个单机服务管理模块,用来记录局域网内各个主机开放的服务端口。当局域网内的某主机开放某个服务端口时,则单机服务管理模块自动增加一条规则。记录格式为:“主机IP地址:开放端口号”。当主机关闭该服务端口时则单机服务管理模块删除相应规则。
(2)在局域网防火墙与各主机服务间的通信中采用加密传输。即局域网外的数据报文经过防火墙过滤后向主机传输以及主机向网外发送数据包时均需要加密。加密采用对称加密算法,防火墙和每台主机之间分别保存一个相同的加密密钥。
(3)当局域网外有数据包向局域网内发送时,防火墙中的包检测模块检测该包是否满足单机服务管理模块中的规则。如果不满足就直接丢弃,不允许该包进入局域网;否则,对该包加密后发向对应的主机。这样任何一台主机即使能监听到发往其他主机的报文也无法识别报文内容,也就相当于把局域网上的各主机与外界的通信信道隔离开来。这便使得Sniffer技术失去了作用,从而破坏了基于Sniffer技术的隐蔽通信。
4 结 论
本文讨论了基于Sniffer技术隐蔽通信的原理及其检测防范技术,并提出了一种有效的防范技术。但是本文讨论隐蔽通信的信道是单向信道,即信息流向只是从局域网外流向局域网内。实际上,黑客们在入侵活动中会采用多种类型的信道。而且随着技术的发展,新的隐蔽通信方式也会不断出现。如何对付这些隐蔽通信方式需要分析其具体的通信原理才能找到对策。
参考文献
1 Ansari S,Rajeev S G,Chandrashekar H S.Packet Sniffing:a Brief Introduction.Potentials,IEEE,2003;21(5)
2 Refdom.基于嗅探原理的原始套接字木马.http://www.xfocus.net/articles/200210/455.html,2002
3 Shotgun.揭开木马的神秘面纱.http://www.yesky.com/20010525/181459.shtml,2001-05-25
4 Juslin J,Virtanen T.Automatic Backdoor Analysis with a Network Intrusion Detection System and an Integrated Service Checker,Information Assurance Workshop 2003. IEEE Systems,Man and Cybernetics Society,2003;(1)