• 动态分析技术包括在恶意代码运行时刻进行监控以及在恶意代码运行之后来检查系统情况
    • 是识别代码功能的有效方法

    1、沙箱

    • 报告内容:静态分析结果、操作的文件列表、对注册表的更改、网络行为、VirusTotal报告
    • 缺点:只能简单运行可执行程序,不能带有命令行选项或者交互;不会等待足够长的时间让所有时间发生;沙箱操作系统不一定合适

    2、运行恶意代码

    • 运行dll文件:
      方法一:rundll32.exe DLLname,Export argument(dll中要运行的函数名或其序号)
      方法二:修改PE头,从IMAGE_FILE_HEADER特征域里擦除IAMGE_FILE_DLL(0x2000)标记
    • dll形态的恶意代码也可能需要被安装成一个服务

    rundll32 ipr32x.dll,InstallService ServiceName
    net start ServiceName
    ** 当看到由ServiceMain函数但没有供安装的导出函数时,需要手工安装服务;可以使用windows下的sc命令或修改注册表,然后使用net start启动服务。

    3、进程监视器(Process Monitor)

    • 监控注册表、文件系统、网络、进程和线程行为;监控能捕获的系统调用(一般不包括网络行为、IO、图形界面调用等)

    Edit->Clear Display清除掉不相关数据、File->Capture Events中止捕获

    • 过滤功能:只监控系统上运行的一个可执行程序(Filter->Filter)
    • 如果恶意代码释放出另一个可执行程序并运行,这些信息也会被记录
    • 注册表:辨别恶意代码如何把自己添加到注册表中
    • 文件系统:显示恶意代码创建的所有文件或它使用的配置文件
    • 进程行为:是否启动了其他进程
    • 网络:展示监听的任意端口
    • 如果要分析的恶意代码是开机启动的,需要使用进程监视器的启动选项,将其安装为一个自启动驱动

    4、进程浏览器(Process Explorer)

    • 粉色:服务、蓝色:进程、绿色:新进程、红色:被终止进程
    • 双击进程名会打开属性窗口,镜像标签(Image)里有验证(Verify)按钮,可以验证磁盘上的镜像文件是否具有微软的签名认证。恶意代码经常替换windows认证文件,但是如果恶意代码替换的是内存中的而不仅是磁盘中的时,该方法就会失效
    • 属性窗口中的字符串标签(String)也可以帮助验证恶意代码是否对磁盘上的文件进行替换,比较磁盘上(Image)和内存中(Memory)同一个文件的字符串差异
    • 依赖遍历器(Dependency walker):右击进程名并选择Launch->Depends,比较进程浏览器中的DLL列表与在Dependency Walker工具中显示的导入DLL列表
    • 分析恶意文档:用进程浏览器打开文件,查看是否启动了任意进程,在Image标签中确定恶意代码在磁盘上的位置
    • 检查是否创建互斥量(确保同一时间只有一个恶意代码实例在运行)

    5、使用RegShot比较注册表快照

    • 运行可以程序前后使用1st shot、2nd shot进行快照然后compare两次快照结果

    6、模拟网络

    • ApateDNS:用来查看恶意代码发出DNS请求最快速的方法。在本机上通过监听UDP por53,对用户指定的IP地址给出虚假的DNS响应,对DNS请求重定向;通过使用不存在域名(NXDOMAIN)选项来捕获恶意代码样本使用的其他域名。
    • Netcat:用在支持端口扫描、隧道、代理、端口转发等的对内对外连接上。监听模式下充当服务器,连接模式下作为客户端。恶意代码频繁使用80端口或443端口。模拟网络连接
      例:> nc -l -p 80:-l 监听、-p 指定端口

    7、wireshark进行数据包监听

    • 开源嗅探器,截获并记录网络数据包的工具
    • 观察TCP会话内容:右键单击任意TCP数据包,选择Folloe TCP Stream

    8、INetSim

    • 基于Linux模拟常见网络服务(HTTP、HTTPS、FTP、IRC、DNS、SMTP等)的免费软件
    • 伪装的像一台真正的服务器,例如被扫描到时,会返回Microsof IIS网络服务器旗标
    • 几乎能提供所有的文件请求服务,能保证恶意代码继续运行
    • 可以记录所有的连入请求和连接(判断一个恶意代码是否连接到一个标准服务,或查看它发出的请求)

    9、实验