本文記錄了幾個月前,客戶在使用線上客服系統過程中,遭到勒索威脅,索要茶水費 的事件。經過應對,快速的化解了攻擊威脅,並繼續安全使用至今。
講故事
威脅次日,收到報警,伺服器 CPU 使用率持續超過 80%。連線伺服器後發現 CPU 佔用率 100%。檢視程式,客服系統後臺服務佔用了 CPU。
重新啟動客服系統後臺程式 ,CPU 佔用率恢復正常。檢視網路監控資料並沒有大的網路流量流入流出,初步推測是對客服系統所使用的通訊埠的攻擊行為。
更換系統所使用的監聽埠後繼續觀察。
晚間,再次收到 CPU 使用率報警,檢視發現依然是客服系統後臺服務 100% 佔用了 CPU。重啟服務後恢復正常。幾小時後,我遠端伺服器檢視,發現 CPU 佔用率穩定在 50%,看來攻擊者為了避免引起我的注意,改進了攻擊手段,降低了攻擊強度。
相同的版本,部署在我的客戶的伺服器上執行的環境則是一切正常,持續執行了兩週沒有任何異常情況,而且客戶正式使用的環境,使用強度比我的演示環境要大的多。
Windbg 分析
在我第一次發現問題,更換埠,消停兩次之後,再次發生的攻擊行為,看起來是和我槓上了。
-
首先,在攻擊行為發生時,建立客服系統後臺服務的 Dump 檔案,注意區分 x86 和 x64。
-
安裝 WinDbg 或 WinDbg Priview ,Windows 10 推薦使用 WinDbg privew,使用 WinDbg 開啟 Dump 檔案。
第一次開啟時,會自動下載所需的 PDB 檔案,等待下載完成後,即可載入除錯資訊,如下圖:
-
執行 reload 命令
-
執行 loadby sos clr 命令
-
執行 !tp 命令
顯示出 CPU 佔用率 51%。
- 接下來,我們要找到造成 CPU 佔用具體的執行緒和位置,使用 !runaway 命令。定位到執行緒 41 長時間佔用 CPU。
- 使用命令 ~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、各大平臺的公眾號對接。
- 支援訪客資訊互通,可傳輸訪客標識、名稱和其它任意資訊到客服系統。
- 具備一線專業技術水平,網路中斷,拔掉網線,手機飛航模式,不丟訊息。同類軟體可以按影片方式對比測試。
-
- bilibili 影片:https://www.bilibili.com/video/BV1pK4y1N7UP?t=22
希望能夠打造: 開放、開源、共享。努力打造 .net 社群的一款優秀開源產品。