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