MySQL成勒索新目标,数据服务基线安全问题迫在眉睫

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 MongoDB,通用型 2核4GB
简介: 本文讲的是MySQL成勒索新目标,数据服务基线安全问题迫在眉睫,据最新报道显示,继MongoDB和Elasticsearch之后,MySQL成为下个数据勒索目标,从2月12日凌晨开始,已有成百上千个开放在公网的MySQL数据库被劫持,删除了数据库中的存储数据,攻击者留下勒索信息,要求支付比特币以赎回数据。
本文讲的是 MySQL成勒索新目标,数据服务基线安全问题迫在眉睫据最新报道显示,继MongoDB和Elasticsearch之后,MySQL成为下个数据勒索目标,从2月12日凌晨开始,已有成百上千个开放在公网的MySQL数据库被劫持,删除了数据库中的存储数据,攻击者留下勒索信息,要求支付比特币以赎回数据。

问题分析

遍观MongoDB和Elasticsearch以及现在的MySQL数据库勒索,可以发现都是基线安全问题导致被黑客劫持数据而勒索,原因在于这些服务都开放在公网上,并且存在空密码或者弱口令等使得攻击者可以轻易暴力破解成功,直接连上数据库从而下载并清空数据,特别是不正确的安全组配置导致问题被放大。

其实类似问题已不是第一次,近期云鼎实验室观测到多起案例,攻击呈现扩大态势,不仅仅是勒索,更多的是服务器被入侵,从而导致数据被下载。基线安全问题已经成了Web漏洞之外入侵服务器的主要途径,特别是弱口令等情况。错误的配置可以导致相关服务暴露在公网上,成为黑客攻击的目标,加上采用空密码等弱口令,黑客可以轻易入侵这些服务。

安全自查

值此事件爆发之际,建议对自己的服务器进行自查,避免相关数据丢失等问题,具体自查方式可参考如下:

1、排查服务器开放的端口及对应的服务,如无必要,关闭外网访问;可以使用NMap 直接执行 nmap 服务器IP(在服务器外网执行),可得到以下结果即为开放在外网的端口和服务。

MySQL成勒索新目标,数据服务基线安全问题迫在眉睫

2、重点针对这些开放在公网上的服务进行配置的检查,检查相关服务是否设置密码,是否弱口令。

3、如无必要,均不要使用root或者其他系统高权限账号启动相关服务。

安全建议及修复方案

一、采用正确的安全组或者iptables等方式实现访问控制;
二、关闭相关服务外网访问和修改弱密码:

1、MongoDB

a)配置鉴权

下面以3.2版本为例,给出 MongoDB设置权限认证,具体步骤如下:

1、启动MongoDB进程是加上-auth参数或在MongoDB的配置文件中加上auth = true;

2、带auth启动的MongoDB,如未创建用户,MongoDB会允许本地访问后创建管理员用户。创建步骤如下:

1>切换到 admin 库;
2>创建管理员用户,命令如下(user和pwd可以根据需要设置):
db.createUser({user: "root",pwd: "password",roles: [ "root" ]})
使用管理员用户登录后,根据角色创建您需要的用户

b)关闭公网访问

可通过MongoDB的bind_ip参数进行配置,只需将IP绑定为内网IP即可,如下:

1、启动时增加bind_ip参数:

mongod –bind_ip 127.0.0.1,10.x.x.x

2、在配置文件mongodb.conf中添加以下内容:

bind_ip = 127.0.0.1,10.x.x.x

其中10.x.x.x为您机器的内网IP.

2、Redis

a)配置鉴权

1、修改配置文件,增加 “requirepass 密码” 项配置(配置文件一般在/etc/redis.conf)

2、在连接上Redis的基础上,通过命令行配置,config set requirepass yourPassword

b)关闭公网访问

1.    配置bind选项,限定可以连接Redis服务器的IP,修改 Redis 的默认端口6379

c)其他

1、配置rename-command 配置项 “RENAME_CONFIG”,重名Redis相关命令,这样即使存在未授权访问,也能够给攻击者使用config 指令加大难度(不过也会给开发者带来不方便)

相关配置完毕后重启Redis-server服务

3、MySQL

a)配置鉴权

MySQL安装默认要求设置密码,如果是弱命令,可通过以下几种方式修改密码:

1、UPDATE USER语句

以root登录MySQL后,
USE mysql;
UPDATE user SET password=PASSWORD('新密码') WHERE user='root';
FLUSH PRIVILEGES;

2、SET PASSWORD语句

 以root登录MySQL后,
 SET PASSWORD FOR root=PASSWORD('新密码');

3、mysqladmin命令

mysqladmin -u root -p 旧密码 新密码

b)关闭公网访问
1、启动参数或者配置文件中设置bind-address= IP绑定内部IP
2、以root账号连接数据库,排查user表中用户的host字段值为%或者非localhost的用户,修改host为localhost或者指定IP或者删除没必要用户

4、其他服务

请参考以上方式或者官方文档进行配置




原文发布时间为:2017年3月1日
本文作者:云鼎实验室
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
存储 容灾 安全
在阿里云RDS(Relational Database Service)迁移前准备目标区域选择
在阿里云RDS(Relational Database Service)迁移前准备目标区域选择
30 3
|
9月前
|
SQL Cloud Native 关系型数据库
找不到目标用户?云原生数仓AnalyticDB MySQL秒级圈人功能大揭秘
营销域中的洞察分析/智能圈人/经营报表等场景是OLAP分析型数据库的重要应用场景,阿里云瑶池旗下的云原生数据仓库AnalyticDB MySQL在淘宝、饿了么、菜鸟、优酷、盒马等业务的营销场景有比较长时间的积累和沉淀,我们将通过一系列文章来介绍AnalyticDB MySQL在营销域数据产品中的落地与应用,之前文章介绍了“漏斗分析”的实现与应用,本文主要介绍“秒级圈人&画像分析”的实现与应用。
|
缓存 NoSQL Java
一个Redis的Java客户端Jedis的学习,线程不安全问题的解决及与MySQL的简单的结合
> Redis 全称 Remote Dictionary Server(即远程字典服务),它是一个基于内存实现的键值型非关系(NoSQL)数据库,由意大利人 Salvatore Sanfilippo 使用 C 语言编写。 > > Redis 遵守 BSD 协议,实现了免费开源,其最新版本是 6.20,常用版本包括 3.0 、4.0、5.0。自 Redis 诞生以来,它以其超高的性能、完美的文档和简洁易懂的源码广受好评,国内外很多大型互联网公司都在使用 Redis,比如腾讯、阿里、Twitter、Github 等等。 简单的来说:Redis是一种极其高效的,迅速的一种基于缓存读写的N
|
cobar 运维 Oracle
yugong阿里巴巴去Oracle数据迁移同步工具(全量+增量,目标支持MySQL/DRDS)
2008年,阿里巴巴开始尝试使用 MySQL 支撑其业务,开发了围绕 MySQL 相关的中间件和工具,Cobar/TDDL(目前为阿里云DRDS产品),解决了单机 Oracle 无法满足的扩展性问题,当时也掀起一股去IOE项目的浪潮,愚公这项目因此而诞生,其要解决的目标就是帮助用户完成从 Oracle 数据迁移到 MySQL 上,完成去 IOE 的重要一步工作。
yugong阿里巴巴去Oracle数据迁移同步工具(全量+增量,目标支持MySQL/DRDS)
|
安全 NoSQL 关系型数据库
全球MySQL数据库沦为新一轮勒索软件攻击目标
本文讲的是全球MySQL数据库沦为新一轮勒索软件攻击目标,上个月,全球范围内大量 MongoDB因为配置不当导致公网匿名可访问,遭到勒索软件攻击,删除业务数据并索要赎金后才给恢复数据。近日,GuardiCore警告称,成千上万的MySQL数据库正成为勒索软件攻击的潜在受害者,这似乎是MongoDB“洗劫”活动的升级。
1814 0
|
3天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
11 0
|
1天前
|
关系型数据库 MySQL 数据库
mysql 设置环境变量与未设置环境变量连接数据库的区别
设置与未设置MySQL环境变量在连接数据库时主要区别在于命令输入方式和系统便捷性。设置环境变量后,可直接使用`mysql -u 用户名 -p`命令连接,而无需指定完整路径,提升便利性和灵活性。未设置时,需输入完整路径如`C:\Program Files\MySQL\...`,操作繁琐且易错。为提高效率和减少错误,推荐安装后设置环境变量。[查看视频讲解](https://www.bilibili.com/video/BV1vH4y137HC/)。
17 3
mysql 设置环境变量与未设置环境变量连接数据库的区别

推荐镜像

更多