恶意软件是指由网络犯罪分子设计的恶意程序,可通过创建后门入口来获得对计算设备的访问权,从而窃取个人信息、机密数据,实施对计算机系统的破坏。为了更好地防护恶意软件,避免由恶意软件造成的危害,必须对恶意软件进行分析,以了解恶意软件的类型、性质和攻击方法。
恶意软件分析工作主要包括在隔离环境下分析木马、病毒、rootkit、勒索软件或间谍软件等恶意软件家族的样本,运用各种方法,根据其行为了解攻击者动机、目的及恶意软件类型和功能等,并创建规则来实施相应的缓解措施。当我们分析受感染的机器或文件时,我们的目标主要包括:
- 识别受感染的文件,检测计算机设备和网络系统中可能存在的恶意软件。
- 了解可疑恶意软件的功能。
- 全面评估和管理恶意软件可能造成的损害。
- 对恶意软件进行指标分析,为后续检测和防护产品研发创建正确的规则措施。
有效的恶意软件分析可以帮助安全团队快速检测并防止攻击者实施破坏活动。本文将重点介绍目前常见的恶意软件分析方法及相关工具。
静态恶意软件分析
静态恶意软件分析包括提取和检查不同二进制组件和可执行文件的静态行为,比如API 标头、引用的DLL、便携式可执行(PE)区域以及更多此类内容。任何有悖于正常结果的偏差都记录在静态调查中。静态分析在不执行恶意软件的情况下完成,而动态分析一般是在受控环境下执行恶意软件来进行。
在静态分析中,涉及以下几个方面的工作:
- 反汇编——程序可以移植到新的计算机平台上,通过在不同环境中编译源代码来实现。
- 文件指纹——用于识别和跟踪网络上的数据。
- 病毒扫描——删除恶意软件、病毒、间谍软件及其他威胁。
- 分析内存工件——在分析内存工件(比如RAM转储、pagefile.sys或hiberfile.sys)期间,检查方可以开始识别流氓进程。
- 打包器检测——用于检测打包器、密码器、编译器、打包器加扰器、连接器和安装器。
静态分析工具包括:
- Hybrid-analysis——使用独特的混合分析技术,检测和分析未知威胁。
- Virustotal.com——该免费服务可以分析可疑的文件和URL。
- BinText——该文件文本扫描器/提取器可帮助查找深藏在二进制文件中的字符串。
- Dependency Walker——该免费程序可列出便携式可执行文件的导入和导出模块。
- IDA——该程序可以将机器语言转换成汇编语言。
- Md5deep——这套跨平台工具可计算和审核输入文件的散列(Hash)。
- PEiD——可针对便携式可执行(PE)文件检测大多数常见的打包器、加密器和编译器等。
- Exeinfo PE——该软件可查看任何可执行文件的各种信息。
- RDG Packer——可检测打包器、加密器和编译器等。
- D4dot——该工具擅长将打包和混淆的程序集恢复到几乎原始的程序集。
- PEview——可快速轻松地查看32位PE文件和组件对象文件格式(COFF)的结构和内容。
动态恶意软件分析
动态恶意软件分析是分析师发现恶意软件功能的首选方法。在动态分析中,分析师将构建用作恶意软件分析的虚拟机。分析师将通过沙盒来分析恶意软件,并分析恶意软件生成的数据包数据。在动态分析中,隔离环境以避免恶意软件逃逸非常重要。
在动态分析中,需要注意以下几个问题:
- 检查单个路径(执行跟踪)。
- 分析环境可能并非隐形的。
- 分析环境可能并非全面的。
动态分析工具包括:
- Procmon——这款先进的监控工具可显示文件系统、注册表和进程/线程的实时活动。
- Process Explorer——这是一款面向Windows操作系统的系统资源监控工具。
- Anubis——该动态恶意软件分析平台可在受控环境下执行提交的二进制代码。
- Comodo Instant Malware Analysis——比较容易使用和理解的在线沙盒服务。
- Process MonitorRegshot——这款流行的注册表监控工具可显示文件系统、注册表和进程/线程的实时活动。
- ApateDNS——该工具通过易于使用的GUI来控制DNS响应。
- OllyDbg——一款侧重二进制代码分析的x86调试器。
- Regshot——这款开源注册表比较工具可迅速获取注册表的快照,并进行比对。
- Netcat——该计算机网络实用工具使用TCP或UDP协议在网络中读取数据。
- Wireshark——该免费开源数据包分析器可用于网络故障排查、分析、软件和通信协议开发等。
内存取证分析
内存取证分析含有关于系统运行时状态的信息,并提供将来自传统取证分析工件(网络、文件系统和注册表)关联起来的功能。
在内存分析中,涉及以下几个方面的工作:
- 映像全部的系统内存(不依赖API调用)。
- 将进程的整个地址空间映像到磁盘,包括进程的已加载DLL、EXE、堆和堆栈。
- 将内存中加载的指定驱动程序或所有驱动程序映像到磁盘。
- 加密进程地址空间中的EXE和DLL(MD5、SHA1、SHA256)。
- 验证EXE和DLL的数字签名(基于磁盘)。
- 针对某个进程,输出内存中的所有字符串。
内存取证分析工具包括:
- WinDbg——Windows系统的内核调试器。
- Muninn ——使用Volatility自动执行部分分析的脚本。
- DAMM ——基于Volatility,针对内存中恶意软件的差异分析。
- FindAES ——查找内存中的AES加密密钥。
- Volatility ——先进的内存取证框架。
恶意软件检测
恶意软件检测是指扫描计算机和文件以检测恶意软件的过程。它不是单向过程,实际上相当复杂。它结合多款工具和方法进行检测,检测和清除过程通常在50秒钟内完成,在恶意软件检测方面卓有成效。
以下是常见的几种检测方式:
- 基于特征或模式的匹配:特征是识别特定病毒唯一身份的算法或散列(从文本字符串获取的数字)。
- 启发式分析或主动防御:启发式扫描类似特征扫描,只不过启发式扫描并非寻找特定的特征,而是在程序中寻找典型应用程序中没有的某些指令或命令。
- 基于规则:启发式引擎中进行分析的组件(分析器)从文件中提取某些规则,并将这些规则与恶意代码的一组规则进行比较。
- 行为分析:相比之下,可疑行为分析方法不是试图识别已知病毒,而是监测所有程序的行为。
- 基于权重:根据危险程度,对所检测的每个功能赋予某个权重。
- 沙盒:允许文件在受控的虚拟系统(即沙盒)中运行,查看其行为。
恶意软件检测工具包括:
- YARA——分析员的模式匹配工具。
- Yara规则生成器——根据一组恶意软件样本生成YARA规则。
- File Scanning Framework——模块化递归式文件扫描解决方案。
- hash deep——使用多种算法计算摘要散列。
- Loki——基于主机的扫描器,扫描攻陷指标(IOC)。
- Malfunction——在函数层面对恶意软件进行登记和比较。
- MASTIFF——静态分析框架。
网络交互分析
网络交互分析在专注于网络安全的同时,还监控综合平台,以执行更普通的网络流量分析。被动网络嗅探器/数据包捕获工具可用于检测操作系统、会话、主机名和开放端口等,并不在网络上带来任何流量。可分析以太网、PPP、SLIP、FDDI、令牌环和空接口上的IPv4/6、TCP、UDP、ICMPv4/6、IGMP和Raw流量,采用与数据包嗅探相同的方式理解BPF过滤器逻辑。
网络交互分析工具包括:
- Tcpdump——收集网络流量。
- tcpick——从网络流量中跟踪和重组TCP数据流。
- tcpxtract——从网络流量中提取文件。
- Wireshark——网络流量分析工具。
- CapTipper——恶意HTTP流量管理器。
- Chopshop——协议分析和解码框架。
- CloudShark——基于Web的工具,用于分析数据包和检测恶意软件流量。
代码调试器
代码调试器是实用的恶意软件分析工具,允许在底层分析代码。调试器的重要功能是断点(breakpoint)。断点命中时,程序执行被停止,并将控制权交给调试器,允许对当时的环境进行恶意软件分析。调试器可利用专门的中央处理单元(CPU)工具,可以让用户深入了解程序如何执行任务,并访问被调试程序的环境等。这在分析恶意软件时可能很有用,因为可以让用户看到调试器如何尝试检测篡改,并跳过有意插入的垃圾指令。
调试工具包括:
- obj dump——GNU Binutils 的一部分,用于Linux二进制代码的静态分析。
- OllyDbg——Windows可执行文件的汇编级调试器。
- FPort——报告实时系统中敞开的TCP/IP和UDP端口,并将它们映射到对应的应用程序。
- GDB——GNU调试器。
- IDA Pro——Windows反汇编器和调试器,有免费评估版。
- Immunity Debugger——用于分析恶意软件的调试器,附有Python API。
恶意URL分析
如今,网站暴露在各种威胁面前,受感染的网站将被用作跳板,帮助攻击者达到邪恶目的。比如,URL重定向机制已被广泛用于隐蔽地执行基于Web的攻击。重定向是指自动替换访问目的地,一般由Web上的HTTP协议加以控制。除了这种传统方法外,还经常使用自动访问外部Web内容(比如iframe标签)的其他方法。恶意URL分析是通过机器学习等方式,分析URL文本分词词频来检测恶意URL。
恶意URL分析工具包括:
- Firebug——用于Web开发的Firefox扩展件。
- Java Decompiler——反编译和检查Java应用程序。
- jsunpack-n——模拟浏览器功能的javascript解包器。
- Krakatau——Java 反编译器、汇编器和反汇编器。
- Malzilla——分析恶意网页。
沙盒技术
沙盒是一个重要的安全分析系统,可以隔离程序,防止恶意或失败的项目损害或窥视PC上的任何剩余部分。沙盒是严格控制的环境,限制了一部分代码可以执行的操作。
沙盒分析工具包括:
- firmware.re——可以拆解、扫描和分析几乎任何固件包。
- Hybrid Analysis——基于VxSandbox的在线恶意软件分析工具。
- IRMA——用于分析可疑文件的异步可定制分析平台。
- Cuckoo Sandbox——开源自托管的沙盒和自动分析系统。
- cuckoo-modified——使用GPL许可证的Cuckoo Sandbox的修改版。
- PDF Examiner——分析可疑的PDF文件。
- ProcDot——图形化恶意软件分析工具包。
- Recomposer——将二进制代码安全地上传到沙盒的帮助脚本。
- Sand droid——自动完整的安卓应用程序分析系统。
网域分析
网域分析是指安全分析师了解背景信息、检查网域和IP地址的过程。网域分析应该包括已找到信息的简要总结,以及使其他人能够找到该信息的参考资料。
网域分析工具包括:
- SpamCop——基于IP的垃圾邮件阻止列表。
- SpamHaus——基于网域和IP的阻止列表。
- Sucuri SiteCheck——免费的网站恶意软件和安全扫描器。
- TekDefense Automatic——用于收集有关URL、IP或散列的OSINT工具。
- URLQuery——免费的URL扫描器。
- IPinfo——通过搜索在线资源,收集有关IP或网域的信息。
- Whois——免费在线whois搜索。
- Mail checker——跨语言的临时电子邮件检测库。
参考链接:
https://gbhackers.com/malware-analysis-cheat-sheet-and-tools-list/。