近日,阿里雲應急響應中心監測到fastjson爆發新的還原序列化遠程代碼執行漏洞,駭客利用漏洞,可繞過autoType限制,直接遠程執行任意命令攻擊伺服器,風險極大。請參照下面的公告內容升級EDAS客戶機(匯入到EDAS中的ECS)中使用到fastjson依賴包的Java程式/組件版本。
漏洞描述
fastjson採用黑白名單的方法來防禦還原序列化漏洞,導致當駭客不斷髮掘新的還原序列化Gadgets類時,在autoType關閉的情況下仍然可能繞過黑白名單防禦機制,造成遠程命令執行漏洞。經研究,該漏洞利用門檻較低,可繞過autoType限制,風險影響較大。阿里雲應急響應中心提醒fastjson使用者儘快採取安全措施阻止漏洞攻擊。
影響版本
fastjson 1.2.80及以下版本或者fastjson sec9及以下版本
安全版本
fastjson 1.2.80以上版本或者fastjson sec10及以上版本
安全建議
較低版本升級至1.2.80以上版本可能會出現相容性問題,建議升級至特定版本的sec10 bugfix版本或者關閉autotype功能的版本。
對EDAS使用者的影響
EDAS客戶機中涉及使用fastjson的程式或組件如下。
- EDAS Agent:所有匯入ECS叢集的ECS均包含此組件,且為Java進程,Container ServiceK8s叢集也包含此組件,但edas-agent容器中啟動並執行edas-agent非Java版,所以僅ECS叢集的應用ECS節點需要升級EDAS Agent,Container ServiceK8s叢集的應用可忽略EDAS Agent組件。
- Pandora:所有建立時選擇了 EDAS Container 作為應用運行時環境的應用都會用到Pandora。
- ARMS Agent:所有使用EDAS Container 作為運行環境的應用且開啟了進階監控、選擇Apache Tomcat以及標準Java應用運行環境、Container ServiceK8s叢集應用都有使用ARMS Agent。
- 使用者自己應用程式套件中用到的fastjson包。
修複解決辦法
針對使用EDAS-Container作為應用環境中的應用,Pandora外掛程式裡面的fastjson包的修複方法
- ECS叢集從應用詳情頁應用運行環境資訊項,即可看到應用當前使用的Pandora和Ali-Tomcat版本列表,在應用詳情頁面右上方,單擊運行時環境升降級,分批次(前提是需要建立除預設分組以外的應用分組)升級Pandora版本至最新的3.6.3版本即可。
分批次升級Pandora版本可參考升級或降級運行時環境,請選擇在業務低峰或者其他合適的變更視窗進行,並提前在測試環境進行測試,避免出現容器版本升級失敗導致應用無法正常啟動。
- K8s叢集直接部署應用,並選擇Pandora版本為最新的3.6.3版本即可。重要 請勿在業務高峰時間升級Pandora版本,使用此前發布的3.3.x或者更早版本。請在測試環境測試正常後,再升級生產環境的Pandora版本,否則可能出現升級後應用啟動失敗,而又無法回退的情況。如遇該情況,請加入釘群(釘群號:23336518)聯絡我們,提供應用ID,值班同學會儘快更正出現升級失敗的應用的容器版本。
- 使用EDAS-Container作為應用運行環境的應用,在升級EDAS-Container中的Pandora版本至最新的3.6.3後,該應用下面所有的ECS主機上的EDAS Agent、ARMS Agent都會自動升級,無需再執行下面的操作單獨升級。
針對ECS叢集且應用是使用標準Java應用運行時環境、Apache Tomcat作為應用運行環境應用的修複方法
只需要進行一次正常的應用部署操作即可自動升級ECS主機上的EDAS Agent、ARMS Agent版本。
針對使用者自己應用程式套件中用到的fastjson包,且版本在受影響的範圍內這種情況的修複方法
請使用者自行或者聯絡軟體開發商升級應用程式套件中的fastjson包的版本至1.2.80以上版本或者帶sec10的版本並重新測試、驗證、發布即可。