动态分析基础技术
动态分析:运行恶意代码后进行分析,通常是在静态分析无法处理后实行,是恶意代码分析流程的第二步
沙盒技术-SandBox
定义:
- 用于安全运行程序的安全环境
- 经常被用于执行和分析非可信的代码
作用:
- 样本是否对硬件读写,创建了什么文件
- 样本是否进行网络连接,连接什么端口
- 创建了哪些进程(系统/用户),进程有哪些API函数调用
- 相关的可疑文件大小和MD5
- 文件是否加壳压缩
- 是否是已知病毒
缺点:
- 只能简单地运行可执行程序,若需要命令行执行,无法触发
- 不能记录所有事件,尤其是需要长时间等待的情况
- 虚拟机检测
- 运行环境需要特定的注册表项或文件
- 如果是一个DLL,无法正确调用执行
- 操作系统的限制
- 结论需要安全人员自己总结
运行恶意代码
exe:命令行或双击
dll:命令行
C:\Windows\System32\rundll32.exe DLLname, Export arguments
export值是dll文件导出函数表中的函数名或序号
进程监视器
Process Monitor:可监视特定注册表、文件系统、网络、进程以及线程活动,能够进行过滤选项卡
进程浏览器查看进程
Process Explorer,一款用来执行动态分析的工具,类似于任务管理器
双击一个特定进程,会产生跟过有关进程的信息
进程浏览器显示的主要五栏有:进程名、进程id、CPU占比、描述、软件公司名
Process Explorer实验
题目:在一个安全的环境中执行给定的文件(Lab03-03.exe)中发现的恶意代码,同时,使用基础的静态分析和动态分析工具监视它的行为。
问题:
- 当使用Process Explorer工具进行监视时,注意到了什么?
未运行恶意样本时:运行恶意样本后:Lab03-03.exe创建了一个svchost.exe进程,之后杀死自己的进程,保留子进程!
- 可以找出任何的内存修改行为吗?
通过右键调出svchost.exe的属性,查看Strings下的镜像和内存中的字符串,对比发现不一样,说明存在内存修改行为【识别进程替换】
- 这个恶意代码在主机上的感染迹象特征是什么?
创建子进程svchost.exe进行替换,在同一目录下生成practicalmalwareanalysis.log![image-
- 这个恶意代码的目的是什么?记录键盘输入,如下,我敲击了xherlock,并点击回车键,log文件中便有了相关记录由第二步查看内存中字符串可知,他记录了字母数字按键以及shift、enter、backspace、tab、ctrl、del、caps lock等常用按键
Regshot比较注册表快照
Regshot开源的注册表比较工具,可以比较两个注册表的快照,发现差异
模拟网络
目的:避免连接恶意代码的真实服务器(控制服务器)