目前,Oracle Weblogic保持每個(gè)季度一個(gè)補(bǔ)丁包更新的速度,對(duì)于大規(guī)模使用weblogic中間件的系統(tǒng)來(lái)說(shuō),更新補(bǔ)丁包、重啟應(yīng)用服務(wù)器是一個(gè)非常繁瑣重復(fù)的過(guò)程。(建議使用ansible類(lèi)似工具批量打補(bǔ)丁)同時(shí)對(duì)于CVE-2018-2628等反滲透測(cè)試漏洞來(lái)說(shuō),psu20180417補(bǔ)丁要求升級(jí)JDK到最新的版本,更是要了維護(hù)人員的老命。(需要應(yīng)用測(cè)試啊!!!)
本文以CVE-2018-2628為例,詳細(xì)敘述官方解決方案以及臨時(shí)解決方案(很多問(wèn)題一勞永逸)。
Oracle官方已經(jīng)在4月17日的關(guān)鍵補(bǔ)丁更新(CPU)中修復(fù)了該漏洞,所以標(biāo)準(zhǔn)的修復(fù)方式是安裝最新的PSU:
? WebLogic Server 12.2.1.3 WLS PSU 12.2.1.3.180417 Patch 27342434
? WebLogic Server 12.2.1.2 WLS PSU 12.2.1.2.180417 Patch 27338939
? WebLogic Server 12.1.3.0 WLS PSU 12.1.3.0.180417 Patch 27419391
? WebLogic Server 10.3.6.0 WLS PSU 10.3.6.0.180417 Patch 27395085
但在更新上述補(bǔ)丁后,仍然后部分安全防護(hù)公司指出,安裝最新的PSU后漏洞仍然存在,無(wú)法完全抵御反序列化漏洞的攻擊。針對(duì)上述情況, Oracle安全部門(mén)最近發(fā)布的文檔進(jìn)行了說(shuō)明:April 2018 Critical Patch Update: Additional Information about the Oracle WebLogic Server Vulnerability CVE-2018-2628 (Doc ID 2395745.1)。
Oracle has determined that the April 2018 Critical Patch Update provides effective mitigation against vulnerability CVE-2018-2628 when using a combination of supported versions of Oracle products.
These supported versions currently are:
? Supported versions of WebLogic Server are: 10.3.6.0, 12.1.3.0, 12.2.1.2 and 12.2.1.3
? Supported versions of Java SE are: JDK6u191, JDK7u181 and JDK8u172. o
Note: A valid Support license is needed to download either JDK6u191 or JDK7u181
簡(jiǎn)而意之,就是除了升級(jí)PSU180417補(bǔ)丁外,還需要升級(jí)JDK版本,包括了 JDK6u191, JDK7u181 and JDK8u172。
常規(guī)解決步驟:
1、下載PSU補(bǔ)丁pxxxxxxxx_1036_Generic.zip?,然后解壓到對(duì)應(yīng)的bsu下的cachedir目錄
2、檢查當(dāng)前補(bǔ)丁版本
cd $WLS_HOME/utils/bsu
./bsu.sh -view -prod_dir=$WLS_HOME/wlserver_10.3 -status=applied -verbose
3、通過(guò)補(bǔ)丁號(hào)卸載原補(bǔ)丁
./bsu.sh -remove -prod_dir=$WLS_HOME/wlserver_10.3 -patchlist=XXXX?-verbose
4、安裝新的補(bǔ)丁程序
./bsu.sh -install -patch_download_dir=$WLS_HOME/utils/bsu/cachedir -prod_dir= $WLS_HOME/wlserver_10.3 -patchlist=XXXX?-verbose
5、檢查
./bsu.sh -view -prod_dir=$WLS_HOME/wlserver_10.3 -status=applied -verbose
注:在使用bsu安裝時(shí),建議將bsu.sh中的-Xmx增加到2048-2536M,避免出現(xiàn)OOM錯(cuò)誤。
對(duì)反滲透測(cè)試漏洞等高危風(fēng)險(xiǎn)而言,均是通過(guò)使用weblogic的t3端口進(jìn)行入侵,因此對(duì)于只是用http等協(xié)議的應(yīng)用,可以通過(guò)臨時(shí)解決方案對(duì)外屏蔽t3協(xié)議,達(dá)到一勞永逸的效果。
官方說(shuō)明:
根據(jù)CVE-2018-2628相關(guān)描述,Java反序列化漏洞 在weblogic上是通過(guò)T3協(xié)議進(jìn)行攻擊的,T3協(xié)議是weblogic內(nèi)部的通信協(xié)議,weblogic運(yùn)行時(shí)必須使用此協(xié)議。在對(duì)T3協(xié)議實(shí)現(xiàn)的過(guò)程中用到了java序列化技術(shù)。所以只要科學(xué)合理的管理好T3協(xié)議的使用就可以防護(hù)住針對(duì)weblogic 產(chǎn)品的java反序列化漏洞攻擊。
針對(duì)暫時(shí)無(wú)法安裝最新PSU或者版本過(guò)低,沒(méi)有對(duì)應(yīng)PSU修復(fù)該漏洞的情況,可以考慮通過(guò)配置weblogic連接篩選器,屏蔽部分(主要是外部)T3訪問(wèn)的方式臨時(shí)解決問(wèn)題。
1、連接篩選器
配置weblogic連接篩選器時(shí),可以選擇自定義的連接篩選器,也可以使用weblogic產(chǎn)品提供的默認(rèn)連接篩選器。一般我們都是使用weblogic默認(rèn)提供的連接篩選器:'weblogic.security.net.ConnectionFilterImpl'
2、語(yǔ)法
連接篩選器語(yǔ)法規(guī)則
連接篩選器規(guī)則語(yǔ)法如下所示:
? 每行都只能寫(xiě)一條規(guī)則。
? 規(guī)則中的標(biāo)記用空格分隔開(kāi)。
? 井號(hào) (#) 是注釋字符。將忽略行中井號(hào)后面的所有內(nèi)容。
? 將忽略規(guī)則前后的空格。
? 將跳過(guò)只包含空格或注釋的行。
篩選器規(guī)則格式的不同取決于是使用篩選器文件輸入篩選器規(guī)則,還是在管理控制臺(tái)中輸入篩選器規(guī)則。
? 如果在管理控制臺(tái)中輸入篩選器規(guī)則,則請(qǐng)按照下列格式輸入:
targetAddress localAddress localPort action protocols
?targetAddress指定要篩選的一個(gè)或多個(gè)系統(tǒng)。
? localAddress 定義 WebLogic Server 實(shí)例的主機(jī)地址。(如果指定為星號(hào) (*),則返回的匹配結(jié)果將是所有本地 IP 地址。)
? localPort 定義 WebLogic Server 實(shí)例正在監(jiān)聽(tīng)的端口。(如果指定為星號(hào) (*),則匹配返回的結(jié)果將是服務(wù)器上所有可用的端口)。
? action 指定要執(zhí)行的操作。該值必須為 allow或 deny。
? protocols 是要匹配的協(xié)議名列表。可能指定下列協(xié)議:http、https、t3、t3s、ldap、ldaps、iiop、iiops 和 com。(盡管仍然支持giop、giops 和 dcom 協(xié)議名稱(chēng),但是不贊成在 9.0 及更高版本中使用;您應(yīng)該使用等同的 iiop、iiops 和 com 協(xié)議名稱(chēng)。)
3、配置步驟
以該集群3個(gè)server為例,一個(gè)管理,兩個(gè)被管:
然后在Weblogic Console 中選擇Domain->安全->篩選器 配置如下:
? 連接篩選器: weblogic.security.net.ConnectionFilterImpl
網(wǎng)絡(luò)過(guò)濾規(guī)則如下:
192.168.8.103 192.168.8.104 7001 allow t3
192.168.8.104 192.168.8.104 7001 allow t3
* 192.168.8.104 7001 deny t3
192.168.8.103 192.168.8.104 8001 allow t3
192.168.8.104 192.168.8.104 8001 allow t3
* 192.168.8.104 8001 deny t3
192.168.8.103 192.168.8.103 8002 allow t3
192.168.8.104 192.168.8.103 8002 allow t3
* 192.168.8.103 8002 deny t3
之后重啟域內(nèi)所有server。內(nèi)部之間可以通過(guò)t3協(xié)議通信,外部ip無(wú)法訪問(wèn)。