动态分析基础
有几个功能一体化的软件产品,可以用来进行基本的动态分析,最流行的就是使用沙箱技术。沙箱是一种在安全环境里运行不信任程序的安全机制,不用担心伤害到“真正的”系统。
在计算机安全专业人士眼中,Norman沙箱和GFI沙箱是最受欢迎的。
1、如何成功启动DLL文件
在所有的windows版本中都包含rundll32.exe程序,它提供了一个运行DLL的平台,语法格式:
c:\>rundll32.exe DLLname,Export arguments
Export值必须是一个DLL文件导出函数表中的函数名或者序列号。可以用PEview或者PE Explorer工具查看导出函数表。
2、进程监视器
进程监视器(Process Monitor)是Windows系统下的高级监视工具,它提供一种方式来监控注册表、文件系统、网络、进程和线程行为。它结合并增强了两种工具的功能:文件监视器FileMon和注册表监视器RegMon。
注册表:通过检查注册表操作,你能辨别一个恶意程序是怎样把自己添加到注册表中去的。
文件系统:检查文件系统能显示恶意程序创建的所有文件,或它使用的配置文件。
进程行为:检查进程行为能告诉你恶意程序是否启动了其他的进程。
网络:识别网络连接能告诉你恶意程序监听的任意端口。
3、进程浏览器
Process Explorer显示了五栏:Process(进程名)、PID(进程号)、CPU(CPU使用率)、Description(进程描述)、Company Name(软件公司名)。
使用依赖遍历器(Dependency Walker)
使用进程浏览器来分析恶意文档,比如PDF和Word。一个快速确定一个文档是否恶意的方法,就是打开进程浏览器,然后再打开文档。若文档启动了任意进程,你就能在进程浏览器中看到,并能通过属性窗口中的镜像(Image)标签来定位恶意代码在磁盘上的位置。
4、使用Regshot来比较注册表快照
Regshot是一个开源的注册表比较工具,它可以让你比较两个注册表的快照,发现差异。
5、模拟网络
恶意代码经常会连接到命令与控制服务器,你需要采用一些模拟网络的基本步骤,用来快速获得网络资源,而不需要实际的连接互联网。这些资源可以包括DNS域名系统、IP地址和数据包记录器。
ApateDNS是用来查看恶意代码发出DNS请求最快速的方式。
6、使用Netcat进行监视
7、使用Wireshark进行数据包监听
8、使用INetSim
INetSim是一款基于linux模拟网络常见的免费软件。如果你的宿主操作系统是windows,那么运行INetSim最简单的方法就是将它安装到一个linux虚拟机里,然后将它配置到恶意代码分析虚拟机所连接的同一个虚拟网络中。