我們在使用短信驗證碼的過程中,部分用戶會連續收到莫名驗證碼短信,對用戶正常的業務使用造成了嚴重的影響;同時還引起了大量的用戶投訴,部分省份反饋行業端口的驗證碼業務投訴量居高不下,所占總投訴量比重超過 50%。 經分析該問題是由一種互聯網惡意攻擊方法—— “短信炸彈”。
短信炸彈原理 :短信炸彈一般基于WEB 方式(基于客戶端方式的“短信炸彈”工具原理類似), 其由兩個模塊組成,包括:一個前端 Web 網頁,提供輸入被攻擊者手機號碼的輸入窗口;一個后臺攻擊頁面(如 PHP),利用從各個網站上找到的動態短信URL和前端輸入的被攻擊者手機號碼,發送 HTTP 請求,每次請求給用戶發送一個動態短信。

動態短信驗證碼安全防護方案
短信炸彈形成的原因是因為非授權的動態短信獲取,而由于業務的需要(如注冊、好友邀請等),在使用動態短信業務前系統并不能建立業務關聯。因此, 在未建立業務關聯的情況下,需要進一步嚴格限制保證業務使用的安全性。 針對短信炸彈問題,建議綜合采用:增加圖片驗證碼、單 IP 請求次數限制、發送時長限制的措施,防護“動態短信獲取”功能與業務接口。
措施一:使用安全的圖片驗證碼
惡意攻擊者采用自動化工具,調用“動態短信獲取”接口進行動態短信發送, 其原因是攻擊者可以自動對接口進行大量調用。
采用圖片驗證碼可有效防止工具自動化調用,即當用戶進行“獲取動態短信” 操作前,彈出圖片驗證碼,要求用戶輸入驗證碼后,服務器端再發送動態短信到用戶手機上,該方法可有效解決被利用實施炸彈攻擊的問題。
措施二:單IP的請求次數限定
使用了圖片驗證碼后,能防止攻擊者有效進行“動態短信”功能的自動化調用;但若攻擊者忽略圖片驗證碼驗證錯誤的情況,大量執行請求會給服務器帶來額外負擔,影響業務使用。
建議在服務器端限制單個IP在單位時間內的請求次數,一旦用戶請求次數(包括失敗請求次數)超出設定的閾值,則暫停對該 IP 一段時間的請求;若情節特別嚴重,可以將 IP 加入黑名單,禁止該IP的訪問請求。該措施能限制一個IP地址的大量請求,避免攻擊者通過同一個IP對大量用戶進行攻擊,增加了攻擊難度,保障了業務的正常開展。
措施三:單用戶動態短信請求間隔時長限制
為進一步優化業務正常使用,建議采用限制重復發送動態短信的間隔時長, 即當單個用戶請求發送一次動態短信之后,服務器端鎖定如:30 秒后,才能進行第二次動態短信請求。該功能可進一步保障用戶體驗,并避免包含手工攻擊惡意發送垃圾驗證短信。
更多短信平臺:凌凱短信平臺
|