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

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

信息泄露起因

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

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

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应用安全加固方案

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

“拖库”防不胜防,如何早做预防?相关推荐

  1. 由拖库攻击谈口令字段的加密策略

    原文地址:由拖库攻击谈口令字段的加密策略 我不得不惨痛地写在前面的是,这是一个安全崩盘的时代.过去一年,已经证实的遭遇入侵.并导致关键数据被窃或者被泄露的公司,包括索尼.世嘉这样的大型游戏设备厂商:包 ...

  2. 即使被拖库,也可以保证密码不泄露

    转自:http://blog.coderzh.com/2016/01/10/a-password-security-design-example/ 在前一篇文章<设计安全的账号系统的正确姿势&g ...

  3. 从12306信息泄露了解何为黑客撞库拖库洗库

    12月24日,漏洞报告平台乌云网出现了一则关于中国铁路购票网站12306的漏洞报告,危害等级显示为"高",漏洞类型则是"用户资料大量泄漏".据悉,此漏洞将有可能 ...

  4. mysql连接的特性及拖库姿势

    0x01. 前言 有时候,有人会带着这样的疑问? 当netstat -ano发现3306监听在0.0.0.0上,是不是就可以判断mysql是对外开放的 答案当然是否定的. 0x02. mysql连接特 ...

  5. 现实版“无间道”,4名煞星潜伏,只为拖库!

    >>原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! >>原文链接地址:现实版"无间道",4名煞星潜伏,只为拖库! 4年前,无意中跟认识的一个朋友 ...

  6. 迅雷官方回应“被拖库”致密码泄露:恶意造谣

    昨日晚间,有微博网友爆料称,迅雷遭遇拖库事件,用户密码.下载记录全部泄露.所谓拖库,本来是数据库领域的术语,指从数据库中导出数据,而在黑客攻击泛滥的今天,它被用来指网站遭到入侵后,黑客窃取其数据库. ...

  7. 厉害了黑科技,动态安全下的防拖库原来可以这么简单!

    [51CTO.com原创稿件]9月28日,中国高校数据泄密违法处罚第一案诞生--国家网络与信息安全信息通报中心通报:淮南职业技术学院系统存在高危漏洞,系统存储的4353余名学生身份信息已经造成泄露.据 ...

  8. 最早做无糖茶的统一茶里王,是怎样错过年轻人的?

    文|螳螂财经(TanglangFin) 作者|图霖 一度被嘲"难喝"的无糖茶饮,终于等来了属于它的"风口". 据新思界产业研究中心发布的<2018年全球无 ...

  9. 《Excel效率手册:早做完,不加班》

    <Excel效率手册:早做完,不加班> 基本信息 作者: 陈锡卢    杨明辉 出版社:清华大学出版社 ISBN:9787302350743 上架时间:2014-5-8 出版日期:2014 ...

最新文章

  1. emacs参考资料整理
  2. OVS端口镜像(十五)
  3. 把自己当成打工的,一辈子都是打工的!:周鸿祎
  4. python没有菜单栏_解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
  5. App送审,4.3问题怎样处理
  6. poj 3335 Rotating Scoreboard - 半平面交
  7. mysql xtrabackup_mysql备份
  8. 德语翻译-德语在线批量翻译软件
  9. GNSS 5星16频
  10. java爬取中央气象台天气预报
  11. 外接USB蓝牙设置无法启动
  12. 100M宽带能下载多快? 关于带宽的下载速度研究
  13. Win10 Ubuntu16.04 时间同步问题
  14. fmri优缺点_题集|03 EEG、fMRI、PET等的优缺点;经典条件作用的形成及其规律;中介变量和调节变量及其区别;动机与行为效率的关系...
  15. golang bilibili直播弹幕姬
  16. python实现去重_Python列表去重的4种实现方法
  17. 北美票房排行榜 实时_快手直播丨主播实时直播监测数据分享——思文22号美妆童装专场...
  18. 润叶在他最低沉的时候是谁在他的身边
  19. 三星存储新品首销情况揭秘
  20. Complementary congruent and opposite neurons achieve concurrent multisensory integration and segrega

热门文章

  1. VMware静态地址上网
  2. 收录对网站优化起到什么作用?
  3. 自定义Flex Library的使用
  4. 看到好东西, 赶紧收藏一下
  5. IVs提取合并工具ivstools
  6. Bash的基础知识man手册
  7. 机器学习算法_五分钟了解机器学习十大算法
  8. Ubuntu+mps-youtube for crawling video / audio
  9. 虚拟机 pxe服务器,配置PXE安装ESXi主机
  10. 当机器人遇上神经科学时,将会发生什么?