2024版OWASP移動(dòng)應(yīng)用系統(tǒng)十大安全風(fēng)險(xiǎn)簡(jiǎn)析
隨著移動(dòng)互聯(lián)網(wǎng)用戶數(shù)量急劇增長(zhǎng),移動(dòng)應(yīng)用系統(tǒng)已經(jīng)實(shí)現(xiàn)了典型生活場(chǎng)景的全覆蓋,并滲透到了多個(gè)企業(yè)級(jí)應(yīng)用領(lǐng)域。移動(dòng)應(yīng)用的快速擴(kuò)張也帶來(lái)了諸如數(shù)據(jù)違規(guī)收集、數(shù)據(jù)惡意濫用、數(shù)據(jù)非法獲取、數(shù)據(jù)惡意散播等安全風(fēng)險(xiǎn)。這些安全風(fēng)險(xiǎn)廣泛存在于當(dāng)前主流的移動(dòng)應(yīng)用系統(tǒng)中,嚴(yán)重威脅數(shù)據(jù)安全與個(gè)人信息安全。
近日,OWASP(全球開(kāi)放應(yīng)用軟件安全項(xiàng)目組織)發(fā)布了最新版移動(dòng)應(yīng)用系統(tǒng)10大安全風(fēng)險(xiǎn)目錄,這是自2016年以來(lái)該機(jī)構(gòu)首次對(duì)移動(dòng)應(yīng)用系統(tǒng)相關(guān)的風(fēng)險(xiǎn)進(jìn)行更新,重點(diǎn)增加了對(duì)供應(yīng)鏈安全、隱私保護(hù)等方面的風(fēng)險(xiǎn)關(guān)注。這份目錄對(duì)廣大移動(dòng)應(yīng)用程序開(kāi)發(fā)人員來(lái)說(shuō)很重要,它描述了移動(dòng)應(yīng)用程序開(kāi)發(fā)時(shí)最嚴(yán)重的安全風(fēng)險(xiǎn)相關(guān)信息,同時(shí)也給出了緩解方法和建議。
1.憑據(jù)使用不當(dāng)
OWASP認(rèn)為,當(dāng)前移動(dòng)應(yīng)用程序開(kāi)發(fā)的主要風(fēng)險(xiǎn)是來(lái)自憑據(jù)、API密鑰及其他秘密信息的安全性。黑客可以利用移動(dòng)應(yīng)用程序中硬編碼憑據(jù)和使用不當(dāng)?shù)倪\(yùn)行時(shí)秘密信息,對(duì)移動(dòng)應(yīng)用程序的關(guān)鍵功能實(shí)現(xiàn)未授權(quán)訪問(wèn)。此外,如果攻擊者借助一些定制的工具和腳本,就可以進(jìn)一步通過(guò)被盜的密鑰來(lái)訪問(wèn)后端系統(tǒng)和API。
防護(hù)建議:
開(kāi)發(fā)則應(yīng)該嚴(yán)格禁止將憑據(jù)、密鑰等信息保留在應(yīng)用程序代碼中,同時(shí)應(yīng)該采取措施以保護(hù)運(yùn)行中的移動(dòng)應(yīng)用程序靜態(tài)和傳輸中秘密信息。此外,組織應(yīng)該確保能夠定期快速地輪換任何密鑰,尤其是第三方API密鑰。
2.供應(yīng)鏈安全性不足
供應(yīng)鏈攻擊是針對(duì)企業(yè)使用的外部組建或工具的攻擊,能夠在組織不知覺(jué)的情況下將漏洞、不安全內(nèi)容或惡意代碼引入到應(yīng)用程序中。這些組件如果沒(méi)有得到適當(dāng)?shù)谋Wo(hù),可能會(huì)帶來(lái)各種安全風(fēng)險(xiǎn)。例如,第三方組件可能訪問(wèn)敏感數(shù)據(jù)或允許惡意代碼在設(shè)備上運(yùn)行。供應(yīng)鏈攻擊路徑可能是組織內(nèi)部的惡意員工、系統(tǒng)中引用的某段第三方代碼,以及對(duì)組織的系統(tǒng)獲得訪問(wèn)特權(quán)的黑客。
防護(hù)建議:
組織應(yīng)該加強(qiáng)監(jiān)控和檢查移動(dòng)應(yīng)用程序中所使用的所有第三方代碼,并在發(fā)布移動(dòng)應(yīng)用程序代碼之前進(jìn)行簽名,這樣應(yīng)用程序可以在運(yùn)行時(shí)被證明是真實(shí)的、未被篡改的,一旦發(fā)現(xiàn)來(lái)自篡改過(guò)的應(yīng)用程序訪問(wèn)請(qǐng)求,就應(yīng)該立即阻止。
3.不安全的身份驗(yàn)證/授權(quán)
身份驗(yàn)證是驗(yàn)證用戶是否是真實(shí)、合法的用戶,而授權(quán)是驗(yàn)證用戶是否擁有訪問(wèn)特定資源或服務(wù)級(jí)別的憑據(jù)。身份驗(yàn)證能夠有效防止竊取和使用用戶憑據(jù),然后使用這些憑據(jù)登錄到應(yīng)用程序或直接訪問(wèn)后端服務(wù)器。而授權(quán)問(wèn)題通常歸因于數(shù)據(jù)和資源的訪問(wèn)級(jí)別實(shí)施不當(dāng)。
防護(hù)建議:
通過(guò)開(kāi)展應(yīng)用程序認(rèn)證可以有效防護(hù)上述風(fēng)險(xiǎn)。在移動(dòng)應(yīng)用程序運(yùn)行時(shí)進(jìn)行完整性檢查可以檢測(cè)出任何未經(jīng)授權(quán)的代碼更改。
4.API輸入/輸出驗(yàn)證不足
應(yīng)用程序編程接口(API)允許移動(dòng)應(yīng)用程序相互通信和共享數(shù)據(jù),因此,大量第三方API需要被集成到移動(dòng)應(yīng)用程序中以提供更多功能的服務(wù)。而API中的常見(jiàn)漏洞是由惡意代理篡改輸入數(shù)據(jù)引起的。這類攻擊包括SQL注入、命令注入和跨站腳本(XSS)攻擊,它們經(jīng)常出現(xiàn)在OWASP 各類應(yīng)用風(fēng)險(xiǎn)名單上。未經(jīng)授權(quán)的代碼執(zhí)行、數(shù)據(jù)泄露、數(shù)據(jù)損壞或服務(wù)中斷都是可能會(huì)出現(xiàn)的危險(xiǎn)后果。
防護(hù)建議:
企業(yè)組織應(yīng)該確保移動(dòng)應(yīng)用程序所使用的第三方API是安全的。此外,安全人員還應(yīng)該進(jìn)一步驗(yàn)證API接口的安全措施是否有效。OWASP已經(jīng)給出了關(guān)于測(cè)試和緩解最常見(jiàn)API漏洞的詳細(xì)指導(dǎo)準(zhǔn)則。一個(gè)重要的行動(dòng)原則就是要阻止非真實(shí)應(yīng)用程序所發(fā)出的訪問(wèn)請(qǐng)求。這可以有效地防止攻擊者利用和API相關(guān)的零日漏洞。
5.不安全的網(wǎng)絡(luò)通信
移動(dòng)應(yīng)用程序運(yùn)行會(huì)面臨與傳輸或接收數(shù)據(jù)相關(guān)的威脅。移動(dòng)應(yīng)用生態(tài)系統(tǒng)中的一個(gè)關(guān)鍵攻擊面就是移動(dòng)應(yīng)用程序與后端服務(wù)器之間的鏈接通道。針對(duì)這條通道發(fā)起的中間人(MitM)攻擊可以對(duì)移動(dòng)用戶構(gòu)成了重大威脅。如果攻擊者可以控制客戶端,那么即便使用SSL,中間人攻擊活動(dòng)也可以通過(guò)應(yīng)用程序重新打包或使用Frida之類的鉤子工具在運(yùn)行時(shí)篡改應(yīng)用程序的行為來(lái)發(fā)生。移動(dòng)應(yīng)用程序開(kāi)發(fā)者要假設(shè)網(wǎng)絡(luò)層的通信活動(dòng)可能會(huì)被竊聽(tīng),因此客戶端設(shè)備上的信任證書(shū)存儲(chǔ)區(qū)可能會(huì)被人惡意篡改,這點(diǎn)很重要。
防護(hù)建議:
動(dòng)態(tài)證書(shū)綁定可以有效阻止MitM攻擊,并消除靜態(tài)綁定的成本負(fù)擔(dān)。它允許在服務(wù)器端更新pin碼,而無(wú)需更新應(yīng)用程序。此外,動(dòng)態(tài)綁定與應(yīng)用程序和客戶端認(rèn)證相結(jié)合,可以防止通過(guò)篡改移動(dòng)客戶端信息來(lái)實(shí)施MitM攻擊。
6.隱私控制能力不足
隱私控制不足是本次更新中新加入的安全風(fēng)險(xiǎn)。隱私控制主要指保護(hù)用戶的個(gè)人身份信息(PII)安全,這些信息可能被攻擊者用于欺詐或勒索。通常來(lái)說(shuō),PII可能被泄露(即違反保密性)、操縱(違反完整性)或銷毀/阻止(違反可用性)。
防護(hù)建議:
移動(dòng)應(yīng)用程序設(shè)計(jì)和開(kāi)發(fā)時(shí)應(yīng)將所處理的PII數(shù)量和種類保持在絕對(duì)最低限度,并充分驗(yàn)證應(yīng)用程序能夠符合GDPR、CCPA以及我國(guó)《個(gè)人信息保護(hù)法》等隱私法規(guī)的監(jiān)管要求。
7.二進(jìn)制代碼保護(hù)不足
移動(dòng)應(yīng)用程序的二進(jìn)制代碼通??梢詮膽?yīng)用程序商店下載或從移動(dòng)設(shè)備中復(fù)制,所以二進(jìn)制攻擊很容易通過(guò)反向工程或代碼篡改來(lái)策劃發(fā)起,從而竊取知識(shí)產(chǎn)權(quán)或篡改應(yīng)用程序功能。
防護(hù)建議:
通過(guò)使用代碼混淆技術(shù)保護(hù)代碼可以有效阻礙對(duì)二進(jìn)制代碼的攻擊,應(yīng)考慮將其作為一種保護(hù)知識(shí)產(chǎn)權(quán)避免被競(jìng)爭(zhēng)性應(yīng)用程序?yàn)E用的手段。此外,應(yīng)該使用運(yùn)行時(shí)保護(hù)和應(yīng)用程序完整性檢查方案,及時(shí)識(shí)別和阻止以任何方式被篡改的應(yīng)用程序。同時(shí),前面所介紹的輪換API密鑰和秘密信息保護(hù)方法也是增加對(duì)二進(jìn)制代碼保護(hù)的關(guān)鍵要素。
8.安全錯(cuò)誤配置
移動(dòng)應(yīng)用數(shù)據(jù)泄漏通常意味著存在未經(jīng)授權(quán)的數(shù)據(jù)傳輸,當(dāng)移動(dòng)應(yīng)用程序本身缺乏有效的安全保護(hù)特性時(shí),就會(huì)發(fā)生這種情況。由于時(shí)間限制、缺乏意識(shí)或開(kāi)發(fā)過(guò)程中的人為錯(cuò)誤等因素,移動(dòng)應(yīng)用程序中經(jīng)常會(huì)出現(xiàn)錯(cuò)誤的安全配置,有些甚至缺乏安全性設(shè)計(jì)。
防護(hù)建議:
防止移動(dòng)應(yīng)用程序中的安全錯(cuò)誤配置需要遵循安全編碼和配置實(shí)踐。OWASP給出的建議包括特別注意默認(rèn)憑據(jù)以及對(duì)用戶訪問(wèn)運(yùn)用最小特權(quán)原則。移動(dòng)應(yīng)用程序在正式發(fā)布前,開(kāi)發(fā)者就應(yīng)該保障其運(yùn)行時(shí)具有正確合理的數(shù)據(jù)安全策略和措施。
9.不安全的數(shù)據(jù)存儲(chǔ)
移動(dòng)應(yīng)用程序中不安全的數(shù)據(jù)存儲(chǔ)就會(huì)讓威脅分子找到可以趁機(jī)利用的漏洞。漏洞包括未經(jīng)授權(quán)訪問(wèn)設(shè)備的文件系統(tǒng)、利用弱加密、攔截傳輸?shù)臄?shù)據(jù),以及利用安裝在設(shè)備端的惡意軟件或惡意應(yīng)用程序。此外,被破解的計(jì)算設(shè)備也為攻擊者繞過(guò)安全措施、直接訪問(wèn)敏感數(shù)據(jù)提供了機(jī)會(huì)。
防護(hù)建議:
前面所介紹的各種建議在這里都能發(fā)揮作用,例如:實(shí)施訪問(wèn)控制和會(huì)話管理,確保強(qiáng)加密和安全數(shù)據(jù)傳輸,以及留意第三方代碼和依賴項(xiàng),這些都很重要。此外,運(yùn)行時(shí)保護(hù)可以阻止對(duì)運(yùn)行中的應(yīng)用程序進(jìn)行篡改從而竊取數(shù)據(jù)的黑客。
10.加密能力不足
加密是對(duì)重要移動(dòng)應(yīng)用數(shù)據(jù)進(jìn)行防護(hù)的基本要求,使數(shù)據(jù)在沒(méi)有密鑰的情況下無(wú)法被讀取。如果缺乏足夠強(qiáng)大的加密防護(hù),數(shù)據(jù)將會(huì)處在危險(xiǎn)的狀態(tài)下,很容易被黑客訪問(wèn)。許多移動(dòng)應(yīng)用程序開(kāi)發(fā)人員都會(huì)忽視如何正確的加密數(shù)據(jù),這也導(dǎo)致了很多嚴(yán)重的數(shù)據(jù)泄露發(fā)生。這可能表現(xiàn)為采用不安全的加密算法,或未使用安全數(shù)據(jù)傳輸(HTTPS)。移動(dòng)應(yīng)用程序中不安全加密的攻擊主要涉及加密機(jī)制中的漏洞,導(dǎo)致數(shù)據(jù)泄露或未經(jīng)授權(quán)的訪問(wèn)。
防護(hù)建議:
確保應(yīng)用程序正確且安全地使用加密技術(shù)是非常重要的,這包括使用強(qiáng)算法進(jìn)行加密、使用安全協(xié)議進(jìn)行通信以及正確保管密鑰。此外,組織要始終使用HTTPS,確保加密密鑰安全地存儲(chǔ)在移動(dòng)設(shè)備上,不是采用明文格式或放在易于訪問(wèn)的位置。
參考鏈接:
https://securityboulevard.com/2024/05/2024-owasp-mobile-top-ten-risks/