如今,大量的網站、網站、手機app都在使用短信驗證碼作為驗證使用者身份的安全技術措施。尤其在年底,企業的促銷、抽獎、互動活動會迎來一個高峰期,用到短信驗證碼的場景非常頻繁。
但近期,阿裡雲·雲盾WAF團隊監測到,不少使用者業務的短信驗證碼功能被攻擊,短信接口被惡意利用,導緻業務無法正常通路。同時,被刷的短信成本也直接造成一定量的資金損失。
有哪三大行業或者業務,需要警惕短信驗證碼背後的風險呢?
風險業務一:所有行業的網站登入類頁面
哪些場景需警惕:網站線上注冊頁面,網站線上找回密碼頁面,手機短信動态密碼登入頁面。

風險業務二:所有行業的線上投票類頁面
哪些場景需警惕:例如微信投票、線上投票、H5投票等。
風險業務三:電商、零售、金融網貸行業的活動頁面
哪些場景需警惕:活動領券頁面、參與活動頁面。
短信驗證碼功能被攻擊的危害比想象中更大
企業用來確定安全的短信驗證碼,也會把攻擊吸引過來;這一風險對企業的危害,且聽安全君說明白。
攻擊短信驗證碼功能一般直接導緻企業的短信接口被“刷”。容易發生短信接口被“刷”的業務場景,包括以下三大類:
賬号注冊
賬号登陸
賬号密碼找回
當短信接口被刷,對于企業而言,主要有以下危害:
過多的短信接口請求導緻伺服器負載增加,嚴重情況下導緻伺服器資源耗盡,無法響應請求,影響使用者正常的通路;
過多的短信接口發送,導緻正常使用者無法使用短信驗證服務;
過多的短信接口非法調用消耗短信包資源,進而直接導緻營運成本增加。
八招防範短信接口被刷
了解了風險之後,企業也不必過度擔心,以下“指南”,可幫助了解如何防範短信驗證碼背後的安全風險。
1.手機号碼邏輯檢測
在手機号碼視窗增加号碼有效性檢測,防止惡意攻擊者使用無效或非法的号碼,進而在第一視窗屏蔽非手機号的亂碼等無效數字。
2.随機校驗
在注冊頁添加個隐藏的<code><input></code>,設定儲存在session中的随機驗證碼,發短信前驗證一下,保證發驗證碼短信請求是在業務頁面點選。
3.增加友好的圖形驗證碼
即當使用者進行“擷取動态短信” 操作前,彈出圖檔驗證碼,要求使用者輸入驗證碼後,伺服器端再發送動态短信到使用者手機上,該方法可有效緩解短信轟炸問題。
由于目前驗證碼在攻防對抗中逐漸被成功自動化識别破解,我們在選用安全的圖形驗證碼也需要滿足一定的防護要求。
4.同号碼短信發送頻率限制
采用限制重複發送動态短信的間隔時長, 即當單個使用者請求發送一次動态短信之後,伺服器端限制隻有在一定時長之後(此處一般為60-120秒),才能進行第二次動态短信請求。該功能可進一步保障使用者體驗,并避免包含手工攻擊惡 意發送垃圾驗證短信。
5.不同号碼請求數量限制
根據業務特點,針對不同手機号碼、不同通路源IP通路請求進行頻率限制,防止高并發非法請求消耗更多的短信包和伺服器性能,提高業務穩定性。
6.場景流程限定
将手機短信驗證和使用者名密碼設定分成兩個步驟,使用者在填寫和校驗有效的使用者名密碼後,下一步才進行手機短信驗證,并且需要在擷取第一步成功的回執之後才可進行校驗。
7.啟用https協定
為網站配置證書,啟用https加密協定,防止傳輸明文資料被分析。
8.單IP請求限定
使用了圖檔驗證碼後,能防止攻擊者有效進行“動态短信”功能的自動化調用。但若攻擊者忽略圖檔驗證碼驗證錯誤的情況,大量執行請求會給伺服器帶來額外負擔,影響業務使用。建議在伺服器端限制單個 IP 在機關時間内的請求次數,一旦使用者請求次數(包括失敗請求次數)超出設定的門檻值,則暫停對該 IP 一段時間的請求。
若情節特别嚴重,可以将 IP 加入黑名單,禁止該 IP 的通路請求。該措施能限制一個 IP 位址的大量請求,避免攻擊者通過同一個 IP 對大量使用者進行攻擊,增加了攻擊難度,保障了業務的正常開展。
阿裡雲安全專家提示,企業可以根據業務的實際情況考慮,從以上8大方式中選擇并組合成最适合企業自身的防擔心接口被刷方案。并且提高技術人員在實際活動中的安全意識,提前防範風險。
防止短信接口被刷最佳實踐推薦
阿裡雲安全專家參考了大量企業進行防止短信接口被刷的政策,總結出以下四種方式組合是防止短信接口被刷的最佳方案,
使用體驗更好的驗證碼服務防止攻擊;
如果需要使用短信驗證碼功能,可以在“短信驗證碼”處增加滑塊驗證(簡單的驗證碼可以被破解)防止被惡意刷短信接口。
在登入頁面增加邏輯判斷,提高攻擊門檻,例如:增加賬号檢驗功能