跳到主要內容區塊

ntuccepaper2019

技術論壇

F5重大資安漏洞攻擊,請盡快修補!
  • 卷期:v0063
  • 出版日期:2022-12-20

作者:林宜進 / 臺灣大學計算機及資訊網路中心北區學術資訊安全維運中心工程師 、童鵬哲 / 臺灣大學計算機及資訊網路中心計畫研究專員、李美雯 / 臺灣大學計算機及資訊網路中心程式設計師


前言

美國公司F5 Networks在2022年5月4日,對外公佈CVE-2022-1388漏洞說明。「此一漏洞發生在F5 BIG-IP管理介面上,它允許未經授權的駭客存取BIG-IP系統並且執行任意指令」。經專家評估該漏洞為嚴重風險等級(CVSS 9.8分)。目前有資安業者開發出概念性驗證(Proof of Concept;簡稱PoC)程式,並呼籲使用者應盡速修補漏洞或採取緩解措施。

 

20221220_006308_01

 

圖1、F5官方的漏洞公告(圖片來源:F5官網)

 

北區學術資訊安全維運中心(North Academic Security Operation Center, 以下簡稱N-ASOC)團隊針對這個漏洞收集彙整資料,一方面是研究漏洞的原理,整理撰寫出分析資料;另一方面要找出學術網路中,是否有存在此漏洞的設備。結合Shodan資訊和PoC程式,讓N-ASOC可以快速對學術網路做檢查,並通報相關單位盡速修補漏洞。

 

漏洞說明

CVE-2022-1388是存在於F5的BIG-IP (All Modules)所使用的iControl REST元件中。該元件的功能是為了讓使用者或自動化(腳本)程式能與F5設備執行輕量且快速的互動。但是,這個漏洞卻可輕鬆繞過F5的iControl REST身份驗證。因為漏洞發生的原因跟去年發生的CVE-2021-22986漏洞太過相似,極可能是上次漏洞修補方式並不完善。

 

漏洞原理

    談到CVE-2022-1388漏洞資訊時,大家會想到CVE-2021-22986漏洞,因為兩個漏洞的成因相似,以下說明兩個漏洞繞過身分驗證的原理。在進行iControl REST身分驗證時,攻擊者可以透過特殊的HTTP request header繞過身分驗證。檢測人員發現,繞過的原因出在此身分驗證架構被設計成兩個階段,而這兩個階段各自存在認證不完全的問題。

 

20221220_006308_02

 

圖2、使用者要連線到iControl REST服務的的簡易流程圖(參考Horizon 3 AI Red Team)

 

第一階段的身分驗證是在Apache上,搭配F5自行開發的認證模組(mod_auth_pam.so),採用HTTP基本驗證(HTTP Basic Authentication)方式,當驗證成功後會把資料轉拋,進行下個階段的身分驗證。第二階段的身分驗證是實作在Jetty Web Server上,會檢查帳號資訊是否存在。觀察以上兩點,只要攻擊者能滿足各階段驗證所需要的條件,就可繞過身分驗證。

當CVE-2021-22986漏洞被公佈後,F5官方即修補攻漏洞,但資安業者找出用Abusing hop-by-hop header的方式,再次地繞過身分驗證,可遠端執行任意程式。

hop-by-hop header簡易說明

    在RFC 2616官方文件中,定義HTTP/1.1中有八個特定字串為hop-by-hop header:

 

20221220_006308_03

圖3、hop-by-hop header的八個特定字串 (圖片來源:RFC 2616線上文件)

 

            「hop-by-hop的header僅對單次連線傳輸有用,它的內容不會被快取(caches)儲存,也不會被代理伺服器(proxies)轉發。」換句話說,當HTTP request中遇到這些header時,在進入下一個節點前,代理伺服器會刪除這個header的內容。而加入不正常的 ”Connection” header進而刪除正常header的攻擊手法,我們即稱為「Abusing hop-by-hop header」攻擊。

 

20221220_006308_04

圖4、正常hop-by-hop header的範例 (參考Nathan Davison研究文章)

 

漏洞觸發條件說明

20221220_006308_05

圖5、PoC程式說明 (圖片來源:Github)

 

參照資安業者在Github上的說明,需要滿足四個條件才會成功的繞過身分驗證。條件說明如下:

  1. 第一個條件是Connection header必須包含X-F5-Auth-Token;
  2. 第二個條件為X-F5-Auth-Token必定存在;
  3. 第三個條件在host header中,一定要是localhost(也可以寫成0.0.1),或Connection header務必包含X-Forwarded-Host;
  4. 最後的條件就是Auth header務必把帳號設定成admin,而密碼為任意(代表密碼可以為空)。

當繞過第一階段(可參考漏洞原理小節對照)的身分驗證並進入第二階段身分驗證時,因Auth header設定成admin的字串,在第二階段身分驗證的過程中,會剛好符合「本地端(也就是localhost)存在admin帳號」這個身分驗證條件,就會順利繞過第二階段身分驗證並取得admin權限帳號。後續,便可帶入任意iControl REST API指令達成遠端攻擊者執行任意程式碼。

 

實際攻擊測試

對於 F5 BIG-IP設備來說,能執行任意遠端程式指令 (remote code execution, RCE) 相當危險,不僅能直接操控本機下任意指令,還可以讓攻擊者擁有 admin 權限,其造成的風險可想而知。舉例來說:駭客可以透過 admin 帳號權限,加入新的具有admin 權限的 user,進而直接登入 F5 BIG-IP 的 web 管理介面去進行規則的設定與調整,甚至直接 bypass相關規則,讓原本位在WAF之後,受WAF保護的設備主機,失去防護而遭受攻擊。

PoC 1 : 加入使用者帳號,利用 iControl API  加入 user5 ,且具有 Administrator 權限。

 

20221220_006308_06

圖6、PoC 1測試截圖

 

PoC 2:利用iControl API加入user5之後,可以直接登入web管理介面,且具有Administrator權限。

 

20221220_006308_07

圖7、PoC 2測試截圖

 

影響範圍

根據F5官方的資料,受影響之BIG-IP (All modules) 版本如下:

  • 1.0 - 16.1.2
  • 1.0 - 15.1.5
  • 1.0 - 14.1.4
  • 1.0 - 13.1.4
  • 1.0 - 12.1.6 (End-Of-Support,縮寫為EOS)
  • 6.1 - 11.6.5 (EOS)

 

 

圖8、F5官方列出受漏洞影響的版本;圖片來源:F5官方

 

建議措施與緩解措施

  1. 建議措施

目前F5官方已針對此漏洞釋出修復版本,請根據使用的版本做更新,可以參考下面列表所示:

  • BIG-IP 16.x:1.2.2
  • BIG-IP 15.x:1.5.1
  • BIG-IP 14.x:1.4.6
  • BIG-IP 13.x:1.3.5
  • BIG-IP 12.x:EOS,不會有修補版本
  • BIG-IP 11.x:EOS,不會有修補版本

   若目前所使用之版本因已停止支援而未釋出修補程式,建議升級至仍有支援且已推出修補程式之版本。

  1. 緩解措施

若無法更新至最新版本,可參考下方F5官方提供的三項緩解措施(詳細細節請至F5官網查詢):

  1. 禁止透過設備之self IP位址存取iControl REST介面。
  2. 僅允許受信任之使用者與設備可透過BIG-IP設備管理頁面存取 iControl REST介面。
  3. 調整 BIG-IP設備之httpd設定檔。

找出存在漏洞的學術網路設備

    近期暴露在網際網路上的F5 BIG-IP的設備,在Shodan網頁上可以找到約三千七百多筆的紀錄。N-ASOC利用Shodan搭配搜尋關鍵字,去搜尋學術網路中的F5的設備。搜尋後的結果有十七筆,其中有兩筆經多個PoC程式檢測後,確認存在CVE-2022-1388漏洞,而後N-ASOC已經通知該單位盡速修補漏洞。

 

20221220_006308_09

圖9、N-ASOC使用多個PoC程式檢測學術網路的F5設備

  

參考資料

  1. iThome報導-F5 修補重大的BIG-IP遠端執行漏洞,概念性驗證攻擊程式即將現身。2022-05-09。網址:https://www.ithome.com.tw/news/150831
  2. K23605346: BIG-IP iControl REST vulnerability CVE-2022-1388。2022-05-04。網址:https://support.f5.com/csp/article/K23605346
  3. F5 iControl REST Endpoint Authentication Bypass Technical Deep Dive(By: Horizon 3 AI Red Team)。2022-05-09。網址:https://www.horizon3.ai/f5-icontrol-rest-endpoint-authentication-bypass-technical-deep-dive/
  4. CVE-2021-22986 F5 REST Unauthenticated RCE Analysis。2021-03-19。網址:https://y4y.space/2021/03/19/cve-2021-22986-f5-rest-unauthenticated-rce-analysis/
  5. CVE-2022-1388 (F5 BIG-IP)。2022-05-14。網址:https://www.inceptionsecurity.com/post/cve-2022-1388
  6. F5 BIG-IP 未授權 RCE(CVE-2022-1388)分析。2022-05-10。網址:https://cloud.tencent.com/developer/article/1999667
  7. RFC 2616。1999-06。網址:https://datatracker.ietf.org/doc/html/rfc2616#section-13.5.1
  8. Abusing HTTP hop-by-hop request headers(By: Nathan Davison)。2019-10-31。網址:https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers
  9. CVE-2022-1388-PoC程式範例。2022-05-30。網址:https://github.com/horizon3ai/CVE-2022-1388