Debian JP Project

(for vocal browsers: toc, main)

Google
WWW 全体 www.debian.or.jp 検索

« 第13回 関西 Debian 勉強会のお知らせ | 一覧 | OpenSSL パッケージの脆弱性と脆弱なパッケージを含まない他の環境への影響について(Q&A) »

2008年05月15日

OpenSSL パッケージの脆弱性とその影響について (SSH鍵、SSL証明書等)

残念な事に Debian の OpenSSL パッケージに脆弱性が見つかりました。見つかった問題は既に修正されていますが、 今回の問題はパッケージの更新だけで済ませられないものとなっています。

今回の問題は、OpenSSL の乱数生成部分について、Debian の OpenSSL パッケージのメンテナが Valgrind (C/C++ プログラムでのメモリリークなどの問題を見つけるデバッグツール) を使っていて見つけた問題を修正しようとして誤ったパッチを当ててしまった事が原因です。 これによって、乱数が使われずに暗号が非常に弱いものとなってしまう問題が発生しました。 なお、この問題は Debian だけに止まらず Debian をベースとしているディストリビューション (Ubuntu など)やシステムにも影響があります。また、Debian を使っていない場合でも、ユーザが問題のあるバージョンの Openssl パッケージが含まれた Debian で生成したクライアント鍵を使っている場合は影響を受けることになるので注意してください

端的に影響を言うと、SSH サーバでパスワード認証ではなく鍵認証を利用している場合、 通常であれば鍵が無ければまずログインできないわけですが、乱数が推測可能な範囲になっているため、 総当たり攻撃によってログインされてしまう…などの影響が考えられます。 既に攻撃ツールはリリースされ、広く既知の状態となっていますので早めに対応ください。

今回の件について、簡単な要約をすると以下になります (詳しくは最新の openssh-client パッケージに含まれるドキュメント /usr/share/doc/openssh-client/README.compromised-keys.gz を参照していただくことをお勧め致します)。

SSH クライアント/サーバについて
  1. Sarge までの Debian で生成したSSH鍵は今回の問題の影響を受けません
  2. パッケージ (openssl, openssh-server) のアップデートを実施 (dist-upgrade)してください。
    OpenSSH サーバパッケージについては、最新の更新 (DSA-1576)で今回の対応としてホスト鍵を作り直すようになっています (ssh を通じて rsync などを運用している方は鍵の変更によって接続がエラーになりますので注意してください)。 詳しくは debian-users メーリングリストでの訳を参照ください
    また、openssh-blacklist パッケージが出来て server パッケージはこれに依存するようになっており、 明らかに脆弱なキーについては接続を拒否をするようになっています。このため、通常の upgrade では更新が反映されず、 dist-upgrade とする必要があります。
  3. OpenSSH の known_hosts ファイルを更新
    パッケージを更新後、ssh クライアントの known_hosts ファイル (~/.ssh/known_hosts) に登録されているホスト鍵と上記で更新されたサーバのホスト鍵が異なるので警告が出て繋がらないようになります。 クライアントの known_hosts から該当のホストを削除してください (ssh-keygen -R "hostname" コマンドで削除)。
  4. OpenSSH のクライアント鍵確認
    上記の更新に伴って、OpenSSH クライアントパッケージに確認用のツール (ssh-vulnkey) が含まれました。各自のクライアント鍵が影響を受けるかどうかをチェックしてください。 デフォルトの鍵ファイル名を使っている場合は "sudo ssh-vulnkey -a" で確認が出来ますし、違う鍵ファイル名の場合は "ssh-vulnkey /path/to/key" という形で確認が可能です。また、別のツール dowkd.pl (OpenPGP signature) も利用して二重にチェックする事をお勧めします。
  5. 影響を受けるクライアント鍵を更新
    SSH クライアント鍵については、各ユーザで作成をしなおす必要があります。 ssh-keygen コマンドを使って再生成してください。
  6. サーバに登録してあるクライアント鍵情報の更新 (authorized_keys ファイル)
    必要な場合となる場合は、リモートで接続する先の authorized_keys から脆弱な公開鍵情報を取り除いて、新たに生成した公開鍵の情報を登録してください。
SSL 証明書について
  1. Sarge までの Debian で生成したSSL証明書は今回の問題の影響を受けません。
  2. パッケージのアップデート (openssl) を実施してください。
  3. 利用しているサーバ/クライアント証明書を再生成してください。
  4. 他のシステムで使われている証明書がある場合は、新たに生成した証明書で置き換えてください。
その他パッケージについて

以下についても更新が必要となると思われます。必要に応じて 鍵のロールオーバーDebian Wiki の SSLkeys ページを確認してください。

  • cyrus imapd, courier imap/pop3
  • Apache2 SSL
  • dovecot, postfix, exim4 (サービスのリスタートが必要)
  • bincimap
  • boxbackup
  • cryptsetup
  • ekg
  • dropbear
  • ftpd-ssl
  • gforge
  • MIT Kerberos (krb5)
  • OpenSWAN / StrongSWAN
  • OpenVPN
  • puppet
  • sendmail
  • ssl-cert
  • telnetd-ssl
  • tinc
  • tor
  • xrdp

今後の対応として以下のページを参照ください。一部ページは状況に応じて更新予定です。

2008/05/15 01:02 リンク


過去のニュース