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

据最新报道显示,继 MongoDB 和 Elasticsearch 之后,MySQL 成为下个数据勒索目标,从2月12日凌晨开始,已有成百上千个开放在公网的 MySQL 数据库被劫持,删除了数据库中的存储数据,攻击者留下勒索信息,要求支付比特币以赎回数据。

问题分析

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

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

安全自查

值此事件爆发之际,建议对自己的服务器进行自查,避免相关数据丢失等问题,具体自查方式可参考如下: 1、排查服务器开放的端口及对应的服务,如无必要,关闭外网访问;可以使用 NMap 直接执行 nmap 服务器IP(在服务器外网执行),可得到以下结果即为开放在外网的端口和服务。

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" ]})
3. 使用管理员用户登录后,根据角色创建您需要的用户

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、其他服务 请参考以上方式或者官方文档进行配置

参考链接

  1. 《避免 MongoDB 被勒索详解,腾讯云上更安全》
  2. 《下一个猎杀目标:近期大量MySQL数据库遭勒索攻击》
  3. 《知名搜索引擎Elasticsearch成为勒索软件敲诈目标》
  4. 《Redis 未授权访问配合 SSH key 文件利用分析》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

Windows Server 2003网络负载均衡的实现

       在现行的许多网络应用中,有时一台服务器往往不能满足客户端的要求,此时只能通过增加服务器来解决问题。   那么,有没有一个办法或者技术来解决此类问题...

1926
来自专栏友弟技术工作室

SSO入门

SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映...

39011
来自专栏云鼎实验室的专栏

Linux Redis自动化挖矿感染蠕虫分析及安全建议

3084
来自专栏Golang语言社区

剖析Go编写的Socket服务器模块解耦及基础模块的设计

Server的解耦—通过Router+Controller实现逻辑分发 在实际的系统项目工程中中,我们在写代码的时候要尽量避免不必要的耦合,否则你以后在更新和维...

3448
来自专栏蓝天

Ubuntu系统微调

本章讲述了基本的基于命令行界面的系统配置方法。在学习本章前,你需要先阅读 Ubuntu 系统安装提示, 第 3 章.

883
来自专栏即时通讯技术

新手入门:史上最全Web端即时通讯技术原理详解前言 学习交流 更多资料一、传统Web的通信原理二、传统通信方式实现IM应用需要解决的问题三、全双工低延迟的解决办法 五、WebSocket结束语

浏览器本身作为一个瘦客户端,不具备直接通过系统调用来达到和处于异地的另外一个客户端浏览器通信的功能。这和我们桌面应用的工作方式是不同的,通常桌面应用通过sock...

593
来自专栏杨建荣的学习笔记

MySQL中xtrabackup备份恢复全攻略(r12笔记第11天)

XtraBackup是Percona推出的一款备份工具,算是对于mysqldump的一个补充。对于大批量数据的导入使用mysqldump会出现一定的瓶颈,...

3756
来自专栏企鹅号快讯

做网站-推荐3种CSS,JS合并的方式

在Web项目的开发中,js,css文件会随着项目的开发变得越来越多,越来越大,这就给给性能方面带来一些问题,如,页面引入的的js,css越多的话,那么对就增加了...

40911
来自专栏FreeBuf

ossec入侵检测日志行为分析

上次说写的ossec连载,不幸因为工作太忙夭折了,最近缓过神来决定补上第2篇,言归正传,ossec的功能主要是为了防御及抓坏人,但因为攻防之间本来就信息不对称所...

31110
来自专栏Golang语言社区

剖析Go编写的Socket服务器模块解耦及基础模块的设计

Server的解耦—通过Router+Controller实现逻辑分发 在实际的系统项目工程中中,我们在写代码的时候要尽量避免不必要的耦合,否则你以后在更新和维...

3254

扫码关注云+社区