行動裝置應用程式安全-六個開發人員須知

根據報導,2016 年有 69% 的企業部門使用兩至五種行動裝置應用程式,前一年增加 66%。

對企業而言,行動平台確實已經無所不在。它和許多新興的平台一樣,將會創造龐大的機會,尤其是以企業為目標的開發人員,

但這將對資料處理方式帶來何種影響?

[請參閱:行動裝置應用程式如何成為下一波網路犯罪的邊境]

根據報導,光是 2017 年 6 月,就有超過 1,000 個 Android 及 iOS 企業應用程式在應用程式與後端系統之間有不安全的通訊,暴露的資料量大約有 43 TB,至少有 39 個受影響的應用程式洩漏了 2.8 億筆個人身分資訊 (PII)。2016 年的一項研究發現,醫療保健及金融相關的行動裝置應用程式中,有 90% 含有重大的安全漏洞。

這些資訊呼應了「開放網路軟體安全計畫」(Open Web Application Security Project,OWASP) 最新版的常見行動裝置風險列表,這些風險包括多餘的功能、不安全的資料儲存方式及網路,有些應用程式幾乎完全沒有驗證及加密機制,無法阻止駭客進行逆向工程,重新封裝、欺騙或修改應用程式。

舉例來說,這些應用程式秘密允許存取裝置功能 (例如相機或錄音程式) 及各種個人身分資訊 (例如相片、聯絡人、簡訊、行事暦、位置及瀏覽記錄)。這些應用程式如果落入網路犯罪者的手中,顯然會帶來嚴重的後果。

無論是企業,或是一般使用者,隱私也是行動裝置應用程式重要的議題,行動裝置應用程式必須徹底檢查安全性,以免資料遭到濫用及感染惡意程式。最近發生在 UberBrightest FlashlightPathKim Kardashian: Hollywood 行動裝置應用程式,以及小米的智慧型手機等事件,都是最佳的案例。

[請參閱:2016 年行動裝置威脅概況]

由於職場自攜設備 (BYOD) 工作方式的盛行,各種應用程式使用相同的網路,存取相同的資料,行動裝置生態系統讓工作與個人用途之間的界線更加模糊。儘管有各種挑戰,行動裝置應用程式開發人員仍有一些對策可提供企業資源,同時不犧牲企業的安全性與個人隱私。

六個開發人員須知:

1.    強制實施最小權限原則

將您應用程式執行時的權限要求,限制在必要的資訊或裝置元件範圍內。安全漏洞及惡意程式會利用使用者提升的權限。行動裝置並無不同。瞭解您所收集的資料,讓您可以清楚地定義您應用程式的信任邊界。確保您的應用程式設計介面 (API) 在其工作流程中實行此原則。

[趨勢科技白皮書:虛假應用程式:假冒真實性]

2.    實行堅實授權及多要素驗證

應用程序的驗證及授權中的缺陷,是行動裝置威脅常見的攻擊途徑,這些管道讓駭客透過中間人攻擊冒充其他使用者,或者存取裝置或應用程式的功能 (繞過 PIN 碼、將惡意程式碼注入應用程式等)。這些都是網路銀行應用程式的致命傷,例如取得一般使用者的銀行帳戶並竊取金融記錄,即可藉此獲利。開發人員應保護各項功能的安全,例如驗證員工的使用者身分,或判斷消費者可在應用程式中存取或執行哪些資源。

實行強式驗證模式。如果您已使用驗證協定,例如 OAuth,請轉移為最新標準。以 OAuth 2.0 為例,它可提供單次登入及第三方驗證,無須提供機敏憑證。Facebook、Microsoft 及 Google 的 API 皆使用 OAuth 2.0。在應用程式內提供購買功能的消費性應用程式開發人員,請遵循 Android 或 Apple 的準則。例如,iOS 有一項用於驗證收據的 App Store 準則。

確保您的應用程式強制執行多要素驗證。考慮實行線上快速身分認證 (FIDO),此業界規格可將生物特徵資料 (例如指紋)、密碼及權杖 (token) 等 PII 安全地儲存於本機裝置。FIDO 亦有助於減輕開發人員的工作,不須建立多個安全登入介面;尤其是當客戶使用不同的作業系統 (OS),此作業會十分困難。

同時:建立安全 API,它是支持應用程式核心功能及資料儲存方式的重要命脈。API 也是用於存取後端服務及使用者各種應用程式的框架,這些都需要驗證與授權。

[請參閱:使用並確保 BYOD 設備的安全]

3.    強力執行存取政策

許多企業已針對平台訂定政策,例如管理遠端存取的平台,包括虛擬私有網路 (VPN)、防火牆、網路、資料庫及伺服器等,有助於減少機器受到攻擊的機會。行動裝置應用程式開發人員也應將此列入考量,特別是涉及內部自行設計的企業應用程式。

確保應用程式所存取的程式庫及框架都是安全的。相關資料,如位置、時間、歷程或先前的交易等,皆可用於建立授權/存取政策。最後,您建立的應用程式應符合組織的 IT/系統管理員所採用的企業政策,或 Google Play 及 Apple 的 App Store 政策。

[請參閱:行動裝置應用程式如何洩漏隱私?]

4.    強化您的加密方式

加密您的應用程式時,採用最佳做法並遵循業界標準 (或者強化 API 現有的加密方式)。保護不足的應用程式容易遭到欺騙,攻擊者可使用重新封裝的應用程式以惡意程式感染裝置。目前已有許多程式碼混淆及極簡化的工具可供 Android 應用程式開發人員使用,而 iOS 開發人員可利用多重檢查與變形 Mach-O 二元碼 (malformed Mach-O binaries) 等眾多工具。開發人員也應實行用戶端程式碼簽章驗證,以防止敏感資訊洩漏。

開發人員亦可整合 VPN 以進一步確保應用程式的網路連線安全。考慮使用安全通訊協定 (SSL) 與傳輸層安全協議 (TLS) 建構您的應用程式層通訊協定。另外還有執行於 SSL 之上,並將資料納入 SSL 封包的超文字傳輸安全協定 (HTTPS)。

為存取企業網路與資料庫 (特別是透過 BYOD 設備) 而開發的應用程式,可藉由應用程式容器化而獲益,亦即在容器環境 (例如虛擬機器) 中開發應用程式,如此可避免應用程式與設備的其他 (及個人的) 資料及應用程式進行互動。

[請參閱:行動安全性實用指南]

5.    定期執行安全檢測及審查

安全漏洞是許多行動裝置威脅的基本要件,因此定期測試應用程式原始碼以確認沒有弱點 (例如輸入驗證問題) 極為重要。應用程式應該要具有靈活性,亦即容易修補及更新。

目前有許多工具可供開發人員使用,例如趨勢科技的行動裝置應用程式信譽評等可掃描應用程式的安全性及資源使用情形。OWASP 的主要行動裝置風險列表是檢查您應用程式內部問題的理想起點。

識別您所建立的應用程式平台之間的細微差別,並考量其個別的攻擊面。例如,對應各個組件及其相互依存性,可讓開發人員掌握有可能外洩 (或遭竊) 的資料。另外,亦需進一步分析應用程式的執行階段、二元碼及檔案系統,以檢查是否有網路及用戶端攻擊途徑。

在應用程式發布至 Google Play 與 Apple 的 App Store 等市集,並提供使用者下載及安裝之前,審查行動裝置應用程式亦可協助企業評估應用程式。

[趨勢科技技術長深入觀察:行動裝置應用程式開發人員也應在隱私及安全性方面相互競爭]

6.    以安全性為本的設計

行動裝置應用程式開發產業蓬勃發展,想從中獲得成果的開發人員,必須超越應用程式的功能與易用性,將隱私及安全性納入做為賣點,從應用程式規格、編碼、測試、實行到部署皆是如此。

畢竟,開發人員最終必須負責應用程式完整生命週期內的完整性。除了定期合規之外,開發人員還必須考量使用其應用程式時的潛在風險,例如儲存資料的性質以及可存取資料的使用者。在企業中使用及共用資訊,以及將資訊整合至社群媒體等其他平台的應用程式,皆必須通過審查,以確保其符合最新的安全標準。

Trend Micro企業版行動安全防護可讓您管理裝置、合規性和應用程式,亦提供資料防護、設定佈建等功能,並可保護裝置免受鎖定漏洞的攻擊、防範未經授權存取應用程式,以及偵測與封鎖惡意程式和詐欺網站。

⊙原文來源: Mobile App Security for Developer