應用零信任重點防護失效的對象級授權
實施數字化轉型的公司有著明確的業(yè)務需求。這包括借助現代業(yè)務應用改善客戶體驗,采用敏捷實踐以超越市場競爭對手,以及利用市場優(yōu)勢創(chuàng)造新的收入來源。新型應用架構不僅可提高開發(fā)效率,而且集容器、微服務和 API 于一體,可幫助滿足這些需求。
對現代應用來說,安全性是現代應用敏捷性和上線時效性至關重要的一部分。企業(yè)已經開始考慮使用 WAAP 解決方案來應對 API 安全隱患,其中 OWASP API Top 10 是 API 安全的關鍵第一步防線,通過 Salt Security《State of API Security Report, Q3 2022》報告,說明近一半用戶安全團隊都沒有將 OWASP API 安全性前十列為重點領域,對于 OWASP API TOP 1 失效的對象級授權是防護的關鍵。
失效的對象就會涉及到 ID 和 Token 概念,ID 和 Token 不得不提就是當今最為關注的零信任話題。
零信任可以分為兩類,網絡零信任接入和應用零信任接入:
網絡零信任 Zero Trust Network Architecture
應用零信任 Zero Trust Application Access
網絡零信任解決是接入網絡時安全性,與應用零信任防護在不同的層級。舉例說明;黑客拿著泄露了的用戶名密碼,或者利用業(yè)務系統(tǒng)漏洞,從辦公網直接進來的攻擊流量卻防不勝防,這就是因為微隔離無法判斷這些來自辦公網的流量究竟是誰發(fā)起的,以及是否有權利有必要訪問那些 API 業(yè)務系統(tǒng)。
所以對接入 API 應用系統(tǒng)需要持續(xù)性認證才能更好的防護 ZTAA - Zero Trust Application Access。通過 ZTAA 要解決接入零信任,同時判斷對象 ID 和 Key Token 的一致性,減少惡意發(fā)起對象枚舉行為造成的數據泄露。
API 應用接入控制流程
用戶請求身份認證到 IdP(Identity Provider)身份提供
通過認證頒發(fā)令牌給用戶
用戶攜帶令牌訪問 External APIs 應用接口
External 接口轉發(fā)請求到 Internal APIs 接口
通過訪問流程對應關系,安全加固需要在 External APIs 和 Internal APIs 做到 API 接入持續(xù)驗證,永不信任,確保接入應用的安全性。
F5 API 應用接入控制流程
用戶請求身份認證到 IdP(Identity Provider)身份提供
通過認證頒發(fā)令牌給用戶
用戶攜帶令牌訪問 External APIs 應用接口
通過 F5 APM(Access Policy Manage)接入策略管理功能或 LTM Add-on APM 模塊,實現接入屬性控制策略和重新簽發(fā)內部識別的 JWT 令牌
External 接口轉發(fā)請求到 Internal APIs 接口
微服務接口使用 NGINX 對 JWT 令牌中的屬性值執(zhí)行接入控制策略
F5 在 External APIs 和 Internal APIs 做到 API 接入持續(xù)驗證,永不信任,可以實現對接入控制權限限制,其中可以包括地位位置、URL、部門信息、情報信息,作為驗證的屬性閥值,保證接入應用的安全性。
失效的對象級授權最佳實踐解決方案
用戶請求身份認證到 IdP(Identity Provider)身份提供,為認證用戶分配 GUID,并且可以通過 JWT Claim 添加更多的聲明屬性,比如地理位置、部門、用戶 ID 等信息在 JWT Token,上述案例描述 Claim 包括 userID LU 信息 id=4079a01-d87w1-7682-02ha
用戶攜帶令牌和URL訪問 External APIs 應用接口,并且 URL 標識用戶請求的 ID
通過對外 API F5 BIG-IP APM 可以執(zhí)行訪問控制檢查,比較 JWT的 UserID 和 URL 參數中的 ID 是否一致性,BIG-IP APM 允許請求并將其轉發(fā)到 API 端點,否則拒絕請求
對于微服務內部 API 接口,可以通過 NGINX 可以執(zhí)行訪問控制檢查,比較 JWT 的 UserID 和 URL 參數中的 ID 是否一致性,否則拒絕請求
當您對 API 流量實施身份驗證時,成功證明其身份的客戶端會從受信任的身份提供商那里獲得令牌,然后客戶端再為每個HTTP 請求提供訪問令牌。
在將請求傳遞給應用之前,通過 APM或者 NGINX Plus 會驗證令牌并提取在令牌中編碼的身份和其他數據(例如組成員資格),以確保對客戶端進行身份驗證和授權。
令牌得到驗證并且客戶端獲得訪問資源的授權后,請求就會被傳遞到應用服務器。驗證方法有很多種,其中使用 OpenID Connect(基于 OAUTH 2.0 協(xié)議構建)是一種流行的做法,它可以對 API 請求進行第三方身份驗證。