开发者社区> 云上阿土伯> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

比特币勒索:你的数据库是如何成为黑客“挖矿机”的

简介:
+关注继续查看
摘要:
2016年是勒索病毒泛滥的年份,而2017年“挖矿”随着电子货币价格的一路攀升,已成为黑客的新宠。黑客多利用“肉鸡”(被控制的电脑)实施挖矿。挖矿可以赚取电子货币,黑客直接通过电子货币获利(比特币、罗门币等)。据统计2017年,仅黑客组织隐匿者就利用肉鸡共挖到2010枚门罗币,相当于61万美元。有理由相信2017年黑客通过挖矿净利润在百万美元以上。

“挖矿”虽然不像勒索病毒那样让被害者直接遭受数据丢失的损失。但会悄悄潜伏在被害者的机器中。肆意利用被害者的机器资源进行挖矿活动。受影响的计算机会变得又卡又慢,甚至会出现死机等情况,直接影响用户的使用体验。

“挖矿”由于机制原因对机器的性能有相当的要求,同时黑客攻击的目标主要集中在允许外网访问的服务器中。于是各类云上的RDS和ECS服务器就成了黑客们优先攻击的目标。黑客在攻击得手后,在服务器上部署挖矿程序。恶意侵占被害者服务器的资源,为自己赚取电子货币。

本文会向大家介绍“挖矿”到底是怎么回事,常见的黑客入侵服务器部署挖矿程序的全过程,最后会给出如何抵御黑客入侵的建议。

挖矿
黑客们为什么要挖矿?这和电子货币体系有密切关系。电子货币发行的过程可以简单认为就是挖矿过程。电子货币是无国界的,所以不依赖于某个政府发行。它的发行是在电子货币的系统中,“矿工”们用一种特别的软件来解决数学难题,作为工作量的回报,“矿工”可以获取电子货币系统新生成的特定数量的电子货币。

751c3c4c69f8d0d725b2d2396cb85641c3d124ab
 
以比特币为例具体说明,比特币网络中每10分钟会生成一个新的区块,这个新生成的区块会包含三类内容:
  • 第一类:最近这10分钟产生的所有比特币支付交易记录。比特币采用P2P机制。所有人的交易记录,会在所有人的账单上出现。所以每10分钟比特币新产生的区块会记录所有人的交易信息。
  • 第二类:区块锁,每个区块中的数学难题的答案,第一个通过hash等复杂运算碰撞出的答案,“矿工”会得到相应的比特币奖励。所以挖矿对机器的性能是有一定需求的。而数据库服务器一般相对性能较高,所以黑客更愿意花精力来捕捉数据库服务器做挖矿机。
  • 第三类:发行的新比特币,奖励给第一个解开区块锁的矿工。电子货币的发行机制往往奖励的最大部分是给与第一个解决数学难题的人,所以机器性能非常重要。
恶意挖矿程序

电子货币的产生机制本意是为了吸引更多的个体投入到系统中来,设立对矿工工作的奖励机制。因此社会中就会有更多的人愿意将个人的计算机运算能力提供给电子货币的网络系统,随着电子货币的价值提升,又有更多的人加入其中进行挖掘。
正常的挖矿机都是自愿加入到电子货币的网络体系中,为电子货币提供计算能力,然后依据自己的计算贡献能力,从中来获取自己的收益。但是恶意程序是在未授权的情况下向被害者的服务器恶意植入的一个挖矿程序,并盗用被害者个人计算机的计算能力来为黑客挣钱。

挖矿机的选择
黑客多会选择入侵数据库服务器使其变成挖矿机。是因为数据库服务器具备以下适合成为挖矿机的特征:
  • 有明确的入侵渠道
云上数据库服务器如果不进行配置,外网IP是开启的。任何人在知道IP的背景下都可以访服务器,数据库安装采用固定的端口,黑客利用使用脚本批量攻击。入侵数据库除了可能使用数据库漏洞外,最常见的是对口令的暴力破解。某些云上数据库服务是有一组默认用户名和密码的,很可能被黑客利用,从而入侵数据库。
  • 有一定的性能保障
用于数据库的服务器一般性能不会低于平均水平。而矿工的收益和机器的性能又密切相关,所以入侵数据库服务器,部署挖矿程序,执行性能是值得保障的。
  • 可以执行系统命令且具备一定权限
数据库服务器被入侵后,大部分数据库都是可以在修改一些配置后,对操作系统上的文件进行操作,甚至执行操作系统命令,为下载挖矿工具和一些守护进程提供了可能和权限。
  • 可以创建稳定的链接
数据库被入侵后,黑客可以创建属于自己的数据库后门(数据库账号和密码),从而能长期控制数据库和数据库服务器,作为自己的挖矿机。
  • 很好的隐蔽性
挖矿机运行时会导致服务器压力飙升。数据库服务器某些时段压力提升,不会让人马上想到是挖矿机造成的原因,而会花大量的力气在错误的方向上,从而减慢挖矿机被发现的时间,赚取更多的利润。

黑客入侵过程追踪  
731084ef8c34c24f44380b3102893887d33813e8
在了解黑客选择数据库服务器作为主要入侵目标后,我们进一步了解黑客是如何一步一步把你的数据库变成他的挖矿机的。黑客从入侵到完成部署挖矿机主要分为以下5个步骤:

1.   扫描确定尝试入侵目标
黑客一般不会采用全网段扫描,而是基于一定随机值在一个网络段选取一部分进行扫描。并且使用TCP_SYN扫描。TCP_SYN扫描只发送SYN包,通过端口开放回应SYN&ACK包,端口关闭回应RST包来判断端口是否存在。虽然这种方法有一定的偏差性,但可以有效隐蔽黑客的扫描行为,暂时发现黑客最关注的端口是1433(SQLServer)和3306(MySQL)。在扫描后生成一个IP和端口的列表。

2.   暴力破解入侵数据库
黑客扫描完会把生成的列表发送到C&C服务器。开始对扫描出的端口做爆破用的密码字典配置。执行暴力破解的时候会采用多台已被攻陷的肉鸡,不同时段和批次的进行暴力破解。如果顺利破解出密码,登陆数据库准备下一步攻击。

3.   部署数据库后门
黑客在顺利登陆到数据库后,首先会尝试在数据库部署后门,以保持日后还可以长期稳定的使用该数据库。黑客多使用某些特定操作建立后门用户或修改已知用户密码。
8987ac79f275f6f05ee1b8e1ddb41bec4bcc748e

请注意如果你的数据库中存在账号 hanako、kisadminnew1、401hk$、guest、Huazhongdiguo110中的任意一个。很可能你的数据库服务器已经被某个黑客组织植入了挖矿机。

4.   利用数据库下载挖矿程序
由于操作需要使用到某些存储过程,所以整个过程分为两个阶段。第一阶段准备环境,修改数据库配置。第二阶段下载工具

第一阶段准备环境主要是让数据库有执行shell的能力
最常见的是利用 xp_cmdshell执行shell
1. 恢复xp_cmdshell 
2. 开启被禁用的xp_cmdshell
a5bb17d7b77a7fd4c75a7e73172d8bc2d457b36a
也有利用SP_OACreate执行shell的
 c6b225f33025acdb13ba25ec8fd01944619d2835
3、使用SQL Server CLR执行shell
41aca50c996c4935512e828fc1b44e0bdf0c59c5
当完成环境部署,能用数据库调用shell后进入第二阶段下载挖矿工具
4、第二阶段下载挖矿工具
使用shell向C&C 服务器发起请求,下载挖矿工具。
5.  部署挖矿程序开始挖矿
  在利用数据库完成一些列配置文件的创建和编写,开始调用挖矿程序进行挖矿。

安全解决之道
整个数据库入侵过程归根结底主要是数据库弱口令和数据库安全配置缺失问题导致的灾难。云上数据库虽然部署方便使用快捷,但部署时难免催在安全考虑不周的地方,给不法分子带来可乘之机。
快速部署后的数据库安全配置至关重要。合理的安全配置会对密码的强度有相当的要求。数据库的安全配置可以参考各家数据库官网的安全配置,同时也可以关注和参考安华金和基于数据库研究并结合云数据库RDS/ECS经验总结出的数据库最佳安全配置系列文章。
为了更佳方便的帮助您解决数据库安全配置引起的各种安全问题,建议您可以使用安华云安全免费提供的数据库漏扫绿色下载版本,快速完成针对数据库安全配置的所有检查,并给出修复建议,从数据库配置上彻底阻断黑客入侵的步伐。

安华云数据库漏扫为阿里云用户提供免费体验:

值得注意的是,黑客主要攻击的目标是Windows和Linux系统的数据库服务。如果能控制住对数据库有访问权限的机器,也会有效避免此类攻击。通过数据库防火墙或者网络防火墙等设备严格控制,可以访问默认服务器的IP,因此必须经常检查对数据库有访问权限的设备清单,保持这个清单最小化,尤其要注意清单中直接通过互联网访问的机器,采用白名单策略,所有不在清单上的IP或域名对数据库的连接尝试都应该拦截并进行调查。

你想了解更多的云安全资讯,欢迎关注“安华云安全微信”公众号

4a85bfba3a1ce8fb4c7e99dd5c090ed0e392ae92


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SAP CRM 产品主数据base category的分配和决定逻辑
Created by Jerry Wang, last modified on Oct 01, 2016
41 0
MongoDB数据库防范比特币勒索
MongoDB数据库简单设置,即可防范比特币勒索
1741 0
Android官方开发文档Training系列课程中文版:分享简单数据之添加简单的分享行为
原文地址:http://android.xsoftlab.net/training/sharing/shareaction.html 从Android4.0开始,使用ActionProvider可以更方便的在ActionBar上实现一个有效的、用户友好的分享按钮。
805 0
Android官方开发文档Training系列课程中文版:分享简单数据之发送简单数据给其它APP
原文地址:http://android.xsoftlab.net/training/building-content-sharing.html 引言 Android应用程序有一项伟大的事情就是它们有可以与其它应用程序交流及整合。
715 0
+关注
云上阿土伯
安华金和联合创始人兼CTO,数据库安全老司机,赶时髦,关注云上数据安全。
21
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载