最近,全球應用安全項目(OWASP)更新了自2016年以來的首次移動應用程序十大風險。這次的首位安全風險是?”不當的憑證使用。”
這對移動應用程序提供商來說是一個警示,提醒他們硬編碼憑證和不良密碼衛生的危險。
錯誤處理應用程序使用的密碼,特別是在移動應用中,可能導致毀滅性的安全漏洞。讓我們更仔細地看看這一新的安全重點,以及我們可以如何共同解決這些問題。
不當密碼處理的日益威脅
不當的憑證使用發生在密碼或令牌等秘密未被適當保護的情況下,使其易受攻擊者竊取。移動應用特別以洩露秘密而臭名昭著。根據CyberNews的研究,超過50%的移動應用在像Google Play商店這樣的平台上有硬編碼的秘密,這意味著這些敏感信息很容易被惡意行為者發現。
如果我們看看OWASP提供的定義,我們很快就能理解為什麼這一風險特別令人擔憂:
當秘密被揭露時,攻擊者可以利用這些秘密獲得對服務、數據甚至整個系統的未經授權訪問。這使得秘密管理成為應用程序開發者和安全團隊的首要關注事項。
為什麼秘密是主要目標
秘密對攻擊者來說是有吸引力的目標,因為它們可以直接訪問關鍵系統。與其他需要進一步利用的漏洞不同,一旦攻擊者獲得了API密鑰或密碼,他們通常可以清晰地訪問有價值的資源。
例如,移動應用中的硬編碼API密鑰可以通過靜態分析工具提取,並用於發送未經授權的API請求。這不僅會危及用戶數據,還可能造成財務損失,特別是當這些密鑰與按使用量計費的服務相關聯時。
客戶端的秘密是困難的
理解秘密管理的一個關鍵點是,客戶端的秘密幾乎不可能保密。無論秘密在移動應用中被混淆或加密得多好,擁有足夠資源的攻擊者仍然可以對應用進行逆向工程並檢索它們。這是因為秘密在某些時候必須在應用的內存中可用以供使用。通過動態分析,攻擊者可以檢索這些秘密並利用它們。
因此,管理秘密的唯一安全方法是將其完全保留在客戶端之外。開發者應該將這些敏感信息轉移到後端,而不是將API密鑰或憑據嵌入應用中,這樣可以更好地控制訪問和安全性。
秘密管理的最佳實踐
為了解決秘密洩露的挑戰,開發團隊必須實施一系列最佳實踐。
1. 絕不要將秘密硬編碼
秘密不應直接存儲在應用程式的代碼中。這包括 API 金鑰、身份驗證令牌和任何其他敏感數據。硬編碼秘密是洩露的最常見方式之一,可能導致重大安全漏洞。
2. 使用安全存儲 API
對於用戶秘密(例如,密碼、令牌),開發人員應使用移動操作系統提供的安全存儲機制。例如,iOS 提供了 Keychain,而 Android 則有 Keystore。這些 API 允許對設備上的敏感數據進行安全存儲和訪問控制。
3. 將秘密移至後端
移動應用程式應使用伺服器端邏輯來管理 API 金鑰和其他敏感數據,而不是在客戶端處理秘密。將這些操作放在後端大大降低了洩露秘密的風險。
4. 定期輪換和作廢秘密
即使在適當的秘密管理下,秘密也應定期輪換,被洩露的金鑰應立即作廢。這確保了如果攻擊者獲得了秘密,他們無法無限期使用它。
5. 證書釘選
當秘密在運行時發送到應用程式時,開發人員應使用證書釘選來確保通信的安全性。這通過在連接過程中驗證伺服器的身份,增加了一層額外的保護。
6. 實施跨SDLC的機密檢測
在開發生命週期中管理機密不可避免地會出現錯誤和泄漏。OWASP強調了“全面的安全測試流程”的必要性。它需要在提交、推送和構建階段強制執行多層檢測,並允許在發生事件時進行流暢的修復。
重要的是要牢記,硬編碼的機密不需要進入生產環境就可能成為高影響力的漏洞。
洩漏機密的後果
當機密被洩露時,後果可能嚴重。攻擊者可以使用曝光的憑證來訪問敏感數據,操縱業務邏輯,甚至接管整個系統。例如,如果與支付系統相關聯的API密鑰被洩露,攻擊者可能會發起欺詐交易,導致企業和客戶的財務損失。
“Adversaries can exploit vulnerabilities in both hardcoded credentials and improper credential usage. Once these vulnerabilities are identified, an attacker can use hardcoded credentials to gain unauthorized access to sensitive functionalities of the mobile app. They can also misuse credentials, for instance, by gaining access through improperly validated or stored credentials, thereby bypassing the need for legitimate access.”
此外,洩漏的機密可能危及移動應用程序的完整性,並導致昂貴的法律和聲譽損害。例如,如果一個醫療應用程序洩漏了允許訪問患者數據的API密鑰,可能會導致重大的監管罰款並侵蝕客戶信任。
機密檢測工具
為了幫助解決機密洩漏問題,機密檢測工具已經成為現代應用程序開發的必備工具。這些工具掃描代碼存儲庫、CI/CD管道和生產環境中的曝露機密,幫助團隊在被利用之前發現漏洞。
這些工具和平台允許對代碼變更進行實時監控,確保在開發過程中不會意外地將機密硬編碼。通過將這些工具整合入開發生命周期,組織可以大幅降低機密洩漏的風險。
機密安全是一段我們都在經歷的旅程
機密管理不僅僅是一個技術問題;這是一個關鍵的安全挑戰,如果處理不當,可能會產生深遠的後果。組織可以通過了解不當憑證使用的風險、實施保護機密的最佳實踐以及使用專門設計的工具來檢測洩漏,以保護其敏感數據並降低昂貴洩漏的可能性。
隨著網絡攻擊和洩漏不斷登上頭條,保護機密是保障組織和系統安全的最重要防護策略。謝天謝地,OWASP 的志願者們在幫助我們跟上不斷變化的網絡安全形勢。
參考
- 移動應用程序的十大風險,開放全球應用程序安全項目 (OWASP)
Source:
https://dzone.com/articles/secrets-security-important-issue-mobile-apps