数据库黑客入侵事件(1)--精心准备的入侵
总结这些年数据库运维,除了数据库优化,审核,高可用,故障处理等这些日常事情外,给我留下感触最深的就是有二起数据库入侵事件,自己亲身经历的黑客攻击拖库事件,一起是事件的追查者,一起是事件的发现者,两个事件已经距离有点长时间,而且已经离开,不会对公司有什么影响,公司名用代号替代。
今天介绍一下其中一起入侵事件,详细追查过程和相关敏感信息忽略。
A电商公司,某个周一,公司接到好几个客户的投诉,说接到自称是来自公司的电话,说是搞活动,发信息链接给客户搞网络诈骗。得到这些消息后,公司CTO,拉了个群,找运维查是否有内部人员偷取公司数据,让我查一下数据库是否有什么异常。
开始分析数据库的执行SQL,当时为了找到慢SQL优化,特意一直开启了订单主库的SQL Server的Profile事件,超过1秒的SQL都会保留,我就直接看前几天的监控Profile的慢SQL语句,发现二个异常的SQL:
1,有一天凌晨3点查询订单主表的SQL,查出的数据量有几百万条订单敏感数据。
2,也是在同天凌晨,发现一个根据订单号查询订单表的SQL,因订单号是字符串,他写成了数字,导致无法使用索引,被Profile捕获的慢SQL
随着追查的深入,发现越来越多信息:
1,黑客攻击拖数据前几天,在网站系统下,一个订单,后续取消,后根据前台网站订单号,进入数据库后查询确认是订单数据。
2,黑客拿到账号和密码后,进入SQL Server数据库,手工创建订单关联表视图,通过视图导出数据
1,视图DDL,通过昨天完整备份+日志,通过还原到指定时间点获取到完整视图语句
2,看视图SQL,黑客只要了最近几个月的订单敏感数据,太早的数据没要。
3,黑客当天拖库前几天,已经入侵公司线上IDC机房机器,做了一次前期的准备。
发现一台机器的SSIS打开创建了SSIS任务包
4,黑客通过入侵BI组的一台跳板机,登陆到线上SQL Server
通过Profile捕获以上异常慢SQL获取的IP,这个BI的跳板机,大概我是半年前帮他们安装的,后续移交后就忘记有这台机器。
5,黑客导出数据后,将压缩包发到web网站一个目录下,一台2个月前刚部署的虚拟机上,通过下载软件下载
1,下载后,黑客删除了数据压缩包,但是在zabbix里有当时的网站流程出口有大流量。
2, 删除的数据压缩包,通过数据恢复软件,恢复出完整的恢复出里面的数据。
和运维同事那边获取的信息,大致把黑客入侵方法,拖库的步骤弄清楚。
公司高层的二次调查:
1,第一次调查,是CTO拉群调查,我们这几个核心人知道,但是最终查不出黑客,报警,给了警方IP,最后警方说是来自境外诈骗IP
2,第二次调查,前一次调查结束了就没事,没想到几个月后,公司又委派总裁再调查这件事
我跟2位公司高层领导他们介绍了这些情况,的确是因为安全没做好,让人有可成之机。
安全改进:
1,改进线上IDC登陆,改成VPN+短信安全认证
2,数据库密码重设,改进程序明文密码,改成用短名称密码加密服务化(连接串改成短名称,IP,账号和密码通过短名称请求服务获取,同时connction变成私有,表中存储加密密码),
3,线上IDC数据库机器,除DBA,任何人不允许下载文件。
4,跳板机改成堡垒机,记录使用人使用行为。
.......
个人感触:
1,对手比你更了解你自己,我都忘记了半年前BI跳板机,没有见过2个月的web网站机器,每个人都只能知道自己熟悉的机器
黑客基本摸清了我们线上服务器部署,搞清楚BI,数据库,网站这些机器,比我们还了解我们线上IDC的服务器,
2,精心准备,细节着手
多次准备,不惜下单后,再查询SQL确认,保证要的数据万无一失。
3,虽然黑客有点数据库知识,不精通,但是疏忽了查询SQL,数字和字符区别,导致查询慢。