论文部分内容阅读
摘要: 着重阐述映象劫持技术的基本原理,并从病毒免疫等方面论述映象劫持的应用,同时,从限制用户的权限等方面介绍对恶意代码的映象劫持进行预防的方法。
关键词: 恶意代码;映象劫持
中图分类号:TP3文献标识码:A文章编号:1671-7597(2010)0610167-01
近年来,随着计算机安全技术的进步,病毒等恶意程序常用的自启动技术已被人们熟知,为躲避安全软件的查杀,病毒编制者找到了一种早已有之的系统调试功能,并应用到病毒技术上,致使许多安全软件不能够运行,处于瘫痪状态。致使许多用户的计算机处于不设防的状态。是什么技术会造成如此的危害呢?其实病毒只是利用了windows系统早已有的技术IFEO,实现了对安全软件的映像劫持。
1 映像劫持的定义
所谓的映像劫持(Image Hijack)即,恶意代码利用注册表项[HKEY_
LOCAL MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options]将某一应用程序重定向到恶意代码本身或或其他应用程序上,从而实现病毒体的自动加载或通过IFEO使安全软件或其他应用程序不能正常运行的技术。
2 映像劫持的基本原理
在WindowsNT架构里,IFEO是为了兼容windows早期版本下的可执行文件而设计的一个补救措施。一些在windows早期版本下的可执行文件,在新的环境中运行时,可能会引发错误,为此,微软公司提供了一种保全措施,为程序执行体提供一个特殊的环境设定,如今却被恶意代码的编制者用来加载恶意代码,实现恶意代码的自动加载。
IFEO的设计是为了兼顾因内存管理机制的变化,导致的应用程序运行故障,而设计的一种解决方案。在IFEO中设定了一些堆栈分配的参数,当被控制的程序在运行时,其内存由IFEO设定的参数进行分配。
在Windows NT架构中为用户预留了一个交互接口,即注册表项[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrent VersionImage File Execution Options],IFEO 对需要进行管理的可执行文件在其下建立一个与该文件同名的项目,并设定该文件的堆栈管理机制以及一些辅助的机制。
在IFEO中定义了许多参数。常见的有Debugger、PageHeapFlags、DisableHeapLookAside、DebugProcessHeapOnly和PageHeapSizeRangeStart
等。“映像劫持”就是通过IFEO项中的debugger参数实现的。参数Debugger是IFEO中被第一个被处理的参数,Debugger参数,直接翻译为“调试器”,如系统运行某可执行文件时,首先检查其是否在IFEO列表中,如发现其在IFEO列表中,就会读取其Debugger参数,如果该参数不为空,则把其Debugger参数里指定的程序文件名作为启动的程序执行,把用户欲启动的程序作为Debugger参数发送给Debugger参数里指定的程序文件名。Debugger参数的这种特殊功能,被称为“重定向”,而利用“重定向”技术进行的攻击,我们习惯上称为“映像劫持”(Image Hijack)。
“映像劫持”技术,经常被恶意代码用来阻止安全软件的正常运行,从而达到保护其本身不被查杀的目的。其表现多为,当运行杀毒软件、防火墙、安全检测工具等时,系统提示“找不到文件”或执行后没有反应。其原因就是,IFEO的Debugger参数中,可执行文件列表里设置了这些软件的主文件名,而且被Debugger的参数指向了不存在的文件或恶意代码本身。
3 映像劫持的应用
映像劫持技术,可以被恶意代码利用,同时,我们也可以利用该技术实现对病毒的免疫等功能。
3.1 利用映像劫持技术禁止某些程序运行
如在某台计算机上为了限制运行QQ软件,我们可以使用记事本,输入如下代码
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsqq.exe]
"Debugger"="aaa.exe"
另存为 qq.reg,并将其导入注册表,当我们在该机器上打开QQ时,系统将提示找不到该文件,原因就是QQ被重定向到了一个并不存在的文件上。
3.2 利用映像劫持技术实现病毒免疫
按着病毒劫持安全软件的原理,我们可以对把病毒程序进行重定向,使病毒程序不能运行。使用记事本,输入如下代码:
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options spoclsv.exe]
"Debugger"="abc.exe"
另存为 abc.reg,并将其导入注册表,这样这些病毒虽然在系统启动项里面,但是由于被我们进行了重定向,因此,在病毒文件被加载时,系统就会提示无法找到病毒文件(spoclsv.exe 为熊猫烧香病毒)。
4 映像劫持的预防
4.1 限制用户权限
通过限制用户对IFEO的写入权限,可预防映像劫持的发生,运行regedit,找到[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCur
rentVersionImage File Execution Options],选中该项,在编辑菜单中,选中权限,将administrator 和 system 两个用户写入权限取消。这样做后,恶意代码就无法对IFEO项进行修改,从而防止映象劫持。
4.2 删除IFEO项
在注册表编辑器中,把注册表项[HKEY_LOCAL_MACHINESOFTWAREMic
rosoftWindows NTCurrentVersion]下的,Image File Execution Options 项删掉。该方法虽然可以避免映像劫持,但是也同时取消了IFEO的功能,一般不推荐该方式。
5 总结
“映像劫持”技术,是恶意代码在windows可利用的自动加载方式都被用户熟知以后,新挖掘出来的一个恶意代码的自动加载途径。随着时间的推移,逐渐得到人们熟悉了解,越来越多的应用软件以及大多数的安全软件都已经设置了自身的抗劫持技术,其对系统的威胁将越来越小。
参考文献:
[1]颜廷法、曲广平、郭迎娣,映像劫持型病毒原理分析及应对方法[J].烟台职业学院学报,2008.1:76-78.
[2]李翠梅、张椿昱,试论计算机病毒的启动方式及其防治[J].内蒙古科技与经济,2009.10:113-114.
[3]陈金莲,揭密病毒的映像劫持技术[J].黄冈职业技术学院学报,2009.4:8-9.
关键词: 恶意代码;映象劫持
中图分类号:TP3文献标识码:A文章编号:1671-7597(2010)0610167-01
近年来,随着计算机安全技术的进步,病毒等恶意程序常用的自启动技术已被人们熟知,为躲避安全软件的查杀,病毒编制者找到了一种早已有之的系统调试功能,并应用到病毒技术上,致使许多安全软件不能够运行,处于瘫痪状态。致使许多用户的计算机处于不设防的状态。是什么技术会造成如此的危害呢?其实病毒只是利用了windows系统早已有的技术IFEO,实现了对安全软件的映像劫持。
1 映像劫持的定义
所谓的映像劫持(Image Hijack)即,恶意代码利用注册表项[HKEY_
LOCAL MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options]将某一应用程序重定向到恶意代码本身或或其他应用程序上,从而实现病毒体的自动加载或通过IFEO使安全软件或其他应用程序不能正常运行的技术。
2 映像劫持的基本原理
在WindowsNT架构里,IFEO是为了兼容windows早期版本下的可执行文件而设计的一个补救措施。一些在windows早期版本下的可执行文件,在新的环境中运行时,可能会引发错误,为此,微软公司提供了一种保全措施,为程序执行体提供一个特殊的环境设定,如今却被恶意代码的编制者用来加载恶意代码,实现恶意代码的自动加载。
IFEO的设计是为了兼顾因内存管理机制的变化,导致的应用程序运行故障,而设计的一种解决方案。在IFEO中设定了一些堆栈分配的参数,当被控制的程序在运行时,其内存由IFEO设定的参数进行分配。
在Windows NT架构中为用户预留了一个交互接口,即注册表项[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrent VersionImage File Execution Options],IFEO 对需要进行管理的可执行文件在其下建立一个与该文件同名的项目,并设定该文件的堆栈管理机制以及一些辅助的机制。
在IFEO中定义了许多参数。常见的有Debugger、PageHeapFlags、DisableHeapLookAside、DebugProcessHeapOnly和PageHeapSizeRangeStart
等。“映像劫持”就是通过IFEO项中的debugger参数实现的。参数Debugger是IFEO中被第一个被处理的参数,Debugger参数,直接翻译为“调试器”,如系统运行某可执行文件时,首先检查其是否在IFEO列表中,如发现其在IFEO列表中,就会读取其Debugger参数,如果该参数不为空,则把其Debugger参数里指定的程序文件名作为启动的程序执行,把用户欲启动的程序作为Debugger参数发送给Debugger参数里指定的程序文件名。Debugger参数的这种特殊功能,被称为“重定向”,而利用“重定向”技术进行的攻击,我们习惯上称为“映像劫持”(Image Hijack)。
“映像劫持”技术,经常被恶意代码用来阻止安全软件的正常运行,从而达到保护其本身不被查杀的目的。其表现多为,当运行杀毒软件、防火墙、安全检测工具等时,系统提示“找不到文件”或执行后没有反应。其原因就是,IFEO的Debugger参数中,可执行文件列表里设置了这些软件的主文件名,而且被Debugger的参数指向了不存在的文件或恶意代码本身。
3 映像劫持的应用
映像劫持技术,可以被恶意代码利用,同时,我们也可以利用该技术实现对病毒的免疫等功能。
3.1 利用映像劫持技术禁止某些程序运行
如在某台计算机上为了限制运行QQ软件,我们可以使用记事本,输入如下代码
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsqq.exe]
"Debugger"="aaa.exe"
另存为 qq.reg,并将其导入注册表,当我们在该机器上打开QQ时,系统将提示找不到该文件,原因就是QQ被重定向到了一个并不存在的文件上。
3.2 利用映像劫持技术实现病毒免疫
按着病毒劫持安全软件的原理,我们可以对把病毒程序进行重定向,使病毒程序不能运行。使用记事本,输入如下代码:
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options spoclsv.exe]
"Debugger"="abc.exe"
另存为 abc.reg,并将其导入注册表,这样这些病毒虽然在系统启动项里面,但是由于被我们进行了重定向,因此,在病毒文件被加载时,系统就会提示无法找到病毒文件(spoclsv.exe 为熊猫烧香病毒)。
4 映像劫持的预防
4.1 限制用户权限
通过限制用户对IFEO的写入权限,可预防映像劫持的发生,运行regedit,找到[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCur
rentVersionImage File Execution Options],选中该项,在编辑菜单中,选中权限,将administrator 和 system 两个用户写入权限取消。这样做后,恶意代码就无法对IFEO项进行修改,从而防止映象劫持。
4.2 删除IFEO项
在注册表编辑器中,把注册表项[HKEY_LOCAL_MACHINESOFTWAREMic
rosoftWindows NTCurrentVersion]下的,Image File Execution Options 项删掉。该方法虽然可以避免映像劫持,但是也同时取消了IFEO的功能,一般不推荐该方式。
5 总结
“映像劫持”技术,是恶意代码在windows可利用的自动加载方式都被用户熟知以后,新挖掘出来的一个恶意代码的自动加载途径。随着时间的推移,逐渐得到人们熟悉了解,越来越多的应用软件以及大多数的安全软件都已经设置了自身的抗劫持技术,其对系统的威胁将越来越小。
参考文献:
[1]颜廷法、曲广平、郭迎娣,映像劫持型病毒原理分析及应对方法[J].烟台职业学院学报,2008.1:76-78.
[2]李翠梅、张椿昱,试论计算机病毒的启动方式及其防治[J].内蒙古科技与经济,2009.10:113-114.
[3]陈金莲,揭密病毒的映像劫持技术[J].黄冈职业技术学院学报,2009.4:8-9.