安全架構中的前端安全防護

Lydiasq發表於2022-11-22

人類文明發展到一定程度,必須遵守法律和社會規範,網路環境也一樣。

根據Gartner 對安全架構的定義:安全架構是計劃和設計組織的、概念的、邏輯的、物理的元件的規程和相關過程,這些元件以一致的方式進行互動,並與業務需求相適應,以達到和維護一種安全相關風險可被管理的狀態。因此,安全架構的概念非常寬泛,包括安全控制措施、安全服務(例如身份驗證、訪問控制等)和安全產品(例如防火牆、入侵檢測等)。


本文內容聚焦在安全架構中的前端安全防護範疇展開討論。

安全設計原則


當今安全設計經典理論中,最為經典、被引用最多的是由 MIT 的 Saltzer 教授在 1975 年首先提出的 8 大安全設計基本原則,被安全業界奉為 “經典安全原則”。經過業界多年的發展和總結,在原有 8 大經典設計原則的基礎上,進一步完善和延伸,例如 “縱深防禦”、“不要輕信”、“保護薄弱環節”、“提升隱私” 原則等。

安全架構中的前端安全防護


前端安全問題


近年來有8大問題尤其引起關注:

  1. 跨站指令碼攻擊(Cross-Site Scripting)

  2. 使用iframe的風險

  3. 點選劫持

  4. 錯誤的內容推斷

  5. 不安全的第三方依賴包

  6. HTTPS中間人攻擊

  7. 本地儲存資料洩露

  8. CDN劫持/汙染


如此多的、影響重大的前端安全問題,直接把軟體安全防範推上了風口浪尖,安全人員面臨著挑戰也倍數級增長。

端側安全的主流解決方案


基於端側可能得安全問題,市場上有以下6大主流解決方案:
1、APP 程式碼保護。由於開源技術的進步,攻擊者很容易就可以獲得應用的反編譯程式碼(基本是應用原始碼)。針對此攻擊,提高逆向分析的門檻,可以進行程式碼混淆、dex 加殼、so 加殼等方式對程式碼進行保護。
2、APP 執行時保護。對移動端應用的逆向分析還有動態除錯。透過動態除錯還可以偽造或篡改請求 / 響應包,從而攻擊伺服器端。此種攻擊可以採用市場上的一些加固工具軟體對APP 進行加固保護,防止惡意破解、反編譯、二次打包等。
3、APP 第三方程式碼安全。移動應用開發過程中,出於功能需求等原因,開發人員不可避免會整合一些其他第三方提供的程式碼,如 SDK。這些第三方程式碼未經測試和評估就直接嵌入到應用中直接使用,容易出現不可預料的後果。一方面是第三方程式碼的安全性未經測試,可能存在安全漏洞被攻擊者利用,從而威脅整個應用的正常使用。另一方面,第三方程式碼額外實現了冗餘功能或者申請多餘的特權,可能造成使用者隱私資訊洩露,或者一系列惡意行為。
對於此類威脅,安全設計方案是:
   1)App中大部分是web或者小程式類輕應用,可以採用市面上的安全沙箱類技術(如: FinClip  ),對應用進行統一的上下架管理。其特點主要體現在三個方面:

  • 沙箱內小程式之間的隔離

  • 沙箱對執行其中的小程式程式碼,隔離其對宿主環境的資源訪問。

  • 沙箱隔離了宿主對於沙箱中執行的小程式所產生的資料。


   2)整合第三方程式碼時,開發人員應儘可能瞭解第三方程式碼的功能,以及儘可能保證第三方程式碼的安全性。
4、APP 端業務安全。為了防止 APP 使用者惡意註冊及薅羊毛等惡意行為,可以在 APP 中加入裝置指紋,進行資料埋點等,將 APP 資料接入業務風控平臺,進行業務反欺詐。
5、Web 安全。對於 Web 安全,關注常見的 OWASP TOP 10 漏洞,如注入、身份認證、敏感資訊洩露、安全配置錯誤等。常見的防禦措施有認證、授權、加密、審計、輸入驗證等。
6、Restful API 安全。Restful API 以 URI 方式對外提供資料服務或功能服務。外部使用者多數情況下是程式或系統。提供的資料服務或功能服務多數情況下,是非公開的,即需要對 HTTP 請求來源和身份做識別與認證,再經過授權決策(訪問控制)後,提供相應的資料或執行功能。
隨著技術的進步和發展,相信還會有更多的技術解決方案冒出。如果您有更好的技術方案,歡迎在文章評論區留言。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70023421/viewspace-2924643/,如需轉載,請註明出處,否則將追究法律責任。

相關文章