前言

前言

感谢你购买并阅读本书!通过阅读本书,你会了解到有关反病毒产品和逆向工程的知识。值得一提的是,本书所讨论的逆向工程的相关技术和工具,不仅可以应用在反病毒软件上,也可以应用于其他软件产品。无论你是安全研究员、渗透测试工程师还是其他领域的信息安全专家,都可以从本书中受益。当然,如果你是反病毒工程师,同样能从中受益,因为你将了解到攻击者如何分析反病毒产品,如何将其拆分成不同模块,以及你该如何避免反病毒产品被攻破或者如何增加破解难度。

我想强调的是,虽然本书重点在于讲述与反病毒产品相关的理论知识,但是也提供了一些实战案例,展示了如何在实际的应用程序中运用逆向工程、漏洞挖掘和漏洞利用技术。

本书概述

本书专为那些想更好地了解反病毒产品功能实现原理的读者而撰写,无论你身处攻防战役中的哪一个阵营,都不妨研读一番。本书旨在帮助你了解在实战过程中针对特定的任务目标,何时以及如何选用正确的技术和工具,同时又该重点关注反病毒产品的哪些部分。如果下列描述中有一条或多条与你的情况相吻合,那么没错,本书就是为你而写的:

  • 想更深入地了解反病毒产品的安全性;

  • 想更深入地了解逆向工程的相关技术(也许目的是逆向分析反病毒产品);

  • 想绕过反病毒产品的防护体系;

  • 想动手将反病毒产品拆分成多个模块;

  • 想编写攻击反病毒产品的漏洞利用程序;

  • 想评估反病毒产品;

  • 想从整体上提高自己的反病毒产品的安全性,或者想知道如何编写防御性代码以对付攻击性代码;

  • 热爱编程,或者想丰富信息安全领域的相关知识,提升技术水平。

本书结构

全书内容组织如下。

第1章,反病毒软件入门 带你一览反病毒软件的历史,同时探讨目前市场上主流反病毒产品的典型及非典型功能。

第2章,逆向工程核心 介绍如何通过调试反病毒软件或禁用反病毒软件的自我保护功能等相关技巧来逆向分析反病毒产品。这一章还将探讨如何结合逆向工程技术使用Python为Avast for Linux编写附加组建程序,并介绍一款使用C/C++为Comodo for Linux反病毒软件编写的非官方软件开发工具包(software development kit,SDK)。

第3章,插件系统 讨论各式反病毒产品是如何使用插件的,这些插件是如何被加载和分发的,以及使用反病毒插件的目的。

第4章,反病毒特征码技术 带你一览反病毒产品中最典型的几种特征码技术,以及一些高级特征码。

第5章,反病毒软件的更新系统 阐释反病毒软件是如何实现更新的,更新系统是如何开发的,以及更新协议是如何工作的。这一章末尾还将通过一个实例展示如何逆向分析一个简易的更新协议。

第6章,绕过反病毒软件 概述如何绕过反病毒软件,使程序文件避开相关检测。这一章将讨论一些一般性技巧,并且探讨应该避免使用的技术。

第7章,绕过特征码识别 紧接第4章内容,带领你探索如何绕过各种特征码检测技术。

第8章,绕过扫描器 以反病毒扫描器为核心,继续讨论如何绕过反病毒软件。这一章将介绍如何绕过静态启发式扫描引擎、反汇编、反模拟和其他反病毒技术,还将介绍如何编写一个用以生成绕过反病毒扫描器检测的可执行文件的自动化工具。

第9章,绕过启发式引擎 展示如何同时绕过反病毒软件采用的静态和动态启发式引擎,以此来结束反病毒防护绕过技术的讨论。

第10章,确定攻击面 介绍攻击反病毒产品的有关技术,指导你发现反病毒软件暴露的本地和远程攻击面。

第11章,拒绝服务攻击 讨论如何利用反病毒软件的漏洞和缺陷,在本地和远程向反病毒产品发起拒绝服务攻击。

第12章,静态分析 带领你学习如何静态审计反病毒软件来挖掘其中存在的漏洞,包括一些真实案例。

第13章,动态分析 继续讨论如何挖掘反病毒产品的漏洞,但这里将利用动态分析技术。这一章将会重点介绍现今最流行的漏洞挖掘方法——模糊测试,并向你阐释如何搭建一个统一管理的分布式模糊测试工具,来自动挖掘和分析反病毒产品的缺陷。

第14章,本地攻击 介绍利用本地漏洞攻击反病毒产品的过程,并将重点关注逻辑漏洞、后门和内核泄漏的利用。

第15章,远程漏洞 讨论如何利用反病毒产品中的内存损坏漏洞,编写远程漏洞利用程序。同时,还将展示如何针对反病毒软件的更新服务进行攻击,并给出一个针对某个更新服务协议的完整的漏洞利用程序。

第16章,当前反病毒防护趋势 讨论利用反病毒软件缺陷的攻击者会瞄准哪些反病毒产品用户,而哪些用户不太可能成为该类恶意攻击的目标。同时,本章还会带你一窥滋生该类缺陷的“黑暗世界”。

第17章,一些建议和未来展望 最后,为反病毒软件的用户和供应商提供一些建议,并展望未来反病毒产品可以采用哪些防护策略。

目标读者

本书主要面向拥有中级技术水平的个人开发者和逆向工程师,不过资深逆向工程师同样会从本书所讨论的技术内容中获益。如果你是反病毒工程师或恶意软件逆向工程师,那么本书能帮助你了解攻击者会如何利用软件漏洞。同时,本书也阐释了如何避免一些不利情况,如攻击者利用你的反病毒产品中的漏洞攻击你要保护的用户。

更资深的专业人士可以通过阅读本书的几个特定章节,来获得更多的相关知识和技能。比如,如果你想要了解如何编写针对反病毒软件的本地和远程攻击利用程序,可以参考第三部分“分析与攻击”。在该部分中,你将了解从确定攻击面开始到发现漏洞再到利用漏洞的整个过程。如果你对绕过反病毒防护感兴趣,那不妨参考第二部分“绕过反病毒软件”。总之,你可以从头到尾阅读本书,也可以根据自己的需求,有选择性地进行阅读。

所需工具

强烈的求知欲是你阅读本书前最需要的准备。尽管我已经尝试尽可能在书中使用开源的免费软件来做演示,但是有的地方还是会用到一些收费软件。比如,在本书的很多案例中,我用到了商业版软件IDA,因为除个别软件外,大多数反病毒产品都是闭源的商业软件。这就要求我们在分析过程中用到逆向软件,而IDA是最常用的一款。其他所需的工具包括编译器、解释器(比如Python)和其他一些没有开源但是可以免费下载的工具,比如Sysinternals。

网络资源

为了让你能够简单快速上手,本书中可能需要用到的一些基础工具都可以在Wiley为本书建立的页面上下载:http://www.wiley.com/go/antivirushackershandbook

总结

本书旨在帮助读者了解反病毒产品是什么、不是什么,以及对它们应该有什么期待;这些信息可能并不为大众所熟知。本书并不是要阐释反病毒产品的工作原理,而是展示在你可能正在使用的反病毒软件中真实存在的漏洞缺陷、漏洞利用代码和相关技术。同时,本书还深入探讨了绕过反病毒产品的防护技巧,以及相关的漏洞挖掘和利用方式。学习如何攻破反病毒产品不仅对攻击者们来说大有裨益,也可以帮助你理解如何提升反病毒产品的防护效果,以及反病毒产品的用户如何才能最大程度地保护自己。

电子书

扫描如下二维码,即可购买本书电子版。

{%}

目录