<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          短信接口被惡意調(diào)用,瞬間損失數(shù)萬元,怎么解決?

          共 2941字,需瀏覽 6分鐘

           ·

          2022-03-11 06:13

          一、 事件簡(jiǎn)述
          ? ? 這是一件發(fā)生在前段時(shí)間的事情,當(dāng)時(shí)的情況是這樣的:

          ? ?一個(gè)新的功能模塊上線之后,出現(xiàn)短信接口被惡意訪問調(diào)用的情況,請(qǐng)求數(shù)量很大,而且通過查看短信服務(wù)商控制臺(tái)也發(fā)現(xiàn),短信發(fā)送量在飆升,看著統(tǒng)計(jì)曲線的增長(zhǎng),緊張的氣氛也漸漸變得更濃,很明顯,事情并不是遇到一個(gè)bug那么簡(jiǎn)單,因?yàn)闋可娴椒?wù)費(fèi)用,需要立即解決。

          當(dāng)然,接口被惡意訪問的這個(gè)問題已經(jīng)解決,因此寫了這篇文章,可以做一下簡(jiǎn)單的記錄,并且靜下心來分析一下其中的問題了,看完這個(gè)案例,大家也可以一起討論討論。


          二、 問題分析

          這是當(dāng)時(shí)的短信接口日志數(shù)量曲線,某一個(gè)時(shí)間點(diǎn)突然增長(zhǎng)了起來并且沒有降下去的意思,通過日志分析發(fā)現(xiàn),攻擊者用的不同IP、不同號(hào)碼進(jìn)行惡意調(diào)用,請(qǐng)求量較大,趕緊將事件做了記錄并通知了相關(guān)人員,和同事做了溝通后,大家也都提出了自己的意見:有人說趕緊修改前端功能,發(fā)一版新的APP,有人說修改后端代碼,緊急補(bǔ)救一下,也有人說要不要先關(guān)停一下服務(wù)…在網(wǎng)上技術(shù)論壇搜了一下相關(guān)問題,好像碰到這種事情的也不少,基本思路都是加驗(yàn)證碼,做好安全驗(yàn)證,被攻擊了無可奈何之類的云云。


          簡(jiǎn)單對(duì)各個(gè)方案做了整理:

          1. 修改url(APP已經(jīng)上線,暫時(shí)無法修改)。

          2. 添加驗(yàn)證碼驗(yàn)證(APP已經(jīng)上線,暫時(shí)無法通過這種方式來解決)。

          3. 停掉短信服務(wù)(不現(xiàn)實(shí),其他功能模塊也需要調(diào)用短信服務(wù),不考慮實(shí)施)。

          4. 短信服務(wù)商自帶防攻擊,等一段時(shí)間,讓攻擊者自己停止攻擊(雖然短信服務(wù)商自帶防攻擊,但是依然會(huì)出現(xiàn)大量的垃圾請(qǐng)求,而且服務(wù)商只是針對(duì)次數(shù)和時(shí)間做了限制,一段時(shí)間后依然會(huì)發(fā)送短信,因此,危害和損失還是不小的,問題依然急需處理掉,裝鴕鳥是解決不了問題的)


          三、 應(yīng)急解決方案

          在用戶交互界面攔截請(qǐng)求已經(jīng)不現(xiàn)實(shí)了,因?yàn)橐苿?dòng)端短時(shí)間內(nèi)是無法立刻升級(jí)的,而等待攻擊停止的方案也不可取,選擇逃避和等待是解決不了問題的,因此最終的決定就是修改后端接口邏輯和代碼。找到最關(guān)鍵的問題,雖然存在網(wǎng)絡(luò)攻擊,但是真正需要立刻解決的是短信服務(wù)接口的調(diào)用問題,當(dāng)務(wù)之急是修改短信發(fā)送接口,盡快止損。


          通過討論和簡(jiǎn)單的分析,最終是決定先修改后端邏輯緊急打一個(gè)線上補(bǔ)丁,移動(dòng)端也做同步修改,等待發(fā)版。


          1 、黑名單模式攔截

          由于接口一直被調(diào)用,需要緊急處理,減少短信服務(wù)費(fèi)用的損失,因此一開始的出發(fā)點(diǎn)放在了手機(jī)號(hào)碼上,針對(duì)手機(jī)號(hào)碼做驗(yàn)證,采用黑名單的模式,對(duì)于此接口中出現(xiàn)的號(hào)碼,在一定次數(shù)的請(qǐng)求后就立刻加入到黑名單列表中。


          再次請(qǐng)求時(shí),如果是黑名單中的號(hào)碼,直接返回錯(cuò)誤碼,不做任何其他處理,也不會(huì)調(diào)用短信發(fā)送接口,這種方式可能會(huì)誤傷到真實(shí)用戶,但是情況比較特殊,因此就選擇了這個(gè)應(yīng)急方案,緊急修改了后端代碼,對(duì)部分代碼邏輯做了修改,添加手機(jī)號(hào)碼的黑名單功能。


          在短信發(fā)送模塊中,對(duì)號(hào)碼進(jìn)行驗(yàn)證,如果一段時(shí)間內(nèi)多次請(qǐng)求同一個(gè)號(hào)碼的話,將號(hào)碼存入數(shù)據(jù)庫(kù)視為黑名單中的號(hào)碼,不會(huì)發(fā)送短信。

          攔截了近700個(gè)手機(jī)號(hào)碼,這些號(hào)碼中應(yīng)該很多是空號(hào)吧:


          2 、請(qǐng)求驗(yàn)證攔截

          上面的方法雖然起到了一定的作用,但是依然無法很好的解決掉問題,為什么這么說呢?因?yàn)榧词估昧撕诿麊文J剑谶M(jìn)入到黑名單列表之前,依然會(huì)發(fā)送短信,試想一下每分鐘1000次的惡意請(qǐng)求,即使拉黑了其中的一部分號(hào)碼,還是會(huì)有一部分漏網(wǎng)之魚會(huì)被當(dāng)做正常數(shù)據(jù),然后請(qǐng)求短信服務(wù)商接口發(fā)送短信,這也是一個(gè)不小的體量,黑名單模式可以處理一些問題,但是只能起到微小的作用,還需要進(jìn)一步修改后端邏輯。


          回到大家都提到的用驗(yàn)證碼做安全驗(yàn)證,前端雖然無法立即更新添加驗(yàn)證碼界面和處理邏輯,但是驗(yàn)證碼的設(shè)計(jì)就是識(shí)別正常請(qǐng)求和非法請(qǐng)求,因此找到一個(gè)方法能夠識(shí)別請(qǐng)求是否非法即可,并不一定非要添加驗(yàn)證碼功能。


          本模塊在設(shè)計(jì)接口之初,就做了數(shù)據(jù)傳輸規(guī)定,移動(dòng)端向后端發(fā)送請(qǐng)求時(shí),必須在請(qǐng)求頭中放入一些參數(shù),這些參數(shù)本來是做分析用的,但是在這里起到了很大的作用,因此可以在請(qǐng)求對(duì)象request上做文章,攻擊請(qǐng)求只是發(fā)送請(qǐng)求到url,攻擊者也只知道url并不知道請(qǐng)求參數(shù)設(shè)計(jì),因此針對(duì)這點(diǎn)做驗(yàn)證,應(yīng)該可以攔截掉所有的惡意請(qǐng)求了,甚至請(qǐng)求都不會(huì)到達(dá)黑名單驗(yàn)證環(huán)節(jié)就已經(jīng)被處理掉了。


          再次修改后端代碼,由請(qǐng)求信息request對(duì)象入手,從請(qǐng)求對(duì)象request中提取數(shù)據(jù)做校檢,甄別是否為正常請(qǐng)求,如果是正常請(qǐng)求,數(shù)據(jù)中的參數(shù)不會(huì)為空且參數(shù)值是可控的,而惡意虛假請(qǐng)求中則不含有這些參數(shù),因此直接返回錯(cuò)誤碼不作處理即可,這個(gè)補(bǔ)丁打上之后,短信服務(wù)費(fèi)用的損失就不會(huì)再增加了。

          3 、應(yīng)急方案總結(jié)

          不管是前端驗(yàn)證碼,或者這次采取的驗(yàn)證請(qǐng)求方式,都是一種驗(yàn)證方式,用來甄別是否為移動(dòng)端APP發(fā)送過來的正常請(qǐng)求,如果不是,就不做處理,通過日志和黑名單數(shù)據(jù)可以得出結(jié)論,短信發(fā)送的問題已經(jīng)解決。


          這個(gè)事件也說明,安全驗(yàn)證不能掉以輕心,也不能心存僥幸心理,一旦被心存惡意之人找到漏洞,還是挺難過的。前端驗(yàn)證沒有完全考慮到,后端驗(yàn)證攔截也做的不到位,因此出現(xiàn)了這種情況,需要檢討和反思,而且處理方式也不是特別得當(dāng),一開始的黑名單模式并沒有完全杜絕掉短信發(fā)送的問題,又去做了后面的補(bǔ)救,當(dāng)時(shí)確實(shí)比較緊張,因此想到能用的方法就趕緊用在了修改上面。


          為何說驚險(xiǎn)和緊張,試想一下:周末剛剛在家里修整了兩天,周一的早晨,打完卡坐在工位上悠閑的喝著茶,悠悠的打開瀏覽器查看系統(tǒng)日志,忽然發(fā)現(xiàn)這個(gè)訪問量有點(diǎn)大呀,隱隱覺著不對(duì),認(rèn)真的查了一下發(fā)現(xiàn),接口被攻擊了,而且是短信發(fā)送的接口,看著一條條的短信因?yàn)楣舳l(fā)送出去,那一條條的短信,是白花花的銀子啊,能不緊張嗎!什么感覺?吃著火鍋唱著歌,突然就被麻匪給劫了,跟葛大爺一樣,就是那種感覺。


          至于說險(xiǎn)勝,是因?yàn)殡m然暫時(shí)解決了短信發(fā)送的問題,不會(huì)再進(jìn)一步的造成金錢的損失,卻存在另外一個(gè)問題:大量的惡意請(qǐng)求。


          四、 更完美的解決方案

          為了在產(chǎn)品安全和優(yōu)秀的用戶體驗(yàn)之間尋找一個(gè)極佳的平衡。使用新昕科技[短信防火墻]。從以下幾個(gè)方面概括一下:

          1. 為保障優(yōu)秀的用戶體驗(yàn),擯棄了目前影響用戶體驗(yàn)最為嚴(yán)重的圖形驗(yàn)證碼等人機(jī)校驗(yàn)程序,做到無感驗(yàn)證。從而達(dá)到完美的用戶體驗(yàn)。

          2. 結(jié)合用戶的手機(jī)號(hào)碼 、IP地址 、設(shè)備指紋三個(gè)唯一身份標(biāo)識(shí)設(shè)置不同維度的風(fēng)控策略。將各個(gè)維度之間相互配合,達(dá)到一個(gè)最為合理的風(fēng)控限制指標(biāo)。

          3. 根據(jù)業(yè)務(wù)情況自動(dòng)伸縮風(fēng)控限制,在檢測(cè)處受攻擊時(shí)自動(dòng)加大風(fēng)控限制力度,在正常是再歸回到正常風(fēng)控標(biāo)準(zhǔn)。

          4. 考慮到存在新老客戶的區(qū)別,特意增加老客戶VIP通道,在受到攻擊時(shí),風(fēng)控指標(biāo)緊縮的情況下,保證老客戶通道暢通無阻,從而降低誤傷率。

          5. 通過以上策略可以有防止攻擊者通過隨意切換手機(jī)號(hào)及IP地址的方式可以刷取短信。同時(shí)加入模擬器檢測(cè),以及參數(shù)加密等風(fēng)控策略,有效防止黑客攻擊。

          6. 可通過風(fēng)控防火墻控制臺(tái),實(shí)時(shí)觀測(cè)風(fēng)控結(jié)果,在受到攻擊時(shí)達(dá)到第一時(shí)間預(yù)警的效果。

          五、結(jié)語(yǔ)

          這篇文章到這里就結(jié)束了,感謝大佬們駐足觀看,大佬們點(diǎn)個(gè)關(guān)注、點(diǎn)個(gè)贊唄~

          瀏覽 60
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  精品久久免费视频 | 日韩成人中文字幕 | 日本不卡一区在线 | 九九九精品 | 天天曰夜夜爽天天操 |