零信任網絡環境主要是由google(BeyondVCorp架構)開始,目前國內很多廠商(360、新華三、安恒等)已有零信任的解決方案,如:360的零信任架構依托身份中心、業務安全訪問及動態訪問控制三個層面,主要解決零信任環境中業務信任問題。因為零信任建需要“刮骨”建設,涉及客戶基礎環境支撐及改動(奔跑的賽車換發動機)、領導支持力度等多個方面,總的來說落地效果不是特別好。
應用層零信任建設主要依托于應用安全網關,通過安全網關串聯部署,實現隱藏內部,統一對外、實時監測的效果,因此本文主要介紹應用安全網關。但因為網關需要與用戶管理所結合,所以文章會對用戶管理系統部分進行介紹,以便讀者更清晰了解應用層的零信任建設框架。
一、零信任介紹
零信任環境的建設應從主機、網絡、應用等多個層面的,具體零信任內容,請參考之前所寫文章《零信任網絡架構設計》,在此對零信任不過多介紹。

零信任網絡架構示例圖
二、零信任下的應用安全網關建設思路
應用層面的零信任建設相對于主機與網絡更容易落地及切入用戶。應用層零信任建設從實施周期、業務影響、建設效果等多個方面相比主機與網絡,短期效果會更直接,更容易起步。
應用層零信任建設主要包含應用安全網關系統、用戶管理系統兩大系統(可以將系統中的模塊拆分,因產品及項目而異)。
應用安全網關系統包括:訪問控制、反向代理、負載均衡、統一接入、安全防護(主要為WAF相關功能)、訪問審計(審計4-7層流量)、HTTPS支持等。
用戶管理系統:身份認證、動態授權、SSO、用戶管理、信任評估等。

功能參考圖
實際過程中會將身份認證、動態授權等功能抽離成獨立系統。因為需要考慮網絡與主機層面的認證與授權等操作,所以抽離后的身份認證和動態授權會提供主機、網絡、應用三個層面的相關服務。 具體需要因產品及項目而異。
三、零信任下的應用安全網關技術路線
目前業界應用應用安全網關基本是基于自有安全產品基礎上進行的開發,有的基于WAF,有的基于VPN、有的基于下一代墻,但是功能基本都有限。
本次應用安全網關的選擇可基于開源JanusecWAF網關進行二次開發。Janusec是基于Golang打造的應用安全網關,支持HTTP2和HTTPS,私鑰加密存在數據庫中,提供負載均衡的統一的WEB管理。

邏輯圖
基于Janusec架構的設計重點
- 應用網關:統一HTTPS接入,統一管理證書和秘鑰;
- 安全防護:網關內置WEB應用防火墻、CC防護;
- 數據保護:對私鑰采取加密措施;
- 負載均衡:前端負載均衡與后端負載均衡;
- 4-7層審計:審計留痕是應用安全網關應具有的功能,在提供安全防護的同時,記錄4-7層數據信息,方便異常問題時的回溯分析。如采用了網絡流量采集設備(如科來等),可不需進行審計。
- 應用訪問控制:需要依托高性能的規則引擎機制,主要從應用提取相應規則固化至規則引擎系統中,通過對規則評判實現業務訪問控制。可基于開源較為活躍的Drools等。
- 可開發性:基于Golang的開源系統,可實現與用戶管理結合。如身份認證、信任評估與應用訪問控制結合等。
舉例場景:
1.工程師員工筆記本發起訪問請求,提交給網關。如果結合主機可信,需要攜帶設備證書。
2.訪問網關沒有檢測到有效憑據,重定向至用戶管理系統中的身份認證模塊。
3.工程師通過基于U2F的雙因子身份通過認證,獲得token,重定向至網關。
4.網關認證后,訪問控制會對每一個請求執行授權檢查(通過轉到對應服務器,不通過則拒絕請求)。訪問控制可基于屬性的權限控制(ABAC)與信任評估模型兩者集合進行檢驗。如:滿足信任等級,滿足相應用戶群組,滿足相應操作屬性等內容才可訪問該應用。
總體來講,通過應用安全網關建設會加強應用管控能力,但零信任環境建設單靠應用層是完全不夠的,我們應從主機、網絡、應用多個層面進行建設并有效串聯,才能實現零信任最大化。同樣實施的周期、環境的改動、業務的變動、管理層意愿等多個方面也是制約零信任發展的重要因素。