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