京東雲RASP雲原生安全免疫創新實踐

語言: CN / TW / HK

作者:京東雲 劉一鑫

1 背景

隨著網路攻擊事件整體呈上升趨勢,應用作為網路入口承載著大量業務和流量,因此成為了安全的重災區。黑客往往藉助自動化的工具以及安全漏洞,對Web進行漏洞掃描和探測,進而利用漏洞攻擊,達到竊取Web應用的敏感資料或者入侵伺服器的目的,這大大加劇了應用面臨的安全風險。以前一段時間出現的log4j2漏洞為例、這是近十年來最嚴重的漏洞,由於使用廣泛和漏洞利用簡單,影響70%以上的企業線上業務系統,官方釋出漏洞修復補丁後依舊被多次繞過,幾乎所有網際網路公司都在通宵加急處理漏洞、修復更新,避免造成黑客攻擊事件。除此之外,還有像fastjson、Xstream等相關漏洞,此類漏洞還是會長期與應用共存。

2 傳統應用安全防護方案

2.1 WAF

傳統應用安全的解決方案,大部分安全從業者都會想到WAF(Web Application Firewall, 應用程式防火牆),WAF是一種專門用於分析HTTP/HTTPS流量的專用防火牆,可以深入到每一次HTTP/HTTPS請求和詳情中去檢查是否包含敏感欄位,然後放行正常行為,攔截惡意行為,就像自來水過濾器一樣,把“雜質”從龐大的流量中剔除出去,這樣應用程式就只會響應正常的請求,從而達到保護應用程式的目的。



但隨著黑客攻擊應用程式的威脅不斷演變,基於規則對流量進行檢測的分析手段容易被繞過,並且需要根據不斷演變的漏洞進行規則的持續更新。

2.2 黑白盒掃描

應用安全解決方案除了WAF以外,還可以通過黑盒和白盒掃描的方式。

SAST或稱為“白盒測試”已經存在了十多年。它使開發人員可以在軟體開發生命週期的早期,在應用程式原始碼中找到安全漏洞。

DAST或稱為“黑盒測試”可以發現正在執行的應用程式中的安全漏洞和弱點。它通過在應用程式上採用注入技術來識別常見的安全漏洞(例如SQL注入和跨站點指令碼)來做到這一點。

但他們都無法解決已經在執行中的應用安全問題,只能通過事前的掃描發現安全漏洞,並且也需要根據不斷演變的漏洞進行規則的持續更新。

3 京東雲RASP應用執行時自我保護技術實踐

21年12月Apache Log4j 開源元件被曝出嚴重漏洞,被認為是“21年最重要的安全威脅之一”,22年4月Spring 開源應用開發框架也被爆出了一個嚴重高危漏洞。

針對0day漏洞攻擊頻發,安全形勢日益嚴峻的現狀,京東雲自主創新雲原生安全RASP應用執行時自我保護技術(英文全稱:Runtime Application self-protection執行時應用時自我保護(簡稱RASP)),通過注入安全疫苗的方式將防護引擎嵌入到應用內部,與應用程式融為一體,使應用程式具備自我防護能力,對0day漏洞、記憶體馬等攻擊實現免疫防護。

3.1 工作原理



相比於傳統的邊界安全產品,RASP不過度依賴檢測規則持續更新。從原理上來看,RASP是從應用內部對關鍵函式操作的資料進行分析,即使原始請求經過加密和混淆,但是它在應用內傳播到最終的底層函式時將會以明文方式被RASP截獲,並根據應用當前上下文精準識別攻擊事件,給予實時阻斷,因此相比WAF能減少大量的誤報和漏報問題。基於此特性,RASP還能為安全人員和開發人員提供更為詳盡的攻擊鏈路,包括攻擊原始 Payload、程式碼呼叫堆疊等資訊,方便他們進行漏洞定位、復現以及修復。

對於一些經常爆發漏洞的開源軟體和第三方元件而言,漏洞存在位置和利用方法可能不同,但是在進行利用時,執行到應用程式碼底層,往往都會聚集到一些“敏感”函式上,如反序列化、資料庫執行、命令執行、檔案操作、響應返回等相關函式。如果通過RASP技術對這些底層“敏感”函式呼叫做一定識別阻斷,即可免疫大部分0day攻擊。因此,從此類實踐應用出發,RASP天然可作為漏洞熱修復和免疫0day漏洞的應用安全疫苗。

3.2 0day漏洞防護示例

接下來,我們通過 fastjson 反序列化漏洞的攻擊場景來演示 RASP應用安全的實際防護效果,fastjson 的反序列化過程主要如下:



當執行上述程式碼時,在反序列時如果存在惡意的方法則會觸發命令執行。但在部署了RASP的應用中,發生上述反序列漏洞時,RASP應用安全會識別到序列化漏洞產生的命令執行行為,從而直接阻斷該反序列化動作併發送告警通知,在攻擊詳情還可以進一步分析攻擊源以及漏洞程式碼位置。

fastjson 反序列化漏洞的利用核心,還是在於尋找可以造成程式碼執行的類,實際上在 java 龐大的 jdk 類庫以及第三方類庫中存在著大量的可利用類,傳統流量產品如 WAF,往往需要在防禦時去窮舉這些可能被利用的類,可能經常會出現遺漏,而基於 RASP 的上下文分析能力與基於行為的攻擊發現方式,將會捕獲掉所有由 fastjson 造成的程式碼執行、惡意檔案上傳、敏感檔案讀寫等行為,而無需去針對特定程式碼實現做精準匹配,所以不會存在被繞過的可能性。

3.3 京東雲RASP雲原生安全免疫平臺架構設計

目前京東雲 RASP雲原生安全免疫平臺具體架構設計如下:



京東雲 RASP架構主要包括探針、客戶端、雲端服務三個模組。

探針模組,主要通過將類轉換器新增到Instrumentation,在類載入前後,對位元組碼進行操作,注入RASP的安全探針。在運行了RASP安全探針的 Java 程式中,位元組碼的載入會經過自定義的類轉換器,過濾出存在攻擊風險的關鍵類,再將檢測的邏輯插入到位元組碼檔案中,統一進入JVM中執行,相當於在應用程序中加入 hook 點,當程式執行流程到了 hook 點時,實時採集Web 應用的高風險行為,並通過引擎實時對高風險行為阻斷並上報日誌。

客戶端模組,主要用於對探針模組進行管理,雲端服務下發的指令都會通過客戶端對探針進行管控,包括模型管理、升級管理、異常監控等。

雲端服務模組包括三部分:一是日誌處理服務,通過流式分析引擎對上報的日誌進行處理二次分析,二是運營管控服務,通過運營管控服務對RASP客戶端進行管理,三是資料視覺化展示平臺,將整體安全態勢,事件發現,資產、API等資料視覺化展示出來。

3.4 RASP攻防對抗應用場景

 

從攻防角度看,應用層面積極防禦的建立可促進縱深防禦體系更加深入,推進業務應用實質性安全落地,京東雲RASP主要存在以下應用場景:

1)應用資產管理:藉助插樁節點推廣覆蓋,可梳理微服務應用IP、URL地址、API介面、第三方元件等,並繪製資產關聯圖譜;

2)執行時入侵檢測:基於應用汙點分析和上下文分析技術,實時檢測應用遠端命令執行,惡意反序列化,敏感資訊,錯誤的內容型別,OGNL注入,未授權網路活動,未捕獲的異常,未驗證的請求,惡意檔案操作,DNSLOG探測,惡意動態庫載入,記憶體馬,XXE注入等,並實時預警高危元件風險,定位具體應用;

3)攻擊威脅疫苗:免疫通用Web應用漏洞及第三方元件安全漏洞,防禦0day漏洞,並對EDR難以防禦的反序列化、程式碼執行等攻擊進行更加有效的阻斷;

4)應用安全基線:符合性應用層基線配置檢測,覆蓋中介軟體、單應用、微服務等;

5)敏感資料審查:基於可獲取應用內部資料輸入、操作、內容的先天技術優勢,可針對業務側關注的個人資訊、業務資料等敏感資訊進行合規審查,敏感資料未授權訪問檢測等,必要時進行輸出阻斷和過濾;

6)應用熱補丁:對已上線的重要應用系統,當出現重大漏洞短時間難以修復時,可以動態下發熱補丁進行修復,在不中斷業務的同時為應用系統提供臨時防護,為漏洞修復爭取寶貴的時間;

7)東西向流量分析:以微服務架構作為基礎,除了對應用間流量和東西向流量描繪,更能深入呈現應用程式內部具體執行操作,為安全運營提供從網路層到應用內部真實執行過程資料,分析攻擊鏈路。

4 京東雲RASP雲原生安全免疫平臺最佳實踐案例

4.1 RASP安全運營定位



在日常京東雲RASP安全運營中,如何保證業務更穩定,運營更高效,應急更及時,是我們一直思考的問題。比如要如何做到攻擊告警可運營,包括攔截日誌,事件日誌,分級分類區別哪些需要關注,哪些必須後續處理,自動發單,漏洞修復等,做到運營閉環,事件閉環。在部署時,做到一鍵部署,為保證業務穩定,按半分比進行灰度部署,並且可回滾,通過配置策略告警,策略優化,監控應用各項效能指標,快速響應故障報警等。

4.2 大促防護

京東雲RASP已經歷了多次雙十一、618大促防護。在大促的業務高併發挑戰下,RASP基於自研執行時程式碼植入框架、隔離保障機制、相容性管理,對業務效能幾乎無影響,且無誤攔截事件產生,通過了攔截能力和效能壓力的雙重考驗。

4.3 國家級攻防演習對抗效果

 

在國家級攻防對抗實戰中,京東雲RASP也發揮了巨大作用。攻擊方主要把精力都放到尋找入侵點上,各種0day、Nday漏洞,經常會被用來尋找突破點。而作為防守方,京東的攻擊暴露面非常廣,防守困難,雖然有WAF、IPS、防火牆、零信任等多款安全產品的縱深防禦體系,但黑客突破邊界後,仍無有效工具能夠自動攔截黑客的入侵行為。當有0day或重大漏洞爆發時,相關廠商可能沒有快速解決方案,且有方案的話也需要安全人員進行大規模緊急修復,效率低、容易遺漏資產、業務體驗很差。但部署了RASP的應用可在攻防對抗中及時進行策略調整,快速有效地抵禦fastjson、shiro、反序列化、log4j等0day、Nday漏洞攻擊。

5 總結

RASP產品本身優點明顯,通過無感知的注入應用程序,可以更瞭解應用程式的上下文,減少大量的誤報和漏報問題,不依賴規則的更新,可對0day漏洞免疫。在縱深防禦體系中,RASP是現階段保障應用安全強有力的存在。但安全方面沒有所謂一攬子工程,不存在一款產品能解決所有問題,攻擊技術的發展演進會推動防護能力的創新。京東雲RASP也會在持續升級的攻防中不斷迭代優化,提高應用本身的“免疫力”。