Spring Cloud Function SpEL注入漏洞(CVE-2022-22963)分析?
一、概述
2022年3月24日,Pivotal修補了Spring Cloud Function中一個關鍵的服務器端代碼注入漏洞(Spring表達式語言注入),該漏洞有可能導致系統被攻擊。Spring是一種流行的開源Java框架,該漏洞與另一個相關的遠程代碼執行(RCE)漏洞(Spring Core,即“Spring4Shell”)均可通過Akamai Adaptive Security Engine (ASE) Kona Site Defender (KSD)規則集有效防御。
本文將重點分析Spring Cloud漏洞,有關Spring Core漏洞的詳情請參閱這里。
Spring Cloud Function技術可實現業務邏輯與特定運行時之間的解耦。Spring表達式語言(SpEL)作為一種強大的表達式語言,已在各類Spring產品中實現了廣泛應用,支持在運行時查詢和操作對象圖。過去,當應用程序以不安全的方式評估不受信任的用戶輸入的代碼表達式時,很多遠程代碼執行方面的常見漏洞和暴露(CVE)都是圍繞SpEL注入產生的(參見圖1)。
圖1:GitHub上的Spring Cloud Function代碼路徑
幾天后,3月26日,GitHub用戶“cckuailong”發布了一個概念驗證漏洞,展示了對該漏洞的成功利用(圖2)。
圖2:公開的概念證實利用
隨后不到一天的時間里,Akamai就觀察到整個互聯網上開始出現相關利用。
圖3:3月27日開始的利用企圖(來源:某客戶的Akamai Web Security Analytics分析結果)
與Log4j類似,很多(并非全部)當前企圖都是“Ping Back”類型的探測,攻擊者只是在能夠成功利用的情況下發出一個信標。
二、漏洞
通過補丁程序逆推可知,該漏洞可通過“spring.cloud.function.routing-expression”HTTP頭來接收SpEL表達式,進而方便應用程序進行路由。

三、使用KSD自適應安全引擎加以緩解

Akamai自適應安全引擎(ASE)可通過廣泛的內置規則來檢測命令注入,因為很多此類攻擊的目標都是執行操作系統級別的命令。ASE能夠利用現有命令注入規則檢測到這個零日攻擊:
- 3000041 – 服務器端模板注入
- 3000156 – CMD注入檢測(PHP High-Risk Functions)
四、總結
雖然Spring Cloud Function的使用不像Log4j那么廣泛,但這個漏洞易于利用的特點依然會吸引很多攻擊者。Akamai預計該漏洞會引發很多以數字貨幣盜挖、DDoS攻擊、勒索軟件為目標的攻擊,并且可能成為未來很長一段時間里潛入組織內網的有效途徑。不過Akamai客戶已經可以通過Akamai Adaptive Security Engine和Kona Site Defender規則集獲得充分保護。
Akamai的威脅研究團隊也將繼續監控該漏洞的發展,并在出現新情況后及時通知大家。歡迎關注Akamai,第一時間了解最新近況。
歡迎關注 Akamai ,第一時間了解高可用的 MySQL/MariaDB 參考架構,以及豐富的應用程序示例。