前言
通常web业务的重要数据诸如账户、交易信息都会存储在数据库中,这也使得数据库成为黑产攻击的重要目标。所谓拖库,就是通过入侵网站,非法获取数据库内容。本文将从黑产的动机、常见手段和如何防范三个角度讲解下拖库的相关知识。
动机
黑产进行拖库的动机很多,我归纳主要有以下几种。
商业打击
主要目的不是将窃取的数据变现,而是通过散播消息,从商誉的角度打击受害企业,这种对电商、P2P、保险企业尤其致命,可以让广大消费者对该企业的安全能力产生严重怀疑以至于不信任。
利益驱动
主要目的是将窃取的数据变现。
炫耀能力
炫耀能力,敲诈勒索的前奏。
黑色产业链
拖库只是地下市场贩卖数据的一个环节,整个流程已经形成了完整的产业链,各司其职,我们拿个简化的模型介绍下,整个环节中有这样几个角色。
拖库者
专门负责入侵网站,获取原始的数据库文件。
洗库者
专门负责从拖库者那里收购原始的数据库文件,然后根据不同的用途从原始数据中提取有用的数据。
数据贩卖者
专门负责从洗库者(有时也直接从拖库者那里直接购买原始数据库文件)收购洗完整理好的数据,售卖给各类买家。哪些数据可以用于哪些用途是个非常复杂的话题,这里就不展开讨论了。
数据买家
数据买家就很复杂了,处于各种目的购买各类黑白灰数据,这里只列举几种常见的:
1. 电信欺诈,购买知名电商的近期消费数据、用户详细信息
2. 盗号,购买用户名密码用于撞库,偷玩家装备,甚至直接转账
3. 非法广告商,购买消费、购物车、联系方式等数据,用于精准营销
方法
常见的拖库方式主要有以下几种:
SQL注入
这个最常见,通过SQL注入漏洞可以缓慢偷走数据库中的数据,用神器sqlmap即可。不过这个动静特别大,攻击时间长。
上传漏洞/远程命令执行
通过上传漏洞或者远程命令执行漏洞上传webshell到服务器上,通过webshell的数据库管理功能的大马即可把数据库数据dump走。
运维配置不当
这个情况就特别多了,我见过的有phpmyadmin弱密码甚至空密码导致数据被偷走了,还有数据库对外开放,账户被github泄露了,而且还没限制账户登录IP的。
数据库漏洞
直接利用数据库的cve漏洞,绕过认证鉴权等限制,直接把数据拷贝走。这种比较少见,因为绝大多数数据还是在内网,无法在外网直接发起攻击,需要渗透到内网才能进行这类攻击。
防范
由于拖库的方式很多,所以很难仅统一某一种方式可以彻底杜绝,这里从纵深防御,协防联动的角度来介绍。
WAF/WEB-IDS
WAF无法百分百解决拖库的问题,但是可以提高攻击门槛,有效低于中小黑客的自动化攻击,对SQL注入、上传漏洞、远程命令执行导致的拖库有较好的防御效果。
WEB-IDS由于是旁路部署,可以更好的使用机器学习以及语法分析能力,所以针对SQL注入、上传漏洞、远程命令执行导致的拖库有更好的检测能力。
数据库审计/数据库防火墙
这个是最直接的保护方式,直接在数据库的前端处理全部对数据库的访问,但是其部署难度较大,不如WAF部署方便。另外对于通过入侵数据库服务器直接copy走原始的数据的攻击,难以防范。
HIDS
监控对数据库文件以及备份文件的读写行为,发现直接copy即报警。
DLP
通常DLP部署在办公网防止员工泄密的,但是确实有用户把DLP设备部署在IDC,从http流量中识别高危的身份证号、邮箱等数据库的泄露行为。
思路不是从攻击行为的角度,而是从造成的结果的角度,比如发现某个连接返回超过100个身份证号即报警,但是如果是通过SQL的盲注来拖库,DLP检测会失效。
主机加固
加强运维管理,尽量及时升级补丁,配置acl,数据库账户根据用途区分等。