反逆向工程——使恶意软件难以逆向的技术

前言

在攻防对抗的博弈中,恶意软件的作者总是想方设法阻止反病毒公司、安全研究人员对其编写的恶意软件进行检测、分析.在对抗中,技术的进步螺旋式上升,那么编写恶意软件的人都采用了哪些技术来对抗分析?这些技术又是如何发展的?反病毒公司如何应对这种挑战?作者 Bartosz Wójcik 给出了自己的观察。 逆向工程是指不访问其源代码来分析已编译好的程序的方法。 在这篇文章中,我想说明这是使用恶意软件的编写者阻碍病毒和其他恶意软件分析的方法,我也会解释反病毒公司和反病毒软件是怎么处理的。 为了使反病毒公司的分析变得困难,首先你需要知道反病毒公司是如何在实验室中分析恶意软件的。最常用的方法如下: 在虚拟环境中测试恶意软件 在沙盒和模拟其中测试恶意软件 监控恶意软件对系统所做的更改 静态分析 动态分析 生成恶意软件的签名 同时,在用户计算机上运行的反病毒软件可以执行以下检查来帮助判断这个恶意程序的实际意图: 文件和片段的校验和(例如 MD5、SHA1、SHA2、CRC32) 不寻常的文件结构 文件中不寻常的值 文件片段的签名(启发式扫描) 字符串常量 应用程序的行为,被称为行为分析(监控访问系统文件、注册表等) 函数调用(调用哪些函数、提供了什么参数,调用顺序) 实验室和反病毒软件都是这么做的,这中间的每一步,都可能遇到专门设计好来阻止或减慢分析的障碍。

检测虚拟机

99%的情况下,恶意软件会被放在虚拟机中进行测试,例如VMware, VirtualBox,Virtual PC,Parallels 等。这是为了保护分析师自己的机器免受感染,这也是时有发生的! 在2011年,由于反病毒公司 ESET 一个雇员的错误,众所周知的(昂贵的)分析软件 IDA 被盗。

通常在反病毒实验室中,恶意软件存储在没有执行权限的文件夹中,特别要防止感染文件或恶意文件的意外执行。虚拟机的使用也允许了额外工具的使用,例如比较感染后的系统映像和感染前的系统映像的区别,哪怕是对系统文件、注册表、其他系统组件极其微小的改变,都可以轻易发现。

输入图片说明

运行在虚拟机中的恶意软件的网络流量可以被准确地跟踪(通过网络嗅探器,比如 Wireshark),这可以证明恶意软件将会和该恶意程序所属的僵尸网络的控制服务进行通信。 由于这些原因,恶意软件的作者通常希望阻止恶意软件在虚拟机中运行,但是为了做到这一点,恶意软件必须检测到它在虚拟环境中运行了。虚拟机永远不能和真实计算机一样,因此它们具有那些“给予它们”的特性,例如: 具有仅在虚拟机中会存在的特定名称的虚拟硬件设备 对真实机器不完全、有限的仿真(IDT 和 GDT 表) 含糊不清、没有文档记录的 API 在与主机层通信(Virtual PC 使用汇编指令 cmpxchg8b eax 这种魔法一般处理寄存器的方式,就可以确定它的存在) 附加的实用工具,比如 VMware Tools,他们的存在可以通过特定系统对象的名字得知(互斥体、事件、类名、窗口名称等) 清单1-使用 API 接口确定 VWware 环境

BOOL IsVMware()
{
    BOOL bDetected = FALSE;
    __try
    {
        // check for the presence of VMware
        __asm
        {
            mov    ecx,0Ah
            mov    eax,'VMXh'
            mov    dx,'VX'
            in    eax,dx
            cmp    ebx,'VMXh'
            sete    al
            movzx   eax,al
            mov    bDetected,eax
        }
    }
    __except(EXCEPTION_EXECUTE_HANDLER)
    {
        // if an ex
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值