由浅入深 恶意软件逃避检测的六个秘密之地

本文讲的是由浅入深 恶意软件逃避检测的六个秘密之地,恶意软件隐藏技术的帮助下,尽管有最佳实践,企业依然是黑客的首选目标。

侵入系统或网络的恶意软件形式多样,有病毒、蠕虫、间谍软件、木马、广告软件、勒索软件等等。任何可能冲击企业隐私和安全的恶意程序都是恶意软件。最近新闻热议焦点之一是约翰·波德斯塔,美国民主党总统候选人希拉里·克林顿的竞选主管。此人很倒霉地点进了钓鱼网站,让自己的电脑被种上了恶意软件,全部私人邮件被黑客读取。这些电子邮件最终落到了维基解密的手中,出于政治原因,每天放出几千封。

不幸的是,高端网络罪犯一直在改进他们的策略,部署能绕过传统安全解决方案的恶意软件,静悄悄地潜入到企业网络中。有报告显示,每81秒就有恶意软件被下载到企业环境中。这让安全人员必须充分注意到用于隐藏恶意软件的那些技术,以下是七个恶意软件容易藏身的位置。

  1. Windows注册表

Windows注册表又大又复杂,很多地方都可以供恶意软件藏身用。其中一个很好的例子就是Poweliks。Windows内置API——ZwSetValueKey,可在注册表中创建带编码数据块键值的注册表键。免文件型恶意软件Poweliks,就是利用该API将自身代码编码隐藏在注册表中。这是恶意软件利用Windows注册表实现隐藏、自启动和长期驻留的诸多方法当中的一种。

  1. 进程注入

如名字所示,进程注入就是将代码注入到正在运行的进程中。恶意软件利用进程注入技术将代码执行隐藏到已知“正常”的进程中,比如svchost.exe或explorer.exe,实现检测规避。为将恶意软件注入到已知正常进程,恶意软件作者会利用内置 Windows API,比如说,设置调试权限的那些。进程若被设置为调试模式,就能调用很多调试API,实现附着到其他进程并命令进程分配额外内存等功能。目标进程分配了更多内存后,恶意进程就能往该进程中注入任意代码。

进程注入实例:

Poison Ivy 是利用进程注入的一大恶意软件实例,它通过数据库分表给系统带来伤害。该恶意软件不占用一整块内存,而是在多个不同进程中分配小小的内存块,让对 Poison Ivy 的分析更为痛苦,逆向工程也更难更耗时。
3. 进程挖空

另一个与进程注入相关的技术叫做进程挖空。挖空指的是已知良好进程以挂起状态启动。当代码加载完毕准备执行时,好代码被挖空(此处可自行想象用冰淇淋勺大勺掏空冰淇淋桶的舒爽感觉),进程中便出现了供坏人放入自己代码并修改头部和尾部的空间。这让修改充填过的代码看起来似乎还是好的,然后进程再被重启动。对普通用户而言,这就是个由Windows启动的正常系统进程。因此,逆向工程师和内存鉴证人员也就更难以进行分析了。Dridex银行木马便属于常使用进程挖空技术的恶意软件家族。

  1. 进程列表解链

进程列表解链是另一种主要概念。进程就是计算机上运行的任意东西,无论是在用户空间里还是在内核空间里。进程列表解链涉及到操作“进程列表”,也就是包含了所有“活动”进程的双向链表。一旦进程被从进程列表中抽出(解链),该进程便可以对所有查看“活动”进程的工具隐身了。可通过使用ZwSystemDebugControl()函数,或映射\Device\PhysicalMemory来实现这一操作。

怎样将进程从列表中删除:

设要从列表中删除的进程为B,B的后链B->BLink指向其上一个进程A,前链B->FLink指向其下一个进程C。只需将进程A的前链((B->BLink)->FLink)指向C(B->FLink),再将进程C的后链((B->FLink)->BLink)指向A(B->BLink),便可顺利将进程B从双向链表中摘除,遍历进程列表时直接从A跳到C。更高级的黑客还会更进一步,在从列表中移除该进程后,再重写那块内存,这样即便有内存鉴证调查也无法定位到该进程了。安全研究人员有工具可用于查找隐藏恶意代码,比如PsAc4veProcessHead遍历、进程池标签扫描、线程池标签扫描等等。
5. 动态链接库列表解链

通过操作动态链接库(DLL)列表也能隐藏恶意软件。就像进程列表,DLL列表也是双向链表,每个DLL信息节点都有指向其上一个节点和下一个节点的指针,有API可以调用来修改DLL列表中的节点,摘除其中节点,并抹去内存中的信息以辅助逃过内存鉴证或备份工具的检测。这种方法在rootkit活动中很常见。

  1. 内核模块列表解链

内核模块又更底层了。内核模块包含加载到内核的任意模块。与DLL和进程列表类似,内核模块也有自己的列表,能通过API查询,返回每一个被加载到内核的模块信息。同样,有调试API可以将内核模块从列表中移除并清零。这一点尤其重要,因为在内核级,只要被清零,再找回的难度就大得多了——该权限就像Ring0级权限,绝对与rootkit行为有关。一般来讲,恶意软件会在用户空间执行,然后尝试内核级漏洞利用以得到内核管理权限,随后释放出主rootkit,主rootkit再将自身从内核模块列表进程列表中清除。到了这一步,恶意软件就藏身良好,非常难以被发现了。

时间: 2024-12-31 18:36:56

由浅入深 恶意软件逃避检测的六个秘密之地的相关文章

使用多种逃避检测技术的银行恶意软件:Neverquest

Arbor安全工程与响应小组(ASERT)最近发布了一篇报告,揭示了复杂的银行恶意软件Neverquest或称Vawtrak进行逃避检测的技术细节,其中包括加密.匿名路由,甚至图片隐写技术. ASERT的威胁情报及响应部门的负责人表示,他们关注Neverquest的最初原因是它对金融行业的冲击,检测结果表明,该恶意软件的结构极端复杂,并采取了很多防止研究人员进行检测分析的手段.该软件冲击了25个国家的超过100家大型金融机构. 它通过第三方恶意软件安装器将自己安装在用户的终端机上,然后使用多种方

恶意程序被发现会通过破坏硬盘逃避检测

思科Talos Group的研究人员报告发现了一个恶意程序会采用多种方式破坏逃避检测,其中包括破坏硬盘和防止虚拟机分析.研究人员将恶意程序命名为Rombertik, 它会不加选择的收集用户在互联网上的所有操作,可能是为了收集登录信息和其它敏感数据.它主要是通过邮件的恶意附件安装在用户电脑上.研究人员逆向工程了 Rombertik,发现它采用了多种方法逃避分析.程序包含了多重混淆和反分析功能,让外人难以一窥内部工作.当程序主要组件检测到它正被安全研究人员 或竞争对手仔细分析,它会自毁,同时破坏用户

恶意软件逃避反病毒引擎的几个新方法

火眼研究人员发现的几种恶意软件样本使用了一些耐人寻味的技术,能够更长久地维持对反病毒引擎的隐身状态. 火眼公司刚刚发布了一个新的威胁分析专题,名为"端点上的幽灵"(https://www.fireeye.com/blog/threat-research/2016/04/ghosts_in_the_endpoi.html).专题第一期中详细介绍了恶意软件使用的几种隐身技术. 研究人员分析了2015年上传到VirusTotal病毒扫描系统.并在2016年1月前成功保持未检测状态的恶意Win

Android恶意软件模拟器检测技术

前言 下面的报告来自SophosLabs实验室的Android安全专家陈宇,还有来自Android组的成员William Lee, Jagadeesh Chandraiah and Ferenc László Nagy的帮助. 随着Android恶意软件的数量的持续增长,它紧随Windows下的应用采用的用于逃脱模拟器的技术,用来防止被动态分析.在这篇文章中,我们将展示一些用于模拟器检测的技术. 模拟器是一种可以允许一台电脑(主机)模拟另外一台电脑(客户机)的硬件或软件.通常,它允许主机系统运行

百度分享 你不知道的六个秘密

1月9日,发现百度分享的的数据用大拇指显示在了百度快照上,当时一阵狂喜.因为当初安这个东西没什么特别的目的,就是为了便于大家分享我的网站.看到快照网址后边的大拇指和计数 ,鼠标放上去显示"102人喜欢",感觉那叫一个拉风.那个时候,一般的网站,包括那些知名的SEO网站,都没有这个标志呢.这可是身份的象征啊!!! 1月10日,一些热衷于SEO的人安上了这个小应用,大量的关于百度分享的文章在网络上火了起来.而这个时候,我撤掉了百度分享,安上了Jiathis.没神马原因,就是为了试验. 下边

看恶意软件Nitol如何使用新技术逃避沙盒检测

本文讲的是看恶意软件Nitol如何使用新技术逃避沙盒检测,安全人员最近观察到,Nitol僵尸网络在利用基于宏的恶意文档发动分布式攻击时,使用了新的逃避技术. 恶意软件作者想尽各种办法以躲开沙盒检测的事情并不新鲜,但此次Nitol僵尸网络使用的技术,非常新奇和聪明.它们使用了宏编码的混淆技术和多阶段攻击方法论,以确保终端设备被入侵. 据研究人员分析,Nitol的这种基于宏的恶意文档发动的分布式攻击,加上了口令保护,可以完全绕过沙盒.因为,键入口令的过程比较复杂且需要用户的介入,而自动分析技术很难模

能逃避机器学习检测的 Cerber 勒索变种

摘要 CERBER勒索家族已经被发现通过一种新技术来逃避检测:使用了一种新的方法用加载出来的程序来逃避机器学习检测技术.其被设计为把一个二进制文件掏空,然后把CERBER的代码替换进去,再使用其他手段加载运行. 行为分析 勒索软件通常通过电子邮件传播,这些新的CERBER变体也不例外.电子邮件里面可以用各种各样的程序进行勒索软件的传播 . 比如邮件里面包含一个链接指向一个自解压的文件,该文件已经上传到攻击者控制的一个Dropbox账户里面,被攻击目标接着就会自动下载然后打开里面的程序,将会入侵整

四种恶意软件常用的逃避技术

恶意软件逃避技术总是在不断演变,上个月的RSA大会上安全公司Lastline的联合创始人讲述了逃避技术发展的图景.这篇名为"逃避型恶意软件的揭露和解构"的报告,进进一步验证了一个观点:"杀毒软件没死,只是跟不上时代". 报告指出,在2014年,只有一小部分恶意软件显示出了逃避的特性,但到了现在,相当大的一部分恶意软件会利用500种逃避技术进行任意组合,以避免被检测和分析. Lastline指出,单个的恶意软件样本通常只具有10种逃避行为.不过研究表明,其中的四种是最

老式ATM恶意软件卷土重来:Skimer变得更加难以检测

据卡巴斯基实验室的安全研究人员介绍,一款老式ATM恶意软件已经卷土重来,并且变得更加危险和难以检测.它的名字叫做Skimer,已经感染了全球许多基于Windows平台的ATM机.在被安装之后,升级版的Skimer会检查文件系统为FAT32或NTFS.若为前者,它会丢一个netmgr.dll文件到"C:WindowsSystem32"路径下;若为后者,同一文件会被替换成对应的NTFS数据流(XSF服务的可执行文件). 结果就是,该恶意软件更难以被安全人员所查获.The Stack补充道: