17年5月12日,全球爆发大规模蠕虫病毒感染事件,该勒索软件攻击了上百个国家上万台电脑,医院、学校、企业,以及部分政府部门。是近些年来影响最大的网络攻击事件。
§可能大家不知道的是,几年前,就有不少专家预言了这场攻击的发生。
《黑客攻防技术宝典:反病毒篇》的作者JoxanKort和EliasBachaalany,甚至在年就将其写到了书里:
“对某一组织机构内使用的反病毒产品,使用一个或两个零日漏洞利用攻击程序,就可以攻破整个组织。就是说,一个蠕虫漏洞利用攻击程序,利用了一个我们最喜爱的反病毒程序中的零日漏洞。尽管当时没有针对反病毒程序攻击的蠕虫病毒,但是开发出这样的病毒是绝对可能的。”反病毒产品:安全软件公司提供给顾客的防护软件包。
零日漏洞:在计算机领域中,通常是指还没有补丁的安全漏洞。零日漏洞利用攻击程序则是指利用这种漏洞进行的攻击。
就像今年爆发的这场“蠕虫病毒”(WannaCry),它就是一种利用美国国家安全局(NSA)的“永恒之蓝”(EtrnalBlu)漏洞利用程序通过互联网对全球运行MicrosoftWindows操作系统的计算机进行攻击的加密型勒索软件兼蠕虫病毒(EncryptingRansomwarWorm)。
永恒之蓝(EtrnalBlu):美国国家安全局开发的漏洞利用程序,于年4月14日被黑客组织影掮客子泄漏。
尽管微软于年3月14日发布操作系统补丁修补了这个漏洞,5月12日WannaCry勒索软件利用这个漏洞传播时,很多Windows用户仍然没有安装补丁。
影子掮客(ThShadowBrokrs,缩写:TSB):年夏季出现的一个黑客组织,发布了包括美国国家安全局的黑客工具在内的数个漏洞,其中包括数个零日攻击。这些漏洞针对企业防火墙、杀毒软件和微软软件。
对大多数用户来说,反病毒产品和安全之间似乎可以划等号,但是这种想法并不完全准确。我们常常会看到类似“我的电脑中毒了。怎么会呢?我明明安装杀毒软件了!”这样的论调。
§在我们完全信任反病毒软件之前,应该考虑以下几点。
反病毒产品不能防护用户造成的错误,即反病毒产品无法防护使用社会工程学策略针对发起的攻击。因此,用户需要有基本的安全意识。
反病毒产品并不是完美无瑕的;和电脑上的其他软件一样,它们也会有漏洞和缺陷。
反病毒产品是基于已支持的特征码、启发式引擎和动静态分析技术侦测威胁。除非未知病毒或新型威胁的相关特征(行为或静态提取的相关特征)已知,否则反病毒软件无法侦测。
病毒开发和质量保证(QA)的关键部分就是绕过所有或大多数反病毒产品。总的来说,实现这一目的并不是特别困难,合法或非法的恶意软件都可以实现类似的功能(比如FinFishr)。
和其他所有软件一样,反病毒软件的漏洞同样可以被利用攻击(就像此次的爆发的比特币勒索病毒)。
与办公软件和浏览器相比,安全类产品的漏洞更容易被利用。
§其实,如果用户有下面这些安全意识,完全可以避免感染这场病毒的。
1
缺乏安全意识,禁用反病毒软件
由于缺乏安全意识,用户有时会禁用反病毒软件,来运行安装从网站下载或者通过邮件接收的应用。尽管这听起来不是很常见,但的确是反病毒软件用户计算机被感染的主要途径之一。
恶意软件通常会借助社会工程学攻击技巧:提示用户禁用反病毒软件,否则将会干扰安装过程。恶意软件也会直接向用户申请获得最高权限。如果用户在Windows系统中的用户账户控制(UAC)提示框中点击“是”,恶意软件就会禁用反病毒软件,然后开始肆意破坏。许多成功进行攻击的恶意软件通常会在带有恶意附件(文档、图片或可执行文件形式)的邮件中借助文字提示诱使用户禁用反病毒软件。
在计算机科学中,社会工程学指的是通过与他人的合法地交流,来使其心理受到影响,做出某些动作或者是透露一些机密信息的方式。这通常被认为是一种欺诈他人以收集信息、行骗和入侵计算机系统的行为。
2
反病毒软件只能防御已知的威胁
我们需要知道,在反病毒防护和侦测技术更新与病毒快速变种并使用新型感染和绕过技术的对抗中,恶意软件一直处于上风。因此,直到相关病毒样本被截获并发送至反病毒厂商分析为止,反病毒软件可能对病毒变种使用的新技术一无所知,无法侦测。
新病毒,甚至是旧病毒,都可以通过简单变形其相关代码内容,绕过一款或多款反病毒软件的基于静态特征码的侦测。
3
反病毒厂商追赶不上恶意软件作者开发变种的脚步
当恶意软件变种发布的时候,病毒编写者就知道反病毒厂商在变种样本被截获、分析直到开发相应侦测(或是感染修复)代码之前,都对新变种一无所知。不过恶意软件终归还是会被反病毒厂商捕获到的,因此病毒编写者需要更新恶意软件来绕过反病毒软件的侦测。这时候反病毒厂商会再一次更新病毒变种对应的新特征码,进而一次又一次地循环往复。这就是我们听说的软件安全行业臭名昭著的猫鼠对抗攻防游戏。
对计算机用户来说不幸的是,不管反病毒厂商再怎么追赶,都赶不上恶意软件作者开发变种的脚步。
4
我们现在使用的反病毒软件事实上是在为攻击者开启方便之门
反病毒产品和其他软件一样可以被攻破,其使用的安全策略相比办公软件套装和浏览器(如MicrosoftOffic和GooglChrom)会更薄弱一些。比如,恶意软件可以利用文件格式解析器中的漏洞进行攻击利用。反病毒软件中为防止其自身漏洞被攻击利用而采取的相关措施,很多时候要么十分薄弱,要么就根本不存在。
5
对于大型组织机构的建议
建议大家隔离有反病毒软件进行网络分析的机器。因为反病毒软件可以用来作为渗透内网的入口点,也可以用来作为切入其他组织内网的跳板之一,使攻击者可以攻破网络分析安全产品。
§举例证明一款反病毒软件对于一个组织机构来说存在的潜在危险。
目标组织机构进行了内网边界隔离保护,只有电子邮件和Wb服务器有与外界交互的接口,同时安装了所有最新的补丁。
Wb或电子邮件服务器会扫描所有接收到的文件。
Wb或电子邮件服务器拦截到的文件之一,事实上是一个针对组织机构目前所使用反病毒软件的零日漏洞。通过该漏洞利用攻击程序,电子邮件网关或Wb服务器被攻破。
讽刺的是,攻击者借助组织内使用的反病毒产品,成功渗透进入目标组织内网。
如果反病毒软件针对内网的其他机器进行网络分析,攻击者可以借助已经被攻破的邮件网关或Wb服务器,通过HTTP、SMB/CIFS或其他协议向内网的其他机器发送恶意文件,来进一步渗透内网。
如果内网中的计算机使用了同样的反病毒产品,只要被攻破的内网机器可以通过网络接触到相关计算机上安装的反病毒产品,并进行网络分析,就可以用同样的零日漏洞利用程序攻破整个计算机。
上述场景不仅适用于文件分析工具(例如,常见的反病毒软件个人桌面版),也适用于网络分析工具(比如,分析计算机上所有网络流量的工具)。如果目标机器上有网络分析工具,那么远程攻击面会变得很大,因为这类工具需要处理类似HTTP、CDP、OraclTNS、SMB/CIFS等其他一系列协议。如果文件格式解析器中存在漏洞的可能性很高,在实现网络流量分析的相关代码中存在漏洞的可能性会更高。
考虑到上述两个模块暴露的攻击面,现在你一定会对之前从未审计过的反病毒产品抱怀疑态度了。
计算机安全领域仍在蓬勃发展,未来定将充满无限美好。一本书可能无法预测将来出现的新兴安全技术,但我们现在可以做的是小心行事并明智地选择反病毒解决方案。
相关书推荐作者:JoxanKort,EliasBachaalany
JoxanKort逆向工程、漏洞研究和恶意软件分析领域知名专家,安全咨询公司Cosinc安全研究员,经常受邀在国际性安全会议上做演讲。EliasBachaalany安全专家,微软软件安全工程师,曾做过程序员、逆向工程师、自由技术写作者;另与人合著有《逆向工程实战》。
译者:周雨阳
安全研究员,喜爱英语翻译。研究方向主要为反病毒技术、浏览器安全、Wb安全,曾挖掘出谷歌、苹果、雅虎等多个厂商的漏洞并获得致谢。
目前就职于腾讯安全平台部。
逆向工程师、渗透测试工程师、安全技术人员和软件开发人员必读指南
本书由业界知名安全技术人员操刀,系统介绍了逆向工程防病毒软件。主要内容包括:防病毒软件所采纳的各种具体手段,攻击和利用杀毒软件的多种常见方法,杀毒软件市场现状以及未来市场预估。
为什么要看这本书本书旨在帮助读者了解反病毒产品是什么、不是什么,以及对它们应该有什么期待;这些信息可能并不为大众所熟知。
本书并不是要阐释反病毒产品的工作原理,而是展示在你可能正在使用的反病毒软件中真实存在的漏洞缺陷、漏洞利用代码和相关技术。同时,本书还深入探讨了绕过反病毒产品的防护技巧,以及相关的漏洞挖掘和利用方式。
学习如何攻破反病毒产品不仅对攻击者们来说大有裨益,也可以帮助你理解如何提升反病毒产品的防护效果,以及反病毒产品的用户如何才能最大程度地保护自己。
“黑客攻防系列”其他读本《黑客攻防技术宝典:Wb实战篇(第2版)》
《黑客攻防技术宝典:浏览器实战篇》
《黑客攻防技术宝典:iOS实战篇》
《Android安全攻防权威指南》
即将上市
《黑客攻防技术宝典:移动应用篇》
目录第一部分反病毒技术入门
第1章 反病毒软件入门
1.1 何谓反病毒软件
1.2 反病毒软件的历史与现状
1.3 反病毒扫描器、内核和产品
1.4 反病毒软件的典型误区
1.5 反病毒软件功能
1.6 总结
第2章 逆向工程核心
2.1 逆向分析工具
2.2 调试技巧
2.3 移植内核
2.4 实战案例:为Linux版Avast编写Pythonbinding
2.5 实战案例:为Linux版Comodo编写本机C/C++工具
2.6 内核加载的其他部分
2.7 总结
第3章 插件系统
3.1 插件加载原理
3.2 反病毒插件的种类
3.3 高级插件
3.4 总结
第4章 反病毒特征码技术
4.1 典型特征码
4.2 高级特征码
4.3 总结
第5章 反病毒软件的更新系统
5.1 理解更新协议
5.2 剖析更新协议
5.3 错误的保护
5.4 总结
第二部分绕过反病毒软件
第6章 绕过反病毒软件
6.1 谁会使用反病毒软件的绕过技术
6.2 探究反病毒软件侦测恶意软件的方式
6.3 总结
第7章 绕过特征码识别
7.1 文件格式:偏门案例和无文档说明案例
7.2 绕过现实中的特征码
7.3 绕过特定文件格式的相关提示和技巧
7.4 总结
第8章 绕过扫描器
8.1 绕过技术的通用提示和策略
8.2 自动化绕过扫描器
8.3 总结
第9章 绕过启发式引擎
9.1 启发式引擎种类
9.2 总结
第10章 确定攻击面
10.1 理解本地攻击面
10.2 错误的访问控制列表
10.3 理解远程攻击面
10.4 总结
第11章 拒绝服务攻击
11.1 本地拒绝服务攻击
11.2 远程拒绝服务攻击
11.3 总结
第三部分分析与攻击
第12章 静态分析
12.1 手动二进制审计
12.2 总结
第13章 动态分析
13.1 模糊测试
13.2 总结
第14章 本地攻击
14.1 利用后门和隐藏功能
14.2 挖掘非法特权、权限分配和访问控制列表
14.3 在内核态查找隐蔽的功能特性
14.4 更多的内核逻辑漏洞
14.5 总结
第15章 远程漏洞
15.1 实施客户端漏洞利用攻击
15.2 服务器端的漏洞利用
15.3 总结
第四部分当前趋势与建议
第16章 当前反病毒防护趋势
16.1 匹配攻击技术与目标
16.2 针对政府机构和大型公司
16.3 总结
第17章 一些建议和未来展望
17.1 给反病毒软件用户的建议
17.2 给反病毒厂商的建议
17.3 总结
赠书活动
更多安全好书: