PuTTY の深刻な脆弱性 CVE-2024-31497 が FIX:秘密鍵の大幅に弱体化

CVE-2024-31497: Critical PuTTY Vulnerability Exposes Private Keys – Immediate Action Required

2024/04/15 SecurityOnline — 一般的な SSH クライアントである、PuTTY バージョン 0.68〜0.80 に存在する、深刻な脆弱性 CVE-2024-31497 が発見された。この脆弱性は、FileZilla/WinSCP/TortoiseGit/TortoiseSVN などの、広範なソフトウェアに影響を及ぼす。この脆弱性の悪用に成功した攻撃者は、NIST P-521 曲線を用いた ECDSA アルゴリズムで使用される秘密鍵を大幅に弱体化させ、容易に復元できる状態にするという。この欠陥は、Ruhr 大学 Bochum.の、セキュリティ研究者である Fabian Bäumer と Marcus Brinkmann により発見された。

問題点

脆弱性 CVE-2024-31497 は 、PuTTY が ECDSA 署名プロセスで使用する、ランダム値 (nonces) を生成する方法に起因する。NIST P-521 の設定では、ランダム性に大きな偏りが生じている。この偏りを悪用する攻撃者は、漏洩した鍵で作成された署名を、わずか 60 ほど収集した後に、秘密鍵を再構築することが可能になるという。

誰が危険にさらされるのか?

影響を受けるバージョンの PuTTY や Filezilla などを、ECDSA NIST P-521 鍵を使用した SSH 認証に使用している、すべての人々が脆弱な状況にある。攻撃者が試行できるアクションとしては、接続先の SSH サーバの容易な侵害/鍵を使用した公開ソース (署名済みの Git コミットなど) からの署名の取得などがある。

この脆弱性は、PuTTY のユーザーに影響するだけではなく、他のいくつかのツールにも理教が及ぶ:

  • FileZilla:バージョン 3.24.1〜3.66.5
  • WinSCP:バージョン 5.9.5〜6.3.2
  • TortoiseGit:バージョン 2.4.0.2〜2.15.0
  • TortoiseSVN:バージョン 1.10.0〜1.14.6
結果

漏洩した秘密鍵により、悲惨な結果がもたらされる。あなたに、なりすました攻撃者が、その鍵を認証に使っている、すべてのサーバにアクセスする可能性が生じる。この脆弱性に対してパッチが適用された後でも、その被害は継続する。つまり、すでに公開された鍵は、永久に危険にさらされる。

行うべきこと
  1. 脆弱な鍵を特定する: ECDSA NIST P-521 鍵の使用の有無を確認する。PuTTYgen では、フィンガープリントは “ecdsa-sha2-nistp521” で始まる。
  2. 危殆化した鍵を失効させる: サーバ上の全ての authorized_keys ファイルと、それらが使用されているオンラインサービス (GitHub など) から、漏洩した公開鍵を削除する。
  3. 新しい鍵を生成する: 漏洩した鍵の代わりに、新しい鍵ペアを作成する。理想的には、影響を受けない Ed25519 を使用すべきだ。
  4. ソフトウェアのアップデート:PuTTY を直ちにバージョン0.81 以降にアップデートする。FileZilla 3.67.0/WinSCP 6.3.3/TortoiseGit 2.15.0.1/TortoiseSVN においても、同様にアップデートする。TortoiseSVNを 更新できない場合には、SSH 接続において、更新された PuTTY Plink を使用するように切り替えてほしい。
その他の注意事項
  • この欠陥は、受動的なネットワーク・スヌーピングにより、シグネチャが公開されるものではない。攻撃者は、サーバを能動的に制御し、また、署名されたデータにアクセスする必要がある。
  • 他の ECDSA 鍵サイズでは、若干の偏りが見られるが、現時点では実用的に悪用可能ではないという。