前言

每天,PC与移动终端上会出现数以万计的恶意代码,它们大多用于窃取用户的重要个人信息、金融财务信息等。即使是现在,也很难百分之百地准确判断用户使用的终端中究竟安装了哪些恶意代码。个人使用的终端只能依靠杀毒软件,因为恶意代码分析方法并不是每个用户都能掌握的。用户要尽量相信杀毒软件,不运行从可疑网站下载的文件。只有养成这样的好习惯,才能保护好自己的终端。

但是,作为安全管理员,职责就是保护大量用户终端机器的安全。只要一台终端机器感染了恶意病毒,就根本无法预测它会扩散到哪里。出现病毒感染时,最重要的是快速应对措施。但拿到准确的证据进行分析应对并非易事,所以根本不能只相信为数众多的终端机安全解决方案。为了掌握公司内部员工访问的站点、网站传送的恶意代码、被运行的恶意代码、是否为恶意文件等,相关人员需要学会分析从各个途径得到日志文件,还要懂得灵活使用线上/线下分析服务,快速做好初期应对。

市面上有很多图书讲解恶意代码分析方法,但代码分析大都需要分析者掌握汇编语言、API编程等各种知识,而学习这些知识需要投入大量时间与精力。本书重点讲解各种开源工具的使用方法,实际业务人员使用这些工具可以轻松搭建恶意代码分析环境。书中部分内容会有一定难度,但都结合源码做出了详细讲解,通过这些讲解,相信各位最终都能牢牢掌握。希望本书能够帮助各位提升对恶意代码的应对能力,同时帮助大家制定合适的解决方案。

本书结构

本书面向对恶意代码分析与开源工具感兴趣的入门者。

第1章重点在于理解开源工具与Python开发环境。本书内容围绕Python开源工具展开,为此,读者必须先理解开发环境,内容涉及使用Github、Eclipse、插件等搭建Python编程环境。

第2章主要讲解Windows可执行文件PE格式。个人用户最常用的操作系统是Windows系统,只有理解其中运行的PE文件格式,才能把握恶意代码特征,进而将这些特征应用于恶意代码分析。讲解时,一边分析peframe开源工具,一边学习PE文件的组织结构。

第3章讲解恶意代码线上分析服务。分析恶意代码时,为了实现快速应对,一般要使用多种线上分析服务。借助文件分析、域名地址分析、评估系统等多种分析结果,搜索有可能为内部系统安全带来威胁的网站,并快速做出判断。在这些方面,线上分析服务能够提供很大帮助。最具代表性的线上分析服务网站是VirusTotal,书中将重点讲解,还会涉及一些使用VirusTotal服务API的开源工具。

第4章主要讲解有关恶意代码线下分析服务的内容。第3章讲解的线上服务中,关键是搭建分析沙箱。若想构建内部分析环境,则需要线上/线下搭建拥有相同功能的环境。这一章详细讲解利用Cuckoo Sandbox搭建恶意代码分析环境的方法,并且通过实际恶意代码样本学习如何使用各种分析工具。

第5章重点讲解恶意代码分析的具体步骤。以第4章自动分析服务分析过的病毒样本为例,介绍针对恶意代码进行手动分析(静态/动态分析)的过程。虽然在自动分析中对恶意代码做出了一定判断,但只有经过详细分析才能做出准确判断,并找出应对方法,防止恶意病毒进一步扩散。

第6章讲解其他开源恶意代码分析工具的使用方法,主要是一些可以用于恶意代码诊断过程的Python开源工具。这一章介绍如何收集、分析、有效管理恶意代码并放入数据库,以及文件分析、网络包分析、PDF文件分析等多种环境中使用的分析工具。

第7章讲解内存取证分析相关内容。借助内存取证分析技术,可以快速分析并掌握恶意代码执行过程中易挥发的信息以及关联性。应对入侵事故时,重要的是快速找出可疑的恶意代码,并采取有效措施,防止威胁进一步扩大。这一章讲解内存取证开源工具Volatility的用法,以及其他以Volatility为基础的开源工具的使用方法。

本书特色

本书从应对入侵事故的业务一线人员立场出发,介绍了分析恶意代码时的Python等众多开源工具的使用方法。恶意代码分析过程中,最重要的是掌握恶意代码的特征,目的在于快速分析原因,防止损失进一步扩大。与其逐一分析、应对恶意代码,不如先利用线上/线下服务和工具构建防御系统。恶意代码分析中,需要灵活运用线上服务的快速分析数据,以及应对应当秘密分析的情况和主要恶意代码的数据库。本书讲解了多种开源工具的使用方法,也给出了实际业务中可以灵活运用的解决方案。

读者对象

本书面向对恶意代码分析感兴趣的初学者,以及该领域的一线工作人员。

  • 想了解并运用Python开源工具的读者
  • 想学习多种设备恶意代码分析的读者
  • 想搭建恶意代码分析环境的IT安全一线业务人员
  • 想学习恶意代码入侵应对流程的读者

注意事项

本书以刚入门恶意代码分析技术的读者为对象,详细讲解了在本地PC搭建测试环境的方法。书中提到的恶意代码仅供学习、研究使用,未经允许,严禁用于攻击他人或公司的系统,亦禁止随意传播。对于不听劝告而触犯法律的行为,一切责任均由当事人承担。

目录

  • 作者序
  • 前言
  • 第1章 开源软件与Python环境
  • 第2章 通过peframe学习PE文件结构
  • 第3章 恶意代码分析服务
  • 第4章 使用Cuckoo Sandbox
  • 第5章 恶意代码详细分析
  • 第6章 其他分析工具
  • 第7章 利用内存分析应对入侵事故