什麼是標準安全(L1)?它夠安全嗎? MASVS(電話 Application Security 來自驗證標準) OWASP 是分析應用程式安全性的任何人的事實標準,無論是測試人員、安全工程師還是應用程式所有者。

為了 設計一個安全的應用程式你必須信任應用程式賴以建構的基礎。無論是應用程式及其作業系統、韌體及其硬件,還是瀏覽器中的網頁——如果基礎本身不安全,會發生什麼?   

R-韌性是MASVS中的重要議題,有些人甚至將「R」視為建議。 Digital.ai 我們認為,在原本不安全的環境中,韌性才是真正的安全基石。 「R」層對於保護L1「標準安全」層至關重要。為什麼?因為當應用程式在不安全的環境中運作時,L1中所描述的標準安全措施很容易被破解。不安全的環境包括越獄或root過的行動裝置、模擬器,甚至是感染了惡意軟體的裝置。所有這些環境都很常見。事實上,在對數百萬個應用程式實例進行的薈萃分析中, Digital.ai 我們發現,在任何一周內,我們保護的應用程式中有一半以上會被置於非安全狀態。safe 環境。 

在接下來的部落格文章中,我們將討論彈性要求以及如何使用…來滿足這些要求。 程式碼混淆、監控和 RASP 工具我們也將分享關於 L1 標準安全建議、相應攻擊途徑以及緩解方法的見解和觀點。最後,我們將討論應用工程師僅遵循 L1 建議時會遇到的一些挑戰。我們將首先討論 MASVS 中提到的最高等級或「彈性」要求。  

MASVS 安全要求的層次

MASVS是什麼?

这 電話 Application Security 驗證標準MASVS,或稱為“MASVS”,是一份涵蓋網路、儲存、完整性等多個領域的各種建議的摘要清單。這些建議分為 3 個主要模型: 

  • MASVS-L1 – 標準安全: 包含最佳安全實踐,例如程式碼品質、敏感資料處理以及與行動環境的互動。 
  • MASVS-L2 – 縱深防禦: 該模型包含了 MASVS-L1 的所有內容,並根據威脅模型為銀行和醫療保健等處理特別敏感數據的行業提供了額外的建議。 
  • MASVS-R – 抵禦逆向工程和竄改的能力: 防止特定的客戶端攻擊,例如篡改、修改, 或進行逆向工程。

如何滿足彈性要求  

MSTG-RESILIENCE-1  

該應用程式能夠檢測並響應已root或越獄的設備,要么向用戶發出警報,要么終止應用程式。 

Digital.ai 應用程式安全性 能夠檢測多種複雜的root和越獄檢測方法。我們甚至能夠偵測作業系統本身程式碼的篡改情況。 

MSTG-RESILIENCE-2  

該應用程式會阻止調試,並且/或能夠檢測並回應已連接的調試器。必須支援所有可用的調試協議。  

Digital.ai 應用安全功能提供對偵錯器的全面保護。 

MSTG-RESILIENCE-3  

該應用程式能夠檢測並回應對其自身沙箱內可執行檔和關鍵數據的篡改。 

開源加密庫(例如 OpenSSL 和 Mbed-TLS)很容易被攻擊者偵測到。因為我們的保護措施提供了一系列武器庫 白盒密碼學 採用專有實現的演算法 Digital.ai 客戶可以有效率地實施完整性檢查,而不會留下攻擊者可識別的痕跡。 

MSTG-RESILIENCE-4  

該應用程式能夠檢測設備上廣泛使用的逆向工程工具和框架,並做出回應。 

Digital.ai Application Security 檢測動態插樁工具包、框架和逆向工程工具(如 FRIDA、FRIDA-gadget 和 cycript)的存在。

MSTG-RESILIENCE-5 

該應用程式能夠檢測並響應在模擬器中運行的情況。 

Digital.ai Application Security 可以透過測試受保護應用程式運行所在的 CPU 來偵測 QEMU 等模擬器。 

MSTG-RESILIENCE-6  

該應用程式能夠檢測並回應對其自身記憶體空間中的程式碼和資料的篡改。 

Digital.ai Application Security 檢測並允許客戶 建立自訂回應以應對篡改事件此外,我們還能偵測到試圖繞過篡改偵測的行為。我們還能偵測到諸如 GameGuardian 和 iGameGod 之類的記憶體編輯器,並且能夠在篡改行為暫停時偵測到記憶體掃描。 

MSTG-RESILIENCE-7  

該應用程式在每個防禦類別(8.1 至 8.6)中都實現了多種機制。請注意,韌性與所用機制的數量、多樣性和獨創性成正比。 

Digital.ai Application Security 客戶可以選擇何時以及如何實施和調用 多種檢測方法例如,每當偵測到篡改事件時(無論是透過隱藏的後台程序還是直接的完整性違規),客戶都可以選擇他們想要採取的措施。 (RASP) 回應。客戶可以關閉應用程序,強制最終用戶使用雙重認證重新進行身份驗證,或將遊戲中的重力設定調至零,從而破壞作弊者的遊戲體驗,同時不留下任何篡改檢測代碼的痕跡。 

MSTG-RESILIENCE-8  

偵測機制會引發不同類型的反應,包括延遲反應和隱蔽反應。  

Digital.ai Application Security 允許客戶透過自訂處理程序和隱藏調度器來控制何時何地呼叫保護措施。我們甚至提供了一個「崩潰」函數,該函數會在不洩露導致崩潰的程式碼來源的情況下突然終止應用程式。

MSTG-RESILIENCE-9  

混淆技術應用於程序化防禦,這反過來又阻礙了透過動態分析進行反混淆。  

代碼混淆 這是我們技術的原始基礎。我們擁有6項與程式碼混淆相關的專利,其中包括首個代碼混淆專利。 Digital.ai Application Security 提供了一種程式碼扁平化解決方案,可以對程式碼進行高度混淆。此外,我們的白盒加密變數和常數經過混淆處理,並在記憶體中短暫“存活”,因此進程轉儲或自動加密掃描器無法從中獲取任何資訊。我們還提供運行時字串混淆保護,以及針對文字運行時(例如 Java 和 Objective-C)的完全混淆。   

MSTG-RESILIENCE-11  

該應用程式的所有可執行檔和庫檔案均已進行檔案級加密,並且/或可執行檔內部的重要程式碼和資料段也已加密或打包。簡單的靜態分析無法揭示這些重要程式碼或資料。  

我們為程式碼和資料提供不同的加密解決方案。例如,在 Android 系統上, Digital.ai Application Security 支援 DEX 加密和原生共享庫加密,再加上我們的白盒加密以及反調試和檢測功能,可以靜態和動態地保護產品,讓攻擊者一無所知。 

 MSTG-RESILIENCE-12  

如果混淆的目的是保護敏感計算,則應採用既適合該任務又能抵禦人工和自動反混淆方法的混淆方案,並參考目前已發表的研究成果。混淆方案的有效性必須透過人工測試進行驗證。請注意,在條件允許的情況下,應優先選擇基於硬體的隔離功能,而不是混淆。 

任何混淆最終都可以被破解,但好的混淆器無法自動被破解。 我們的混淆技術 包含許多針對反混淆器和模擬器的主動保護措施,並針對所有公開可用的解決方案(包括 JEB 反編譯器)進行了測試。

MSTG-RESLIENCE-13

作為縱深防御手段,除了加強通訊雙方的安全防護外,還可以應用應用層有效載荷加密來進一步阻止竊聽。  

攻擊者竊聽通訊主要有三種方法:  

  1. 執行中間人攻擊(例如,移除憑證綁定) 
  2. 篡改密碼功能
  3. 篡改網路功能 

我們的 Application Security 此解決方案可偵測任何類型的篡改,包括對作業系統本身程式碼的篡改。我們的金鑰和資料保護產品無法使用公開可用的工具自動偵測。這兩種解決方案結合起來可以防止上述三種方法。  

L1 要求

MSTG-ARCH-1 

所有應用程式元件均已識別並確認是必需的。  

身為軟體工程師,我們都希望程式碼盡可能精簡有效率。然而,從安全角度來看,移除不必要的程式碼可能會增加攻擊面。對於行動應用而言,精簡的程式碼反而可能弊大於利。更小的、可辨識的元件對攻擊者來說簡直就是寶庫。程式碼混淆是抵禦靜態逆向工程的第一道防線,但遺憾的是,精簡且邏輯清晰的編碼方式反而會為攻擊者創造更多機會。

MSTG-ARCH-10  

軟體開發生命週期的所有環節都考慮到了安全性。很容易就能勾選一個勾選選項然後繼續下一個。  

安全其實在於意識,而意識總是能帶你去到你意想不到的地方。 Digital.ai Application Security 它既能像黑盒子一樣保護您的應用程式免受篡改,又能為您提供在惡劣環境下也能正常運作的戰略能力。

MSTG-STORAGE-1  

系統憑證儲存設施需要用於儲存敏感數據,例如個人識別資訊 (PII) 和使用者憑證。, 或加密金鑰。  

理想情況下,系統憑證儲存是儲存敏感資料的唯一可靠方式。但是,當作業系統被篡改後,您的儲存設施可能不再可靠。您不應盲目依賴此類安全儲存來保存機密資訊。考慮到識別 root 和越獄攻擊、模擬等攻擊的多種技術,以及針對不同威脅的客製化應對措施,攻擊者可能會發現自己難以攻破目標系統,而新版本卻擁有完全不同的保護機制,這無疑會令攻擊者感到沮喪。 

MSTG-STORAGE-10  

該應用程式不會將敏感資料在記憶體中保存超過必要的時間,並且在使用後會明確清除記憶體。  

我們的白盒加密技術提供會話金鑰的自動管理和撤離功能。除了加密技術之外, Digital.ai Application Security 還可以監控作業系統中所有未經授權的記憶體訪問,使客戶能夠根據自身需求自訂邏輯做出回應。 

MSTG-CRYPTO-2  

該應用程式使用了經過驗證的加密原語實作。 

密碼學實現存在許多潛在陷阱,必須具備相關領域的專業知識,才能謹慎地實現此類演算法。幸運的是, Digital.ai Application Security 我們提供多種不同的加密演算法,您可以放心使用。但目前市面上一些已知的、經過驗證的加密庫也存在一些問題。例如,OpenSSL、Mbed-TLS 以及 Android 和 iOS 作業系統提供的程式庫都具有可識別的二進位簽名,這使得攻擊者能夠精確定位程式碼中的敏感區域,甚至可以自動執行某些操作,例如憑證解除綁定。 防篡改 此解決方案可防止目標程式碼使用此類公共庫時發生的篡改情況,同時還在程式碼中提供完全嵌入式、受保護和隱藏的加密解決方案,從而防止攻擊者查看我們加密解決方案的痕跡。 

MSTG-PLATFORM-1  

該應用程式僅請求必要的最低限度權限。 

我們的技術無需任何特殊許可即可提供多種安全功能。

MSTG-CODE-1  

該應用程式已使用有效證書進行簽署和配置,其私鑰已得到妥善保護。 

除了作業系統本身的完整性機制之外, Digital.ai Application Security 提供檢測和防止重新打包和記憶體修補的技術。

結論與進一步思考

MASVS 是一份由志工撰寫的權威文件,對於行動軟體安全廠商、潛在客戶和現有客戶都不可或缺。我們希望以上內容能幫助讀者理解文件 L1 和 R 部分的建議。接下來,我們將對 MASVS 在「前言」部分的一些立場進行一些評述,尤其是在區分「安全保護」和「安全控制」的章節中,我們認為這些內容值得進一步探討。 

如引言所述,MASVS 規定的 L1 要求構成了應用程式安全,尤其是隱私安全的基礎。我們認為,MASVS 所建立的基礎很容易被威脅行為者利用一些常用且易用的模擬器、偵錯器和動態插樁工具包所動搖。例如,MASVS 的「前瞻」部分指出: “軟體保護並非毫無用處,但它們最終可能會被繞過,因此絕不能用它們來替代安全控制措施。” 我們認為,即使程式設計師依賴作業系統來保障安全,並嚴格遵守所有 L-1 安全要求,如果底層作業系統有漏洞(例如越獄或 root),L-1 安全要求也無法提供基本的安全功能。在這種情況下,情況恰恰相反——使用「彈性」部分所述的軟體保護措施(例如篡改檢測)才是確保安全的唯一可靠途徑。我們為什麼這麼認為呢?以您的金鑰庫為例。  如果您的密鑰庫完全暴露,那麼您的應用程式沙箱也會暴露。在這種情況下,應用程式及其檔案可能會被篡改、重新打包和植入惡意程式碼——這可能會導致某些流程自動化,例如憑證解除綁定和資源提取。此外,在某些情況下,L-1 層級也無法充分保護隱私。  例如,行動裝置惡意軟體可能會破壞行動作業系統,並透過識別其二進位簽章來攔截策略 API 或公共框架,從而使攻擊者能夠輕鬆竊聽即時通訊或 VoIP 應用程式。

此外,MASVS在《前進報》中聲稱: “行動安全的核心在於資料保護” 這通常是正確的,但並非總是如此。處理敏感資訊(例如有效期很短的令牌)時,必須確保這些資訊無法被存取。安全不僅僅是隱私——它通常與業務連續性和收入息息相關。例如,遊戲中會發生許多交易,這些交易可能只會影響客戶端。此外,出於延遲的考慮,許多遊戲事件會迫使伺服器信任用戶輸入。例如,FPS 遊戲中的射擊事件由於其固有的頻率(通常每顆子彈對應一個事件)而涉及許多最佳化。 

客戶端安全是一場持續不斷的貓鼠遊戲。當應用程式開發者/程式設計師提供足夠的保護措施時,攻擊者就會因為挫折感而轉向其他目標。此外,頻繁發布具有多態混淆技術的用戶端更新,使得對目前應用的持續研究變得毫無意義,從而進一步挫敗攻擊者的企圖。

欲瞭解更多關於 Digital.ai Application Security點擊此處成為Trail Hunter 此處.

關於我們 Digital.ai

Digital.ai 是一家業界領先的科技公司,致力於幫助全球5000強企業實現數位轉型目標。該公司 AI供電 DevSecOps 該平台統一、保護軟體生命週期中的數據,並產生預測性見解。 Digital.ai 使組織能夠擴展軟體開發團隊,持續交付更高品質、更安全的軟體,同時透過更智慧的軟體投資發現新的市場機會並提升業務價值。

有關的其他信息 Digital.ai 可以在這裡找到 digital.aiTwitter, LinkedIn 以及 Facebook.

欲了解更多資訊,請造訪: Digital.ai Application Security

系統平台