OWASP MASVS/MSTG 簡介-Part I

Archer Lin
雅砌工坊
Published in
6 min readMay 7, 2020

OWASP組織有幾個很活耀的Project,近年來針對行動應用資安做了一系列的規範。首先介紹一下他的縮寫名稱與其英文全名:

MASVS定義了行動應用App的安全模型,並列出了行動應用App的一般安全需求。軟體架構師、開發人員、測試人員、資安專家和使用者都可以使用它來定義和了解一個行動應用App的安全品質。

MSTG是對應(Mapping)著MASVS的安全需求,所定義一些測試規範。

Checklist則是呈現MSTG測試結果的一份摘要表單,副檔名為.xlsx。

它們等於是一體的三面,可以單獨使用或組合使用,以實現不同的目標。例如,MASVS需求可以在行動應用App的規劃(Planning)和架構設計(Design)階段使用,而Checklist和MSTG則可以用作手動安全測試的基準,也可以用作開發期間或開發後自動安全測試的模板。

MASVS模型簡介

MASVS可以被用來確立一個行動應用App基本資安程度(MASVS-L1),同時還允許包含縱深防禦措施(MASVS-L2)和針對用戶端威脅的保護(MASVS-R)。MASVS旨在實現以下三個主要目標:

  • 作為業界應用的資安標準(Metric) — 提供一個資訊安全標準,讓開發者和使用者們可以比較現有的行動應用App資安程度。
  • 作為軟體開發的指導綱領(Guidance) — 提供一個行動應用App開發流程中各個步驟的指引,以便行動應用App開發與測試。
  • 作為採購檢驗的驗證參考(Procurement) — 提供一個行動應用App資訊安全的驗證基準。

MASVS定義了兩個嚴格的資訊安全驗證等級(L1和L2),還有一系列的抗逆向工程防禦和竄改的韌性準則(MASVS-R),抗逆向工程準則會根據各種應用的不同威脅模型有相對應的調整。

MASVS-L1和MASVS-L2包含通用的資訊安全準則,MASVS-L1是建議所有的行動應用App都應該遵循的要求,適用於所有App;MASVS-L2則是適用於針對處理高機敏資訊的App,例如網銀App。同時,MASVS-R則提供了需要防範用戶端威脅(Client-Side Threat)時,可以使用的額外防護控管方法。

簡單來說,L1是基於在一個合法的Server-Side和一個正常的Client-Side,所定義一個基本安全標準;L2則是基於L1的基礎上,增加了更多縱深防禦的措施;至於R則是增加了用戶端的保護,並將使用者也視為一個潛在惡意的威脅(也就是Zero Trust的概念)。

Mobile AppSec Model

請注意:MASVS-R和MSTG所提到的方法,無法確保不被繞過,並且永遠不該被視為資安管控的替代方法。相反的,這些軟體防護管控方法旨在增加已落實MASVS L1或L2的行動應用App,對特定威脅的額外防護。

在使用建議上,可行的驗證類別組合可能為:

  • MASVS-L1:所有行動應用App
  • MASVS-L1+R:須保護智財權的App、遊戲類App
  • MASVS-L2:儲存PII的App、醫療保健業App、金融業App
  • MASVS-L2+R:儲存重要機敏資料的App、金融業App

MASVS可用作行動應用App認證指南

推薦MASVS的驗證方式是採Open book的方式,也就是白箱的方式,測試人員會被給予關鍵資源,包括各階段的安全文件、程式碼、授權帳號密碼、管理者權限…等。

測試指導手冊就是MSTG,它描述了驗證被列在MASVS中相關準則的技術流程。MSTG提供測試方法的列表,每一個測試方法都可以對應的一個MASVS的準則。MSTG也提供了對不同作業系統(Android、iOS)和相對應層次的建議及測試流程。

為增加效率,程式碼掃描工具和黑箱測試等自動化工具是被鼓勵的,但要完成MASVS驗證不可只依賴自動化工具,因為每個行動應用App都是不同的,而且了解App的整體架構、商業邏輯和應用特定技術和框架所帶來的優缺點,是驗證MASVS和行動應用App安全的必要條件。

MASVS的其他用途

首先,MASVS可當成是現今安全架構師對於行動應用App資安的重要參考資料(相較於先前的SABSA或TOGAF等安全框架更加的全面)。再者,許多組織都可以透過套用MASVS而受益,藉由選擇兩個安全等級之一或以MASVS為基準再發展(Fork)出因應各類行動應用App的風險等級需求與特殊行業(Domain-Specific)準則,只要可以維持其可追溯性(Traceability)。

一個好的行動應用App安全檢測方法應該包含所有MASVS列舉的準則。MSTG則描述了白箱測試和黑箱測試對每一個需檢測準則的測試方法。

MASVS被設計為擁有高度可測試性,除了架構上的需求以外,自動化單元、整合測試和驗收測試基於MASVS準則,可以被整合到程式持續開發生命周期(Continuous Development Life-cycle)中。這不僅增強了開發人員的資安意識,也增進了App的整體安全品質,更減少了在程式發布前階段,資訊安全測試的工作量。

MASVS也可以被用來定義安全行動應用App的特性,資訊安全設計開發的課程可以採用MASVS架構作為教材,並且主要專注在MASVS中列舉的預先防護的資安控管機制,而不是不斷重提那些老掉牙的 Top 10。

延伸閱讀:

--

--