我不再信任你?!「零信任」架構下之應用程式開發原則



隨者資訊服務廣泛的應用在生活及商務環境中,企業已經變得越來越數位化,資安的議題亦層出不窮,三不五時會聽到某電商業者的網站被駭客入侵,盜取客戶資訊;或取得使用者的登入資訊,在網路內部恣意遊走,散播勒索病毒、取得更高的系統權限,對企業的傷害持續增加。

因類似的事件層出不窮,在過去,網路安全多是基於邊界安全的概念,例如,防火牆等防護設備就類似於保護城堡的邊界護城河,能夠通過的使用者都被視為可信任的,可以任意活動。但是隨著資通訊技術的演進,例如雲端化、使用者行動化及存取設備多元化、遠距辦公需求增加,網路邊界防護變得更加困難,傳統邊界防護無法應付新形態工作需求,實有必要新的作法來資料防護,而有零信任(Zero Trust)架構的興起。

行政院公共工程委員會於2023年9月25日公布「資訊服務採購作業指引」,指印中要求資通安全責任等級A級的公務機關應依中華民國數位發展部規劃進程導入零信任架構。在「各類資訊(服務)採購之共通性資通安全基本要求參考一覽表」中針對應用系統或系統開發服務及雲端微服務辦公室生產力工具採購,也有基於零信任之存取控制要求,顯示出我國在政府零信任架構的推動上又更進一步。

零信任是一種以「持續驗證」為核心概念的網路資安模型,相較於傳統資安觀念,零信任模型採取的是「先驗證,通過後才信任」的方式,對每個使用者、裝置、網路連線、應用程式及資料本身等都進行個別驗證,再給予臨時性的存取權限。在實作零信任架構時,面對不同的環境與資訊安全需求,有不同的實作原則、工具與方法,而不是一種固定方式,舉例來說,微軟公司對於零信任,提出了3項原則:

  1. 明確驗證(Verify explicitly):組織必須在授予對任何資源的訪問權限之前驗證使用者或設備的身份,始終根據所有可用數據來源進行身份驗證和授權。
  2. 使用最小權限(Use least privilege access):使用最少特權的訪問方式,限制用戶的訪問權限,使用即時權限和恰到好處的訪問,以及基於風險的自我調整策略和數據保護等。
  3. 假設入侵(Assume breach):假設系統最終會遭受入侵,應最小化攻擊影響範圍,並對存取進行分段,驗證端到端加密,利用分析獲取可見性,進行威脅檢測,並增強防禦能力。

對於應用程式的開發人員來說,要如何設計開發符合零信任原則的軟體系統,本文提供一些參考的實作原則,說明如下。

明確驗證原則

在零信任模型中,假設不存在可信任的使用者或設備,對資源的所有訪問都是基於實際情況再授予存取權限,並且使用者或裝置只被授予執行任務所需的最低訪問權限,參考幾個實作方式如下:

  1. 多因此身份驗證:使用雙因子或多因子身份驗證,或使用以Token為基礎的身份驗證來不斷驗證使用者身份。
  2. 基於風險的身份驗證:考慮到使用者的風險等級,例如位置、使用設備和存取系統的時間等,如果使用者的風險等級較高時,可能需要提供額外的身份驗證方式。
  3. 設備指紋識別:收集有關使用者設備的信息,例如其作業系統、瀏覽器類型和IP地址等,再依這些資訊識別設備並授予最小權限。

使用最小權限原則

在零信任架構中,要求僅授予使用者和設備執行其指定任務所需的最低訪問等級,以減少可能的攻擊面,並在攻擊者取得權限時,限制可能造成的損害,實作參考原則如下:

  1. 基於角色的訪問控制(RBAC):RBAC 是一種訪問控制方法,根據用戶分配的角色授予對資源的訪問權限。這確保用戶只能訪問他們需要履行工作職責的資源。
  2. 基於屬性的訪問控制(ABAC):ABAC 是一種更精細的訪問控制方法,根據用戶的屬性(如部門、位置或設備類型)授予訪問權限。這允許對敏感資源的訪問進行更精確的控制。
  3. 即時授權(JIT)訪問:JIT 訪問是僅在需要時授予資源訪問權限的方法。這意味著用戶不會永久性地獲得資源訪問權限,降低了未經授權訪問的風險。

假設入侵原則

在零信任架構中,假設系統最終會發生入侵事件,帳戶被入侵是不可避免的,以這樣的假設來設計能在入侵發生時最小化損害的系統,相關系統開發原則包含:

  1. 清理及驗證用戶輸入:永遠對使用者的輸入進行清理及驗證,以確保輸入資料在預期範圍內且不包含惡意代碼,防止攻擊者通過輸入資料將惡意代碼注入系統。
  2. 清理輸出:對使用者輸出顯示資料之前,對所有輸出進行清理,以防止跨站腳本(XSS)和跨站請求偽造(CSRF)攻擊。
  3. 使用安全函式庫和框架:只使用經過審查安全漏洞的安全函式庫和框架,避免使用過時或未維護的函式庫,因為可能包含攻擊者可以利用的已知漏洞。
  4. 加密敏感數據:對靜態和傳輸中的敏感數據進行加密,以防止未授權存取,加密確保具有正確解密金鑰的授權使用者才能存取資料。
  5. 實施錯誤處理:實施強壯的錯誤處理機制,防止錯誤暴露敏感數據或顯示出系統漏洞,小心處理錯誤並防止造成應用程序崩潰或洩露敏感資訊。
  6. 持續監控:持續監控使用者在應用程式內活動,以發現可疑活動,可以及時檢測和應對潛在入侵行為,減少可能造成的損害,應用程式也應輸出與資訊安全相關的日誌資訊,,方便第三方監控軟體能協助監控系統異常行為,日誌應包含事件類型、發生時間、發生位置及任何與事件相關之使用者身分識別等資訊。
  7. 微分段:使用微分段技術隔離應用程序和數據,使其相互之間以及與網絡邊界隔離。這創建了多層安全,使攻擊者更難在網絡內部進行橫向移動並獲取對敏感資源的訪問權限。
  8. 資料外洩防護(DLP):DLP 是一種安全工具,有助於防止敏感資料被洩露或被未經授權的用戶訪問。DLP 可用於阻止數據被匯出、複製或列印。

圖1:零信任架構實作原則

資料來源:資策會數轉院整理

本文僅列出在零信任原則下,可供參考應用系統開發原則,對於零信任架構的實作,或者如何開發安全的應用系統,還有許多其他進一步的實作原則,例如資通安全法之資通系統防護基準所列控制措施,讀者仍需進一步參考相關資料。

  • 參考資料
  1. 封面圖來源:https://www.istockphoto.com/photo/zero-trust-security-concept-person-using-computer-with-zero-trust-icon-on-virtual-gm1451575194-488228116
  2. 10 Secure Coding Practices You Can Implement Now, https://codesigningstore.com/secure-coding-practices-to-implement, retrieved at 2023/11/13
  3. Best Practices for Secure Coding, https://safecomputing.umich.edu/protect-the-u/protect-your-unit/secure-coding/best-practices, retrieved at 2023/11/13
  4. Building Software for a Zero Trust World, https://blog.palantir.com/building-software-for-a-zero-trust-world-61d440e5976e, retrieved at 2023/11/13
  5. Develop using Zero Trust principles, https://learn.microsoft.com/en-us/security/zero-trust/develop/overview, retrieved at 2023/11/13
  6. What is Zero Trust Security? Zero Trust Security Principles Explained, https://www.sotatek.com/what-is-zero-trust-security-zero-trust-security-principles-explained/, retrieved at 2023/11/13
  7. What is Zero Trust?, https://learn.microsoft.com/en-us/security/zero-trust/zero-trust-overview, retrieved at 2023/11/14
  8. Zero-Trust Security for Software Development Teams, https://cdn.coder.com/whitepapers/zero-trust-software-dev.pdf, retrieved at 2023/11/13
  9. 使用零信任擁抱主動式安全性, https://www.microsoft.com/zh-tw/security/business/zero-trust?rtc=2, retrieved at 2023/11/14
  10. 零信任(Zero Trust)解決方案, https://www.openfind.com.tw/taiwan/zero-trust.html?gad_source=1&gclid=CjwKCAiA9dGqBhAqEiwAmRpTCx8Eg5wPkR_uG3ppjvPgvdZBskvd-Cz8u7CxrzOwKHOgqbDDThC84xoCdmUQAvD_BwE, retrieved at 2023/11/16
  11. 零信任資安模型與 DevOps 整合的 5 大元素, https://www.informationsecurity.com.tw/article/article_detail.aspx?aid=9862, retrieved at 2023/11/14 
延伸閱讀
作者相關文章