OpenSSH 8.3 發布,修復了 scp 漏洞

經過三個月的開發 提出了 釋放 OpenSSH 8.3,客戶端和服務器的開放實現,用於通過 SSH 2.0 和 SFTP 協議工作。

新版本增加了對 scp 攻擊的保護,允許伺服器傳遞請求之外的其他檔案名稱(與 過去的脆弱性,攻擊無法更改使用者選擇的目錄或全域遮罩)。 回想一下,在 SCP 中,伺服器決定將哪些檔案和目錄傳送給客戶端,而用戶端僅檢查傳回的物件名稱的正確性。 所識別問題的本質是,如果 utimes 系統呼叫失敗,則檔案的內容將被解釋為檔案元資料。

當連接到攻擊者控制的伺服器時,在呼叫 utimes 時導致失敗的設定中使用 scp 進行複製時(例如,當 utimes 被禁止時),可以利用該功能在使用者的 FS 中保存其他檔案名稱和其他內容。 SELinux 策略或系統呼叫過濾器)。 估計發生真正攻擊的可能性很小,因為在典型配置中 utimes 呼叫不會失敗。 此外,該攻擊不會被忽視 - 當呼叫 scp 時,會顯示資料傳輸錯誤。

一般變化:

  • 在sftp中,「-1」參數的處理已停止,類似ssh和scp,先前被接受但被忽略;
  • 在 sshd 中,使用 IgnoreRhosts 時,現在有三種選擇:“yes”- 忽略 rhosts/shosts、“no”- 尊重 rhosts/shosts 和“shosts-only”- 允許“.shosts”但停用“.rhosts”;
  • ssh 現在支援 LocalFoward 和 RemoteForward 設定中的 %TOKEN 替換,用於重定向 Unix 套接字;
  • 如果沒有包含公鑰的單獨文件,則允許使用私鑰從未加密的文件載入公鑰;
  • 如果系統中存在 libcrypto,則 ssh 和 sshd 現在使用該函式庫中的 chacha20 演算法的實現,而不是效能落後的內建可移植實作;
  • 實作了執行指令「ssh-keygen -lQf /path」時轉儲已撤銷憑證的二進位清單內容的功能;
  • 可移植版本實現了具有 SA_RESTART 選項的訊號中斷 select 操作的系統定義;
  • 解決了HP/UX和AIX系統上的彙編問題;
  • 修復了在某些 Linux 配置上建置 seccomp 沙箱的問題;
  • 改進了 libfido2 庫檢測並使用“--with-security-key-builtin”選項解決了建置問題。

OpenSSH 開發人員也再次警告使用 SHA-1 雜湊的演算法即將分解,因為 晉升 給定前綴的碰撞攻擊的有效性(選擇碰撞的成本估計約為 45 美元)。 在即將發布的版本之一中,他們計劃默認禁用使用 ssh-rsa 公鑰數字簽名算法的功能,該算法在 SSH 協議的原始 RFC 中提到,並且在實踐中仍然廣泛存在(以檢查 ssh 的使用情況) -rsa 在您的系統中,您可以嘗試通過 ssh 使用“-oHostKeyAlgorithms=-ssh-rsa”選項進行連接)。

為了順利過渡到 OpenSSH 中的新算法,在下一版本中,將默認啟用 UpdateHostKeys 設置,這將自動將客戶端遷移到更可靠的算法。 推薦的遷移算法包括基於 RFC2 RSA SHA-256 的 rsa-sha512-8332/2(自 OpenSSH 7.2 起支持並默認使用)、ssh-ed25519(自 OpenSSH 6.5 起支持)和基於 ecdsa-sha2-nistp256/384/521 RFC5656 ECDSA(自 OpenSSH 5.7 起支持)。

截至最新版本,「ssh-rsa」和「diffie-hellman-group14-sha1」已從定義允許對新憑證進行數位簽章的演算法的CASignatureAlgorithms 清單中刪除,因為在憑證中使用SHA-1 會帶來額外的風險由於攻擊者有無限的時間來搜尋現有憑證的衝突,而對主機金鑰的攻擊時間則受到連線逾時(LoginGraceTime)的限制。

來源: opennet.ru

添加評論