2017年和2020年出现过两次勒索病毒的高发,而现在勒索病毒已经常态化了,总是能够听说某某企业中了勒索病毒。中勒索病毒的大多数不是数据库系统,而是服务器和工作站居多。2017年那波Oracle RushQL病毒主要是下载一些盗版的PL/SQL DEV工具引发的。这波勒索病毒的最初版本还没有那么恶毒,仅仅加密了文件头部分的内容,并且删除了所有的DMP备份文件。当时我们还用自己开发的数据下载工具帮助用户恢复过数据。
后来这个病毒被多次改良,也变得更加恶毒,会加密全量文件,并且删除所有的dmp文件,同时通过数据库内部的数据字典会找到数据库备份,把能够找到并删除的rman备份也删的一干二净。
2020年的那波高潮是因为WEBLOGIC的远程代码执行漏洞CVE-2019-2725引发的,这波高潮打破了以往勒索病毒都是数据库用户不小心下载了有问题的工具或者安装介质引发的惯例,实现了勒索病毒的远程主动攻击。攻击者利用Weblogic的安全漏洞自动下载攻击工具,并且找到数据库进行主动攻击。
自2019年4月26日Oracle为其发布紧急安全修复程序以来,该漏洞的详细信息已完全公开。该漏洞存在于 WebLogic Server 的 Web 服务组件中,并且很容易被利用。虽然应急修复补丁于 4 月 26 日发布,但攻击者可能在一周前就已经获得了这个信息。4月25 日,攻击者开始利用该漏洞在受感染的服务器上安装名为 Sodinokibi 的勒索软件。而那时候大多数用户还没有获得这个漏洞的信息,并及时安装应急修补丁。Sodinokibi采取的新模式让勒索病毒更加难以防范。受影响的服务器从攻击者控制的 IP 地址 188.166.74.218 和 45.55.211.79 自动下载勒索软件的副本。安装勒索软件后,它还会自动下载一些其他文件和实用程序。其中之一用于尝试阻止受害者在感染后恢复其加密文件。正是这个病毒的各种变种中出现了专门针对数据库系统的勒索病毒,这些病毒在2020年十分猖獗。
因为那次攻击的主要对象是Windows系统,因此那次攻击中中招的SQL SERVER数据库特别多。那次勒索病毒攻击让我们意识到,勒索病毒防范的难度是全方位的。从以往的经验看,数据库勒索病毒中招的大部分是IT管理较为简单,安全防范能力较弱的中小企业。而这些企业往往在数据备份,容灾方面的投资较少,也没有完善的数据库备份方案,一旦中招,损失还是很严重的。
DBA是防范勒索病毒的关键岗位,实际上DBA也是防范勒索病毒的中坚力量。今天我们来聊聊,作为一个DBA,在防范勒索病毒方面,应该做些什么。中招勒索病毒的数据库种类很多,不过Oracle、SQL SERVER、MySQL等是重灾区,我今天就以Oracle为例来介绍一些常见的防范措施吧。
首先一点,就是数据库安装平台的选择,对于中小企业来说,为数据库选择操作系统的人大部分都是DBA。尽可能不要选择WINDOWS SERVER,并不是说WINDOWS SERVER不好,而是能在WINDOWS搞病毒的人远远高于Linux,WINDOWS很容易成为传播病毒的媒介。哪怕是你选择SQL SERVER,也尽可能去用LINUX吧。
第二点是在核心数据库上,千万别用盗版软件。我曾经遇到过一个中了Oracle勒索病毒的客户,他们的数据库安装介质居然是从国内的某个软件下载平台下载的。哪怕你用盗版Oracle,也完全可以从oracle.com或者edelivery.oracle.com去下载无风险的官方版本。另外数据库管理软件,TOAD、PL/SQL DEV等也都是勒索软件经常栖息的场所,尽可能不要使用盗版的工具吧。
第三点是选择安装数据库的时候,尽可能选择使用ASM而不要使用文件系统。文件系统是勒索病毒的重灾区,而能对裸设备的勒索病毒种类要少很多。使用ASM并不能保证真正的安全,有些特别恶毒的比较专业的勒索病毒甚至会加密ASM磁盘的数据。对于网络防范能力较弱,系统又必须有互联网出口的用户来说,数据库中使用ASMFD(ASM Filter Driver)是一个比较好的选择。ASMFD是以LINUX内核模块的方式提供的,它可以拒绝所有的非Oracle IO API的非法访问,因此可以很好的保护ASM数据不会被病毒、误操作等侵害。使用ASMFD后,不再需要使用ASMLIB(二者不兼容),也不再需要使用udev来持久化磁盘设备名。
第四点是加强备份以及备份的安全性,对于采用逻辑备份的用户,尽可能通过远程做expdp,将数据备份到其他服务器上。Rman备份可以备份到磁带库介质或者NFS文件系统中,备份完毕后umount相关设备,并定期做备份数据的恢复可用性测试,确保有可用的备份数据,那么就可以把中勒索病毒的危害降到最低。
第五点是操作系统,数据库都要使用强密码,并且定期更换。不要嫌麻烦,中了勒索病毒是更麻烦的事情。我这些年见多了中了勒索病毒痛不欲生的DBA。
第六点是勒索病毒防范是一个全方位的安全防护工作,目前已知的勒索病毒有很多是通过感染使用大量开源代码的比较容易出现安全漏洞的应用服务器作为跳板的。如果你的应用服务器暴露在互联网上,那么定期对你的应用服务器打安全补丁是十分必要的,应用服务器的补丁升级相对容易,应用代码兼容方面的问题也较少。
勒索病毒问题在全世界十分泛滥,我国的数据库中勒索病毒虽然也不少,但是还不算重灾区。中病毒的大多数都是中小企业,数据库管理水平比较低,备份,容灾等措施也十分不到位。实际上抵御勒索病毒的第一道防线是网络安全,不过从目前的趋势上看,勒索病毒与一些高危安全漏洞相结合的趋势越来越明显。因此加强本质安全,在数据库底层构筑防勒索病毒的基础屏障。同时不随意从非官网下载数据库与数据库运维工具,加强备份与备份数据的安全保护,那么也就不用害怕勒索病毒了。