Jboss EAP v6.4.0 Patch to v6.4.23
前言: 客戶進行弱掃作業,發現在Jboss EAP v6.4.0上有Apache Tomcat AJP Connector Request Injection (Ghostcat)( CVE-2020-1745,CVE-2020-1938) 的漏洞問題.
影響: Jboss EAP v6.4.0上Port:8009 的 AJP 協議存在漏洞,將導致未授權用戶可以讀取網站目錄下的任意文件。
處理過程:
參考了RedHat官方建議
將Jboss EAP v6.4.0升版到JBoss EAP 6.4 Update 23來修復此漏洞,並且調整設定, 配合阻止自定義AJP請求屬性.
官方建議的處理方式:
1. 如果沒使用AJP協議, 可以將AJP協議禁用。(最安全,最可靠的推薦解決方案。)
Ex:
請在系統設定檔standalone-*.xml 或domain.xml禁用AJP.
<connector name="AJP" protocol="AJP/1.3" scheme="http" socket-binding="ajp" enabled="false"/>
2. 如果需要AJP連接器,並且不能對其進行註釋或停用,則建議通過配置以下系統屬性將憑據添加到AJP連接器。
<system-properties>
<property name="org.apache.coyote.ajp.DEFAULT_REQUIRED_SECRET" value="YOUR_AJP_SECRET"/>
</system-properties>
但是小編只是對Jboss稍有接觸,那個細節該怎麼處理呢?.....
且需要AJP的方式另提到在設定檔案上要加上"YOUR_AJP_SECRET", 這是什麼東東啊!
這一串看起來像是加了一把Key, 那又是要跟誰互動呢?
在細讀文件Apache httpd那節看到:
當在Tomcat / JBoss端配置了上述增加“SECRET”設置時,YOUR_AJP_SECRET將需要在前端代理(即mod_proxy_ajp或mod_jk)上配置相同的secret值。
(其中 httpd/secret參數由以下版本開始支持該屬性:JBCS httpd 2.4.37; RHEL 7 httpd-2.4.6-67 2; RHEL 8 httpd-2.4.6-62)
回頭查看客戶設定,果然該台server也有httpd服務,且使用mod_proxy_ajp.但httpd現有版本為httpd-2.4.6-31.
所以要先對httpd進行升版。
小編習慣使用redhat的yum來管理/升級版本。故掛上相對應的iso image後進行httpd升級.
root#yum update httpd
因有配置mod_proxy_ajp, 故需要mod_proxy.conf增加secret參數(如紅框)
註:有關客戶機密只好佈上馬塞克
再來就是Jboss本身的升版及設定異動說明:
原Jboss為 v6.4.0, 為防睹漏洞需升版為v6.4.23
參考Jboss原廠升級說明文件:
Jboss patch v6.4.9包含patch01到09中所有的更新。
Jboss patch v6.4.19包含patch10到19中所有的更新。
Jboss patch v6.4.23包含patch20到23中所有的更新。
所以我們需先取得以下3個patch files以進行升版:
jboss-eap-6.4.9-patch.zip
jboss-eap-6.4.19-patch.zip
jboss-eap-6.4.23-patch.zip
註:需為Jboss服務的訂閱用戶,登入RedHat才能取得檔案哦!
Jboss升版程序:
1.進入jboss-cli, 檢查目前的版本:
<Jboss_HOME>/bin/jboss-cli.sh
ex:
/opt/jboss/bin/jboss-cli.sh
2.先上patch Jboss patch v6.4.9,上完patch需要restart Jboss後才能進行下一版Patch的作業
ex:
3. 設定檔增加參數:異動standalone*.xml or Domain.xml (依環境需求)
"YOUR_AJP_SECRET"內容必須與httpd/mod_proxy.conf中的secret一樣哦!
<system-properties>
<property name="org.apache.coyote.ajp.DEFAULT_REQUIRED_SECRET" value="YOUR_AJP_SECRET"/>
</system-properties>
4. Restart Jboss; 完工
注意事項:
升版前Jboss請記得備份,以供rollback.
ex:
/opt/jboss/<standalone>/configuration/
/opt/jboss/<standalone>/bin/*.conf
Patch過程,會將/opt/jboss/<standalone>/bin/*.conf還原為初始狀態,請留意異動狀態,並依環境需求修改。