“拖库”防不胜防,如何早做预防?

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
日志服务 SLS,月写入数据量 50GB 1个月
简介: 近期有消息爆出某酒店数据库被拖库,数据主要包括注册资料、酒店入住登记信息以及开房记录。 此次事件涉及用户信息十分敏感,后续连串反应将造成的损失难以估计。我们在思考如何保护自己的信息安全同时,更要思考企业如何保证信息安全,做好安全加固,避免千丈之堤,溃于蚁穴。

近期有消息爆出某酒店数据库被拖库,数据主要包括注册资料、酒店入住登记信息以及开房记录。

此次事件涉及用户信息十分敏感,后续连串反应将造成的损失难以估计。我们在思考如何保护自己的信息安全同时,更要思考企业如何保证信息安全,做好安全加固,避免千丈之堤,溃于蚁穴。

信息泄露起因

该酒店信息泄露事件,起因疑似该公司程序员将数据库连接方式上传至 github 导致其泄露。

alt text

从目前的信息来看,此次泄露事件可能并非黑客技术高超,蓄意攻击,而是其安全意识单薄,保护措施不到位。可总结为以下几点:

1)公司的代码被大规模地上传到 Github,事前应有专人负责开源,事后应有报警措施

2)为了安全起见,数据库一般来说应该只限内部 IP 访问关闭外网访问,并设置访问白名单

3)数据库的用户名最好另创一个不要直接用 root

4)数据库密码需要避免弱口令

5)数据库使用的是默认端口3306,重要数据应关闭常用端口号,开放不常用端口号,避免黑客对常用端口号的恶意扫描和攻击

如何预防数据库勒索

数据库被勒索原因

主要问题的根因是这些被勒索的自建数据库服务都开放在公网上,并且存在空密码或者弱口令等使得攻击者可以轻易暴力破解成功,直接连上数据库从而下载并清空数据,特别是不正确的安全组配置或没有配置任何网络访问控制策略导致问题被放大。

基线安全问题已经成了Web漏洞之外入侵服务器的主要途径,特别是无网络访问控制、默认账号和空口令、默认账号弱口令、后台暴露、后台无口令未授权访问等情况。错误的配置可以导致相关服务暴露在公网上,成为黑客攻击的目标,加上采用空密码等弱口令,黑客以极低的攻击成本轻松获取和入侵这些服务。

预防方案——数据库安全加固方案

找到了原因,就可以”对症下药”了,您可以通过数据库系统的安全配置加固,提高数据库的安全性,确保数据库服务稳定、安全、可靠地运行,预防数据库勒索。下文以MySQL数据库安全加固为例。

漏洞发现

1)自动化检测方式:

例如阿里云安骑士提供默认的检测策略,无需安装,您可以登录到控制台,查看安骑士检测的结果,并根据结果进行整改封堵漏洞。

2)人工+工具排查:

您也可以使用类似NMap这样的端口扫描工具直接针对被检查的服务器IP(在服务器外网执行)执行扫描,以确认业务服务器开放在外网的端口和服务。

注:需要在授权情况下对自身业务进行扫描,不要对其他不相关的业务进行非法扫描,避免法律风险。

安全加固

1、 帐号安全

1)禁止 Mysql 以管理员帐号权限运行

以普通帐户安全运行 mysqld,禁止以管理员帐号权限运行 MySQL 服务。在 /etc/my.cnf 配置文件中进行以下设置。

[mysql.server]
user=mysql

2) 避免不同用户间共享帐号

参考以下步骤。

  • 创建用户。
mysql> mysql> insert into
mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_sub 
ject) values("localhost","pppadmin",password("passwd"),'','','');

执行以上命令可以创建一个 phplamp 用户。

  • 使用该用户登录 MySQL 服务。
mysql>exit; 
@>mysql -u phplamp -p 
@>输入密码 
mysql>登录成功

3) 删除无关帐号

DROP USER 语句可用于删除一个或多个 MySQL 账户。使用 DROP USER 命令时,必须确保当前账号拥有 MySQL 数据库的全局 CREATE USER 权限或 DELETE 权限。账户名称的用户和主机部分分别与用户表记录的 User 和 Host 列值相对应。

执行DROP USER user;语句,您可以取消一个账户和其权限,并删除来自所有授权表的帐户权限记录。

2、 口令

检查账户默认密码和弱密码。口令长度需要至少八位,并包括数字、小写字母、大写字母和特殊符号四类中的至少两种类型,且五次以内不得设置相同的口令。密码应至少每 90 天进行一次更换。

您可以通过执行以下命令修改密码。

 mysql> update user set password=password('test!p3') where user='root';
 mysql> flush privileges;

3、授权

在数据库权限配置能力范围内,根据业务需要,配置其所需的最小权限。

  • 查看数据库授权情况。
mysql> use mysql;
mysql> select * from user;
mysql>select * from db;
mysql>select * from host;
mysql>select * from tables_priv;
mysql>select * from columns_priv;
  • 通过 revoke 命令回收不必要的或危险的授权。
mysql> help revoke
Name: 'REVOKE'
Description:
Syntax:
REVOKE
priv_type [(column_list)]
   [, priv_type [(column_list)]] ...
 ON [object_type]
     {
         *
       | *.*
       | db_name.*
       | db_name.tbl_name
       | tbl_name
       | db_name.routine_name
     }
 FROM user [, user] ...

4、开启日志审计功能

数据库应配置日志功能,便于记录运行状况和操作行为。

MySQL服务有以下几种日志类型:

  • 错误日志: -log-err
  • 查询日志: -log (可选)
  • 慢查询日志: -log-slow-queries (可选)
  • 更新日志: -log-update
  • 二进制日志: -log-bin

找到 MySQL 的安装目录,在 my.ini 配置文件中增加上述所需的日志类型参数,保存配置文件后,重启 MySQL 服务即可启用日志功能。例如,

#Enter a name for the binary log. Otherwise a default name will be used. 
#log-bin= 
#Enter a name for the query log file. Otherwise a default name will be used. 
#log= 
#Enter a name for the error log file. Otherwise a default name will be used. 
log-error= 
#Enter a name for the update log file. Otherwise a default name will be used. 
#log-update=

该参数中启用错误日志。如果您需要启用其他的日志,只需把对应参数前面的 “#” 删除即可。

日志查询操作说明

  • 执行show variables like 'log_%';命令可查看所有的 log。
  • 执行show variables like 'log_bin';命令可查看具体的 log。

5、 安装最新补丁

确保系统安装了最新的安全补丁。

注意: 在保证业务及网络安全的前提下,并经过兼容性测试后,安装更新补丁。

6、如果不需要,应禁止远程访问

禁止网络连接,防止猜解密码攻击、溢出攻击、和嗅探攻击。

注意: 仅限于应用和数据库在同一台主机的情况。

如果数据库不需要远程访问,可以禁止远程 TCP/IP 连接,通过在 MySQL 服务器的启动参数中添加--skip-networking参数使 MySQL 服务不监听任何 TCP/IP 连接,增加安全性。

您可以使用 安全组 进行内外网访问控制,建议不要将数据库高危服务对互联网开放。

7、 设置可信 IP 访问控制

通过数据库所在操作系统的防火墙限制,实现只有信任的 IP 才能通过监听器访问数据库。

 mysql> GRANT ALL PRIVILEGES ON db.*
 ·-> -> TO 用户名@'IP子网/掩码'; 

8、连接数设置

根据您的机器性能和业务需求,设置最大、最小连接数。

在 MySQL 配置文件(my.conf 或 my.ini)的 [mysqld] 配置段中添加max_connections = 1000,保存配置文件,重启 MySQL 服务后即可生效。

更多文章请见

安全加固全解析---安全加固环节
安全加固全解析---操作系统安全加固方案
安全加固全解析—应用软件安全加固方案
安全加固全解析---数据库服务安全加固
安全加固全解析—语言运行环境安全加固方案
安全加固全解析--- Web应用安全加固方案

更多精彩内容,敬请扫描图中二维码

相关文章
|
安全 机器人
揭秘6种最有效的社会工程学攻击手段及防御之策
本文讲的是揭秘6种最有效的社会工程学攻击手段及防御之策,世界第一黑客凯文•米特尼克在《欺骗的艺术》中曾提到,人为因素才是安全的软肋。很多公司在信息安全上投入重金,最终导致数据泄露的原因却在人本身。
5237 0
|
10天前
|
安全 网络安全 数据安全/隐私保护
社会工程学攻击:了解并预防心理操控的网络欺诈
社会工程学攻击:了解并预防心理操控的网络欺诈
26 7
|
存储 机器学习/深度学习 监控
导致数据泄露的六个疏忽
导致数据泄露的六个疏忽
|
安全 网络安全
黑客攻击成网络安全大患 危害长久
韩国40多个政府机构网站近期遭到黑客攻击。图为韩国互联网振兴院的工作人员在密切监控网络系统。 马来西亚通信与多媒体委员会6月16日发表声明称,该国至少有41个政府网站已被黑客攻击。此前,美国参议院、国际货币基金组织、花旗银行、索尼公司等部门和机构都遭黑客攻击。
2394 0
|
安全 网络安全
警惕黑客破坏网络安全
国内多省网络近来连续遭遇黑客攻击,造成危害。专家认为,黑客攻击低成本、低门槛、高利润,危害越来越大,亟需全社会高度重视,共同推动网络安全管理全面升级。   电信“黑客”   9月10日晚8时许,安徽不少地区的网民发现自己所用的电信网络出现异常:网络游戏、电影下载及QQ等聊天工具可以正常使用,但网页打开时却慢得出奇,最后显示“您指定的网页无法访问!”网络异常涉及合肥、阜阳、六安、巢湖等地,当晚10时半后,各地网络才恢复正常。
1062 0
|
Web App开发 安全
警惕IE7新漏洞导致的木马病毒暴增
2月20日,瑞星公司发出2009年度第一个红色(一级)安全警报,因为针对IE7新漏洞(MS09-002)的病毒攻击代码在网上公布,导致利用该漏洞的新木马病毒大量出现。由于该类木马病毒的暴增,根据瑞星“云安全”系统的统计,仅在2月19日就截获了高达866万人次的挂马网站攻击,比前一天增加了一倍。
933 0