大家好,又见面了,我是全栈君。
年10
月18
日,芬兰的Stonesoft
公司宣布发现了一种新型的高级逃逸技术(AET
:Advanced Evasion Technique
),可以轻松躲避目前的IPS/IDS
检测,成功入侵目标服务器,震惊了信息安全界。作为这个技术的佐证之一,就是近年来令大家迷惑的未知攻击越来越多,未知攻击就是只知道被攻击了的事实,却不知道黑客采用了什么手段,何时进行的入侵,遗憾的是目前的安全措施都没有发现其踪迹。
公开了其中的部分技术细节,大概40
多种组合躲避技术,并发布一个针对漏洞(CVE-2008-4250/
CVE-2004-1315)
的躲避技术演示工具软件。演示结果简单明了:入侵者对没有打补丁的目标服务器直接入侵,成功建立远程SHELL
;中间部署IPS
设备后,开启安全防护策略,直接入侵则不再成功;通过调整软件上的组合参数,如IP
参数、TCP
参数等,很快入侵成功的SHELL
窗口再次打开。
年Newsham
和Ptacek
就发表论文,讨论利用IP
碎片技术躲避网络入侵检测设备了,只是当时没有引起安全界的重视,而他们的研究对黑客来说,可谓是思路广开,随后的几年,这种技术被广泛使用于实际的入侵攻击中,尤其是APT
攻击,针对性很强,效果非常好。
是黑客利用协议组合的技巧,躲过网络上安全措施的检查,成功抵达目标,实施入侵攻击。我更喜欢翻译成为高级躲避技术,或者是入侵躲避技术;躲避是指还处在你监视环境下继续生存,但我成功地“隐身”了自己,逃逸则是我设法逃出你的监视范围。入侵躲避技术的目的还是要入侵,而不是逃走了事。下图是入侵躲避技术的原理:
网络入侵躲避技术:躲避网络上的安全检查,如FW\IDS\IPS\WAF\UTM
等,其中主要部分是IPS
。需要躲避的是入侵时的攻击行为,如漏洞探测,上传的恶意代码,如ShellCode
,下传敏感信息,如口令文件;
主机入侵躲避技术:躲避主机(
目标服务器)
上的安全检查,如主机防入侵防御软件\
主机防病毒软件等。典型的技术是进程注入、rootkit
等。
单向躲避:目标点没有接应的,躲避了安全检查的攻击流应该能被目标主机正常“理解”,完成入侵行为,否则即使躲避了中间的安全检查,也达不到入侵的目的。单向躲避一般应用在入侵过程中;
双向躲避:目标点有接应者,只要躲避了中间的安全检查,到达目标后,接应者负责信息的还原。双向躲避一般应用在攻击成功后的恶意代码传递与远程控制联络。
字符变换:IPS
一般基于特征比对与行为模式识别,若把传输的内容变成检查者不认识的“外文”,就容易蒙混过关。这个方法常被用在注入攻击中的不同字符集之间的转换。寻找到IPS
与目标主机对某字符集解释的差异,就可以实施躲避攻击;典型的方式是SQL
注入;
协议组合:每个业务链接会使用多个协议,利用网络各种协议的参数组合,如包大小、碎片处理、重叠处理、多线程传送等,由于IPS
与目标主机解析协议的处理方式不同,就可以躲避IPS
的特征检查,同时又可以达到攻击的目的;
传输加密:加密本是直接躲避技术的首选,但加密需要到达目标解密后才能使用,而在攻击过程中,目标的解析者是标准的应用服务,加密就不能达到入侵效果。同时,越来越的网络环境中限制加密的连接,因为管理者不能监控你的通讯内容;因此,加密方法一般使用在双向躲避的部分环境中。
涉及主机躲避技术,本人在《服务器入侵加固的几种方式》中有所介绍,本文主要讨论网络躲避技术,就重叠分片躲避与多线程躲避为例,分析一下网络躲避技术的原理。
包)
传输,是TCP
协议的功能之一。正常的情况下接收端按照切片的编号、偏移量,再重新组装成完整的数据包。
,分片时偏移量写错了,造成分片之间有重叠…
通过缓存各个分片的负载,就可以还原数据包,自然就可以发现这个特征。
的检测,我们故意把第一分片的后面增加了一段随机数据(
其大小甚至可以覆盖分片2
,或更长)
,同时增加分片1
的长度,分片2
与分片3
都不做改动。
与分片2
的内容就有重合了,目标服务器接收时,对于重合的部分是选分片1
的,还是选分片2
的呢?我们知道,这个最终结果要根据目标服务器的操作系统而定,不同操作系统,或者有些版本之间的处理方式是不同,归结为TCP/IP
协议栈的代码编写。有选分片1
的,也有选分片2
的,但告知发送方分片有错误,要求重传的不多。
采用的方式是前向的,还是后向的呢?目前大部分IPS
厂商还不能确定其后边的服务器采用什么样的操作系统,无法自动匹配具体的应用环境,要两种方式都检查的话,需要设立双倍的缓冲区内存,显然是不划算的。因此,大部分厂家都只选择一种,比如是前向的,即分片重叠时,数据选择前一个编号的数据为准。
后面加了随机数据,覆盖了分片2
的恶意代码部分,IPS
的协议栈中重组的数据包就是良性的数据包,成功地躲避了IPS
的安全检查。
的数据,重组的数据包正是原来的入侵数据包,目标服务器被实施攻击。
是前向的还是后向的,是比较容易的,正常访问中带些恶意代码,测试一次就知道了。此后,就可以放心大胆地对IPS
后面采用不同协议栈的应用放手攻击了。
厂商是针对连接建立应用缓冲区的,三个线程的数据分布在三个缓冲区中,并且每个分片的编号与位置信息,是收发双方的主控进程管理的,并非通用协议可知信息,因此,IPS
即使知道入侵者采用多线程在传送,也无法还原原始的数据包。并且,由于IPS
无法知道主控进程管理着哪些子线程,所以也无法判断哪些连接属于同一个多线程组合。
,限制使用多线程技术。
允许的协议都可以,如线程1
采用http
,线程2
采用FTP
,线程3
采用SNMP
。在IPS
看来,这完全就是同源同目的地址之间的三个业务连接,这这种业务模式是常见的,如员工连接到公司,发邮件,访问网站等。
这里只是对入侵躲避技术的一个初步认识,在今后的讨论中我们再将进一步分析各种躲避技术的原理与方法。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107966.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...