資訊中心管理
管控行動應用程式的安全大小事 依靠第三方套件開發 行動應用程式錯了嗎?
前往目錄
多數企業會選擇使用開源套件加速開發速度,但在推出服務的同時,也將自己的服務暴露在資安風險中,本篇文章將會介紹第三方套件是如何影響App安全的

隨著資訊服務普及的時代來臨,多數企業為因應行動化潮流,皆推出 Mobile App ( 以下簡稱 App) 來取代網頁服務。為供應快速變化的市場需求,開發單位必須在有限的時程下進行服務規劃、開發。因此多數企業會選擇使用開源套件加速開發速度,但很可能再推出服務的同時,也將自己的服務暴露在資安風險中,本篇文章將會引用第三方套件,包含:開源套件、商業套件等是如何影響App安全的。

1.為什麼人人都使用第三方套件?

大多數現代程式庫都依賴於第三方套件庫。事實上僅是開源套件的使用上面,在近期研究機構 Enterprise Strategy Group (ESG) 發表了有關企業使用開源套件的研究報告中,研究中顯示在所有受測的組織中,有超過 96% 的組織,其程式碼管理庫中有引用開源套件。由此可見企業為跟上變化快速的市場需求情況下,會選擇採用第三方套件來加快開發時程。

2.得第三方套件者得天下嗎?

在第三方套件使用率如此普及的情況下,企業可以享受到它帶來的便利性。同時卻也忽略了使用第三方套件所附帶的隱憂。其主要可分為以下兩點:

授權:

當使用之第三方套件為開源套件時,需遵守該套件作者所註記的授權條款 才能使用(如下圖),否則可能會引發侵權責任。甚至有些套件的使用授權為須公 布使用該套件的所有程式碼,恐會影響到企業組織的智慧財產問題。

依靠第三方套件開發行動應用程式錯了嗎-1.png

安全性:

第三方套件並非一定安全的,其中也可能隱含資安漏洞,知名資安廠商 WhiteSource 提出了一份研究統計(如圖所示),開源套件所隱含的漏洞數量有逐年大幅成長的現象;商用套件則更難以估計其安全性、可靠性,是否存在資安漏洞不可而知;另外第三方套件使用不當也可能會導致服務存在資安疑慮。若企業組 織在不知情的狀況下,引用了存有漏洞的 第三方套件,導致提供有資安疑慮的服務App,進而使公司商譽受損。

依靠第三方套件開發行動應用程式錯了嗎-2.png

3.吃甜蘋果或毒蘋果,就看各家本事

第三方套件使用得宜,可以避免推出有資安疑慮的 App 服務,同時也可以達到快速開發的目的,以下列套件所面臨的資安危害為例:

中間人攻擊:

開發App時透過開源套件處理連線相關工作,但因套件實作不當,導致連線不安全,如:CVE 2016-2402 就是發生在開源套件OkHttp,2.7.4版以前的版本以及介於 3.1.2 與 3.0 的版本,因建立加密連線的憑證驗證機制上的設計缺陷,使得攻擊者可透過中間人攻擊的手法進行資料竊取、置換等惡意行為。

依靠第三方套件開發行動應用程式錯了嗎-3.png

弱密碼加密:

進行加密相關行為時,應使用隨機亂數產生的金鑰,避免加解密行為遭攻擊者解析,進而導致密文遭破譯。許多開發者為求快速開發,使用開源套件來處理複雜的加解密行為。透過外部參數傳入來產生金鑰(如下圖),即代表攻擊者取得傳入參數並使用該套件即可取得密文內容。

依靠第三方套件開發行動應用程式錯了嗎-4.png

4.一套工具帶你行走天下

上述問題都可以遵循知名資安社群OWASP針對App的安全所提出的文件進行測試,OWASP 針對 App 軟體開發生命週期的各個階段提出了相對應的參考文件,包含:MASVS (Mobile Application Security Verification Standard) 、MSTG (Mobile Security Testing Guide)、Security Checklist 等文件,企業組織可參考該文件發展、訂定適合組織內部的 App 安全規範。

在 App安全性測試指南(MSTG)中,OWASP 提出了完整詳細的 App 測試方法,但對於一般企業組織來說測試門檻仍舊相當的高,多數企業組織為了因應市場需求 進行功能性開發,已耗盡大部分的人力資源,然而完成完整的安全性測試需要熟悉多項開源套件,故自行檢測難以滿足企業組織現況。

叡揚資訊代理的App安全性檢測工具–Kryptowire,透過上傳安裝檔 (.apk/.ipa ) 的方式,便能進行完整的安全性測試,並了解App之資安狀況如何,是否存在任何資安風險。同時提供詳細的風險說明、修復建議以及弱點證據。如上文提及之弱點:使用弱型別加密演算法(如下圖)。

依靠第三方套件開發行動應用程式錯了嗎-5.png

Kryptowire可解析、紀錄密碼學相關行為,如:雜湊運算(MD5、SHA)、加密運算(RSA、AES)等,確認無發生金鑰寫死在程式碼中等設計不良之問題;使用錯誤的連線方式(如右上圖),透過Kryptowire 可確認網路傳輸資料行為、內容設計正確性,確認App是否採用加密之傳輸協定、傳輸資料是否加密、無傳輸至敏感國家等。

依靠第三方套件開發行動應用程式錯了嗎-6.png

5.天下武功,唯勤不破?

企業組織唯有更專注於資安議題,才能達到提供消費者安全、可靠的App服務。在App上線前需進行安全性測試,確認程式執行的行為符合預期App功能以及資安規範。彙整本篇文章所有內容為讀者整理歸納出以下該注意之重點。

第三方套件控管

開源套件
  • 盤點套件版本:確認無使用到有資安漏洞之套件
  • 盤點套件授權方式:確認無使用違背公司政策的授權套件
商業套件
  • 源碼檢測:請套件之提供廠商提供源碼檢測,確認無違背資安政策之漏洞。

App安全性檢測

  • 靜態檢測:確認App有無錯誤的宣告行為,使得攻擊者可透過反組譯行為取得智慧財產內容、商業邏輯。
  • 動態檢測:紀錄App行為確認是否有套件執行非預期目的之行為。