針對短信驗(yàn)證碼接口被惡意攻擊的防范總結(jié)
一. 短信接口被惡意攻擊(短信轟炸)解讀
短信驗(yàn)證碼接口被惡意攻擊一般主要用于短信轟炸。
短信轟炸一般基于 WEB 方式(基于客戶端方式的原理與之類似),由兩個模塊組成,包括:
一個前端Web網(wǎng)頁,提供輸入被攻擊者手機(jī)號碼的表單;
一個后臺攻擊頁面(如html),利用從各個網(wǎng)站上找到的動態(tài)短信URL和前端輸入的被攻擊者手機(jī)號碼,發(fā)送HTTP請求,每次請求給用戶發(fā)送一個動態(tài)短信。
被攻擊者大量接收非自身請求的短信,造成無法正常使用移動運(yùn)營商業(yè)務(wù)。
短信接口被刷通常指的就網(wǎng)站的動態(tài)短信發(fā)送接口被此類短信轟炸工具收集,作為其中一個發(fā)送途徑。
具體工作原理如下:
惡意攻擊者在前端頁面中輸入被攻擊者的手機(jī)號;
短信轟炸工具的后臺服務(wù)器,將該手機(jī)號與互聯(lián)網(wǎng)收集的可不需要經(jīng)過認(rèn)證即可發(fā)送動態(tài)短信的 URL 進(jìn)行組合,形成可發(fā)送動態(tài)短信的 URL 請求;
通過后臺請求頁面,偽造用戶的請求發(fā)給不同的業(yè)務(wù)服務(wù)器;
業(yè)務(wù)服務(wù)器收到該請求后,發(fā)送動態(tài)短信到被攻擊用戶的手機(jī)上。
二. 短信驗(yàn)證碼的攻擊方式
人工頻繁點(diǎn)擊(這種方式幾率非常?。?br/>通過腳本攻擊,頁面自動化模擬點(diǎn)擊和直接通過短信接口攻擊
三. 容易被惡意攻擊的場景
注冊頁面
忘記密碼頁面
手機(jī)短信動態(tài)驗(yàn)證碼登錄
四. 防止短信驗(yàn)證碼惡意攻擊的手段
增加圖形化驗(yàn)證碼
惡意攻擊者采用自動化工具,調(diào)用動態(tài)短信獲取接口進(jìn)行動態(tài)短信發(fā)送,原因主要是攻擊者可以自動對接口進(jìn)行大量調(diào)用。
采用圖片驗(yàn)證碼可有效防止工具自動化調(diào)用,即當(dāng)用戶進(jìn)行“獲取動態(tài)短信” 操作前,彈出圖片驗(yàn)證碼,要求用戶輸入驗(yàn)證碼后,服務(wù)器端再發(fā)送動態(tài)短信到用戶手機(jī)上,該方法可有效解決短信轟炸問題。
安全的圖形驗(yàn)證碼必須滿足如下防護(hù)要求
生成過程安全:圖片驗(yàn)證碼必須在服務(wù)器端進(jìn)行產(chǎn)生與校驗(yàn);
使用過程安全:單次有效,且以用戶的驗(yàn)證請求為準(zhǔn);
驗(yàn)證碼自身安全:不易被識別工具識別,能有效防止暴力破解。
單IP請求次數(shù)限制
使用了圖片驗(yàn)證碼后,能防止攻擊者有效進(jìn)行動態(tài)短信功能的自動化調(diào)用
但若攻擊者忽略圖片驗(yàn)證碼驗(yàn)證錯誤的情況,大量執(zhí)行請求會給服務(wù)器帶來額外負(fù)擔(dān),影響業(yè)務(wù)使用。建議在服務(wù)器端限制單個IP在單位時間內(nèi)的請求次數(shù),一旦用戶請求次數(shù)(包括失敗請求次數(shù))超出設(shè)定的閾值,則暫停對該IP一段時間的請求;若情節(jié)特別嚴(yán)重,可以將IP加入黑名單,禁止該IP的訪問請求。該措施能限制一個IP地址的大量請求,避免攻擊者通過同一個IP對大量用戶進(jìn)行攻擊,增加了攻擊難度,保障了業(yè)務(wù)的正常開展。
手機(jī)號碼限定
根據(jù)業(yè)務(wù)特點(diǎn),限定每個手機(jī)號碼每天多發(fā)送量
限制發(fā)送時間間隔
此限定已經(jīng)非常普遍,即當(dāng)單個用戶請求發(fā)送一次動態(tài)短信之后,服務(wù)器端限制只有在一定時長之后(此處一般為60秒),才能進(jìn)行第二次動態(tài)短信請求。該功能可進(jìn)一步保障用戶體驗(yàn),并避免包含手工攻擊惡意發(fā)送垃圾驗(yàn)證短信。
流程限定
如果是類似忘記密碼功能頁面,我們可以將手機(jī)短信驗(yàn)證和用戶密碼設(shè)置分成兩個步驟,用戶在設(shè)置完成用戶密碼后,并需要獲取上一步的成功回執(zhí)后才進(jìn)行手機(jī)驗(yàn)證碼的發(fā)送。
集號吧企業(yè)短信群發(fā):用于向特定的用戶發(fā)送通知等場合,比如面試通知、會議通知、注冊驗(yàn)證碼、用戶梯形、訂單通知、手機(jī)驗(yàn)證等需要向某個用戶發(fā)送短信的場合,企業(yè)短信采用高效的專用通道發(fā)送,發(fā)送速度更快更穩(wěn)定。
如需短信群發(fā)可電話微信:13462636136 聯(lián)系
(AM 8:00-12:00 PM 14:00-18:00)