Home 技術文章 如何保護您的OTT服務免受憑據填充攻擊
Applications

如何保護您的OTT服務免受憑據填充攻擊

About The Author

Outline

對OTT流式傳輸服務的憑據填充攻擊所造成的威脅 最近變得非常明顯。 在廣受歡迎的流媒體服務啓動後的幾個小時內,用戶帳戶被黑客攻擊,並以折扣價出售。 這種漏洞演變成了公關挑戰,成千上萬的訂閱者轉而使用社交媒體來表達他們對鎖定賬戶訪問和服務訪問問題的不滿。

正如這一經驗所示,撞庫攻擊是OTT安全團隊面臨的新挑戰。 流式服務訂閱由免費試用,線纜切割和獨家內容驅動,生成了大量用戶資訊,使OTT服務成爲數據盜竊的更具吸引力的目標。 轉售訪問被入侵帳戶並不是黑客的唯一動機。 他們還可以從被入侵的用戶帳戶(如地址,電話和瀏覽歷史記錄以及信用卡數據)中刪除寶貴的私人詳細資訊。 然後,黑客可以在黑暗的網路上銷售這些資訊,或者通過社交工程和網路釣魚攻擊造成進一步的損害。

撞庫攻擊的破壞區域遠遠超出了對用戶隱私和財務的影響。 憑據填充攻擊使用殭屍網路,能夠每小時自動處理數百萬個登入請求,從而對應用程式基礎設施造成嚴重破壞。 即使成功率很低,如此大量的請求也會增加流式傳輸平臺的營運成本。 額外的CPU週期,記憶體和數據入口/出口費用隨着時間的推移而增加。 鑑於管理應用程式後端(尤其是在雲中)的成本相對較高,登入請求在很大程度上依賴後端系統,是最昂貴的攻擊。 最終,高水平未經檢查的惡意活動會降低試圖驗證,瀏覽和流式傳輸內容的合法用戶的服務。

流媒體服務如何消除這種日益增長的威脅? 這篇技術文章將回顧在當今世界中管理爬蟲程序所需的內容,以及流式服務如何最大限度地減少撞庫攻擊的影響和可能性。

撞庫攻擊的剖析

網路犯罪分子可以通過多種方式獲取被盜憑據來發起憑據填充攻擊,包括發現錯誤配置的數據庫,網路釣魚攻擊,使用惡意軟體感染用戶的設備或在黑暗的網路上購買黑客身份憑證。 接下來,攻擊者通過分佈式代理伺服器路由無數次登入請求,以掩蓋攻擊的來源並放大請求。 犯罪分子可以通過黑網論壇上的爬蟲程序牧民以合理的小時費率購買代理服務。 最後,攻擊者創建腳本,使用被破壞的憑據列表自動執行身份驗證請求,通常使用重複使用的或簡單的密碼來訪問服務。 攻擊者也可能在黑暗網路上購買工具包,例如CAPTCHA解算器,瀏覽器仿真器或指紋欺騙腳本,以幫助抵禦現有的防禦。

防禦撞庫攻擊

阻止此類攻擊需要能夠將爬蟲程序與人類區分開來。 不幸的是,爬蟲程序操作員不斷找到規避爬蟲程序檢測方法的新方法。 最新一代的爬蟲程序與人類幾乎無法區分。

隨着爬蟲程序越來越複雜,過去可能行之有效的簡單緩解策略(如阻止爬蟲程序的請求,IP地址或用戶代理(UA))已不再足夠。 當今的攻擊者最有可能使用廉價而豐富的旋轉IP代理服務,而不是攻擊靜態IP,這有助於他們規避速率限制和簡單訪問控制列表(ACL)保護。 此外,封鎖並不可取,因爲它可作爲機器人程式操作員有用的回饋機制,讓他們進化自動化以擊敗偵測方法。

爬蟲程序檢測技術必須變得更加複雜,才能與日益複雜的爬蟲程序攻擊相匹配。 當今最先進的爬蟲程序檢測技術涉及伺服器端和客戶端三種形式的分析。 它們是:

  1. 請求指紋
  2. 客戶機指紋列印
  3. 行爲指紋識別

您需要將這三種方法結合起來,才能擊敗複雜的撞庫攻擊。

攻擊檢測方法1:請求指紋

請求指紋通常在伺服器從客戶端接收到所有請求的資訊後在伺服器端完成。 客戶端請求通常由網路(IP),連接,加密和其他經過分析並用於生成請求指紋的HTTP元數據組成。 此指紋包括核心詳細資訊,如IP地址,TCP握手,TLS握手(即TLS協議,密碼, 和擴展),HTTP標頭和標頭順序以及源自元數據(如ASN和設備類型)的其他資訊。 這些請求特徵彙總在一起後,可以爲每個客戶端生成唯一的簽名或指紋。

圖1. 一個可以一起創建唯一請求指紋的請求特性的小樣本。

從指紋,我們可以開始查找異常。 例如,如果請求聲稱來自Chrome UA,它是否按照用戶代理中指示的該版本Chrome瀏覽器的預期順序包含標題? 它是否使用典型的HTTP和TLS協議? ClientHello訊息是否包含此Chrome版本一般偏好的通訊協定和密碼? 除了分析請求元數據外,伺服器還可以執行一些有限的行爲分析,例如請求的數量及其頻率,以及是否存在有助於確定請求是否自動執行的瀏覽模式。

要求指紋識別是必要的第一步,但本身並不足夠。

攻擊檢測方法2:客戶端指紋識別

要求指紋辨識的挑戰在於攻擊者現在可以僞造要求指紋,但通常情況下,這些指紋會與真實用戶端完全相同。 如果攻擊者犯了錯誤,請求指紋識別將識別這些錯誤—但您不能指望這種情況經常發生。

從根本上說,請求指紋只能說明一半的情況。 伺服器需要查看客戶端發生的情況,並生成客戶端指紋來補充請求指紋以獲得更多見解。 這使爬蟲程序檢測系統更全面地瞭解客戶端,使攻擊者更難避免檢測。

客戶端指紋列印伺服器可以通過重寫HTML來響應請求的頁面,注入一小段JavaScript (JS)在客戶端執行。 或者,伺服器可以插入指向客戶端載入登入頁時可以下載的遠程JS的腳本標記。 JS可以在客戶端執行檢查並收集設備資訊,如是否啓用JS或cookie ,並檢查操作系統,畫布,渲染器,瀏覽器,JS引擎, 以及更多的功能,以生成完整的客戶端指紋。

正常的瀏覽器應該支援cookie並啓用JS (以便它們可以正確登入並使用您的流式傳輸服務);不啓用它可能會引起懷疑。 客戶機指紋識別可以識別其他可疑的元素,這些元素不是廣告設備的典型,可能指示潛在的虛假客戶端,如Safari瀏覽器UA with Blink (瀏覽器引擎)或Chrome with SpiderMonkey JS引擎。

這些詳細資訊將被收集,並可作爲API調用以進行進一步分析,或被加密並設定爲cookie或報頭,以便在後續客戶端請求中發送到伺服器進行分析。 上述用於收集和生成客戶端指紋的技術也可以通過不同的SDK用於非瀏覽器流式應用,如iPhone/Android應用,Roku或三星電視。

圖2. 一小部分特徵樣本,可一起創建唯一的客戶端指紋。

儘管請求和客戶端指紋的組合對於早期的爬蟲程序非常有效,但更高級的爬蟲程序基於與人類相同的客戶端,包括Chrome,Firefox和Safari。 他們也可以使用無頭瀏覽器,如無頭Chrome。 與可能缺乏功能(如JavaScript和Cookie支援)的基本爬蟲程序不同,更高級的爬蟲程序可以使用正確的瀏覽器和JS引擎來執行與其設備類型一致的正確格式的TCP和TLS握手以及HTTP請求。

通過數千個IP地址分發請求,從而使任何基於速率的檢測方法無效,可以執行低和慢的攻擊。 爲了進一步加劇這一問題,來自真實用戶設備的真實瀏覽器可能會被劫持並用於憑據填充活動,僅使用這些方法,這些攻擊幾乎肯定會被錯過。

攻擊檢測方法3:行爲指紋識別

要真正擊敗憑據填充,您必須添加智能行爲指紋識別。 當用戶與流媒體服務交互時,他們不僅請求內容,還在移動,單擊,點擊和瀏覽應用程式。 行爲指紋識別通過在客戶端收集用戶遙測數據(通常通過JS)來研究這些操作。 其中可能包括滑鼠移動模式,按鍵,操作的計時,甚至是敲擊設備傳感器(如手機加速計或陀螺儀)以測量用戶的移動模式和定位。

根據收集到的數據,生成行爲指紋並發送以進行實時或離線分析。 用戶是否顯示隨機模式或非有機模式? 滑鼠是以線性模式移動,還是滾動速度比人所能達到的速度快? 在整個瀏覽會話過程中,手機是否始終處於固定角度? 每秒登入請求的數量是否可以人爲實現?

這是數據科學家和研究人員的戰場,他們必須使用機器學習技術來持續分析數據,並獲得有關請求是否自動執行的情報。 這部分是由於所收集的請求,設備和行爲屬性組合的指數增長所致。 由於機器人程式已提高了通過行爲劫持模仿人類行爲的能力,因此依賴基本行爲特徵(如滑鼠移動)已不再足夠,可能會增加誤報率並影響真實用戶的體驗。

這些類型的爬蟲程序是緩解撞庫的最困難挑戰。 若要停止最複雜的爬蟲程序,需要更多數據(例如客戶端在會話期間的瀏覽行爲)來分析客戶端的意圖,從而確定請求是否爲惡意的。 例如,當用戶直接訪問流式服務的登入頁面而不瀏覽主頁時,是否正常行爲? 用戶登入流服務後立即導航到帳戶頁面,而不執行任何其他操作是否正常? 這些數據點可以準確識別爬蟲程序的意圖。 用戶在整個會話期間與流式傳輸服務交互以及其他行爲數據可以生成更豐富,更完整的指紋,而誤報的可能性更低。

管理爬蟲程序

一旦您成功檢測到試圖發出登入請求的爬蟲程序,正確的答案是什麼? 它是爲了阻止爬蟲程序並希望它消失嗎? 在大多數情況下,這是錯誤的行動。 假設您以4xx錯誤回應,例如401未授權回應。 攻擊者瞭解目前的不適當技術,並更新其自動化工具,以通過試驗和錯誤克服您的檢測機制。 在這種情況下,您通過提供反饋循環來提醒攻擊者改進其方法,無意中幫助攻擊者。

儘管複雜的爬蟲程序操作員最終會發現它們正在被緩解並改進其方法是不可避免的,但有一些良好的做法可以避免或延遲這些工作。 檢測到時,伺服器可以在登入嘗試成功時發送標準的預期響應代碼(例如200 OK),再加上不會暴露敏感數據的靜態模板響應,而不是阻止爬蟲程序請求。

爬蟲程序操作員更有可能假定成功的響應表明其當前方法成功。 而被盜的憑證即使情況並非如此,也很有用,使攻擊者處於黑暗中。 另一種選擇是不提供任何響應來破壞爬蟲程序請求,使爬蟲程序請求掛起,直至超時。 如果您使用具有大量伺服器容量的大型全球分佈式平臺(例如內容交付網路(CDN)),則可以執行此操作。 這些錯誤資訊的方法可能比單純阻止爬蟲程序請求更有效。

另一種管理爬蟲程序的策略是,如果出現誤報,對用戶體驗的影響較小,則需要疑似爬蟲程序來解決CAPTCHA。 只有在完成CAPTCHA之後,登入纔會成功。 這使真實用戶即使被誤認爲是機器人程序,也可以繼續操作。 它還提供寶貴的反饋來調整檢測方法以減少誤報。

確保流媒體安全

防止撞庫攻擊是任何OTT流式傳輸服務的重要優先級。 隨着這些服務的普及,安全風險也隨之增加。 應用程式安全性和爬蟲程序管理的多層方法 可以準確識別用於推動撞庫攻擊的最複雜爬蟲程序,並防止此類攻擊影響您的客戶體驗或聲譽。

進一步瞭解我們的雲安全功能如何保護您的線上狀態免受撞庫攻擊,DDoS攻擊等攻擊。

Tags

Just For You