黑客攻擊(撞庫)事件復盤:黑客都比你努力
在電商、互聯網金融、OTA等平臺,黑客攻擊很常見。針對黑客攻擊,我們能做什么?一起來看看作者的親身經歷。
一直知道有黑客的存在,一直知道有“黑產”的存在,但沒想到過有一天我如此近距離的接觸黑客以及所謂的黑產。
事情的經過大概是這樣的:
昨天晚上10點登錄系統突然收到告警短信,告警信息表明,目前有異常大流量請求;由于時間比較晚,花了點時間才聯系到核心的研發人員;登錄系統查看了下,發現確實有接近平時200倍的異常登錄請求。初步看了下請求的IP來源都是比較分散的,特征是在不斷的嘗試用戶名、密碼登錄,并且已經破解了我們的圖形驗證碼。
綜合上面的信息,我們初步判斷這應該是一次典型的黑客撞庫行為。
何為撞庫?
所謂撞庫行為,就是黑客在別的地方,一般是安全程度不高的網站被入侵,拿到了這個網站所有用戶的用戶名,密碼信息。然后拿這些用戶名、密碼在其他網站進行登錄嘗試,因為有不少人是存在一個普遍行為,即在不同的網站用的是同一個用戶名,密碼。
這樣A網站如果被入侵,泄露了用戶的個人信息,黑客可以拿這些用戶名、密碼到B網站去登錄,如果同一個用戶既注冊了A網站又注冊了B網站,這樣黑客就可以用A網站得到的信息登錄B網站,從而進入用戶在B網站的賬號。
以為解決掉了
發現了這個行為后,我們先想的是如何禁止黑客的暴力登錄;這樣不僅存在撞庫風險,由于請求量比較大還會影響普通正常用的體驗。
研發抓了日志,經過分析,基本可以確定黑客是通過工具進行批量進行登錄。
黑客的請求,來源IP比較分散,每次都嘗試不同的用戶名和密碼,想簡單的采用封IP的方案是不行了,最后發現所有的異常請求里面,有一個http header是有相同的特征,拉上運維人員一起商量,最后決定在nginx這里對這類的請求進行攔截。
整個流程花費了大概1個半小時,最后nginx策略生效后確實有效的把異常流量給封住了,那會也快晚上12點了,又觀察了一會,發現對方沒有新的動作,以為這件事就這樣結束了。
噩夢才真正開始
第二天上午接到用戶投訴,說我們的網站泄露了用戶的隱私,有人打電話給用戶,冒充網站的客服人員,對用戶進行欺詐。
經過跟幾個被詐騙的客戶了解,基本搞清楚了黑客的詐騙手段。
首選黑客登錄用戶的賬號,看了下用戶最新的訂單信息,然后打電話給用戶,冒充網站的客服人員,說這個客戶買的某個商品質量有問題,網站要進行召回,請進行退貨處理。退貨地址的詳細地址在用戶的個人地址里面。黑客特意修改了用戶的個人收貨地址,并在里面藏了一個釣魚網站的連接,誘導用戶點擊這個釣魚網站。這個釣魚網站完全模仿支付寶登錄界面,除了域名不一樣,其他一模一樣,有些用戶沒注意,就在這個界面輸入了自己的支付寶賬號信息,黑客通過這個辦法拿到了用戶的支付寶賬號,然后自己登錄用戶的支付寶賬號——下面就不說了,大家懂的。。。
對于這種欺詐行為,有一定的迷惑性,因為對方可以清晰的報出用戶買的東西以及訂單號、下單時間、收貨地址,有些警覺性比較低的用戶就真的會相信這是網站“官方”的行為,然后按照引導去操作,最后支付寶賬號信息被盜取。
一上午的時間,客服陸續接到近10起類似投訴,其中有一個用戶支付寶被盜了2萬塊,要求我們進行補償——這個時候,我們才意識到問題的嚴重性:首先我們不知道黑客具體拿到了多少我們網站的用戶信息,然后還不知道即將有多少用戶因此受騙。。。
魔高一尺道高一丈
我們緊急先找了下昨晚攻擊時間段的請求日志,嘗試發現哪些用戶被黑客撞庫成功了。
由于我們沒有記錄詳細的登錄日志,所以單從日志上看不出來這個信息,最后只能把攻擊的那個時間段內,所有成功登錄過的用戶信息全部拉出來,悲觀的認為這些都是被黑客攻擊的賬號;然后批量給這些用戶發短信進行提醒,為了防止黑客還能登錄這些賬號進行欺詐,我們立刻把這些賬號的密碼置空,要求用戶立即修改密碼。
我們以為這樣黑客就沒辦法再登錄這些賬號進行欺詐了,結果又被現實狠狠的打臉,因為還陸續有客服反饋有用戶來投訴,這就讓我們很不理解:為什么黑客都不能登錄了,還能看到用戶的信息進行詐騙呢?難道黑客把這些信息存下來拉?
我們立刻又去翻日志,最后發現:黑客在撞庫成功后,立刻就把用戶的訂單信息,個人信息全部用腳本查詢了一遍,并且把這些信息存了下來。
這時候才發現,黑客在攻擊我們之前,已經對我們網站的接口進行了細致的分析,制定了一套相對完整的攻擊方案。
黑客都比你努力
經過這次攻擊,發現黑客還是很用心的做了很多準備工作。
- 首先分析我們的接口信息。
- 寫撞庫的工具,成功登錄后,立刻將用戶的關鍵信息落地。
- 選擇在深夜進行攻擊,我們發現異常到找到相關的人,到制定響應方案時間比較長,可以盡量爭取攻擊的時間。
- 針對我們的網站,執行針對我們網站用戶的詐騙方案。
現在看下來,整個流程事先都是準備好的,而我們的響應方案確實漏洞百出。
吃一塹長一智
這次攻擊也暴漏了系統很多的問題,總結幾點。
- 沒有任何安全防護措施,對于這種典型的異常流量響應很被動。現在市面上有很多成熟的waf,可以自動識別這種惡意工具,從而將惡意流量進行有效清洗。
- 協議沒有加密,讓別人很容易拿到協議的內容,進行模擬。
- 圖形驗證碼沒有難度,很容易被破解,需要增加級別更好的驗證方式。語音驗證或者滑動驗證。
- 沒有基本的風控模型,比如用戶正常是在上海登錄,突然在新疆登錄了一次,這個時候應該有異常的標記或者告警。
#專欄作家#
DearNicole,人人都是產品經理專欄作家,前京東產品經理、研發經理,主攻電商的方方面面。
本文原創發布于人人都是產品經理。未經許可,禁止轉載。
題圖來自 Unsplash ,基于 CC0 協議
我平時也自娛自樂kali linux,都是自己玩自己的。
好奇是什么網站