數據安全 | 黑產研究之拖庫
前言
通常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,數據庫賬戶根據用途區分等。