近日,一款號(hào)稱“通關(guān)率不到0.1%”的堆疊式消除游戲“羊了個(gè)羊”火遍全網(wǎng),在極短時(shí)間內(nèi)儼然有了一副“全民級(jí)游戲”的架勢(shì),在各大社交媒體上取得了驚人的熱度。
據(jù)羊了個(gè)羊官方微博,由于該游戲過(guò)于火爆,《羊了個(gè)羊》多次出現(xiàn)宕機(jī)的情況,服務(wù)器2天崩了3次。其創(chuàng)始團(tuán)隊(duì)在面對(duì)記者采訪時(shí)表示,游戲大火之后最忙的事情就是應(yīng)對(duì)持續(xù)的DDoS攻擊,解決服務(wù)器反復(fù)出現(xiàn)的無(wú)法登錄的異常情況。
眾所周知,作為微信生態(tài)中的應(yīng)用模塊,微信小程序以其在微信內(nèi)即可被便捷地獲取和傳播的特點(diǎn),無(wú)需安裝應(yīng)用的便捷使用體驗(yàn),逐漸深入到生活和商業(yè)中的方方面面。
那作為依附在微信之下的一種創(chuàng)新應(yīng)用形態(tài),為什么小程序依然會(huì)遭受網(wǎng)絡(luò)攻擊呢?微信小程序主要面臨著哪些方面的安全挑戰(zhàn)?相對(duì)于傳統(tǒng)的Web應(yīng)用和移動(dòng)應(yīng)用來(lái)看,小程序的安全防護(hù)又有哪些技術(shù)層面的安全側(cè)重點(diǎn)?圍繞這些問(wèn)題,我們向業(yè)內(nèi)一家專業(yè)的應(yīng)用安全廠商瑞數(shù)信息進(jìn)行了請(qǐng)教。
針對(duì)業(yè)務(wù)和敏感數(shù)據(jù)的攻擊
已成為小程序面對(duì)的主要風(fēng)險(xiǎn)
瑞數(shù)信息技術(shù)總監(jiān)吳劍剛告訴我們,事實(shí)上大眾存在一個(gè)對(duì)微信小程序的理解誤區(qū),小程序看似是在微信中打開(kāi),但實(shí)則與微信并不存在緊密的耦合關(guān)系,微信只是為小程序開(kāi)發(fā)者們提供了一個(gè)快速連接用戶的入口。盡管小程序在微信體內(nèi)運(yùn)行,由微信提供了其運(yùn)行環(huán)境和認(rèn)證方面的安全保護(hù),但業(yè)務(wù)邏輯風(fēng)險(xiǎn)、信息泄露,以及小程序自身安全性方面仍然存在問(wèn)題。
“從防護(hù)的角度來(lái)看,一次合法的用戶訪問(wèn)過(guò)程中,用戶在通過(guò)手機(jī)終端向微信小程序提交訪問(wèn)請(qǐng)求后,會(huì)由微信來(lái)驗(yàn)證此次訪問(wèn)的合法性并向用戶下發(fā)一個(gè)App ID,在這一環(huán)節(jié)之后用戶的所有訪問(wèn)行為都是和小程序服務(wù)器之間的直接交互,因此,除非小程序服務(wù)器是部署在騰訊云上,否則騰訊云的防火墻、抗DDoS等安全能力是很難賦能給小程序開(kāi)發(fā)者的?!?/p>
據(jù)他介紹,小程序作為一個(gè)輕量級(jí)的應(yīng)用,它具備著開(kāi)發(fā)成本低、使用便捷等多方面的特點(diǎn),但從技術(shù)的角度看,小程序本身是一個(gè)較為簡(jiǎn)單的應(yīng)用形式,開(kāi)發(fā)者主要通過(guò)JavaScript 來(lái)開(kāi)發(fā)業(yè)務(wù)邏輯以及調(diào)用小程序的API來(lái)完成業(yè)務(wù)需求。
小程序的JavaScript架構(gòu)使得它對(duì)于網(wǎng)頁(yè)的交互和訪問(wèn)都是通過(guò)調(diào)用API的接口來(lái)實(shí)現(xiàn)的,因此攻擊者往往也會(huì)通過(guò)模擬獲取App ID的方式繞開(kāi)騰訊的安全校驗(yàn)環(huán)節(jié),跳過(guò)通過(guò)手機(jī)訪問(wèn)小程序的過(guò)程,通過(guò)協(xié)議直接對(duì)小程序的API接口發(fā)起批量請(qǐng)求和攻擊。
吳劍剛表示,協(xié)議攻擊是針對(duì)小程序的最主要的攻擊形式,這種攻擊不需要真實(shí)的手機(jī)、群控設(shè)備等客戶端,能夠大幅度降低攻擊的成本。同時(shí),脫離了設(shè)備的限制后,攻擊的門檻也大幅的降低,一些初級(jí)的黑灰產(chǎn)從業(yè)者也能夠非常輕易地實(shí)施規(guī)?;?,導(dǎo)致針對(duì)小程序的攻擊劇增。
在他看來(lái),小程序面臨的安全風(fēng)險(xiǎn)主要集中在業(yè)務(wù)安全和數(shù)據(jù)安全兩個(gè)方面。
在業(yè)務(wù)安全層面,如應(yīng)用層的DDoS攻擊、刷量、薅羊毛、虛假砍價(jià)助力等都是常見(jiàn)的黑灰產(chǎn)的攻擊方式,黑灰產(chǎn)會(huì)通過(guò)批量請(qǐng)求的方式進(jìn)行虛假的點(diǎn)擊和注冊(cè),來(lái)從事?tīng)I(yíng)銷欺詐活動(dòng);在數(shù)據(jù)安全層面,攻擊者則會(huì)利用小程序自身的業(yè)務(wù)邏輯缺陷,針對(duì)小程序進(jìn)行越權(quán)訪問(wèn)攻擊,通過(guò)不安全的API接口批量獲取敏感的用戶數(shù)據(jù)和交易數(shù)據(jù),進(jìn)而誘發(fā)更嚴(yán)重的數(shù)據(jù)泄露或商業(yè)信息泄露的風(fēng)險(xiǎn)。
吳劍剛告訴我們,傳統(tǒng)的web網(wǎng)站應(yīng)用和移動(dòng)端應(yīng)用中都會(huì)采用設(shè)備指紋技術(shù)來(lái)進(jìn)行精準(zhǔn)的標(biāo)識(shí),在設(shè)備指紋技術(shù)面前,盡管攻擊者會(huì)使用多源低頻的攻擊手法,不斷地變換IP地址發(fā)去訪問(wèn)請(qǐng)求,但只要設(shè)備指紋不被剝離隱藏,防御方就能夠溯源到真實(shí)的攻擊者IP進(jìn)行封禁。
但在小程序中,由于權(quán)限的原因,小程序可采集的設(shè)備信息少到無(wú)法形成唯一的設(shè)備指紋,導(dǎo)致這一高效的防御技術(shù)在小程序中毫無(wú)用武之地。再有,針對(duì)小程序的攻擊幾乎都是協(xié)議攻擊,導(dǎo)致設(shè)備指紋在小程序防護(hù)上的效果微乎其微。從小程序自身來(lái)說(shuō),因?yàn)楹诨耶a(chǎn)針對(duì)小程序的攻擊大多是在業(yè)務(wù)層面,傳統(tǒng)的安全防護(hù)技術(shù)如漏洞掃描、安全加固等效果也極為有限。
另外,相較于移動(dòng)端應(yīng)用,小程序還存在代碼邏輯簡(jiǎn)單、代碼無(wú)法實(shí)時(shí)更新、安全加固算法和簽名校驗(yàn)算法薄弱等特點(diǎn),一旦攻擊者利用逆向技術(shù)破解,便更能夠在短時(shí)間內(nèi)肆意妄為。
他談到,《羊了個(gè)羊》小游戲遭到的DDoS攻擊也是業(yè)務(wù)攻擊中一種形式,攻擊者主要是通過(guò)模擬正常請(qǐng)求的方式高頻的訪問(wèn)其服務(wù)器,最終造成服務(wù)器資源耗盡業(yè)務(wù)不可用的后果?!斑@種訪問(wèn)請(qǐng)求并不存在惡意的特征,依靠傳統(tǒng)的漏洞掃描和安全加固顯然是無(wú)法起到防護(hù)效果的。”
小程序安全防護(hù)難點(diǎn)重重
如何應(yīng)對(duì)才是良策?
據(jù)吳劍剛介紹,針對(duì)當(dāng)前小程序面臨復(fù)雜的安全挑戰(zhàn),安全行業(yè)內(nèi)也提出了不同路徑的解決方案。針對(duì)小程序JavaScript架構(gòu)特性,業(yè)內(nèi)的傳統(tǒng)做法是幫助開(kāi)發(fā)者對(duì)JavaScript進(jìn)行安全加固,通過(guò)JS混淆技術(shù)去替換JavaScript代碼中的一些關(guān)鍵函數(shù)和關(guān)鍵的業(yè)務(wù)邏輯,利用加密技術(shù)在攻擊者對(duì)小程序代碼逆向分析這一環(huán)節(jié)上接入安全防護(hù)措施,讓攻擊者難以對(duì)小程序代碼進(jìn)行逆向。
他談道:“瑞數(shù)信息認(rèn)為,安全是攻防雙方的博弈,絕對(duì)的安全是不存在的,這就導(dǎo)致無(wú)論安全廠商在應(yīng)用外層怎么加殼,攻擊者仍然會(huì)想方設(shè)法地突破進(jìn)來(lái)。”
因此,有別于傳統(tǒng)安全加固廠商的做法,作為業(yè)內(nèi)主流的應(yīng)用安全廠商,瑞數(shù)信息的關(guān)注點(diǎn)在于“讓攻擊者逆向之后無(wú)功而返”,并提出了以“動(dòng)態(tài)安全技術(shù)”為核心的小程序動(dòng)態(tài)安全防護(hù)解決方案。
具體而言,瑞數(shù)信息主要通過(guò)三個(gè)維度的安全性校驗(yàn),進(jìn)而實(shí)現(xiàn)對(duì)企業(yè)小程序的安全防護(hù):
第一個(gè)維度是進(jìn)行客戶端的真實(shí)性校驗(yàn)。在小程序用戶發(fā)來(lái)訪問(wèn)請(qǐng)求時(shí),瑞數(shù)信息的動(dòng)態(tài)應(yīng)用保護(hù)系統(tǒng)首先會(huì)協(xié)助小程序的運(yùn)營(yíng)團(tuán)隊(duì)去校驗(yàn)發(fā)起訪問(wèn)請(qǐng)求的客戶端所在的微信環(huán)境是否涉及偽造,同時(shí)還會(huì)以SDK的形式去獲取用戶的App ID,并與用戶提交的ID進(jìn)行比對(duì),以此來(lái)保證客戶端的合法性和真實(shí)性;
第二個(gè)維度是針對(duì)自動(dòng)化工具的校驗(yàn)。在抵御Bot自動(dòng)化攻擊方面,瑞數(shù)信息一直走在行業(yè)的前列。借助在人機(jī)識(shí)別技術(shù)、動(dòng)態(tài)令牌技術(shù)以及動(dòng)態(tài)驗(yàn)證技術(shù)方面的優(yōu)勢(shì),瑞數(shù)信息動(dòng)態(tài)應(yīng)用保護(hù)系統(tǒng)會(huì)能夠高效地發(fā)現(xiàn)工具性行為,將由工具發(fā)起的請(qǐng)求予以阻斷?!拔⑿判〕绦蚴且粋€(gè)以To C業(yè)務(wù)主導(dǎo)的場(chǎng)景,微信小程序端的每一次點(diǎn)擊行為都應(yīng)該由用戶個(gè)人來(lái)完成,因此,工具性的訪問(wèn)行為注定是非法的,此類行為都會(huì)被直接攔截掉?!?/p>
第三個(gè)維度是圍繞內(nèi)容展開(kāi)校驗(yàn)。針對(duì)小程序API接口容易出現(xiàn)的敏感數(shù)據(jù)泄露風(fēng)險(xiǎn),瑞數(shù)信息主要通過(guò)動(dòng)態(tài)算法對(duì)提交內(nèi)容和請(qǐng)求內(nèi)容進(jìn)行雙向混淆,將小程序提交的數(shù)據(jù)進(jìn)行動(dòng)態(tài)混淆成為一次性密文,極大地提高了非法訪問(wèn)行為的攻擊成本和門檻。同時(shí)瑞數(shù)信息還將會(huì)對(duì)內(nèi)容的完整性進(jìn)行校驗(yàn),防止內(nèi)容遭到攻擊者篡改。
“以《羊了個(gè)羊》的案例來(lái)看,攻擊者顯然是在應(yīng)用層發(fā)起了大量的DDoS攻擊,以自動(dòng)化工具批量請(qǐng)求的方式集中訪問(wèn)應(yīng)用服務(wù)器,導(dǎo)致了服務(wù)器的過(guò)載。如果處于瑞數(shù)信息動(dòng)態(tài)應(yīng)用保護(hù)系統(tǒng)的保護(hù)下,平臺(tái)就能夠通過(guò)人機(jī)識(shí)別技術(shù),把所有的工具性訪問(wèn)行為識(shí)別出來(lái)并攔截掉,保證此類游戲小程序應(yīng)用的業(yè)務(wù)穩(wěn)定性”,吳劍剛分析稱。
安全能力薄弱的小程序開(kāi)發(fā)團(tuán)隊(duì)
應(yīng)該從哪些方面著手規(guī)避安全風(fēng)險(xiǎn)?
9月15日,一張“流量主數(shù)據(jù)日?qǐng)?bào)”截圖在網(wǎng)上流傳,圖片顯示,僅僅半天《羊了個(gè)羊》的收入就達(dá)到468萬(wàn)元,月收入更是高達(dá)2564萬(wàn)元。但就是這樣一款一夜爆火的應(yīng)用,其游戲的開(kāi)發(fā)者曾對(duì)記者透露,整個(gè)開(kāi)發(fā)團(tuán)隊(duì)只有3人,這一游戲應(yīng)用的開(kāi)發(fā)時(shí)間也僅有3個(gè)月左右。
那么,針對(duì)此類安全能力較為薄弱的小型應(yīng)用開(kāi)發(fā)團(tuán)隊(duì),從整個(gè)小程序應(yīng)用的開(kāi)發(fā)到上線過(guò)程中,應(yīng)該從哪些方面著手規(guī)避安全風(fēng)險(xiǎn)呢?在采訪最后,我們也邀請(qǐng)瑞數(shù)信息的安全專家分享了一些安全建議。
吳劍剛表示,無(wú)論是何種規(guī)模的應(yīng)用開(kāi)發(fā)團(tuán)隊(duì),都應(yīng)該提高對(duì)應(yīng)用安全的重視程度,最大程度地降低業(yè)務(wù)層面潛在的安全隱患。對(duì)小型開(kāi)發(fā)團(tuán)隊(duì)而言,首先應(yīng)該注意避免使用第三方開(kāi)發(fā)工具,盡量選擇微信官方提供的安全開(kāi)發(fā)工具保障安全性。
同時(shí)開(kāi)發(fā)者還應(yīng)該采取一些必要的安全措施對(duì)代碼采取必要的安全保護(hù)措施,包括將AppSecret在生成后需要后臺(tái)應(yīng)用保存維護(hù),后臺(tái)留存安全性需后臺(tái)應(yīng)用考慮,在獲取客戶敏感信息時(shí)注意加密傳輸、以白名單機(jī)制來(lái)限制傳輸通道內(nèi)的互相訪問(wèn)等等。
他建議,尤其在自身安全能力不足的情況下,小程序的開(kāi)發(fā)團(tuán)隊(duì)?wèi)?yīng)該向第三方安全團(tuán)隊(duì)尋求合作,使用帶有小程序安全加固、自動(dòng)化Bot攻擊防護(hù)類安全功能的產(chǎn)品來(lái)應(yīng)對(duì)安全風(fēng)險(xiǎn),盡早將黑灰產(chǎn)攻擊掐滅于萌芽之中。
更多信息可以來(lái)這里獲取==>>電子技術(shù)應(yīng)用-AET<<