世間を騒がす OpenSSL の脆弱性「Heartbleed」!最低限やっておきたい対策まとめ
最近コンタクトジャグリングを習い始めた kimoto です。全くやったことない分野の習い事、楽しいっす。
さて、4 月 7 日に発覚して以来世間を騒がし続けている OpenSSL の脆弱性、いわゆる Heartbleed 問題。
Web サイト運用などされている方でこの問題を聞いたことがないという方はもはや居ないかもしれませんが、事が事だけに少しでも広めていきたいと思います。この問題に今更聞けないも何もないです。
この記事では、最低限やっておきたい確認と対策を書いていきます。
Heartbleed の影響
この脆弱性を悪用するとどんなことになるのでしょうか?これを利用し攻撃されると、通信内容を盗聴され、ログイン情報や秘密鍵など、極めて重要な情報が漏洩する可能性があります。
しかも悪いことに、このバグを悪用して攻撃されてもその痕跡はサーバには残らないとのこと。つまり、重要な情報が漏れてしまっていたとしても、運営側にはわからないということになります。
この、極めて恐ろしいバグが、Heartbleed です。
何をすべきかのまとめ
まずなにをすべきかを簡単にまとめ、後から詳しく説明していきます。
- まずは OpenSSL のバージョンを確認。チェックツールも便利
- 影響範囲外ならとりあえず OK
- もし影響範囲内(1.0.1 ~ 1.0.1f、1.0.2-beta ~ 1.0.2-beta1)ならすみやかに OpenSSL をアップデート
- 秘密鍵、SSL 証明書を再発行し、過去のものを失効させる
- サービスのユーザに、安全である(になった)旨を告知する
ではひとつづつ説明します。
確認:まずはバグの影響範囲か確認する
この脆弱性は、OpenSSL の 1.0.1 ~ 1.0.1f、及び、1.0.2-beta ~ 1.0.2-beta1 が対象範囲内です。まずは運用しているサーバの OpenSSL のバージョンを確認しましょう。
バージョンは以下のコマンドで確認できます。
openssl version
また、Symantec さんがお手軽に確認できる便利なチェックツールを公開しています。
対策:穴を塞ぎ、鍵を変える
残念ながら脆弱性の範囲内だった場合は何をしたらいいか?まずは、早急に穴を塞ぎましょう。
現在、OpenSSL は脆弱性を修正したバージョンが公開されているので、すみやかにアップデートし、サーバの再起動を行います。
これで脆弱性自体は無くなりました。が、脆弱性が存在している時期に、秘密鍵が漏洩している可能性があります。
家の壁に穴あったので塞いだとしても、玄関の鍵が盗まれていては意味がありません。と言う事で、秘密鍵を作り直して SSL 証明書の再発行を行い、過去の証明書の破棄を行いましょう。
これでひとまず当面の脅威は去ったと言っていいと思います。(過去に個人情報などのデータが漏洩してしまっていた場合はこの限りではないですが)
サービスのユーザに告知する
サーバでの対策は以上ですが、Web サービスを運営しているのであれば、ユーザへの対応も必要になってきます。
一般の報道メディアでも扱われここまで大きな騒ぎになっていると、利用者も不安になっているはずです。安心して使ってもらうために、影響範囲外ならばその旨を、影響あったが対策したのであればその旨をお知らせしましょう。
また、他のサービスも含めて万が一パスワードなどが漏洩している可能性を考え、念の為パスワードを変えてもらい、また、パスワードは各サービスで使いまわさないようお願いするのがベストかと思います。