2008年10月16日
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 クライアント/サーバについて
-
- Sarge までの Debian で生成したSSH鍵は今回の問題の影響を受けません。
- パッケージ (openssl, openssh-server) のアップデートを実施 (dist-upgrade)してください。
OpenSSH サーバパッケージについては、最新の更新 (DSA-1576)で今回の対応としてホスト鍵を作り直すようになっています (ssh を通じて rsync などを運用している方は鍵の変更によって接続がエラーになりますので注意してください)。 詳しくは debian-users メーリングリストでの訳を参照ください。
また、openssh-blacklist パッケージが出来て server パッケージはこれに依存するようになっており、 明らかに脆弱なキーについては接続を拒否をするようになっています。このため、通常の upgrade では更新が反映されず、 dist-upgrade とする必要があります。 - OpenSSH の known_hosts ファイルを更新
パッケージを更新後、ssh クライアントの known_hosts ファイル (~/.ssh/known_hosts) に登録されているホスト鍵と上記で更新されたサーバのホスト鍵が異なるので警告が出て繋がらないようになります。 クライアントの known_hosts から該当のホストを削除してください (ssh-keygen -R "hostname" コマンドで削除)。 - OpenSSH のクライアント鍵確認
上記の更新に伴って、OpenSSH クライアントパッケージに確認用のツール (ssh-vulnkey) が含まれました。各自のクライアント鍵が影響を受けるかどうかをチェックしてください。 デフォルトの鍵ファイル名を使っている場合は "sudo ssh-vulnkey -a" で確認が出来ますし、違う鍵ファイル名の場合は "ssh-vulnkey /path/to/key" という形で確認が可能です。また、別のツール dowkd.pl (OpenPGP signature) も利用して二重にチェックする事をお勧めします。 - 影響を受けるクライアント鍵を更新
SSH クライアント鍵については、各ユーザで作成をしなおす必要があります。 ssh-keygen コマンドを使って再生成してください。 - サーバに登録してあるクライアント鍵情報の更新 (authorized_keys ファイル)
必要な場合となる場合は、リモートで接続する先の authorized_keys から脆弱な公開鍵情報を取り除いて、新たに生成した公開鍵の情報を登録してください。
- SSL 証明書について
-
- Sarge までの Debian で生成したSSL証明書は今回の問題の影響を受けません。
- パッケージのアップデート (openssl) を実施してください。
- 利用しているサーバ/クライアント証明書を再生成してください。
- 他のシステムで使われている証明書がある場合は、新たに生成した証明書で置き換えてください。
- その他パッケージについて
以下についても更新が必要となると思われます。必要に応じて 鍵のロールオーバーや 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
今後の対応として以下のページを参照ください。一部ページは状況に応じて更新予定です。
- DSA-1571-1 openssl -- 予測可能な乱数の生成
- DSA-1576-1 openssh -- 予測可能な乱数の生成 (パッケージはさらに更新されています。5/17 14:00 現在、1:4.3p2-9etch2 が最新バージョンですが、mips アーキテクチャは現在パッケージの生成が追いついていません)
- Debian Wiki の SSLkeys ページ (適宜更新されています)
- 鍵のロールオーバー (5/19 20:00 現在、OpenSSH、bincimap、boxbackup、cryptsetup、dropbear、ekg、ftpd-ssl、gforge、MIT Kerberos (krb5)、OpenSWAN / StrongSWAN、OpenVPN、puppet、sendmail、ssl-cert、telnetd-ssl、tinc、tor、xrdp についての情報が掲載されています。
2008/10/16 23:02 リンク
過去のニュース
- 2023 年のニュース
- 2022 年のニュース
- 2021 年のニュース
- 2020 年のニュース
- 2019 年のニュース
- 2018 年のニュース
- 2017 年のニュース
- 2016 年のニュース
- 2015 年のニュース
- 2014 年のニュース
- 2013 年のニュース
- 2012 年のニュース
- 2011 年のニュース
- 2010 年のニュース
- 2009 年のニュース
- 2008 年のニュース
- 2007 年のニュース
- 2006 年のニュース
- 2005 年のニュース
- 2004 年のニュース
- 2003 年のニュース
- 2002 年のニュース
- 2001 年のニュース
- 2000 年のニュース
- 1999 年のニュース
- 1998 年のニュース
- 1997 年のニュース