一种新型“三无”隐形后门的构建的方式研究
木马后门通常都必需以实体形式存在:或者植入独立的程序,或者感染既有的本地文件,或者以脚本代码等形式存在。如果说,有一种后门存在以下“三无”特性:无文件(包括独立的后门文件或被感染的本地文件)、无进程(系统运行时不以进程形式存在,且不必采取隐藏进程等对抗技术)、无线程(不创建线程、不向任何进程嵌入模块),则这种后门对于传统的安全概念而言,似乎是不可能存在的,通常没有人能够接受不以二进制代码而存在的这种隐形后门。但随着对一些安全软件的行为跟踪和对操作系统运行机制的深入分析,该文已经证实可以构建一种存在上述“三无”特性的隐形后门。
既然能够构建存在上述特性的隐形后门,则由于没有具体的文件目标、无法提取后门的特征代码、无法监控到后门的运行进程和线程,对于当前的流行安全检测技术与安全工具而言,这种后门被检测到的可能性几乎为零。
由于这种隐形后门确实存在,而流行的安全检测技术无法检测出来,则这种后门的安全威胁将极其严重,不但对个体的计算机用户带来严重的安全威胁,甚至可危及整个计算机社会的安全。
1 “三无”隐形后门的构建原理
1.1 隐形后门的宿主选择
既然这种后门以无文件、无进程、无线程为特征,那么它必然应当有一个宿主用于寄生。这个宿主不应当是任何第三方的某个文件,而只能是操作系统本身。
典型的Windows桌面操作系统其构成并非只有通常意义上的各种“文件”,而是还有系统的中央数据库即“注册表”,而注册表恰恰可作为隐形后门的理想宿主。
介绍至此,请一定不要以为隐形后门将采取类似MBR病毒那样,将后门的二进制代码嵌入到注册表中,如果是这种隐形方式,则本质上仍然是“感染”,只不过感染的不是一般的文件,而是系统数据库(即注册表)文件而已。这里提及的“三无”隐形后门虽然可寄生于注册表,但却是不会向注册表数据库中直接植入木马后门的执行代码。
1.2 隐形后门的产生根源:Windows Update
众所周知,Windows Update(即Windows自动更新功能)是Windows操作系统的一种极其重要的安全特性,通过Windows Update,系统能够第一时间将存在安全漏洞的系统文件升级为最新的消除了已知安全漏洞的文件版本。理论上,对操作系统进行安全升级能够有效修复已知的安全缺陷,但通过对Windows Update机制的恶意利用,可以通过人为干预自动升级的校验机制,让操作系统“误认为”某个安全补丁已经更新过(事实上并没有更新对应的系统文件),则这种自动更新机制即可转变成危险的隐形后门。
以典型的Windows 7操作系统为例,Windows自动更新会在注册表的以下键项中记录各种补丁的升级信息[1]:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing
不同版本的操作系统及不同第三方工具的记录方式可以存在不同。
1.3 Windows Update原理及其漏洞分析
Windows安全更新通常有三种方式:
1)通过操作系统自带的Update功能进行自动更新。
2)使用第三方工具(如多种所谓的安全工具附带的系统打补丁功能)进行更新。
3)使用集成的补丁升级包进行更新。
无论何种方式,虽然在算法和具体实现方法上有所不同,但基本思路是一致的:
检测官方或第三方补丁提供者网站的最新补丁、读取当前操作系统的升级记录、比对最新补丁与升级记录,从而得出需要升级的补丁列表;按升级列表对存在漏洞的系统文件用最新版本进行替换后,改写升级记录以反映最后一次的补丁更新信息,然后等待下一轮更新时再重复循环上述操作。其原理流程示意图如下(图1):
现在,假如省略(或部分省略)上述加粗边框的流程节点,即打补丁过程中,并不真的将存在漏洞的旧版本文件替换成已经修复漏洞的新版本,但却在升级记录信息中照样记录为该补丁已经升级,其结果如何?
此时情况已经非常明显,系统的“三无”隐形后门已经顺利构建成功:
1)存在漏洞的系统文件在打补丁后仍然存在,与漏洞对应的攻击对该系统仍然有效;
2)即使采取其他方法重新打补丁,此时由于打补丁过程中为避免重复打补丁的记录查询机制,导致打补丁的操作流程中认为这些有意遗留的漏洞对应的补丁已经被修复,此时升级程序将不会再重新修复这些被记录为已经升级的文件。于是存在漏洞的文件得以长期保存,对应的后门漏洞将长期开放。
3)只需通过在注册表中写入某某补丁已经升级的记录信息,即可构建一个与之对应的漏洞的隐形后门;当然,也可清除某些补丁已经升级的信息,从而让后续的补丁操作可以继续完成对此漏洞的更新。也即:升级过程中可以人为地对需要开放(严格地说是“故意保留”)的漏洞进行随心所欲的控制。
4)按照上述原理推而广之,各种第三方补丁升级程序还可以故意人为给系统文件“降级”,得到的攻击效果是相似的。
2 “三无”隐形后门的技术验证
为了确定操作系统保存已经升级的安全补丁的记录位置,首先使用注册表监视工具,监视到升级过程中频繁访问的注册表路径[2],其中访问频度高的路径为:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing
将上述路径的注册表内容导出进行备份。下面开始验证:
首先,使用Windows Update在线自动更新功能,对一台安装有Windows 7的系统完成自动更新。此时打开操作系统的自动更新对话框,会显示当前系统无可用更新。关闭对话框。
接着,使用第三方Rootkit检测工具,如Powertool、PcHunter等,强行将上述注册表路径对应的键项改名或删除(普通的注册表编辑器是无法直接完成改名或删除操作的)。
现在再次打开自动更新对话框,效果立即显示出来了,系统会显示:“此计算机上未安装任何更新”。
此时,尽管系统报告没有安装任何更新,但事实上,上一步已经进行全面的补丁更新,所有可能存在已知漏洞的系统文件都已经被升级为最新版本。上述操作已经轻易地欺骗了补丁更新机制,
因此注册表中的补丁更新记录是容易受到攻击的最薄弱环节。
3 “三无”隐形后门的特殊威胁能力
如前所述,由于“三无”隐形后门采取的是以欺骗安全更新机制而“预留”现有漏洞的方式而存在,因此没有任何一种反病毒、反木马的安全软件可检测到它的存在[3];系统补丁更新的操作也无法修复。
隐形后门的最大威胁特征在于其不容易引起用户及专业安全公司的注意。如果恶意利用,则这种欺骗预留形式构建的隐形后门是可以由恶意者通过软件升级(包括代为对操作系统打安全补丁等行为)而随意控制[4]。
从法律层面而言,这种隐形后门由于不存在恶意代码、不存在具体的木马文件,它本身只是个极其特殊的后门而已,因此它既不属于病毒性质,也不属于木马性质,现行法律对它是没有任何办法的。但由于它的存在,系统却是实实在在地可以受到预留漏洞相对应的恶意代码的攻击。
4 “三无“隐形后门的安全警示
经作者的深入分析跟踪,有迹象表明,个别专业安全产品的某些版本在给用户打操作系统安全补丁时,存在预留这种隐形后门的现象。不管是有意还是无意,这种预留隐形后门的行为本身是一种非常危险的做法。
现在几乎各种安全软件产品都具备通过互联网自动更新的功能。由于法律和社会道德的制约,一些别有用心的安全产品在希望控制整个互联网的计算机时,往往不敢明目张胆地给用户植入木马等恶意代码或文件,此时采取本文所述的隐形后门手段,通过其在线更新功能,就可实现在提供安全服务的招牌下,对用户预留后门的可控;此后,恶意者可通过其他途径公开散布针对性的恶意攻击程序,也可在特定需要时在线立即调整隐形后门的开放策略,从而实现对整个网络社会或特定范围的用户群体的安全攻击。
当前,“棱镜门”事件已经给用户的隐私安全敲响了警钟。“三无”后门对用户的警示:除了要小心各种直接的隐私监控与收集,还要特别小心这种隐形后门与其他第三方攻击手段进行联合的方式威胁用户隐私安全;对于各种提供系统补丁升级服务的安全软件,用户尤其要保持警惕,对于安全外衣下可能隐藏的罪恶目的不能不防。
参考文献:
.辽宁师专学报,2010,12( 4).
.电脑知识与技术,2005:56-57.
[3] 吴小博.木马的实现原理、分类和实例分析[J].网络安全技术与应用,2007:56-57.
[4] 李俊,李佟鸿.功能型计算机病毒运行技术分析与研究[J]. 网络安全技术与应用,2012,12:18-20.