OpenSSH 接続を劣化させる Terrapin 攻撃:新たな研究成果が発表された

Terrapin attacks can downgrade security of OpenSSH connections

2023/12/19 BleepingComputer — 広く普及している暗号化モードにおいて、ハンドシェイク・プロセス中のシーケンス番号を操作することで SSH チャネルの整合性を破壊する、Terrapin という新しい攻撃手法を学術研究者たちが考え出した。この操作により、通信チャネルを通じて交換されるメッセージの削除/変更が、攻撃者に許されることになる。結果として、OpenSSH 9.5 のユーザー認証に使用される公開鍵アルゴリズムのダウングレードや、キーストローク・タイミング攻撃に対する防御の無効化などにいたるという。

研究者たちは、「Terrapin 攻撃は、SSH トランスポート層プロトコルの弱点と、10年以上も前に OpenSSH に導入された新たな暗号アルゴリズム/暗号化モードとの組み合わせを悪用するものだ」と述べている。Terrapin 攻撃は、クライアントやサーバに気づかないように、重要なネゴシエーション・メッセージを切り捨てることで、確立されているはずのセキュアな接続を危殆化させる。

Ruhr University Bochum 校の研究者たちは、この Terrapin 攻撃の可能性を証明し、また、AsyncSSH の悪用可能な実装上の欠陥も発見した。この攻撃に関連する脆弱性は、CVE-2023-48795/CVE-2023-46445/CVE-2023-46446 として特定されている。

Terrapin について注意すべき点は、攻撃者がハンドシェイク交換を傍受/改竄するためには、ネットワーク・レイヤーの中間者 (MiTM) の位置を確保する必要があり、また、接続は ChaCha20-Poly1305 または Encrypt-then-MAC を使用する CBC により保護される必要があることだ。

ハンドシェイク完了後に交換されるメッセージのデータにより、この攻撃による影響の深刻度が決まっていくという。

Terrapin attack overview
Terrapin attack overview

Terrapin 攻撃では特別な要件が前提となるが、言及された暗号化モードが広範囲に採用されているため (スキャンでは 77%)、この攻撃方法は現実世界のシナリオとマッチしている。

研究者たちは、「Terrapin 攻撃で悪用されるのは、10年以上も前に OpenSSH に導入された、当時の新たな暗号アルゴリズムと暗号化モードを組み合わせた、SSHトランスポート層プロトコルの弱点である。広く普及している SSH 実装において、この方式が採用されているため、現在の実装の大部分に影響を及ぼすことになる」と付け加えている。

このセキュリティ問題は、複数のベンダーにおいて徐々に緩和されている。ひとつの解決策は、ハンドシェイク中のパッケージ・インジェクションを不可能にするための、厳密な鍵交換を実装することだ。

しかし、このような問題への対処が普遍化するには時間が必要であり、また、前述の厳密な鍵交換の対策は、クライアント/サーバの双方で実装される場合においてのみ有効であると、研究者たちは指摘している。

この研究チームは、Terrapin 脆弱性スキャナーを GitHub で公開している。したがって、このスキャナーを利用する管理者たちは、対象となる SSH クライアント/サーバの Terrapin 耐性を判断できる。

ここまでに説明してきたように、Terrapin は単純なソフトウェアのバグではなく、単一のライブラリやコンポーネントのアップデートで修正できるものではない。したがって、厳密に対応するためには、クライアントとサーバを同時に更新して、プレフィックス切り捨て攻撃から接続を保護することが必要となる。

現時点において、この攻撃に対する最大の緩和要因は MiTM 要件であり、それにより Terrapin の脅威度が引き下げられている。したがって、多くの場合において、脆弱性 CVE-2023-48795 へのパッチ適用は優先されないかもしれない。

Terrapin 攻撃の詳細については、ドイツの研究者が発表したテクニカル・ホワイトペーパーを参照してほしい。