網站、服務以及對外提供的接口等幾乎所有的B/S、C/S應用,在運營的過程中,往往都有可能會遇到意想不到的暴力型攻擊威脅,通常所說的有兩類:惡意刷新、暴力破解(窮舉),當然也不乏有應用漏洞掃描等,實現方式多樣,大致有以下情形:
(1) 暴力猜測密碼等敏感信息
(2) 惡意刷新頁面,致使服務器處於繁忙應答狀態
(3) 窮舉驗證碼
(4) 後臺掃描
(5) 合法業務的不合法現象(賬號被盜而進行較大金額分散性轉移)
(6) ……
當然以上的威脅場景,未必通過應用端組件的方式來完成攔截和丟棄,亦可以通過硬件層、服務層來配合完成安全策略(NetScaler、F5、IISetc.)。
本文通過闡述應用層限制用戶惡意刷新的實現策略,側向於宏觀控制,僅供參考;微觀行爲控制可以通過業務策略抑或特定的規則策略來配合實現。
§、實現效果
採用旁路的方式來實現,即應用系統實時異步將流失日誌發送到旁路分析系統,旁路分析系統發現可疑的IP和可疑的Account後,再將發現的惡意用戶行爲信息反饋給各應用系統並存入應用系統本機或者統一Cache中,採用此方式對系統增加的負載只有兩點:
1) 發送UDP日誌。由於UDP發送完全是非阻塞的,發送操作僅僅是將數據拷貝到操作系統緩衝區,因此發送帶來的延時是小到可以忽略的。從整體負載方面來說一臺機器網卡每秒大約能發送6萬個UDP包,而一臺Web Server上每秒處理的不過數百個,因此也幾乎沒有影響。
2) 判斷用戶是否是惡意account和惡意IP。因爲惡意信息會發回到各應用Web Server本地存儲,因此判斷操作也只是一次內存讀取操作,對性能幾乎沒有影響。
§、分析設計
旁路分析支持以下三類用戶標識可訪問性判斷:用戶、用戶+IP、獨立IP,即客戶端更換IP、更換用戶等信息密集型操作時,捕捉到惡意用戶也可有一定的準確度。
UDP流水消息發送:
$、代碼實現
(略)
§、總結
壓力測試結果
併發50用戶 |
開啓前 |
開啓後 |
吞吐量 |
323.1/s |
303.9/s |
旁路系統帶來的好處主要包括下面幾個方面:
1)風控策略系統可以將多方面的數據和歷史統計數據進行彙總,可以實現較爲複雜的策略判斷。
2)惡意行爲/監控打擊的計算邏輯不影響主服務器自身的性能,不影響主服務器的正常運行。
3)相比硬件層、網絡層用戶控制,防刷組件可以較爲靈活、相對全面的監控客戶端行爲,通過硬件層、網絡層對用戶行爲控制和導向,在一定程度上只能做到宏
觀,甚至有可能還會引起客觀條件上的侷限(硬件、網絡、通信),另外諸多應用站點的密集管理,硬件、網絡層的維護可能相對複雜、繁瑣。
4)風控組件實現後接入簡單,較爲易用,有良好的可擴展性、可維護性、可分散性。自動屏蔽惡意海量請求的同時,也可疑對特定可疑IP進行手動添加、解禁處理。