top of page
  • 作家相片WIZON Team

CVE-2024-6387:OpenSSH漏洞將數百萬系統置於風險之中

CVE-2024-6387漏洞解析:OpenSSH 遠端代碼執行風險

CVE-2024-6387漏洞解析:OpenSSH 遠端代碼執行風險 7月1日最新公布的漏洞 CVE-2024-6387是一項攸關於 OpenSSH 的高風險威脅 (CVSS v3評分: 8.1 High),由於OpenSSH 是一款基於 Secure Shell (SSH) 協定的開源網路加密通訊工具,提供安全的檔案傳輸和遠端伺服器管理功能,並且被廣泛應用於 Linux、BSD、macOS 等作業系統,是遠端管理和資料安全傳輸的重要工具,因此CVE-2024-6387漏洞所引發的威脅影響非常深遠,並且被視為18年前曾經的漏洞CVE-2006-5051再次復現,在漏洞發布後倍受各界的關注重視。


CVE-2024-6387 漏洞說明

近期,OpenSSH 被發現存在一個嚴重漏洞為CVE-2024-6387,也被稱為”regreSSHion"。該漏洞影響範圍廣泛,涵蓋了 OpenSSH 8.5p1 到 9.8p1 的版本,以及未修補 CVE-2006-5051 和 CVE-2008-4109 的 4.4p1 之前版本。


CVE-2024-6387 是一個針對OpenSSH 允許未經授權的攻擊者在受影響系統上執行任意程式碼的遠端程式碼執行 (RCE) 漏洞,允許未經授權的攻擊者在受影響的系統上以 root 權限執行任意程式碼,進而完全控制受駭系統。


由於OpenSSH 是一款基於 Secure Shell (SSH) 協定的開源網路加密通訊工具,提供安全的檔案傳輸和遠端伺服器管理功能,並且被廣泛應用於 Linux、BSD、macOS 等作業系統上的遠端管理和資料安全傳輸的重要工具。主要受影響系統為基於「glibc (GNU C函式庫)」的 Linux 系統,涵蓋了大多數主流 Linux 發行版本,例如 Ubuntu、Debian、CentOS/RHEL、Fedora、openSUSE 和 macOS 等。


CVE-2024-6387 之所以被命名為 "regreSSHion"是因為它是一個『回歸錯誤』,回歸錯誤是指先前已修復的缺陷在後續軟體版本中重新出現,這個名稱巧妙地將 "regression" 與 "SSH" 結合,突顯了此漏洞的特性。而CVE-2024-6387 是 18 年前漏洞 CVE-2006-5051 的復現,CVE-2006-5051 在 2006 年被修復,但在 2020 年 10 月發布的 OpenSSH 8.5p1 版本中被無意間重新引入。換句話說,一個曾經被修復的缺陷在後續的軟體版本中重新出現,通常是由於修改或更新無意中重新引入了該問題。因此,儘管OpenSSH 官方僅聲稱 8.5p1 至 9.8p1 版本受影響,但安全研究人員指出,4.4p1 之前的版本也可能存在風險,特別是那些未針對 CVE-2006-5051 或 CVE-2008-4109 漏洞進行修補的系統。


根據Qualys 的掃描結果顯示,網路上可能超過 1,400 萬個 OpenSSH 實例存在風險,其中約 70 萬個確認存在漏洞,而PaloAlto Networks Unit 42的數據則顯示,全球至少有 730 萬個 OpenSSH 實例可能受影響。

特別需要注意的系統環境: OpenSSH伺服器:此漏洞主要影響運行OpenSSH伺服器的環境,特別是那些未經及時更新和修補的系統。 遠端存取伺服器:任何允許遠端存取的伺服器,如雲端伺服器和數據中心伺服器,均應立即檢查並修補此漏洞。 關鍵基礎設施:運行關鍵任務的伺服器和服務,如金融機構和醫療系統,應優先處理此安全問題。

漏洞威脅與技術細節

CVE-2024-6387 漏洞的潛在威脅不容小覷,攻擊者一但成功利用該漏洞,將能取得 root 權限並且進而造成:完全接管受影響系統、部署惡意軟體、植入後門、竊取敏感數據、發動 DDoS 攻擊、以及其他惡意行為,並且將會很難以被察覺。


主要的技術細節:

  • 這個漏洞的根本原因在於 OpenSSH 信號處理器中的競態條件。

  • 當連線嘗試在 LoginGraceTime 寬限期內未能通過驗證時,信號處理器會以非同步方式調用 syslog() 等敏感函數。

  • 攻擊者可以利用此特性,透過開啟多個連線但不提供驗證憑證,以非同步方式觸發信號處理器。

  • 這會導致程式記憶體堆處於不一致狀態,最終實現遠端執行任意程式碼。

  • 攻擊者需要多次嘗試才能成功利用此漏洞,但其造成的潛在威脅仍不容小覷。

  • 攻擊者若成功利用此漏洞,將能取得 root 權限,進行系統全面接管、部署惡意軟體、植入後門等惡意行為,且難以被偵測。

  • 此漏洞影響從 OpenSSH 8.5p1 到 9.8p1 的版本,因為在這些版本中意外刪除了函數中的關鍵元件,導致 18 年前的漏洞 CVE-2006-5051 重新出現。


漏洞利用步驟:

  1. 準備堆 (prepare_heap): 攻擊者會先在伺服器的記憶體中建立特定的資料結構,類似於設定一個複雜的多米諾骨牌陣列,以便在適當的時機觸發漏洞。

  2. 嘗試競態條件 (attempt_race_condition): 攻擊者會發送一個特製的資料封包到伺服器,並在伺服器即將斷開連線前的瞬間發送最後一個位元組,試圖在特定時間點中斷伺服器的正常運作。

  3. 利用記憶體操作 (exploit memory manipulation): 如果攻擊者的時間點精準,就能夠操控伺服器的記憶體分配,讓伺服器執行攻擊者預先設定的惡意程式碼。


不過,目前要利用這個漏洞的技術難度高,根據OpenSSH團隊表示,在實驗室的環境下想要攻陷CVE-2024-6387漏洞需要不斷建議連結並持續6~8個小時,目前已在具備ASLR的32位元Linux系統成功實現攻擊,理論上也可能用來攻擊64位元的Linux系統或是非glic系統,但是尚未獲得驗證。Splunk的安全研究團隊同樣對 CVE-2024-6387 的 PoC 代碼進行了分析,指出其利用過程需要精準的時機控制,並且需要多次嘗試才能成功。


安全建議措施

立即更新OpenSSH版本:

目前 OpenSSH 已釋出 9.8/9.8p1 版本修復了此漏洞,強烈建議所有 OpenSSH 使用者應立即更新至最新版本,以降低風險。並且建議參考各家Linux發行版官方公告,安裝最新安全更新。


漏洞識別與曝險防範:

透過漏洞識別雖然只能幫助識別潛在的弱點,並不能完全保證系統的安全性,但是有助於快速掌握企業面對 CVE-2024-6387的曝險狀態。

  • 識別受影響的 OpenSSH 版本: 使用網路掃描工具(例如 Shodan)或漏洞掃描工具,識別運行易受攻擊的 OpenSSH 版本 (8.5p1 到 9.8p1 以及 4.4p1 之前的版本) 的伺服器。

  • 檢查系統日誌: 查看 sshd 日誌中是否有大量的「timeout before authentication」訊息,這可能表示攻擊者正在嘗試利用此漏洞。

  • 檢查網路流量: 監控網路流量中是否有大量的 SSH 連線嘗試,特別是來自未知或可疑 IP 地址的連線。

  • 參考安全公告: 密切關注 Linux 發行版和安全組織發布的安全公告,這些公告通常會提供有關受影響版本和緩解措施的詳細資訊。

  • 雲端安全工具: 雲端服務提供商(如 Google Cloud、AWS 和 Azure)通常會提供安全工具和服務,幫助用戶識別和修復其環境中的漏洞。


臨時緩解措施:

假如無法立即更新OpenSSH的話,以下建議可作為緊急臨時措施的參考。

  • 強化 SSH 設定: 將 sshd_config 中的 LoginGraceTime 參數設定為 0,可以避免此漏洞被利用。但是需要注意,這個做法可能會導致系統資源被佔用,造成拒絕服務攻擊 (DoS) 更容易發生。

  • 部署端點防禦系統: 部署主機型的入侵偵測防禦系統,例如端點防護XDR或MDR,能用於識別和阻止潛在的攻擊。

  • 限制 SSH 存取: 透過防火牆規則限制 SSH 存取來源,僅允許來自必要 IP 位址和網路的 SSH 連線。

  • SSH帳號管控:禁用 root 用户直接登錄、使用強密碼等。

  • 多因素驗證 (MFA): 為 SSH 存取添加額外的驗證層級,即使攻擊者獲得了帳戶密碼,也難以登錄系統。

  • 設定跳板機: 使用跳板機或特權帳號管理方案,提供額外的存取控制層。

  • 網路分段: 實施嚴格的網路分段,限制攻擊者在成功利用漏洞後的活動範圍。

  • 持續監控: 監控 SSH 服務的異常活動,例如大量失敗登錄嘗試或可疑的時序模式,並針對異常活動設定警報。


洞見觀察

  • 漏洞CVE-2024-6387 突顯出軟體開發中回歸測試的重要性,此漏洞是 18 年前已被修復的 CVE-2006-5051 漏洞的復現,代表 OpenSSH 在發布新版本時,可能未進行足夠的回歸測試,才導致舊漏洞重新出現。

  • 競態條件漏洞的利用難度高,但潛在威脅不容小覷。 CVE-2024-6387 的利用需要精準的時間控制和多次嘗試,攻擊者才能成功。 然而,一旦成功,攻擊者就能夠取得系統的最高權限 (root),造成嚴重損害。

  • 及時更新系統和軟體是防禦漏洞攻擊的關鍵。 OpenSSH 團隊已釋出更新版本修復此漏洞,各 Linux 發行版也陸續提供更新。 系統管理員應密切關注安全公告,並儘快更新受影響的系統。

  • 多層次的安全防禦策略是確保系統安全的最佳實務。 除了更新系統和軟體,也應採取其他防護措施,例如:設定防火牆、使用強健的密碼、啟用多因素驗證、監控系統日誌等,才能有效降低風險。

  • 雲端服務供應商和用戶都應重視此漏洞的威脅。 CVE-2024-6387 影響範圍廣泛,包括 Google Cloud、AWS、Azure 等雲端平台,這些雲端服務平台通常也運行許多基於 Linux 的虛擬機器和伺服器,目前各家雲端服務供應商也已提供用戶相關的更新和指引,特別提醒雲端服務用戶應採取必要的措施,以避免遭受未經授權的遠端存取、橫向移動或跳板攻擊、以及資源被非法濫用。


結論

此次OpenSSH漏洞的發現,也再次提醒「開源軟體使用」及「軟體安全開發」等議題的重要性,即使是廣泛使用且經過嚴格審查的軟體及開發過程,都可能隱藏著嚴重的安全漏洞,而且舊有的漏洞可能再度出現。舉例來說,發生於2014年的Heartbleed漏洞肇因於OpenSSL問題,發於2021年的Log4shell漏洞則肇因於Apache Log4j問題,所造成的影響範圍涵蓋全球性高達數百萬台的伺服器系統,並且在日後造成的威脅性不斷擴大並持續至今。因此,再次呼籲各位務必提高對於OpenSSH CVE-2024-6387漏洞的追蹤與關注。




Comments


bottom of page