(一)静态分析方法
技术 | 说明 | ||
1 | 反恶意代码软件检查 | 特征代码法、校验和法、行为监测法、软件模拟法 利用反恶意代码软件分析恶意代码信息 | |
2 | 字符串分析 | 寻找文件中使用的ASCII或其他方法编码的连续字符串 ①恶意代码名字; ②帮助和命令行选项; ③用户对话框; ④后门密码; ⑤相关网址; ⑥作者或攻击者E-mail; ⑦用到的库、函数调用及可执行文件; ⑧其他有用信息 | |
3 | 脚本分析 | 通过文本编辑器打开JS、Perl或shell等脚本语言 | |
4 | 静态反编译分析 | 采用反编译工具查看携带解释器的恶意代码源代码 | |
5 | 静态反汇编分析 | 线性遍历算法 | GNU程序objdump和链接优化工具从输入程序入口点开始反汇编,简单遍历程序整个代码区,反汇编每一条指令。但不能处理嵌入指令流中的数据问题,如跳转表 |
递归遍历算法 | 试图用反汇编出来的控制流指令指导反汇编过程,解决线性遍历问题。很多二进制传输和优化系统采用这种方法 缺点:很难正确判定间接控制转移的可能目标。被反汇编后就可用控制流分析来构造流程图。不正确的流程图会使静态分析过程得到错误结果 |
(二)动态分析方法
技术 | 说明 | 备注 | |||
1 | 文件监测 | 大部分恶意代码依赖读写(改、添、嵌、删、存储时间戳)文件系统;极少数纯依赖内存 | 文件监测程序:FileMon 文件完整性监测:Tripwire、AIDE等 | ||
2 | 进程监测 | 恶意代码需要生成新进程或盗用系统进程合法权限 | 进程监测工具:Process Explorer(强过Windows内嵌工具) | ||
3 | 网络活动监测 | 恶意代码大部分依赖网络传染 | 网络嗅探器捕获恶意代码数据包 | ||
4 | 注册表监测 | 注册表:包含系统和大多数应用程序配置的层次数据库 恶意代码运行时,通常会去改变注册表配置 | 监测软件:Regmon(实时显示读写注册表项全部动作) | ||
5 | 动态反汇编分析 | 在恶意代码执行过程中对其进行监测和分析 基本思想:将恶意代码运行控制权交给动态调试工具。监测过程从代码入口点处开始,控制权在程序代码与调试工具之间来回传递,直到程序执行完毕。能得到正确反汇编代码,但只对实际执行部分有效 | |||
同内存调试 | 调试工具与被分析恶意代码程序加载到相同地址空间 | 优点:实现代价相对较低,控制权转交到调试工具或从调试工具转回恶意代码程序的实现,相对较简单 缺点:需要改变被分析程序地址 | |||
仿真调试 (虚拟调试) | 调试工具与被分析恶意代码程序处于不同地址空间,可绕过很多传统动态反跟踪类技术 | 优点:无需修改目标程序地址,但进程间控制权的转移代价较高 |
(三)常用脚本语言
脚本语言 | 文件特征 | 后缀 | |
1 | Bourne Shell | 以!#/bin/sh开始 | .sh |
2 | Perl | 以!#/usr/bin/perl开始 | .pl .perl |
3 | Javascript | <script language="javascript">形式 | .js .html .htm |
4 | VBScript | 含单词VBScript或文件中散布字符vb | .vbs .html .htm |
(四)反编译工具
工具 | 平台 | 概述 | |
1 | Reverse Engineering Compiler(REC) by Giampiero Caprino | SunOS Linux Windows | 在多平台下将面向 x86、SPARC、68k、PowerPC和MIPS等多种体协结构处理器代码逆向编译成C代码 |
2 | Dcc by Cristina Cifuentes | 运行UNIX上 分析exe文件 | 将 Windows 面向x86 体协结构程序逆向编译成C代码 |
3 | JReversePro | Java编写 JVM上运行 | 将 Java 字节代码逆向编译成 Java源代码 |
4 | HomeBrew Decompiler | UNIX系统 | 逆向编译Java字节代码 |
(五)网络监测工具
工具 | 平台 | 说明 | |
1 | TCPView | Linux Windows | 查看端口和线程 |
2 | Fport | Windows | 查看本机开放端口,以及端口和进程对应关系 |
3 | Nmap | Linux Windows | 开源扫描工具,用于系统管理员查看大型网络下主机,以及其上运行服务,支持多种协议扫描 |
4 | Nessus | Linux Windows | 经典安全评估软件,功能强大且更新快,采用C/S模式,服务器端负责安全检查,客户端配置管理服务器端 |
(六)Windows平台调试工具
调试工具 | 概述 | |
1 | OllyDbg | 免费调试器,图形界面,功能强大 |
2 | IDA Pro | 调试器和代码分析工具,简化版本免费使用 |
3 | SoftICE | 商业软件,提供优秀调试功能和GUI界面。支持源代码和二进制调试 |