如何防範簡訊介面被惡意呼叫被刷,防止電信轟炸
轉自 https://zhuanlan.zhihu.com/p/20879468
一、什麼是簡訊轟炸(簡訊介面被刷)
簡訊轟炸一般基於 WEB 方式(基於客戶端方式的原理與之類似),由兩個模組組成,包括:一個前端 Web 網頁,提供輸入被攻擊者手機號碼的表單;一個後臺攻擊頁面(如 PHP),利用從各個網站上找到的動態簡訊 URL 和 前端輸入的被攻擊者手機號碼,傳送 HTTP 請求,每次請求給使用者傳送一個動態簡訊。
- 被攻擊者大量接收非自身請求的簡訊,造成無法正常使用移動運營商業務。
- 簡訊介面被刷通常指的就網站的動態簡訊傳送介面被此類簡訊轟炸工具收集,作為其中一個傳送途徑。
具體工作原理如下:
(1)惡意攻擊者在前端頁面中輸入被攻擊者的手機號;
(2)簡訊轟炸工具的後臺伺服器,將該手機號與網際網路收集的可不需要經過認證即可傳送動態簡訊的 URL 進行組合,形成可傳送動態簡訊的 URL 請求;
(3)通過後臺請求頁面,偽造使用者的請求發給不同的業務伺服器;
(4)業務伺服器收到該請求後,傳送動態簡訊到被攻擊使用者的手機上。
二、簡訊轟炸的防護方案
鑑於簡訊轟炸的發起一般都是伺服器行為,應該採用如下綜合手段進行防禦
(1)增加圖形驗證
(2)單IP請求次數限制
(3)限制號碼傳送
(一)增加圖形驗證
惡意攻擊者採用自動化工具,呼叫“動態簡訊獲取”介面進行動態簡訊傳送,原因主要是攻擊者可以自動對介面進行大量呼叫。
採用圖片驗證碼可有效防止工具自動化呼叫,即當用戶進行“獲取動態簡訊” 操作前,彈出圖片驗證碼,要求使用者輸入驗證碼後,伺服器端再發送動態簡訊到使用者手機上,該方法可有效解決簡訊轟炸問題。
安全的圖形驗證碼必須滿足如下防護要求
- 生成過程安全:圖片驗證碼必須在伺服器端進行產生與校驗;
- 使用過程安全:單次有效,且以使用者的驗證請求為準;
- 驗證碼自身安全:不易被識別工具識別,能有效防止暴力破解。
圖形驗證的示例:
(二)單IP請求次數限制
使用了圖片驗證碼後,能防止攻擊者有效進行“動態簡訊”功能的自動化呼叫;
但若攻擊者忽略圖片驗證碼驗證錯誤的情況,大量執行請求會給伺服器帶來額外負擔,影響業務使用。建議在伺服器端限制單個 IP 在單位時間內的請求次數,一旦使用者請求次數(包括失敗請求次數)超出設定的閾值,則暫停對該 IP 一段時間的請求;若情節特別嚴重,可以將 IP 加入黑名單,禁止該 IP 的訪問請 求。該措施能限制一個 IP 地址的大量請求,避免攻擊者通過同一個 IP 對大量使用者進行攻擊,增加了攻擊難度,保障了業務的正常開展。
(三)限制傳送時長
建議採用限制重複傳送動態簡訊的間隔時長, 即當單個使用者請求傳送一次動態簡訊之後,伺服器端限制只有在一定時長之後(此處一般為60秒),才能進行第二次動態簡訊請求。該功能可進一步保障使用者體驗,並避免包含手工攻擊惡 意傳送垃圾驗證簡訊。
完整的動態簡訊驗證碼使用流程