警惕!MySQL成数据勒索新目标

2023-11-12

据最新报道显示,继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. 创建管理员用户,命令如下(userpwd可以根据需要设置):
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('新密码');
  1. mysqladmin命令
mysqladmin -u root -p 旧密码 新密码

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

4、其他服务
请参考以上方式或者官方文档进行配置

参考链接

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

相关推荐

【黑客解析】黑客是如何实现数据库勒索的?

本文首发腾云阁 警惕!MySQL成数据勒索新目标,更多技术文章,请点击腾云阁

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

警惕!MySQL成数据勒索新目标 的相关文章

  • 何时在 mysql 中使用 Union [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 对于 Union 您会在什么现实情况下使用它 因为对我来说 对具有不同列用途 含义的两个表中的两个选择查询使用联合是没有意义的 例如
  • 如何将行变成列?

    我有一个数据库 其中存储分组到项目中的关键字以及与每个关键字相关的数据 然后我显示每个项目的数据网格 每个关键字一行和几列 全部从同一个表 数据 中检索 我有 4 个表 关键字 项目 group keywords 和数据 keywords
  • PHP使用auto_increment生成短唯一ID?

    我想生成一个简短的 唯一的 ID 而不必检查冲突 我目前正在做类似的事情 但是我当前生成的 ID 是随机的 并且在循环中检查冲突很烦人 并且如果记录数量显着增加 将会变得昂贵 通常担心冲突不是问题 但我想要生成的唯一 ID 是一个由 5 8
  • 在 django ORM 中查询时如何将 char 转换为整数?

    最近开始使用 Django ORM 我想执行这个查询 select student id from students where student id like 97318 order by CAST student id as UNSIG
  • MySQL 将表从 Latin1 转换为 utf8

    我需要将包含大量数据的表从 Latin1 转换为 utf8 以便它可以接受韩语字符 如何更改该表而不损坏其中的数据 我的 SQL 语句是什么 最好的方法是什么 ALTER TABLE database name table name CON
  • 如何使用 Mysql Python 连接器检索二进制数据?

    如果我在 MySQL 中创建一个包含二进制数据的简单表 CREATE TABLE foo bar binary 4 INSERT INTO foo bar VALUES UNHEX de12 然后尝试使用 MySQL Connector P
  • 使用来自另一个数据库的选择查询更新 mysql 表

    我有两个数据库 我想用另一个数据库表中的值更新一个表 我正在使用以下查询 但它不起作用 UPDATE database1 table1 SET field2 database2 table1 field2 WHERE database1 t
  • MySQL 左连接 WHERE table2.field = "X"

    我有以下表格 pages Field Type Null Key Default Extra page id int 11 NO PRI NULL auto increment type varchar 20 NO NULL
  • 在同一查询中选择 Count of ip 和 Count of DISTINCT ip

    我有一个这样的表结构 TABLE NAME counter id datetime url ip 1 2013 04 12 13 27 09 url1 ip01 2 2013 04 13 10 55 43 url2 ip02 3 2013
  • 使用“INSERT ... ON DUPLICATE KEY UPDATE”插入多条记录

    我的表结构 table marks 我的目标 我想用条件插入或更新多条记录 我目前正在通过此查询进行检查 第一步 SELECT FROM marks WHERE student 115 AND param 1 第二步 if records
  • NHibernate - 无法执行查询 - 输入字符串的格式不正确

    我已经为此摸不着头脑有一段时间了 我不知道出了什么问题 概述 我的 MySQL 数据库中有两个表 两者都正确映射到数据库 我可以加载数据 并且我能够查询一个表 但不能查询另一个表 我研究过的解决方案 表和 C 代码之间的类型转换问题 映射问
  • 无法在 Zend Framework 中回滚事务

    我在 Zend Framework 中使用以下代码进行事务 但回滚功能不起作用 数据通过 insertSome data 插入数据库 怎么了 db gt beginTransaction try model gt insertSome da
  • 显示和随机化 php 数组

    我有一个显示结果的数组 如下所示 Array 0 gt 71 1 gt 56 2 gt 64 3 gt 82 4 gt 90 5 gt 80 6 gt 65 7 gt 62 8 gt 14 9 gt 3 我的代码是 while row my
  • Mysql带限制的删除语句

    我试图从表中删除行 但出现错误 DELETE FROM chat messages ORDER BY timestamp DESC LIMIT 20 50 我在 50 时收到此错误 您的 SQL 语法有错误 检查与您的 MySQL 服务器版
  • MySQL JOIN 滥用?情况会变得有多糟糕?

    我读了很多关于关系数据库的文章 在每个 SELECT 上使用许多 JOIN 语句 但是 我一直想知道滥用这种方法从长远来看是否会出现任何性能问题 例如 假设我们有一个users桌子 我通常会添加 最常用 的数据 而不是进行任何额外的联接 例
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • MySQL“列计数与第 1 行的值计数不匹配”是什么意思

    这是我收到的消息 ER WRONG VALUE COUNT ON ROW 列计数与第 1 行的值计数不匹配 这是我的全部代码 我的错误在哪里 DROP TABLE student CREATE TABLE employee emp id I
  • 在mysql连接字符串中添加应用程序名称/程序名称[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找一种解决方案 在连接字符串中添加应用程序名称或程序名称 以便它在 MySQL Workbench 中的 客户端连接 下可见 SQL
  • 使用 MYSQL 将 h:mm pm/am 时间格式插入数据库

    我正在尝试将以 h mm am pm 格式写入的时间插入到存储为标准 DATETIME 格式 hh mm ss 的数据库中 但我不知道如何将发布的时间转换为标准格式所以数据库会接受它 这是我到目前为止一直在尝试的 title POST in
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len

随机推荐

  • 每日一问—01如何在指定目录下的文件名前面加上“0”+序号

    import os path C i 1 for filename in os listdir path try new name 0 str i filename os rename os path join path filename
  • 基于opencv下的双目视觉三维重建与重投影残差计算

    一 重投影残差 1 1基本概念 重投影残差 按照字面意思解释就是在第二次重新投影的二维像素点与第一次投影得到的像素点之间的残差 欧式距离 大小 残差的大小反映的就是测量仪器的精度以及外界因素对测量结果的干扰 即测量误差的大小 如下图所示 假
  • HikariCP连接池

    什么是HikariCP HikariCP是由日本程序员开源的一个数据库连接池组件 代码非常轻量 并且速度非常的快 根据官方提供的数据 在i7 开启32个线程32个连接的情况下 进行随机数据库读写操作 HikariCP的速度是现在常用的C3P
  • "[WinError 10061] 由于目标计算机积极拒绝,无法连接"错误解决办法

    爬虫的时候会经常出现 WinError 10061 由于目标计算机积极拒绝 无法连接 错误这种情况 有可能是LAN口设置不正确 我是在爬取全国天气情况的时候出现的这种错误 后面调了以后可以了 1 控制面板 网络和 Internet Inte
  • 蓝桥杯小白必看 —— Python

    蓝桥杯小白必看 Python 文章目录 蓝桥杯小白必看 Python 一 Python比赛规则 二 Python3 8 6的IDLE环境 1 官网下载地址 2 让编译器显示行数 3 设置自动保存 4 设置页面字体大小 5 快捷键的使用 三
  • 操作系统王道考研复习——第二章(进程管理) 上

    操作系统王道考研复习 第二章 进程管理 上 2 进程管理 2 1 程序执行 2 1 1 程序顺序执行的特征 2 1 2 程序并行执行的特征 2 2 进程与线程 2 2 1 进程的概念和特征 1 程序和进程的区别 2 进程的组成 PCB 程序
  • java删除指定路径下的全部内容

    1 使用过程当中有时会用到清空文件夹的操作 首先传入指定文件夹地址 利用递归的方式清空该文件夹下的全部文件 以及子文件夹 public static void deleteFile File file 判断文件不为null或文件目录存在 i
  • 《Unity Shader入门精要》自学笔记(七)第九章 更复杂的光照 ——光照衰减

    帧调试器FrameDebugger 又是一个好玩的小玩具好用的小工具呢 可以通过Window Analysis Frame Debugger打开 然后点击左上角的Enable 就可以查看了 点击1打开或关闭Frame Debugger 滑动
  • springboot实现ApplicationContextAware接口、使用ThreadLocal获得当前上下文请求的HttpServletRequest

    前端请求的参数可以用requestparam requestbody获得 也可以用HttpServletRequest来获得参数 这里讲用HttpServletRequest来获取前端参数的办法 举例 GetMapping index do
  • 全国计算机等级考试题库二级C操作题100套(第75套)

    第75套 给定程序中 函数fun的功能是 对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序 ss所指字符串数组中共有M个字符串 且串长
  • 从python入门到机器学习的心得贴(持续更新ing

    仅代表个人看法 大学的编程是C语言入的门 专业上的使用也是C语言为主 非码农 但个人觉得 作为21世纪的新新人类 python的工程的各个领域都有融合的价值 于是抽空就把python入了门 一 入门之路 开始也不知道该从哪儿开始 之后看到一
  • 行列式与矩阵的区别

    1 行列式的本质是线性变换的放大率 而矩阵的本质就是个数表 2 行列式行数 列数 矩阵不一定 行数列数都等于n的叫n阶方阵 二者的表示方式亦有区别 3 行列式与矩阵的运算明显不同 1 相等 只有两个同型的矩阵才有可能相等 并且要求对应元素都
  • PyTorch深度学习——Anaconda和PyTorch安装

    一 Anaconda安装 前言 安装anaconda后主要有一下3点好处 1 包含环境管理器conda 2 大量安装基于python的工具包 3 可以创建使用和管理不同的python版本 附上百度百科的解释 下载步骤 1 官网下载anaco
  • Linux部署Nginx并配置https

    1 下载nginx安装包 wget http nginx org download nginx 1 21 6 tar gz 2 解压压缩包 tar zvxf nginx 1 21 6 tar gz 3 初始化configure 配置conf
  • C语言——猜数字小游戏

    实现一个猜数字的小游戏 gt 首先要用的c语言的随机生成数 在C语言中 我们一般使用
  • import-module的注意事项与NDK_MODULE_PATH的配置

    具体的语句多参考其他正确的Android mk import module的功能 导入外部模块的 mk文件 和 include基本一样 概念上的区别是include导入的是由我们自己写的 mk 而import module导入的是外部库 外
  • C语言中设置文字颜色

    记得刚接触C语言时 上机运行代码输出结果每次都是黑色的控制台白色的文字 就像下面这样 视觉体验极差 十分的不美观 感觉很low 这就引发了我的思考 输出结果必须是黑框白字吗 显然不是这样的 我们可以自己设置文字和文本颜色 那么该如何设置呢
  • VS CODE 离线插件下载

    VS CODE 离线插件下载 老方法 一 进入VSCODE 插件下载官网 二 搜索需要下载的插件 三 进行地址替换 四 下载 五 在windows环境下安装插件 新方法 一 进入VSCODE 插件下载官网 二 搜索需要下载的插件 三 下载
  • 【原創】checkstyle配置文件说明(checkstyle 3.5)

    属性 说明 basedir 代码所在的位置 AbstractClassName format 定义抽象类的命名规则 PackageName format 定义包名的命名规则 TypeName format 定义类和接口的命名规则 token
  • 警惕!MySQL成数据勒索新目标

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