OpenSSH 10.3には、管理者が留意すべきセキュリティと互換性に関する変更点が含まれています。

  • OpenSSH 10.3には、クライアント、サーバー、およびscpやssh-agentなどのユーティリティに影響を与える5つのセキュリティ修正が含まれています。
  • 鍵再生成を行わない実装のサポートが削除されたため、古いSSHソフトウェアや非標準のSSHソフトウェアとの接続が切断される可能性があります。
  • 証明書とアルゴリズムに関する規則が変更され、プリンシパルマッチング、ワイルドカードの使用、ECDSA鍵の受け入れにおけるエラーが修正されています。
  • 多重化、ソースペナルティ、GSSAPI認証情報管理における運用上の改善、およびエージェントキーと拡張機能のサポートの拡張。

OpenSSH 10.3

OpenSSH 10.3 現在利用可能 今回のアップデートでは、セキュリティパッチ、動作変更、新機能などが導入され、システム管理者と開発者の両方に影響を与えます。新機能の多くは技術的なものですが、設定を注意深く確認しないと、古いクライアントやサーバーとの接続に障害が発生する場合があります。

OpenSSHがLinuxサーバー、BSDシステム、ネットワーク機器の中核コンポーネントとなっている企業環境においては、今回のアップデートは特に重要です。バージョン10.3では、脆弱性の修正、証明書検証の調整、および一部の設定オプションの処理方法の変更が行われているため、大規模展開前にプレプロダクション環境でテストすることをお勧めします。

非再鍵生成実装との互換性が損なわれている。

OpenSSH 10.3 の最も重要な変更点の 1 つは、以下のコードの削除です。 再キーイングをサポートしていない実装との「バグ互換性」これまで、このプロジェクトは、セッション中に鍵を再交渉する機能を持たない古い、あるいは非標準的なSSHクライアントやサーバーとの通信を継続できるように、一連の内部調整を行ってきた。

このバージョン以降、 SSHクライアントまたはサーバーは鍵の再生成をサポートしていませんOpenSSH 10.3 との接続は、接続確立時またはセッション中に失敗します。これは、旧式のソフトウェア、組み込み機器、または SSH プロトコルを不完全に実装している独自ソリューションを使用しているインフラストラクチャに影響を与える可能性があります。

組織のシステム管理者は SSHデバイスとサービスの一覧 アップグレード前に、すべてのコンポーネントが鍵再生成をサポートしているかどうかを確認してください。古いハードウェアやカスタムソフトウェアが使用されている環境では、それらのコンポーネントをアップグレードするか、OpenSSH 10.3を使用しないセグメントに分離する必要がある場合があります。

ユーザー名によるコマンドインジェクションバグの修正

クライアントで SSHが検証の脆弱性を修正 これにより、特定の条件下では、ユーザー名に含まれる特殊なシェル文字をセキュリティチェックの前に展開することが可能になります。問題は、サードパーティが管理するユーザー名や、置換トークンを使用した高度な設定を使用する場合に発生します。

具体的には、この脆弱性はトークンを含む構成に影響を与えます。 %u は Match 実行ブロック内にあります ssh_config ファイル内で、ssh コマンドに渡されるユーザー名を操作できる攻撃者は、メタ文字展開を利用してシェル内で任意のコマンドを実行できる可能性があります。

新バージョンでは、これらのパラメータの検証順序を調整します。 危険な拡大を防ぐ 悪意のあるユーザー名による攻撃を防ぐため、開発者はSSHコマンドライン引数を信頼できない入力に公開することは、特に大規模環境で使用されるスクリプトや自動化ツールにおいては、依然として悪い設計慣行であると指摘しています。

証明書の取り扱いと主な変更

OpenSSH 10.3 では、 SSH証明書管理とその「主要機能」 (証明書が関連付けられているID)は、アクセス検証の方法に直接影響を与えます。

主要文字とコンマのマッチングに関するバグ

エラーが修正されました sshd を比較する際のメインオプション="" この問題は、証明書に含まれるプリンシパルのリストを含む authorized_keys ファイルのエントリに起因していました。証明書内のプリンシパル名のいずれかにカンマが含まれている場合にエラーが発生し、特定の状況下で不適切な一致が生じる可能性がありました。

この問題が悪用可能となるためには、いくつかの条件を満たす必要がありました。入力が authorized_keysには複数のメインキーが含まれますこのバグにより、認証局はこれらの名前を複数カンマで区切った証明書を発行し、ユーザーが信頼した認証局キーを使用するようになりました。TrustedUserCAKeysとAuthorizedPrincipalsFileに基づく主要な証明書認証フローは影響を受けませんでした。

プリンシパルリストが空の証明書

行動の変化は、 証明書における問題のある歴史的設計これまで、principals セクションが空の証明書を authorized_keys principals="" と一緒に使用した場合、事実上ワイルドカードとして扱われ、同じ認証局を信頼する任意のユーザーとして認証することが可能でした。

これは、一見分かりにくいリスクをもたらしました。誤って発行した認証局が メインリストが空の証明書 これは意図せず極めて広範なアクセス権限を付与してしまうという問題がありました。OpenSSH 10.3ではこの状況が改善され、プリンシパルが指定されていない証明書はどのプリンシパルにも一致しないとみなされるようになり、このような危険な「ワイルドカード」動作が防止されます。

さらに、このプロジェクトは メイン証明書におけるワイルドカードの扱いを統一したホスト証明書ではワイルドカードの使用が許可されていますが、ユーザー証明書では許可されていません。これは、より予測可能で監査しやすい動作を実現することを目的としており、NIS2やENSなどのフレームワークの対象となる欧州組織のセキュリティ監査において特に重視されます。

ECDSAアルゴリズムの厳密な適用

暗号化セクションでは、OpenSSH 10.3 は、 PubkeyAcceptedAlgorithmsおよびHostbasedAcceptedAlgorithmsディレクティブの適用 ECDSAキーの場合。このバージョンまでは、ECDSAアルゴリズムの名前がこれらのリストのいずれかに表示されていた場合、明示的にリストされていなくても、サーバーは事実上他のECDSAアルゴリズムを受け入れていました。

新しい改訂により、 sshdは許可されたアルゴリズムのリストを正確に尊重します。これにより、そのギャップが解消され、使用できるECDSAのバリアントをより細かく制御できるようになります。これは、アルゴリズムのセットをより堅牢なプロファイルに限定したり、国家安全保障上の勧告に沿わせたりしたい管理者にとって有用です。

root権限でダウンロードする際のscpの不具合を修正しました。

ツール SCPもセキュリティ調整を受ける レガシーモード(rcp互換)で使用し、root権限で実行する場合。以前のバージョンでは、-pオプションを使用せずにファイルをダウンロードすると、受信したファイルからsetuidおよびsetgidビットが削除されませんでした。

この行動は、 バークレーのオリジナルCPRこれは、特定のコピーワークフローにおいて危険な場合があります。特別なアクセス許可で転送されたファイルが、転送先のシステム上で昇格された権限で実行される可能性があるためです。OpenSSH 10.3 では、この動作を修正し、データセンターの運用サーバーで一般的に行われているリモート管理におけるセキュリティを強化しています。

ProxyJumpの検証と多重化制御の強化

高度な接続オプションに関して、クライアントは改善を導入しています。 ProxyJump(-J または -oProxyJump パラメータ)コマンドライン経由で渡されるユーザー値とホスト値は、より厳密に検証されるようになり、これらのフィールドが信頼できない入力によって影響を受ける可能性のある構成において、潜在的なコマンドインジェクション攻撃を防ぐようになりました。

この点に注目すべきである。 検証はコマンドライン経由で受信したデータにのみ適用されます。 また、設定ファイル内で定義されている値には影響を与えません。それでも、ProxyJumpを動的に使用するスクリプト、自動化ツール、およびツールに対して、追加の保護層を提供します。

接続多重化の分野では、 ControlMasterのask/autoask使用時のセッション確認 「ssh -O proxy」を使用したプロキシモードの場合。以前は、このタイプの多重化セッションでは確認要求が正しく評価されませんでした。

さらに、取得するための新しいコマンドが追加されました。 アクティブなセッションに関する詳細情報コマンド「ssh -O conninfo」とエスケープシーケンス「~I」は、進行中のセッションの接続情報を表示します。一方、「ssh -O channels」は、マルチプレクサプロセスが開いているチャネルを報告します。これらの機能は、EUの大規模組織やサービスプロバイダーでよく見られる複雑な環境におけるトラブルシューティングを容易にします。

ssh-agent、ssh-add、およびキー管理の新機能

OpenSSH 10.3 は、 IETFドラフトdraft-ietf-sshm-ssh-agentとの整合性 SSHエージェントに関しては、IANAがエージェント転送用に割り当てた新しいコードポイントとの互換性が追加されました。これにより、サーバーがEXT_INFOメッセージを使用してこれらの名前のサポートを通知した場合、OpenSSHは標準化された識別子の使用を優先します。

しかし、 @openssh.com サフィックスが付いた歴史的な拡張機能既存のインフラストラクチャとの相互運用性を確保します。また、ssh-agentコンポーネントは、同じドラフトで定義されている「query」拡張機能のサポートも組み込んでおり、エージェントの機能をより構造的に照会できます。

一方、公益事業は ssh-add は -Q オプションを追加します エージェントがサポートするプロトコル拡張機能を照会します。この機能は、異なるシステムに展開されたエージェントで利用可能な機能を確認する必要があるセキュリティチームや運用チームにとって特に役立ちます。

鍵の分野では、 ssh-keygenに、ED25519キーをPKCS8形式で書き込む機能が追加されました。これにより、ビジネスや公共行政環境で使用される他の暗号化ツールやライブラリとの統合が容易になります。

SSHDにおける起源ペナルティと診断の改善

SSHサーバーには、悪用を軽減し、監視を容易にするための改善が組み込まれています。その1つは、 PerSourcePenalties 内の invaliduser ペナルティこれは、システムに存在しないユーザー名でログイン試行があった場合に適用されます。

デフォルトでは、この新しい罰則は 5秒待つこれは既存の認証失敗時のペナルティと整合していますが、管理者はブルートフォース攻撃や大量ユーザーによる不正アクセスを検知した場合、より長いペナルティ期間を設定できます。さらに、ペナルティの時間分解能は浮動小数点演算となり、高頻度イベント発生時には1秒未満のペナルティを設定できるようになりました。

並行して、上記で説明した新しい多重化機能(「ssh -O conninfo」、「ssh -O channels」、およびエスケープ「~I」)は、 アクティブな接続の可視性の向上これは、SSHトンネルやチャネルの遅​​延問題、ブロッキング、または異常な使用状況を診断する際に非常に役立ちます。

セキュリティと互換性に関するさらなる変更

OpenSSH 10.3 では、 sshdサーバーオプションGSSAPIDelegateCredentialsこの設定は、サーバーがクライアントから提供された委任認証情報を受け入れるかどうかを制御します。このオプションは既存のクライアント側のポリシーを反映しており、Kerberosや同様の認証情報委任に関する各組織の内部ポリシーに合わせて動作を調整できます。

範囲 ssh_config の RevokedHostKeys ディレクティブと sshd_config の RevokedKeys ディレクティブこれにより、複数のファイルを参照できるようになりました。プロジェクト、部門、信頼レベルごとに分けられた失効キーリストの管理が容易になり、複数のチームやベンダーが存在する大規模なインフラストラクチャで役立ちます。

このバージョンでは、いくつかの実用的な問題も修正されています。 PKCS#11キーのPIN入力機能はバージョン10.1および10.2で導入されました。ポータブルブランチでは、FIDO/WebAuthn証明書の署名処理が改善され、Matchブロック内のサブシステムディレクティブの欠落に関連するsshdクラッシュが修正され、PAMモジュールにおけるユーザー名の混同問題が対処されています。

このリリースでは、OpenSSH 10.3 は、 安全性を向上させる包括的な変更パッケージこのバージョンでは、従来の動作を調整し、管理機能を拡張しながら、最新のほとんどの環境との互換性を維持します。リモート管理、自動化、セキュアなトンネル接続にSSHを使用している組織は、アップグレードを計画する際に、まずテスト環境を見直し、従来のシステム実装、特殊なオプション、高度にカスタマイズされた構成に潜在的な問題がないかを確認することをお勧めします。

NetworkManager 1.56
関連記事
NetworkManager 1.56はネットワーク管理とセキュリティの重要な改善を伴って登場しました