博客
关于我
卧槽!黑客让吴师兄打钱赎回数据!
阅读量:691 次
发布时间:2019-03-16

本文共 1801 字,大约阅读时间需要 6 分钟。

数据库失陷事件分析

昨天晚上,读者群里一位小伙伴发消息说自己的数据库被黑了。作为安全爱好者,我立刻开始分析这个问题,不知道是不是要熬夜打造防火墙了。一开始我以为这只是打个闹啊,但仔细看了一下,这位小伙伴的数据库被彻底干掉了,估计是遭受了勒索攻击。

这位小伙伴使用的是某云平台搭建的网站,昨天登录时却出现了奇怪的报错。根据他的描述,数据库中只剩下一个叫 WARNING 的表,表中只有一行数据,记录了勒索者的威胁信息。我们立刻登录了上去,用 Navicat 连接数据库,果然发现了这些异常现象。

接下来,我们打算用 SSH 登录到服务器,查看是否有可疑的蛛丝马迹。首先,我们检查了系统登录日志,但没有发现有可疑的 IP 访问记录。接着,我们查看了系统用户列表,也没有发现有可疑的用户出现。

然后,我们利用 MySQL 的日志来进一步分析这个问题。虽然这位小伙伴说没有开启 binlog,但我们发现 MySQL 的 binlog 是开启的,并且相关的日志文件也存在。这一点非常关键,因为 binlog 可以帮助我们追溯数据库操作的历史。

通过分析 MySQL 的 binlog 记录,我们发现攻击者是在 11 月 10 日上午 8:32 到 8:34 分这段时间内完成的操作。根据 binlog 的时间戳,攻击者在短短两分钟内完成了 DROP 操作,这说明攻击者非常熟练,时间窗口非常小,不留下很多线索。

进一步分析发现,攻击者并没有备份数据,而是直接执行了 DROP 操作。所以我们别指望数据能被恢复回来,必须立刻采取行动。

接下来,我们查看了 MySQL 的登录日志。虽然 system.general 日志没有开启,但我们还是发现了一个叫 admin 的用户,这个用户用的密码非常弱,只有 123456。这无疑为攻击者打开了大门。

此外,我们还发现了 SSH 暴力破解的记录,显示攻击者连续持续了 24 小时,试图用暴力的方式破解 SSH 账户。这进一步证明了攻击者对这个系统的长期关注。

考虑到防火墙的状态,我们发现防火墙完全是关闭的状态。攻击者利用这一漏洞,试图通过 SSH 的方式攻击系统。这一点非常危险,因为攻击者可以轻松地运行各种暴力破解工具。

为了应对这种情况,我们立即采取了以下措施:

  • 在 SSH 登录时,限制了每分钟的尝试次数,超过三次的请求会自动拒绝。这可以有效地减少暴力破解的影响。
  • 我们还对系统重新启用了防火墙,并添加了更多的安全规则,以防止未经授权的访问。
  • 对 system.security 日志进行了查看,发现攻击者的行为明显减少了。
  • 我们还提醒小伙伴定期修改密码,并建议他部署更强大的安全工具,比如全流量分析产品,以便更好地追溯攻击者的来源。
  • 通过这次事件,我们深刻认识到安全问题的严重性。尽管这次没有造成太大的直接损失,但也让我们意识到,轻而易举的数据库破坏可能对个人的信誉和业务造成严重影响。

    安全建议

  • 日志记录

    在业务允许的范围内,尽可能地开启详尽的日志记录,包括操作系统日志、审计日志、Web 访问日志、数据库连接登录日志和数据操作日志等。这些日志能帮助我们在案发后快速溯源,找到攻击者的脚印。

  • 数据备份

    定时进行关键数据的备份存储,这是应对勒索攻击最简单有效的方法。即使数据库被清空,备份数据也能让你从容应对。

  • 密码强度

    不要使用弱口令。建议使用数字、字母、大小写组合以及特殊符号的密码,并定期修改。一个好的密码可以为你抵挡住大部分攻击。

  • 定期修改密码

    即使用上了强大的密码,也不意味着万无一失。社会工程学攻击者可能会尝试利用你熟悉的信息来获取你的密码。因此,定期修改密码也是非常必要的。

  • 防火墙

    防火墙是第一道防线。确保防火墙处于最佳状态,并定期检查和优化规则。通过添加合理的防火墙规则,可以有效地拒绝大部分未经授权的访问。

  • 专业的安全产品

    对于企业和政府单位,使用专业的安全产品是必不可少的。例如,全流量分析产品可以帮助你追溯攻击者的来源,找出系统漏洞,并及时修补。

  • 这次事件再次提醒我们,安全不是一次性的工程,而是需要长期投入和不断优化的过程。只有始终保持警惕,才能在遭遇数据库失陷时最大限度地减少损失。希望通过这次分析,大家能够从中学到宝贵的安全知识,并采取相应的防护措施,保护好自己的数据和业务。安全离我们并不遥远,但唯有重视它,才能真正保护好自己。

    转载地址:http://jdhqz.baihongyu.com/

    你可能感兴趣的文章
    MySQL 备份 Xtrabackup
    查看>>
    mysql 复杂查询_mysql中复杂查询
    查看>>
    mYSQL 外键约束
    查看>>
    mysql 多个表关联查询查询时间长的问题
    查看>>
    mySQL 多个表求多个count
    查看>>
    mysql 多字段删除重复数据,保留最小id数据
    查看>>
    MySQL 多表联合查询:UNION 和 JOIN 分析
    查看>>
    MySQL 大数据量快速插入方法和语句优化
    查看>>
    mysql 如何给SQL添加索引
    查看>>
    mysql 字段区分大小写
    查看>>
    mysql 字段合并问题(group_concat)
    查看>>
    mysql 字段类型类型
    查看>>
    MySQL 字符串截取函数,字段截取,字符串截取
    查看>>
    MySQL 存储引擎
    查看>>
    mysql 存储过程 注入_mysql 视图 事务 存储过程 SQL注入
    查看>>
    MySQL 存储过程参数:in、out、inout
    查看>>
    mysql 存储过程每隔一段时间执行一次
    查看>>
    mysql 存在update不存在insert
    查看>>
    Mysql 学习总结(86)—— Mysql 的 JSON 数据类型正确使用姿势
    查看>>
    Mysql 学习总结(87)—— Mysql 执行计划(Explain)再总结
    查看>>