ルール大学ボーフムの研究者たちはこのほど、「Terrapin Attack」において、SSHプロトコルを標的とした「Terrapin」と呼ばれる、サイバー攻撃の新たな手法を発表した。この攻撃手法はルール大学ボーフムのFabian Bäumer氏、同大学のMarcus Brinkmann氏、同大学のJörg Schwenk氏が共同で執筆した論文「(PDF) Terrapin Attack: Breaking SSH Channel Integrity By Sequence Number Manipulation」にて詳しく解説されている。

  • Terrapin Attack

    Terrapin Attack

新たな攻撃手法「Terrapin」の概要

SSHはネットワークを介したリモート端末ログインやファイル転送を安全に行うためのインターネット標準のプロトコル。リモートからの操作を暗号化して安全に行うことが可能で、欠かすことのできないものとなっている。

今回発表された「Terrapin攻撃」は、SSHプロトコルを標的としたプレフィックス切り捨て攻撃とされる。接続初期に行われるハンドシェイク中にシーケンス番号を慎重に調整することで、クライアントおよびサーバに気づかれることなく送信された任意の量のメッセージを削除することができる。

この攻撃により安全性の低いクライアント認証アルゴリズムを使用させたり、キーストロークの不明瞭化を無効にしたりと、セキュリティのダウングレードが可能だという。この攻撃を実行するには通信を中継する必要があるため、中間者攻撃(MITM: Man-in-the-middle attack)に分類される。

  • Terrapin攻撃の概要 - 提供:ルール大学ボーフム

    Terrapin攻撃の概要 引用:ルール大学ボーフム

SSHv2プロトコルを実装するPythonパッケージの「AsyncSSH」では、サーバのステートマシンに複数の脆弱性が見つかっており、Terrapin攻撃を使用することで攻撃者は被害者に気づかれることなく別のアカウントにログインさせることが可能とされる。この場合、暗号化されたセッション内で攻撃者に中間者攻撃を許す可能性がある。

この攻撃を実行するには、攻撃者は中間者攻撃を実現できる環境と、ChaCha20-Poly1305またはEncrypt-then-MACを使用したCBCによる保護がなされた接続が必要。多くのSSH接続でこれらの暗号モードが広く採用されていることが確認されており、中間者攻撃が可能であれば多くのSSHセッションに対して攻撃可能とみられている。

「Terrapin攻撃」への対抗策

ルール大学ボーフムはSSHサーバおよびクライアントがこの攻撃に脆弱化どうかを判断するためのコンソールアプリケーションをGitHubの「GitHub - RUB-NDS/Terrapin-Scanner: This repository contains a simple vulnerability scanner for the Terrapin attack present in the paper "Terrapin Attack: Breaking SSH Channel Integrity By Sequence Number Manipulation".」にて提供している。このアプリケーションは脆弱な暗号化モードが提供されているか、厳密なキー交換対策がサポートされているかを検出する。

この攻撃を防止するにはクライアントとサーバ双方のSSHアプリケーションを更新する必要がある。システムごとに採用しているアプリケーションが異なるため、確認してアップデートすることが望まれている。この問題を完全に解決するにはすべてのクライアントとサーバを更新する必要があるため、解決には数年以上の時間がかかると推測されている。

2023年12月18日(カナダ時間)、OpenBSDプロジェクトはTerrapin攻撃へのセキュリティ修正を含むOpenSSH 9.6/9.6p1のリリースを発表した(参考:「OpenSSH 9.6 released!」)。OpenSSHは鍵交換中に不要なメッセージや予測されないメッセージを受け取った場合に接続の終了を要求することでTerrapin攻撃を妨害する。OpenSSHはこの攻撃による影響は限定的と評価しており緊急の対応は求めていないが、必要に応じてアップデートすることが望まれている。