在比特币勒索事件频发,影响越发严重的今天,深入理解比特币勒索,有助于我们更好地为客户提供安全服务和安全产品。简单地说,比特币勒索的核心就是“要钱”。黑客利用某些技术手段阻止受害者正常访问数据或电子设备,通过逼迫、恐吓或威胁受害人的方式,已达到骗取赎金的目的。通常,黑客会给出交付赎金的时间,并威胁超过规定时长之后,赎金将翻倍或数据会被清除。
- 作者:安华金和 来源:Linux中国| 2017-06-08 12:26
2017 年 5 月 12 日 20 时,全球爆发大规模比特币勒索感染事件。美国、英国、俄罗斯、中国等多个国家都遭到了 WannaCry 勒索软件的攻击。一时关于比特币勒索的相关报道呈井喷之势,充斥于媒体报端。但多数内容不是流于表面,就是过于片面化,并不系统。经过多年对比特币勒索的密切关注和深刻理解,安华金和攻防实验室总结整理出颇具技术含量的比特币勒索发展报告,以下报告以比特币勒索为研究对象,以比特币勒索的发展为纲,尝试为各位勾勒出一副全面的比特币勒索的攻击和防护建议图。
比特币勒索
在比特币勒索事件频发,影响越发严重的今天,深入理解比特币勒索,有助于我们更好地为客户提供安全服务和安全产品。简单地说,比特币勒索的核心就是“要钱”。黑客利用某些技术手段阻止受害者正常访问数据或电子设备,通过逼迫、恐吓或威胁受害人的方式,已达到骗取赎金的目的。通常,黑客会给出交付赎金的时间,并威胁超过规定时长之后,赎金将翻倍或数据会被清除。
比特币勒索的危害不单是伴随勒索带来的经济损失,更多的是因为勒索攻击造成医疗、金融、零售等行业服务中断,从而引发的经济、信誉、时间等方面的损失。美国圣地亚哥州一所医院遭到比特币勒索攻击,最终所有医生无法使用电子设备,只能通过纸笔重新为病人服务。正是没有电子设备的辅助,医生无法准确判断病人情况,造成多起病情延误,给病人以及家属带来无可挽回的损失。
早期的比特币勒索
现今,比特币勒索发生频率日益频繁,已经引起了各方的重视。很多人以为比特币勒索是新出现的黑客攻击方法。但实际上,比特币勒索并非新鲜事,最早在 1989 年就出现了第一款比特币勒索软件,而后直到 2005 年才开始广泛使用。随着计算机技术的发展,2005 年到 2015 年的 10 年发展中,比特币勒索经历了四次技术形态的进步。每次技术进步都在多个方面进行了优化,最终逐渐形成了现在的比特币勒索软件。由于历史所限,每种技术都在一段时期内占据着主导地位。2005 年到 2009 年之间冒牌应用软件兴起;2010、2011 两年间“假杀毒软件称雄”;2013、2014 年以锁勒索为主;2015 年之后比特币勒索就逐渐进入加密勒索为主的时代。
勒索软件家族大事件表
由于历史所限,每种技术都在一段时期内占据着主导地位
现在比特币勒索是一种结合了社会工程学、软件漏洞、蠕虫病毒、TOR 网络等多种技术的黑客攻击手法。在历史上比特币勒索也经历过初级阶段:冒牌应用软件和假杀毒软件。这两者更多应用的是社会工程学,勒索的方式主要利用客户对安全的无知。冒牌应用软件时代出现在 2005 年,当时出现很多辅助操作计算机的第三方工具。黑客编写了会引起计算机异常的第三方系统工具供客户使用,客户使用操作系统出现各种问题,黑客再向客户收取计算机维修费和安全检测费用,通过这种方式诈骗钱财。
接着 2009 年杀毒软件大规模兴起,很多黑客编写能伪造安全问题的杀毒软件,客户使用伪杀毒软件很快就能发现很多根本不存在的安全问题。这时候假杀毒软件以修复安全点为由,向客户进行收费。每个假安全隐患收费在 40 美金到 100 美金之间。为了取得用户的信任,黑客伪造的杀毒软件,会在风格和样式上和当时最流行的杀毒软件保持一致。
黑客伪造的杀毒软件,会在风格和样式上和当时最流行的杀毒软件保持一致
但这两种方式存在弊端,即黑客难以避免和受害人相接触。如此一来,黑客一旦被发现就极易被执法机关抓捕,所以在 2012 年之后这两种方式逐渐偃旗息鼓,与此同时,锁勒索和加密勒索逐渐占据了整个比特币勒索的市场。
现代的比特币勒索
现在比特币勒索主要指锁勒索和加密勒索这两类。这两类勒索利用 TOR 网络和比特币收款,有效的隐藏了收款中给执法者留下的追踪链条,成功地减小了不法分子的被捕几率。这两种勒索主要的区别在于,他们基于不同层来阻断用户访问数据。
第一类锁勒索(locker ransomware)也称为计算机锁(Computer locker)。这种方式一般是锁定计算机或用户界面,然后要求用户支付费赎金,以恢复对数据的访问。
锁勒索
锁勒索这种方式现在较常出现在手机端。锁屏幕主要是 2 种方式:一种是添加一个置顶框在界面上覆盖界面,阻止用户的正常操作。这种方式未对低层文件并做任何修改,只是添加了一层界面。该方式可以通过很多技术手段处理,并不需要向黑客缴纳赎金。第二种方式是利用某些漏洞拿到 root 权限设置屏保或修改锁屏密码,然后对受害者进行勒索。这种方式可以在损失一定数据的情况下通过手机的 recovery 方式进行解锁。总体来说,锁勒索这种方式比较容易被破解,黑客的勒索界面也多伪装成司法机关,进行吓唬式的勒索。如上图就是黑客冒充的各国司法机关的勒索样例。
现在更多见的是第二种加密勒索(crypto ranspmware),也称为 数据锁(data locker)。这种类型的勒索软件被设计成可以查找用户机器上所有有价值的数据,然后对数据进行高强度的加密(AES 256 等),加密后删除原始数据。客户如果没有备份,难以通过单纯的技术手段破解被加密的文件。
加密勒索,一般不会对操作界面、鼠标和键盘等进行锁定,数据文件被加密后,不会导致操作系统出现异常,受害者还可以使用计算机。
加密勒索
锁勒索和加密勒索是当今比特币勒索的两种方式。越来越多的黑客选择使用加密勒索,主要因为加密勒索的赎金支付率比锁勒索更高。2016 年加密勒索赎金支付率为 4.3%,而锁勒索的赎金支付率仅为 1.5%。
今天的比特币勒索
今天的比特币勒索已经不是一种单纯的黑客技术,更不是单纯的恶意软件,而是一种成熟的“商业模式”(ransomware as a service,RaaS),围绕比特币勒索已经形成了一条完善的产业链。在暗网中存在大量出售比特币勒索服务的黑客团体,他们会提供模块化的比特币勒索服务组件,这些组件可以客制化的生成勒索套件,旨在帮助不了解比特币勒索的初级黑客完成比特币勒索攻击。而黑客只需要为该服务支付一定的费用,指定收款钱包,以及赎金金额即可。
黑客支付的比特币勒索服务分为两种模式:一种是不需要缴纳费用,但需要和开发者每笔分账,常见分账比例多为 4、6开。另一种模式则采用单位时间或终身买断制,价格差别较大。笔者在暗网中发现最便宜的一款只需 39 美金就可终身买断。
最便宜的一款只需 39 美金就可终身买断
比特币勒索软件提供者,不只提供勒索软件,更多的还会提供各种传播比特币勒索软件的僵尸网络、恶意广告、垃圾邮件等服务。比特币勒索的出现,给黑产数据变现提供了更低廉的成本、更便捷的方法、更小的被捕风险、以及更简易的操作方式。
随着 RaaS 的成熟,从 2013 年起比特币勒索攻击,就开始进入高速发展期,2016 年则直接进入疯狂期。2015 年负责制作比特币勒索的黑客团体一共 29 个,但到 2016 年底负责制作比特币勒索的黑客团体已达到 247 个,增幅达到 752%。
2016 年底负责制作比特币勒索的黑客团体已达到 247 个,增幅达到 752%
不光制造比特币勒索的黑客团队变多,比特币勒索的攻击频率也极速提升。据监测,2015 年平均每天可检测到全球遭到 1000 次比特别勒索软件攻击,而 2016 年全球可检测到平均每日遭到比特币勒索攻击上升到 4000 次,一年间每日攻击次数提升 300%。
一年间每日攻击次数提升 300%
比特币勒索在这种持续的高速发展下,越来越多的黑客团伙从传统恶意软件、银行木马、间谍软件、网络犯罪等模式中,转入比特币勒索。比特币勒索已于 2016 年底占据了所有黑客攻击模式的 66%。而回顾在同年 1 月份,当时比特币勒索占比只有 18%。发展的速度之快令人震惊,可以肯定比特币勒索即将取代电信诈骗成为未来数据安全的头号死敌。
比特币勒索已于 2016 年底占据了所有黑客攻击模式的 66%
比特币勒索,不单瞄准某些地区和行业,而是采取了全球化布局。常见的比特币勒索工具已经支持 28 个国家和地区,黑客更是在全球范围内散布。经监测,2016 年初就发现,有针对中国地区的比特币勒索软件,2016 年第四季度和 2017 年第一季度,中国已和全球同步遭受多次比特币勒索攻击。
具体攻击事件大事记
比特币勒索的经济效益
比特币勒索的飞速发展和它背后的经济利益是密不可分的。2016 年负责编写勒索软件负载的黑客团体一年营收产值预计 6000 万美元,而这种黑客团体有 200 多个,保守估计 2017 年比特币勒索将是一个 100 亿级别的市场。
2017年比特币勒索软件逐渐呈现两种不同的发展方向。一种方式偏向企业级目标,采用“定点打击式”。这种方式黑客只追求高质量的受害者,而不是更多的受害者,往往单笔勒索赎金在一万美金左右。和这种“定点打击式”相反的是“乱枪打鸟式”,这种主要类型的比特币勒索以快速、广泛、大量传播为目,主要依靠更多的感染者来诈取赎金。这种方式主要是针对个人目标进行攻击,他们攻击的最终点是个人数据,多在恶意广告、恶意信息中夹带,感染源有很强的自动复制能力,单笔赎金较低,在300美金左右。
比特币勒索的类型
比特币勒索从 1989 年至今,历经二十余年的发展。逐渐从只针对 DOS 单一平台的数据勒索软件发展成横扫 DOS、Windows、Android 、Mac、关系型数据库、NoSQL 数据库等多种数据存储平台的勒索软件。其中 Windows 和 Android 发展时间较长变化较多,而针对 Mac、关系型数据库和 NoSQL 数据库的比特币勒索都是在 2016 年才发现首例样本。
DOS比特币勒索
第一款比特币勒索软件 PC Cyborg 就是以当年流行的操作系统 DOS 为目标。PC Cyborg 的传播方式是软盘分发的形式。软盘名称写成“艾滋病信息”来诱导用户读取其中信息。一旦用户使用该软盘,软盘会偷偷替换 DOS 系统目录下的 AUTOEXEC.BAT 文件。该文件会记录用户开关机次数,一旦满足 90 次,PC Cyborg 就隐藏用户文件,提出信息提示用户软件许可过期,要求用户给不法分子通过邮政寄去 189 美金。
由于 DOS 当时缺乏有效的传播方式,所以用户不使用来历不明的软盘就可以避免被感染,甚至用户熟悉 DOS 系统,可以通过手动的方式改回被不法分子隐藏的文件。DOS 阶段由于传播方式所限,比特币勒索并没有大规模传播的土壤,所以影响并不大。
Windows 比特币勒索
Windows 是比特币勒索变化最多的平台。针对 Windows 平台的勒索软件有 200 多种,分别采用不同的方式阻止用户正常访问数据。基本可以分成锁定系统屏幕、伪装杀毒软件、伪装当地执法机构、隐藏用户文件、删除用户文件和加密用户文档数据等多种方式。大部分勒索软件会采取其中多种方式联合使用。由于 Windows 系统多被用于生活和个人工作场景,垃圾邮件、恶意广告、系统漏洞等都给 Windows 系统遭受比特币勒索感染提供了机会。最近席卷全球的比特币勒索就是利用 Windows 的 443 端口的远程执行漏洞,将比特币勒索感染到目标机器。
由于 Windows 平台感染方式较多,安华金和攻防实验室建议做好以下五点防护措施:
- 平时做好重要文件的异地备份;
- 开启系统防护墙;
- 对于不使用的服务或端口进行手动关闭;
- 打开系统自动更新,积极更新最新补丁;
- 不使用微软停止支持的操作系统(xp、sever2003)。
Android 比特币勒索
安卓比特币勒索起步比 Windows 比特币勒索稍晚,但勒索软件种类和攻击方式并不比 Windows 少多少。自从 2013 年发现首例冒充杀毒软件的安卓比特币勒索软件后,安卓比特币勒索就开始大量出现。安卓平台的比特币勒索攻击方式可以分为锁定系统屏幕、拦截手机来电、伪装杀毒软件、删除用户文件、加密通讯录等。
安卓比特币勒索的传播方式主要是通过恶意应用,很多安卓勒索软件会伪装成游戏的外挂、刷赞、刷钻、刷人气的软件。由于大量安卓软件商城允许第三方开发,在上线软件的时候并未做严格审查,使得恶意应用堂而皇之的挂在商城出售。恶意软件冒充高排名软件被受害人大量下载,受害人执行恶意软件后,导致手机被勒索。
安华金和攻防实验室对预防安卓比特币勒索建议做到以下三点:
- 从可信软件源下载应用;
- 关键数据定时备份;
- 提高辨别勒索软件的能力。
勒索软件有两个特征,一是.勒索软件一般小于 1MB;二是勒索软件会申请 “SYSTEM_ALERT_WINDOW” 权限或诱导用户激活设备管器。
Mac 比特币勒索
由于 Mac 严格的商店审核流程,在安卓比特币勒索泛滥的情况下,Mac 就是移动端的一片净土,无一例 Mac 比特币勒索样例。然而 2016 年 3 月份这片净土被打破,Mac 发现首例比特币勒索软件。
知名 BT 软件 Transmission 中被恶意植入了包含恶意代码的 General.rtf 文件。该文件虽然使用正常的 RTF 图标,但实际上却是一个可执行文件,下载到恶意软件的用户在执行该软件后会加密目标文档向客户实施勒索。由于此事在发生四小时后就被发现,苹果第一时间下架存在恶意代码的 Transmission,所以此次比特币勒索并未给用户带来太多影响。
NoSQL 比特币勒索
NoSQL 数据库作为一种新型的数据库,因自身特性,在云上大放异彩,数以万计的 NoSQL 数据库在云上运行。由于 NoSQL 在安全上还不够成熟,所在默认的 NoSQL 存在安全漏洞和安全错误配置。2016 年 12 月到转年 1 月份的不足一个月时间里,mongodb、ElasticSearch、Cassandra、redis、hadoop、CounchDB 等多个NoSQL 数据库遭到多组黑客轮番比特币勒索攻击。
安华金和攻防实验室建议用户:
- 对 NoSQL 数据库进行安全配置(不要使用默认配置)并积极升级修复存在漏洞;
- 同时要做好关键数据对的备份工作;
- 或者采用 NoSQL 数据库防火墙可以有效的保护 NoSQL 数据库免受比特币勒索攻击。
关系型数据库比特币勒索
关系型数据库自身的安全设计已趋于完善,处于内网的环境中有效的减少了被勒索软件攻击的可能。除去针对操作系统的加密勒索会对数据库文件进行加密,造成数据库不可用外。2016 年发现有专门针对数据库的勒索软件出现。
专门针对数据库的勒索软件,多采用恶意代码注入数据库专用工具的方式。为了防止被发现,恶意代码还对自己采用 warp 做加密处理(一种 oracle 支持的加密方式)。恶意代码跟随数据库专用工具感染每一个被访问的数据库。恶意代码对每种不同的数据库账号分别使用不同的方式,以保证能控制受害者数据,达到勒索效果。
安华金和攻防实验室建议用户:
- 对数据库访问工具做安全检查防止带入恶意代码;
- 做好关键数据对的备份工作;
- 实时采用数据库防火墙对每个访问数据库的包进行审查,阻止恶意代码进入数据库。相信做到以上几条可以帮助,数据库免受比特币勒索攻击。
比特币勒索原理模型
比特币勒索是一个相当复杂的攻击流程,可以对多种平台和软件发动攻击。主流比特币勒索软件可以根据不同的软硬间环境做出各种适应性变化,虽然各种比特币勒索软件千变万化,但核心依然符合感染,下载,执行,勒索,收款的的整体流程。
比特币勒索是一个相当复杂的攻击流程
感染
感染是整个比特币勒索的第一步,也是最关键的一步。这一步有多种处理方法,主要可以分为:网络安全漏洞、垃圾邮件、下载器、僵尸网络、社会工程学和自我传播。每种传播分别适合不同的环境,同时也有大量组合使用的样例。
社会工程学辅助下的垃圾邮件一直是分发各种网络恶意软件的首选方法,比特币勒索也不例外。七成以上的比特币勒索攻击都是从垃圾邮件的附件开始,为了保护自己不被追踪,发送垃圾邮件的服务器一般都使用属于僵尸网络的服务器进行发送,垃圾邮件通常包含恶意附件或恶意 URL,来对服务器进行感染。
下载
当恶意 URL 或恶意软件在被害者机器上打开时,会收集当前机器的信息。收集当前机器信息有两个目的:1、识别被害机器操作系统,选择符合操作系统的恶意软件下载;2、识别当前机器是否为虚拟机,如果是虚拟机或虚拟化环境,为了逃避被发现,部分勒索软件会选择,停止所有后续行为,终止此次比特币勒索攻击。此举有效的保护黑客所控制的 C&C 服务器,避免 C&C 服务器被发现,而被列入通讯黑名单。如果确定为一台实体机,在收集完信息后会把信息发送到黑客准备好的C&C服务器上,同时从 C&C 服务器上自动下载一款适合目标机的恶意软件。
勒索
在真正执行勒索软件之前,恶意软件会先尝试利用漏洞来获取一定的用户权限,尝试去关闭一些系统自带的安全保护机制,部分勒索软件会根据关闭情况,判断是否继续攻击,但也有直接进行勒索攻击的样例。
勒索软件被部署到目标机器上,下一步就要开始实施勒索。勒索的手法和勒索软件使用的技术有关。前文提到现在主流的勒索有两种类型,一种是锁勒索,另一种是加密勒索。
锁勒索主要是采用锁定用户屏幕的策略,勒索软件显示一个全屏幕窗口,覆盖整个桌面以显示其勒索信息,后台会有一个进程时刻监视勒索窗口是否被关闭,一旦被关闭就立马重启一个,给受害者一种一直被锁定的错觉。除了可以调用 Windows API 实现外,还发现有使用浏览器锁定桌面的。分析后台发现,其实一直置顶的窗口是个浏览器,这种类型的锁,只要杀死浏览器和辅助进程就可以破解,但这种方式提供了一种跨操作系统平台的锁方式,不光 PC 端容易遭到这种勒索攻击,移动端也会。安卓系统主要是通过调用 Android ExecutorService objects 来定期检查置顶的活动窗口,指定窗口一旦被关闭立马重启,最终给用户造成手机被锁屏的错觉。
实际上,锁勒索没有修改底层的数据,只是通过一些手段防止用户使用而已。单纯的锁勒索会有很多方式破解,但加密勒索就没那么容易了,加密勒索对底层文件进行了修改。比特币勒索多采用对称秘钥和非对称密钥相结合的方式,对称加密能保证加密的效率,非对称加密能保证密码不被受害者获得。基于这两种加密方法的优点,现在基本加密模型均综合使用两种方法。
现在基本加密模型均综合使用两种方法
首先,用户的文件会被随机生成的 Key 用 AES-256 进行加密,接着会把 Key 用 RSA 公钥进行加密。加密后存储于被加密的文件中,最后把原始文件删除。不同的勒索软件在处理 RSA 公钥的时策略不同,主要分两种,一种是直接在勒索软件中写死RSA公钥,保证即便当时无法和黑客的 C&C 服务器通讯也可以顺利完成整个加密过程,但缺点是需要每次生成不同的勒索软件。另一种是 RSA 公钥来自当时的 C&C 服务器,其优点是勒索软件不需要生成不同的勒索软件,提高了自传播的成功率,但在加密的过程中如果无法正常访问黑客的 C&C 服务器,会导致加密失败。
扩散
这一步是和勒索步骤往往是同时进行的。勒索软件有扫描模块,会自动通过被感染机器的网卡、驱动来探测网络中的其他机器和机器上的其他电子设备,发现可以访问的设备后会尝试把感染部分复制到有权限的其他机器或电子设备中。其他设备如果被感染,就又会重复感染、下载、勒索、扩散的过程,直至勒索软件蔓延至整个内网之中。
比特币勒索的趋势
近年来比特别勒索逐渐跳出 Windows 和移动端的限制,从勒索个人向勒索数据价值更高的金融、医疗、零售、教育等行业进发。2015 年开始,有迹象表明,大部分贩卖比特币勒索负载的黑客团体在尝试并探索更多样威胁企业数据的方法。企业的关键数据主要保存在数据库中,因此和数据库相关的文件已经成为勒索软件的首要目标。据统计,2016 年全年共有 96% 和 81% 的加密勒索软件会针对数据库数据文件和 SQL 文件进行加密勒索。
和数据库相关的文件已经成为勒索软件的首要目标
除了利用操作系统对数据文件实施加密勒索的手法外,安华金和攻防实验室总结发现了大量直接针对数据库的比特币勒索攻击,直接针对数据库的比特币勒索软件在不同场景下有较大区别。
针对数据库的比特币勒索攻击
随着黑客团体对数据库的深入了解,2016 年底无论是云环境的数据库还是内网环境的数据库都遭遇了大规模勒索攻击。从 2016 年 12 月 27 日开始,云环境上的 mongodb、ElasticSearch、Cassandra、redis、hadoop、CounchDB、MySQL 等数据库接连遭到多个黑客团体实施比特币勒索,甚至出现一同台数据库被不同黑客组织重复勒索。此次大规模针对数据库的持续勒索攻击最终造成数以万计的数据库被黑客勒索。就在同一时段内,网数据库也遭遇了黑客的比特币勒索,虽然内网数据库被感染的数量远不如云上的数据库,但单笔勒索的费用要比云上数据库高出许多。
黑客在攻击云上数据库和内网数据库中采取了截然不同的思路,云上更类似我们前面提到的乱枪打鸟式。黑客基于 43 亿个 IPv4 地址做整体扫描,通过未设身份验证或弱口令,入侵数据库,利用拿到的数据库权限对数据进行删除、隐藏或转移,最后留下勒索信息。虽然这种类型每笔勒索费用不高,但庞大的基数还是给黑客团体带来了丰厚的利润。针对内网的数据库勒索则采取了完全不同的打法,他们在知名论坛上挂载夹杂恶意代码的专业工具,利用受害者使用工具的机会,把恶意代码注入到数据库中,在确认数据库有足够有价值的数据之后才实施勒索行为,反之则会潜伏在数据库上伺机爆发。这种勒索软件具有很强的隐藏性和反侦察性。
云上数据库的比特币勒索
针对云上数据库的比特币勒索具备明显的特征化和自动化,以 2016 年 12 月云上 mongodb 被勒索为例,此次攻击黑客整个过程完全采用了自动化脚本。攻击主要分成两大部分:第一部分是下图的红线区——扫描准备阶段。黑客利用脚本在 43 亿的 IPv4 上对 27017(27017 端口是 mongodb 安装后的默认通讯端口)端口进行批量扫描,通过指纹识别目标 IP 是否存在 mongodb 数据库,如果存在,再次尝试登录。如果登录成功则把IP记录在可入侵列表中,准备在第二阶段使用。(mongodb 默认安装无密码,只要知道 IP 和端口就可以访问)
针对云上数据库的比特币勒索具备明显的特征化和自动化
在黑客获得足够多的可入侵 IP 后,可以启动图中绿线的部分。这部分是实际进行勒索攻击的部分。自动化脚本从可入侵列表中批量取出 IP 地址,利用 pymongodb 登录目标数据库。然后通过 mongodbdurp 下载数据到指定服务器(后来发现此次有部分黑客根本没转移数据就直接删除,也就是说即便受害者付了赎金依然无法取回数据),删除数据库中数据,最后插入勒索信息,等待赎金。
删除数据库中数据,最后插入勒索信息,等待赎金
这种全自动化的勒索过程,往往需要目标数据库广泛存在安全漏洞或配置错误。12 月份到 1 月份的云上数据库勒索惨剧就是利用了 NoSQL 数据库默认不做身份验证的缺陷。如果以足够的安全标准来配置数据库或积极升级,相信可以极大地避免此类勒索攻击事件发生。
内网数据库的比特币勒索
内网数据库的比特币勒索思路和云上的截然不同,不再是通过扫描和指纹发现数据库。而是通过把恶意代码隐藏在数据库工具中。例如同期爆发的 Oracle 比特币勒索,就是在 Oracle 知名工具 PL SQL Developer 中加入恶意代码。恶意代码在伴随 PL SQL Developer 访问数据库后,会根据当前的用户情况和环境采用不同的勒索路线,具体见下图。并且在勒索之前还会对数据库的创建时间做判断,以保证只勒索有价值的数据库。如果当前数据库创建时间较短,则会潜伏下来,等到数据库积累足够多有价值的数据再进行勒索。
Oracle 比特币勒索
这种手术刀式的勒索方式相当精准,基本可以做到勒索的每一个目标都是有数据价值的库,该勒索软件在不同的用户权限下也会采取不同的策略进行勒索。如果能拿到 SYS(红线),用户就会直接对系统表下手,把系统表转存到其他地方,再删除系统表以此威胁用户交钱。如果只能拿到 dba 账号(紫线),就采取删除所有非系统表的方式对客户进行数据勒索。如果只能拿到一般账号(绿线),就会采用锁账号的方式阻止用户访问数据库,从而实施勒索。
在这个数据库比特币勒索软件的身上,我们看到已经有一群黑客对数据库做了深入的研究,让勒索软件可能按照环境和当前权限实现各种不同的勒索方式。为了提高准确性,减少暴露自己的可能,黑客还对数据库建立时间做判断,没有十足把握绝不出手,最后还利用编码技术来躲避数据库扫描类工具对改恶意代码的检查,保证不会在潜伏阶段被受害者发现。
防护比特币勒索
比特币勒索有着向数据库深入的趋势,无论是乱枪打鸟的云上比特币勒索,还是定点打击的内网比特币勒索都应该引起各位数据库安全工作者的警惕。除了警告用户注意垃圾邮件、恶意广告和定期备份数据、数据库注意安全配置、使用高强度口令之外,我们还可以做得更多。
安华金和攻防实验室建议,帮助用户建立定期安全探查+预先防护的双重保障。针对数据库的定点型勒索攻击会有一定的潜伏期这一特点,定期做安全探查很可能在攻击行为真正爆发前,揪出潜伏在数据库中的威胁,预先做好防护工作,排除这些威胁,防止数据库信息或数据库业务遭受损失。
数据库漏扫的授权检测中有专门针对数据库中异常包、存储过程、触发器、各项参数以及后门的检测语句,这些检测语句可以帮助用户早发现、早铲除潜在的威胁。现在数据库漏扫工具已经可以准确检测出数据库是否被此次勒索软件入侵,并给用户提出修复建议。
仅仅依赖于漏扫的定期巡检是远远不够的,漏扫能发现的基本属于已经出现的安全威胁,不过对未知的安全威胁的探查能力不足。想要对未知的此类安全威胁做防护则需要具备能读懂 SQL 和能解密加密数据库两项能力的数据库防火墙。
能解密加密数据库的意思就是可以对 Oracle 的密文存储过程进行解密操作。第三方工具向 Oracle 发送大量数据,其中很多数据都会以加密包的形式发送,只有准确破解加密包的内容才可能为语法分析做好准备。Oracle 的加密过程 warp 可以通过 Oracle 提供的函数完成,但 Oracle 并不提供直接函数进行解密,而需要自己实现。解密并不复杂,就是把上面 wrap 的过程反正来一次,首先通过网络分析把所有断包攒成一个整包,然后对这个加密的整包进行 base64 解码,接着将解码后的每个字节按照一张固定的替换表进行单独替换,替换后字符串按照 LZ 算法进行解压则可以获得加密存储过程的明文。
数据库防火墙
准确的破解这种加密存储过程的能力,不但在这个勒索案例中十分关键,也是防护未知第三方工具夹带恶意存储过程向数据库发送的关键。如果不能解决解密问题,最终只能对加密的恶意存储过程进行指纹比对。然而,指纹比对的误报率和漏洞率都是很高的(稍微调整下参数内容或名称就会使指纹匹配无法准确识别恶意包)。
能读懂 SQL 的意思是,基于SQL 语法解析,联系上下文理解存储过程或包中是否存在恶意行为。在 unwrap 的支撑下数据库防火墙能把所有去向数据库的加密存储过程明文化,再通过 SQL 语法分析器对明文进行是否存在恶意行为的匹配。数据库防火墙在 SQL 语法分析器后不是单纯的就单句 SQL 进行行为分析,而是根据上下文环境的 SQL 行为对整个 SQL 语句包进行分析。当整个 SQL 语句包中存在命中安全规则的多个必要点时,则可以判断该语句包存在恶意行为,从而主动阻断该语句包,并向相关人员进行危险告警。至此,完成针对勒索或后门型数据库攻击的主动防护。
数据库防火墙、数据库漏扫,从不同层面和角度实现了 360 度防护数据库比特币勒索攻击。数据库防火墙依托上下文 SQL 语境,利用解密技术和 SQL 分析技术,动态抓出存在恶意行为的语句包进行实施拦截。数据库漏扫依托授权检测中针对数据库中异常包、存储过程、触发器、各项参数以及后门的检测语句,进行对已知威胁的检查,防止数据库中存在安全隐患。
360 度防护数据库比特币勒索攻击
二者分别侧重于整个防护过程中的已知隐患扫描、特征隐患拦截和“恶源追踪”。但实际上,两者既是相互独立,也是相互联动的,数据库防火墙拦截下一个新型隐患,数据库漏扫则根据该新型特征更新扫描检测项。一旦漏扫发现安全隐患,数据库防火墙未发现,则数据库防火墙根据隐患特征更新防护策略,优化已有安全策略,进一步降低误报率。
小结
比特币勒索,一种需要构建整体防护体系来防护的攻击类型,需要通过多个角度相互验证才能在攻击爆发前发现攻击,并遏制攻击。针对数据库的比特币勒索,安华金和攻防实验室推荐采用两类产品,从多个角度展开立体化联合防御,以达到面对此类攻击数据库再无弱点可循的防护与应对目标。
作者:安华金和
来源:51CTO