綜合多方網絡安全通報研判,近日Java Spring框架被發現存在遠程命令執行漏洞,未經身份驗證的攻擊者可以使用該漏洞進行遠程代碼執行和獲取服務器控制權,存在明顯安全威脅,請涉及使用Java Spring框架(特別是,相關Java JDK版本>=9.0)的第三方應用廠商和師生盡快確認是否存在漏洞問題并第一時間進行整改和升級,避免因存在漏洞隱患發送網絡安全事件。漏洞詳情和相關處置建議如下:
漏洞詳情:Spring遠程代碼執行漏洞
Spring是一款目前主流的Java EE輕量級開源框架,為JavaEE應用提供多方面的解決方案,用于簡化企業級應用的開發。
危害等級:高
漏洞影響范圍(同時滿足以下條件):
1)使用了JDK 9及以上
2)Spring 框架以及衍生的框架spring-beans-*.jar 文件或者存在CachedIntrospectionResults.class
漏洞排查方法
JDK版本號排查:
在業務系統的運行服務器上,執行“java -version”命令查看運行的JDK版本,如果版本號小于等于8,則不受漏洞影響。
Spring框架使用情況排查:
1、如果業務系統項目以war包形式部署,按照如下步驟進行判斷:
1)解壓war包:將war文件的后綴修改成.zip ,解壓zip文件;
2)在解壓縮目錄下搜索是否存在spring-beans-*.jar 格式的jar文件(例如spring-beans-5.3.16.jar),如存在則說明業務系統使用了Spring框架進行開發;
3)如果spring-beans-*.jar文件不存在,則在解壓縮目錄下搜索CachedIntrospectionResuLts.class文件是否存在,如存在則說明業務系統使用了Spring框架開發。
2、如果業務系統項目以jar包形式直接獨立運行,按照如下步驟進行判斷:
1)解壓jar包:將jar文件的后綴修改成.zip,解壓zip文件;
2)在解壓縮目錄下搜索是否存在spring-beans-*.jar格式的jar文件(例如spring-beans-5.3.16.jar),如存在則說明業務系統使用了Spring框架進行開發;
3)如果spring-beans-*.jar文件不存在,則在解壓縮目錄下搜索CachedIntrospectionResuLts.class文件是否存在,如存在則說明業務系統使用了Spring框架進行開發。
處置建議
據悉,Spring官方已發布更新版本,將Spring框架升級到5.3.17版本;建議升級后確認一下漏洞是否已經處置,參見:https://github.com/spring-projects/spring-framework
此外,還有兩個臨時方案進行防護,具體情況如下:
1、WAF臨時策略(僅供參考)
在WAF等網絡防護設備上,根據實際部署業務的流量情況,實現對“class.*”,“Class.*”,“*.class.*”,“*.Class.*”等字符串的規則過濾,并在部署過濾規則后,對業務允許情況進行測試,避免產生額外影響。
2、臨時緩解措施(僅供參考)
需同時按以下兩個步驟進行漏洞臨時處置:
1)在應用中全局搜索@InitBinder注解,看看方法體內是否調用dataBinder.setDisallowedFields方法,如果發現此代碼片段的引入,則在原來的黑名單中,添加:
{class.*,Class. *,*. class.*, *.Class.*}
(注:如果此代碼片段使用較多,需要每個地方都追加)
2)在應用系統的項目包下新建以下全局類,并保證這個類被Spring 加載到(推薦在Controller所在的包中添加)。完成類添加后,需對項目進行重新編譯打包和功能驗證測試。并重新發布項目。
import org.springframework.core.annotation.Order;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.InitBinder;
@ControllerAdvice
@Order(10000)
public class a{
@InitBinder
public void setAllowedFields(WebDataBinder dataBinder) {
String[] abd = new String[]{class.*, Class.*, *.class.*, *.Class.*};
dataBinder.setDisallowedFields(abd);
}
}
信息來源:廣東省網絡安全應急響應中心 哈爾濱工業大學 大連理工大學