別讓黑客有機可乘!立即了解CVE-2024-6387對OpenSSH的影響與防護措施
概述
CVE-2024-6387是一個影響OpenSSH的遠程代碼執行(RCE)漏洞。該漏洞存在于OpenSSH服務器(sshd)的信號處理程序中,由于在處理SIGALRM信號時的競爭條件,攻擊者可以利用該漏洞執行任意代碼。該漏洞主要影響基于glibc的Linux系統。
受影響版本8.5p1 <= OpenSSH < 9.8p1
詳細的漏洞情況請查閱該篇文章[1]
漏洞原理
當客戶端在LoginGraceTime(默認120秒,舊版本600秒)內未能完成身份驗證時,sshd會異步調用SIGALRM處理程序。由于信號處理的競爭條件,攻擊者可以通過特定的時間窗口注入惡意代碼,實現遠程代碼執行。
表1顯示了與 CVE-2024-6387 關聯的易受攻擊版本。
表1
受影響范圍
使用Palo Alto Networks Xpanse數據,我們觀察到 2300 萬個OpenSSH服務器實例,包括所有版本。截至 2024年7月 1 日,全球有超過 700 萬個暴露的OpenSSH 版本8.5p1-9.7p1 實例。包括舊版本(4.3p1 及更早版本),我們總共看到730萬。但是,這可能是對易受攻擊版本的過度計算,因為沒有可靠的方法來解釋向后移植,其中實例正在運行修補版本但顯示受影響的版本號。這些數字也不考慮漏洞可能需要的操作系統級規范或配置。
表2顯示了我們對易受攻擊版本8.5p1-9.7p1的觀察結果的地理分布。
漏洞復現
Fofa:protocol="ssh"
quake:app:"OpenSSH"
hunter:app.name="OpenSSH"
該漏洞在github上,大神也發布了poc,如下圖:
使用方法也是很簡單,不過,該漏洞攻擊時間很長,在linux虛擬機環境“平均需要嘗試約10,000次才能成功復現,約需3小時左右。
把上述的poc克隆到kali主機上,如下圖:
該poc采用C語言編程,所以,我們需要編譯。如下圖:
如何利用該poc,執行如下命令:
./cve-2024-6387 <ip> <port>
例如:
./cve-2024-6387 192.168.31.19 22
執行完命令后,如下圖的輸出:
修補方案
1.升級 OpenSSH 到最新版本
要有效解決此漏洞,請升級到最新的 OpenSSH 版本,其中包括必要的修復程序。保持 OpenSSH 安裝最新對于安全和防范已知漏洞至關重要。官方已發布最新版本修復該漏洞,請受影響客戶將Openssh更新到安全版本:OpenSSH > 9.8p1。
- 下載鏈接:https://www.openssh.com/releasenotes.html
- Debian解決方案:https://security-tracker.debian.org/tracker/CVE-2024-6387
- Ubuntu解決方案:https://ubuntu.com/security/notices/USN-6859-1
- Redhat解決方案:https://access.redhat.com/security/cve/cve-2024-6387
2.實施臨時解決方法
如果無法立即升級,您可以通過在 OpenSSH 配置文件中將 LoginGraceTime 參數設置為 0 來降低風險。這樣可以防止未經身份驗證的會話保持打開狀態并被利用。但是,如果所有連接插槽都被占用,此設置可能會導致拒絕服務。
3.通過使用seccomp(安全計算模式)
添加額外的安全層,可以進一步減輕風險。seccomp限制了sshd進程可以執行的系統調用,從而限制了攻擊面并減少了利用不安全函數(如syslog())的可能性。實現seccomp確保即使觸發了漏洞,攻擊者執行任意代碼的能力也會顯著受限。通過遵循這些緩解策略,您可以保護系統免受此漏洞的影響,并增強OpenSSH配置的整體安全性。
結論
CVE-2024-6387(又名 RegreSSHion)是基于 glibc 的 Linux 系統上 OpenSSH 服務器 (sshd) 中的信號處理程序爭用條件漏洞。此漏洞的嚴重等級為“高”(CVSS 8.1),并可能導致具有 root 權限的未經身份驗證的遠程代碼執行 (RCE)。
Reference:
[1]CVE-2024-6387: https://nvd.nist.gov/vuln/detail/CVE-2024-6387