企業(yè)應(yīng)用手機(jī)驗證碼短信接口的時候,安全意識要強(qiáng),要做好風(fēng)險防范機(jī)制,如果沒有做好防范就可能會造成一定程度的損失。
手機(jī)驗證碼短信接口被惡意調(diào)用和盜刷通常指的就網(wǎng)站的動態(tài)短信發(fā)送接口被短信轟炸工具收集,作為其中一個發(fā)送途徑。
手機(jī)驗證碼短信接口被惡意調(diào)用和盜刷的原理是怎樣的呢?如何防范呢?
一、什么是手機(jī)驗證碼短信接口被惡意調(diào)用和盜刷
手機(jī)驗證碼短信接口被惡意調(diào)用和盜刷一般基于 WEB 方式(基于客戶端方式的原理與之類似),由兩個模塊組成,包括:一個前端 Web 網(wǎng)頁,提供輸入被攻擊者手機(jī)號碼的表單;一個后臺攻擊頁面(如 PHP),利用從各個網(wǎng)站上找到的動態(tài)短信 URL 和 前端輸入的被攻擊者手機(jī)號碼,發(fā)送 HTTP 請求,每次請求給用戶發(fā)送一個動態(tài)短信。
- 被攻擊者大量接收非自身請求的短信,造成無法正常使用移動運營商業(yè)務(wù)。
- 手機(jī)驗證碼短信接口被惡意調(diào)用和盜刷通常指的就網(wǎng)站的動態(tài)短信發(fā)送接口被此類短信轟炸工具收集,作為其中一個發(fā)送途徑。
手機(jī)驗證碼短信接口被惡意調(diào)用和盜刷工作原理如下:
(1)惡意攻擊者在前端頁面中輸入被攻擊者的手機(jī)號;
(2)短信轟炸工具的后臺服務(wù)器,將該手機(jī)號與互聯(lián)網(wǎng)收集的可不需要經(jīng)過認(rèn)證即可發(fā)送動態(tài)短信的 URL 進(jìn)行組合,形成可發(fā)送動態(tài)短信的 URL 請求;
(3)通過后臺請求頁面,偽造用戶的請求發(fā)給不同的業(yè)務(wù)服務(wù)器;
(4)業(yè)務(wù)服務(wù)器收到該請求后,發(fā)送動態(tài)短信到被攻擊用戶的手機(jī)上。
流程示例:

二、手機(jī)驗證碼短信接口被惡意調(diào)用和盜刷的防護(hù)方案
鑒于手機(jī)驗證碼短信接口被惡意調(diào)用和盜刷的發(fā)起一般都是服務(wù)器行為,應(yīng)該采用如下綜合手段進(jìn)行防御
(1)增加圖形驗證
(2)單IP請求次數(shù)限制
(3)限制號碼發(fā)送
(一)增加圖形驗證
惡意攻擊者采用自動化工具,調(diào)用“動態(tài)短信獲取”接口進(jìn)行動態(tài)短信發(fā)送,原因主要是攻擊者可以自動對接口進(jìn)行大量調(diào)用。
采用圖片驗證碼可有效防止工具自動化調(diào)用,即當(dāng)用戶進(jìn)行“獲取動態(tài)短信” 操作前,彈出圖片驗證碼,要求用戶輸入驗證碼后,服務(wù)器端再發(fā)送動態(tài)短信到用戶手機(jī)上,該方法可有效解決短信轟炸問題。
安全的圖形驗證碼必須滿足如下防護(hù)要求
- 生成過程安全:圖片驗證碼必須在服務(wù)器端進(jìn)行產(chǎn)生與校驗;
- 使用過程安全:單次有效,且以用戶的驗證請求為準(zhǔn);
- 驗證碼自身安全:不易被識別工具識別,能有效防止暴力破解。
圖形驗證的示例:

(二)單IP請求次數(shù)限制
使用了圖片驗證碼后,能防止攻擊者有效進(jìn)行“動態(tài)短信”功能的自動化調(diào)用;
但若攻擊者忽略圖片驗證碼驗證錯誤的情況,大量執(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ù)的正常開展。
(三)限制發(fā)送時長
建議采用限制重復(fù)發(fā)送動態(tài)短信的間隔時長, 即當(dāng)單個用戶請求發(fā)送一次動態(tài)短信之后,服務(wù)器端限制只有在一定時長之后(此處一般為60秒),才能進(jìn)行第二次動態(tài)短信請求。該功能可進(jìn)一步保障用戶體驗,并避免包含手工攻擊惡 意發(fā)送垃圾驗證短信。
完整的動態(tài)短信驗證碼使用流程

(四)、手機(jī)驗證碼短信接口植入了主動防御的機(jī)制,提供了更強(qiáng)大的保護(hù)措施, 主動防御機(jī)制會在以下3種情況中被觸發(fā):
(1)空號率觸發(fā)安全機(jī)制:
當(dāng)用戶請求發(fā)送的手機(jī)號碼空號率達(dá)到一定的百分比之后,觸發(fā)防御機(jī)制;
(2)手機(jī)號碼高頻率請求觸發(fā)安全機(jī)制:
當(dāng)單個手機(jī)號高頻率的請求驗證碼時,到達(dá)一定比例,觸發(fā)防御機(jī)制;
(3)歷史黑名單命中率觸發(fā)安全機(jī)制:
當(dāng)命中歷史黑名單到達(dá)一定比例時,觸發(fā)防御機(jī)制;
手機(jī)驗證碼短信接口主動防御機(jī)制被觸發(fā)后,將會自動設(shè)置合適的安全級別,防御惡意請求。例如非法請求僅能獲取3次驗證碼,如超過3次,將會被列入臨時保護(hù)黑名單。