top of page
作家相片Yuanjing Guo

行動應用安全漏洞分析:AWS、Azure憑證暴露風險不可輕忽!

揭露潛在危機:熱門行動應用程式中的硬編碼雲端憑證對用戶隱私與安全的隱藏風險

隨著手機應用程式成為日常生活中的重要工具,無論是Google Play Store還是Apple App Store,都有數百萬次的應用程式下載量,然而一種隱藏的威脅逐漸浮現,對用戶資料和後端服務構成重大風險。

近期的分析發現,一些廣泛使用的應用程式在其代碼中包含了未加密的硬編碼雲端服務憑證。這種危險的做法意味著,任何擁有應用程式二進位檔或源碼存取權限的人,都可能提取這些憑證並加以利用,進而操控或竊取數據,導致嚴重的安全漏洞。

本文將深入探討這些漏洞的具體例子,聚焦於包含硬編碼Amazon Web Services (AWS)與Microsoft Azure Blob Storage憑證的應用程式,並討論開發人員應採取的最佳安全措施。


行動應用中的硬編碼AWS憑證

Pic Stitch: Collage Maker這款在Google Play Store上下載量超過500萬的應用程式,其代碼中發現了硬編碼的AWS憑證,構成重大安全風險。根據Jadx分析(圖1-3),應用程式使用了loadAmazonCredential(boolean z)方法來根據環境載入相應的憑證。如果布林值設定為true,應用程式將載入包含Amazon S3生產環境的bucket名稱、讀寫存取金鑰和秘密金鑰的生產憑證;如果設定為false,則載入對應的測試環境憑證。

圖 1. Pic Stitch 硬編碼憑證代碼
圖 1. Pic Stitch 硬編碼憑證代碼
圖 2. Pic Stitch 憑證載入程式碼
圖 2. Pic Stitch 憑證載入程式碼
圖3. Pic Stitch上傳文件代碼
圖3. Pic Stitch上傳文件代碼

同樣地,幾款受歡迎的iOS應用程式也發現存在相同類型的安全隱患,均將未加密的AWS憑證硬編碼至其代碼中。例如:Crumbl、Eureka: Earn Money for Surveys及Videoshop - Video Editor。

圖4. Pic Stitch上傳文件代碼
圖4. Pic Stitch上傳文件代碼

  • Crumbl 在Apple Store的餐飲類排名前五,擁有390萬個評分。其代碼中初始化了一個AWSStaticCredentialsProvider,憑證包括了存取金鑰和秘密金鑰,這些敏感資訊直接用於配置AWS服務,未加密的WebSocket Secure (WSS)端點還使該應用更易遭受攔截與竄改的風險。

    圖 5. 帶有硬編碼 AWS 憑證的 Crumbl IDA 代碼
    圖 5. 帶有硬編碼 AWS 憑證的 Crumbl IDA 代碼
  • Eureka: Earn Money for Surveys 生活類應用的評分達40萬,該應用直接硬編碼AWS憑證,使用平文存儲的金鑰來記錄AWS事件。

圖 6. 帶有硬編碼 AWS 憑證的 Eureka IDA 代碼
圖 6. 帶有硬編碼 AWS 憑證的 Eureka IDA 代碼
  • Videoshop - Video Editor 在-[VSAppDelegate setupS3]方法中嵌入了AWS憑證,任何存取到應用程式二進位檔的人都可以輕易提取並利用這些資訊。

    圖 7. 具有硬編碼 AWS 憑證的 Videoshop IDA 代碼
    圖 7. 具有硬編碼 AWS 憑證的 Videoshop IDA 代碼

這些應用程式中都將AWS憑證用於S3存儲和物聯網數據管理,硬編碼金鑰的做法讓攻擊者有機可乘,進而影響應用程式的後端基礎設施、竊取用戶資料或造成服務中斷。


行動應用中的硬編碼Azure憑證

同樣的安全問題也在數款流行的Android應用程式中被發現,這些應用程式在代碼中硬編碼了Microsoft Azure Blob Storage的憑證,對用戶的安全和隱私構成重大風險。

  • Meru Cabs 在Google Play Store上下載量超過500萬,其UploadLogs服務中硬編碼了Azure連接字串,這段字串包含了賬戶金鑰,用於管理日誌上傳,極易遭濫用。

圖 9. 具有硬編碼 Azure 憑證的 Meru Cabs Jadx 程式碼
圖 9. 具有硬編碼 Azure 憑證的 Meru Cabs Jadx 程式碼
  • Sulekha Business 擁有50萬次下載量,將多組硬編碼Azure憑證嵌入代碼,用於發佈、處理發票及存儲用戶資料等功能,未加密的連接字串易於讓攻擊者進行未授權的數據操作。

圖 10. 具有硬編碼 Azure 憑證的 Sulekha Business Jadx 程式碼
圖 10. 具有硬編碼 Azure 憑證的 Sulekha Business Jadx 程式碼
  • ReSound Tinnitus Relief 下載量超過50萬,應用程式中同樣硬編碼Azure Blob Storage的憑證,這些憑證用於管理聲音檔和各類資產,憑證外洩恐造成未經授權的數據訪問與資料外洩。


圖 11. 具有硬編碼 Azure 憑證的 ReSound Tinnitus Relief Jadx 程式碼
圖 11. 具有硬編碼 Azure 憑證的 ReSound Tinnitus Relief Jadx 程式碼

這些硬編碼憑證使得Azure Blob Storage賬戶暴露於未經授權的存取風險中,任何擁有應用程式二進位檔或源碼存取權限的人都可以輕易提取並濫用這些憑證。


結論

本文中的案例展示了硬編碼及未加密雲端服務憑證在手機應用中的嚴重安全風險。這一做法使得關鍵基礎設施面臨潛在攻擊威脅,威脅到用戶資料及後端服務。此類漏洞在iOS與Android平台的廣泛存在,表明當前急需更安全的開發實踐。


開發者的最佳實踐建議

為了降低這些風險,開發者應遵循以下敏感資訊管理的最佳實踐:

  1. 使用環境變數:將敏感憑證存儲於環境變數中,於執行時加載,而非直接嵌入代碼中。

  2. 實施秘密管理:使用專用的秘密管理工具,如AWS Secrets Manager或Azure Key Vault來安全存取憑證。

  3. 加密敏感數據:若必須在應用中儲存憑證,應使用強加密算法來加密,並在需要時解密使用。

  4. 代碼審查與安全審計:定期進行代碼審查與安全審計,以識別並消除硬編碼憑證及其他安全漏洞。

  5. 自動化安全掃描:在CI/CD管道中整合自動化安全掃描工具,以便在開發早期偵測硬編碼憑證等常見安全問題。

透過採取這些最佳實踐,開發者可顯著降低敏感資訊外洩的風險,確保應用程式免受潛在威脅的侵害。正如本文案例所示,安全性在手機應用開發生命週期中必須成為首要考量。


保護與防範措施

有關最新的保護更新,請參閱Symantec Protection Bulletin

Symantec建議用戶遵循以下最佳實踐來防範移動威脅:

  • 安裝適當的安全應用程式,如Symantec Endpoint Protection來保護裝置及數據。

  • 避免從不熟悉的網站下載應用程式,僅從信賴來源安裝應用。

  • 保持軟體更新。

  • 仔細查看應用請求的權限。

  • 定期備份重要資料。


附錄

在本研究中發現的含有硬編碼憑證的應用程式清單。

App Name

Downloads/Ratings

Threat Exposed

Pic Stitch

5M+ download on Google Play

Amazon hardcoded credentials

Crumbl

3.9M+ ratings on Apple Store

Amazon hardcoded credentials

Eureka: Earn money for surveys

402.1K+ ratings on Apple Store

Amazon hardcoded credentials

Videoshop - Video Editor

357.9K+ ratings on Apple Store

Amazon hardcoded credentials

Meru Cabs- Local, Rental, Outs

5M+ download on Google Play

Microsoft Azure Blob Storage hardcoded credentials

Sulekha Business-List & grow

500K+ download on Google Play

Microsoft Azure Blob Storage hardcoded credentials

ReSound Tinnitus Relief

500K+ download on Google Play

Microsoft Azure Blob Storage hardcoded credentials

Saludsa

100K+ download on Google Play

Microsoft Azure Blob Storage hardcoded credentials

Chola Ms Break In

100K+ download on Google Play

Microsoft Azure Blob Storage hardcoded credentials

EatSleepRIDE Motorcycle GPS

100K+ download on Google Play

Twilio hardcoded credentials

Beltone Tinnitus Calmer

100K+ download on Google Play

Microsoft Azure Blob Storage hardcoded credentials

Solitaire Clash: Win Real Cash

244.8K ratings on Apple Store

Amazon hardcoded credentials

Zap Surveys - Earn Easy Money

235K ratings on Apple Store

Amazon hardcoded credentials


Comments


bottom of page