記一次線上客服系統使用者遭勒索,索要茶水費事件的 Windbg 分析與應對

2023-11-22 15:01:56

本文記錄了幾個月前,客戶在使用線上客服系統過程中,遭到勒索威脅,索要茶水費 的事件。經過應對,快速的化解了攻擊威脅,並繼續安全使用至今。

講故事

威脅次日,收到報警,伺服器 CPU 使用率持續超過 80%。連線伺服器後發現 CPU 佔用率 100%。檢視程序,客服系統後臺服務佔用了 CPU。
重新啟動客服系統後臺程序 ,CPU 佔用率恢復正常。檢視網路監控資料並沒有大的網路流量流入流出,初步推測是對客服系統所使用的通訊埠的攻擊行為。

更換系統所使用的監聽埠後繼續觀察。

晚間,再次收到 CPU 使用率報警,檢視發現依然是客服系統後臺服務 100% 佔用了 CPU。重啟服務後恢復正常。幾小時後,我遠端伺服器檢視,發現 CPU 佔用率穩定在 50%,看來攻擊者為了避免引起我的注意,改進了攻擊手段,降低了攻擊強度。

相同的版本,部署在我的客戶的伺服器上執行的環境則是一切正常,持續執行了兩週沒有任何異常情況,而且客戶正式使用的環境,使用強度比我的演示環境要大的多。

Windbg 分析

在我第一次發現問題,更換埠,消停兩次之後,再次發生的攻擊行為,看起來是和我槓上了。

  1. 首先,在攻擊行為發生時,建立客服系統後臺服務的 Dump 檔案,注意區分 x86 和 x64。

  2. 安裝 WinDbg 或 WinDbg Priview ,Windows 10 推薦使用 WinDbg privew,使用 WinDbg 開啟 Dump 檔案。
    第一次開啟時,會自動下載所需的 PDB 檔案,等待下載完成後,即可載入偵錯資訊,如下圖:

  1. 執行 reload 命令

  2. 執行 loadby sos clr 命令

  3. 執行 !tp 命令
    顯示出 CPU 佔用率 51%。

  1. 接下來,我們要找到造成 CPU 佔用具體的執行緒和位置,使用 !runaway 命令。定位到執行緒 41 長時間佔用 CPU。

  1. 使用命令 ~41s 進入執行緒。接著使用 !clrstack 命令顯示呼叫堆疊。
    如圖,根據呼叫堆疊顯示的資訊,非常明確的指示出,Socket 埠接收資料時,大量佔用了 CPU。


結合系統的其它紀錄檔,判斷攻擊者通過連線 TCP 埠,高強度,大量的傳送垃圾資料,導致伺服器 CPU 高負荷執行,企圖拖垮伺服器。明確攻擊位置和原因之後,就好辦了,在 Socket 埠連線和監聽時,加入安全反制的機制,重新部署上線。

不久,抓到了一個國內 IP ,此 IP 發起了攻擊行為,系統自動切斷了連線並拉黑了此 IP 地址。隨後的幾天中,攻擊者使用了國外代理髮起攻擊行為,先後抓到了兩個不同國家的 IP,使用相同的方式發起攻擊行為。雖然攻擊者切換了國外代理,但最初的國內 IP 已經暴露。

攻擊者使用了一個位於荷蘭的 IP ,再次發起攻擊,伺服器在識別到攻擊行為後,幾秒鐘內切斷了連線,並拉黑攻擊 IP。


免費線上使用 & 免費私有化部署:https://kf.shengxunwei.com


視訊實拍:演示升訊威線上客服系統在網路中斷,直接禁用網路卡,拔掉網線的情況下,也不丟訊息,不出異常。
https://blog.shengxunwei.com/Home/Post/fe432a51-337c-4558-b9e8-347b58cbcd53

客服端

訪客端

  • 可以追蹤正在存取網站或使用 APP 的所有訪客,收集他們的瀏覽情況,使客服能夠主動出擊,施展話術,促進成單。
    訪* 客端在 PC 支援所有新老瀏覽器。包括不支援 WebSocket 的 IE8 也能正常使用。
  • 行動端支援所有手機瀏覽器、APP、各大平臺的公眾號對接。
  • 支援訪客資訊互通,可傳輸訪客標識、名稱和其它任意資訊到客服系統。
  • 具備一線專業技術水平,網路中斷,拔掉網線,手機飛航模式,不丟訊息。同類軟體可以按視訊方式對比測試。

希望能夠打造: 開放、開源、共用。努力打造 .net 社群的一款優秀開源產品。

鐘意的話請給個贊支援一下吧,謝謝~