Jboss Jboss patch Jboss EAP v6.4

Jboss EAP v6.4.0 Patch to v6.4.23

侯清慈(AlexHou) 2020/12/02 14:41:47
209

前言: 客戶進行弱掃作業,發現在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還原為初始狀態,請留意異動狀態,並依環境需求修改。

 

侯清慈(AlexHou)