日期:2023-01-24 阅读量:0次 所属栏目:信息安全
摘 要:从信息隐藏技术理论提出后,相关技术得到了很快的发展。ICMP隧道、HTTP隧道、TCP/IP头部携带数据等技术,是黑客常用的入侵手段,而位图填充等技术则广泛应用于数据保密领域。信息隐藏技术发展较晚,技术较复杂,随着应用的深入,必将得到长足发展。
关键词:隧道;rootkit;填充
当前,随着入侵技术、后门技术等的发展,信息隐藏技术日趋成熟,如何及时、准确的检测出服务器是否正在或已经遭到入侵,通过简单地查看开放端口、运行进程、异常流量等方法,已经远远无法达到检测目的了。
关于信息隐藏技术的理论基础,即Transmitted via Carrier Pigeon。在 RFC 1149、2549中有如下描述:对基于TCP的高层协议(如http、ftp、telnet等)将数据传给协议栈后, TCP协议完成初始化后,可不直接送往IP层,而是直接将其送往目的地。目的端收到信息后,经过TCP层直接递交到等待接收的进程。这就是交互原理。其实,与之类似应用技术已很成熟,如SSH技术。目前,几种常见的比较成熟的信息隐藏技术有:
一、ICMP实现秘密隧道
由于ICMP协议附在IP包头后,与端口无关,所以在没有阻塞ICMP数据包的网络中,可以使用ICMP来携带附加数据进行通信。这种情况下,使用nestat或其它进程—端口查看工具是不会发现异常的,所以,利用这种方法可以穿透简单的防火墙。能实现这种功能的工具很多,以loki为例,客户端将需隐藏的数据或命令封装到ICMP包中后发送到服务端的lokid,lokid再将其拆开后得到数据或执行命令,将结果以同样方式通过ICMP返回给客户端。如果此时查看网络通信情况及流量的话,只会发现类似于ping之类的普通命令。除非对这些数据包进行分析,否则很难发现其异常。而为了防止数据泄露,攻击者还可以使用如Blowfish等算法对ICMP携带的数据加密,当然,如果配合rootkit来实现上述通信过程的话,则更加隐蔽。
当然,很多服务器或防火墙都对ICMP协议做了屏蔽,因此,这种方式的通用性并不强。虽然loki也可以利用53端口,伪装成DNS查询响应信息通信,但因其要开放端口,隐蔽性大大降低,所以一般不会为攻击者采用。
二、HTTP实现秘密隧道
为了增强WEB服务器的安全性,管理员一般会关闭WWW以外的所有端口,却不可能关闭WWW端口,所以利用HTTP来实现秘密隧道,较上述的利用ICMP来说,其通用性则要更强。目前,相关的技术及工具也比较成熟,如Reverse WWW Shell等。和lokid类似,Reverse WWW Shell也由服务端和客户端两部分组成。攻击者使用服务端,在本地开放80端口,用于模拟HTTP服务;在目标主机上运行客户端Shell。客户端Shell每隔一段时间(缺省60秒)即与攻击者的80端口连接一次,并可以携带附加数据。如果此时检查网络通信情况,一般管理员会认为该主机正在访问远端的WWW主机,所以具有较强的隐蔽性。
三、其它协议实现秘密隧道
虽然自用HTTP协议实现信息的隐藏技术适用应较强,且具有相当程序的隐蔽性,但如果企业或组织对WEB访问增加了认证或限制了信任站点时,利用这种技术就相当困难了。实际上,基于TCP/IP协议的高层协议都满足构造秘密隧道的条件,对于上述情况,也完全可以利用SMTP、TELNET等。目前,相关技术已相当成熟,如反向TELNET、SMTP的存储转发利用、利用SSH或HTTPS等等,其基本原理均与HTTP秘密隧道相近,只是应用范围和一些技术细节不同而已。
四、用TCP/IP包头部传输数据
Craig d曾发表过一篇论文“Covert Channels in the TCP/IP Protocol Suite”,它提出了一种利用TCP/IP协议包中的空闲位填充数据的思路,并写了一个工具Covert_TCP。目前,该工具只支持在IP identification、TCP sequence number、TCP acknowledgment number三个段中填充数据。之所以选择这三个段,主要是由于这三个段在传输中一般相对固定,所以稳定性较好。实际上,除了上述三个段以外,还可以利用其它一些其它的空闲位(如段偏移位等),虽然稳定性不好,但却可以突破目前绝大多数防火墙的限制。而上述三个段,由于其相对固定性,多数防火墙均可对其进行限制。
由于此种方法较典型,下面简单说明对上述三个段的利用原理:
* ipid:这个段利用原理最简单,客户端将数据转换为ASCII码后,直接放入IP identification段,每个IP包携带一个组,服务端取出即可。
* seq:客户端发起TCP连接请求,并用identification段携带每一个字符。由于identification段为非法数据,这将导致连接请求的三次握手失败,服务端返回RESET包。利用这个原理,攻击者只要反复发送非法SYN包,则可以实现信息隐蔽传输。
* ack:利用acknowledgment number实现信息隧道较复杂,需要在攻击者和目标主机间增加一个中间主机,Craig d称其为bounce。第一步,客户端首先构造一个特殊的SYN包发送到bounce主机,其源地址为目标服务器,目的地址是bounce,seq改为要携带的信息的ASCII码;第二步,bounce主机收到该包后,则检查其相应的端口开放情况,如果开放,则返回SYN/ACK包;若相应端口关闭,返回RESET。即,无论bounce主机的端口是否开放,bounce主机都将发送一个响应。而由于SYN包中的源地址是目的服务器的地址,所以bounce主机的响应包将发送给目的主机,这样就实现了隐蔽信息发送的目的了。
五、信息隐藏技术发展趋势
除上述几个主要的信息隐藏传输技术外,信息隐藏技术还涉及到很多领域。其中,有些技术还不太成熟或尚未公开,有些只停留在理论基础上。
1、位图填充技术
传输过程中的隐藏技术只是信息隐藏技术中的一部分,比如目前比较流行的将数据填充在BMP位图中或其它文件中,并配合一些加密技术,这是目前发展最成熟的信息隐藏技术之一。在未来发展中,图像隐藏技术还具有广阔的发展内涵和技术空间。
2、流文件填充技术
目前,利用音、视频流传输IP数据或语音数据,也是一种提高信道利用率和实现信息隐藏技术的研究方向,但目前的技术尚不成熟,应用领域有限。
3、操作系统和文件系统信息隐藏技术
其原理和实现也较简单,在主流的C2级操作系统中,低级别进程可能受限制不能访问高级别进程的数据,但却可以访问其文件名及大小等信息,所以,高级别进程可以通过文件名等信息与低级别进程通信。
在微软的系列操作系统中
,文件存储空间的分配是以簇为单位分配的,这就导致了大量的空闲空间的出现。利用这些空间即可以实现信息的隐藏。
以上只是粗略地对国内外的信息隐藏技术做了总结。其实,针对不同的信息隐藏技术,都有有效地检测手段,但其应用程度的情况,却和管理员对此方面的知识了解的程度紧密相关。针对信息隐藏技术,由于目前还缺乏全面、系统的检测工具,国外相当多的服务器都会安装几种检测文件完整性的工具,而国内的服务器在这方面的安全检测上基本上是空白。其实,这种安全现状也表现在其它很多领域。所以,网络安全是一个整体性的安全,必须对它有一个系统性、综合性的认识,才能保证相对的安全,任何一个细节,都是严重的安全隐患。
参考文献:
Bethrouz A. Forouzan, Sophia Chung Fegan, TCP/IP Protocol Suite, Second Edition, McGraw-Hill,2002 本文链接:http://www.qk112.com/lwfw/jsjlw/xinxianquan/225008.html