本ブログでも紹介していますが、OpenSSLというWebサーバ側で使用されるオープンソースのSSL/TLS実装ライブラリに非常に危険な脆弱性が発見されました。
OpenSSLの脆弱性「Heartbleed Bug」をチェックするサイト : I believe in technology
オープンソースのSSL/TLS実装ライブラリ「OpenSSL」に深刻な脆弱性が見つかり、今朝から大きな話題となっています。
といっても、サーバ管理者でもセキュリティエンジニアでもない方にとっては、この脆弱性が意味するところを理解するのはなかなか難しいのではないかと思います。
そこで今回は、この脆弱性が一般的なインターネット利用者に与える影響について解説し、その後、私が実践している利用者としての対策をご紹介したいと思います。
参考になれば幸いです。
今回発見されたHeartBleed脆弱性が悪用された場合、主に会員制のWebサイトなどで利用されている暗号化技術が意味をなさなくなります。攻撃者は、HeartBleed脆弱性が存在するサイトから、IDやパスワードなどの本来暗号化してやりとりしている情報やその暗号化に使用されている証明書の秘密鍵と呼ばれるデータなど機密性の高い情報を抜き取ることができます。
しかも、この脆弱性は2年間に渡り存在していたため、皆さんが第三者に盗まれないよう大切に管理しているIDやパスワード、個人情報などがすでに盗まれてしまっている可能性があります。
IDやパスワードを盗まれると、各種会員制サイトでなりすましが簡単に可能となります。
また、Webサイトの証明書の秘密鍵が盗まれることで、そのWebサイト自体になりすますことも可能となります。本ブログでも何度か紹介していますが、銀行などの偽サイト(それもこれまで紹介したものよりもさらに見分けがつけづらい偽サイト)を作成され、利用者をだますことが可能になります。
脆弱性そのものはサーバサイドに存在するため、サーバ側が対処してくれるまでは上記のようなリスクが利用者側に伴います。
しかも、一般的な利用者が果たしてサーバ側にそのような脆弱性が存在するのか、あるいは存在していたのかを知るのは困難です。
それでも手がないわけではありません。
一つは、信頼できる第三者による調査結果を参考にするという方法があります。
HeartBleed脆弱性が与える影響は全世界的です。そのため、すでにHeartBleed脆弱性が存在しているサイトのリストが公開されています。そのリストの中に利用しているサイトがあれば、後述の対策を取るといった対応ができます。ここでは、CNETが公開しているリストをご紹介します。
CNETによるHeartBleed脆弱性修正リスト
Heartbleed bug: Check which sites have been patched - CNET
CNETのリストは現時点(日本時間2014年4月13日AM11時)は頻繁に更新されており、いずれリアルタイムに対応可能になる予定です。このリストは主要なサイトを後述するQualysのチェックツールでチェックした結果と「Confirmation from site」(サイトからの確証)で構成されています。
このリストの各項目の意味は以下です。
「Qualys」(Qualysによる調査結果)
・Be on alert
→要警戒
・Pass
→問題なし
・Not available
→Qualysでは確認できなかった
「Confirmation from site」(サイトからの確証)
・Vulnerability patched. Password change recommended
→脆弱性修正完了。パスワード変更を推奨
・Was not vulnerable
→脆弱性はなかった
・Awaiting response
→回答待ち
リストを見る際はまず「Qualys」項目を確認します。「Be on alert」となっているサイトにはまだ脆弱性がありますので、これらのサイトは当面ログインしないようにしましょう。
次に「Pass」および「Not available」となっているサイトについては「Confirmation from site」項目を確認します。「Was not vulnerable」であればHeartBleed脆弱性はなかったとサイト側が言っているのでひとまず安心できるでしょう。「Vulnerability patched. Password change recommended」であれば脆弱性はあったものの修正されています。この場合はパスワードを変更しましょう。「Awaiting response」はまだ回答が得られていないので待つ必要があります。
気をつけないといけないのは、まだHeartBleed脆弱性が存在しているサイトでうかつにログインしてしまうとその時点でパスワードを盗まれてしまうかもしれないということです。脆弱性が修正されていないうちは、パスワードの変更はもちろんログイン自体を避けた方がよいと思います。
「脆弱性の有無の確認〜その1」ではリストの利用方法を紹介しました。これは現時点でリストにある皆さんが利用しているサイトの状況を確認することができますが、「Awaiting response」となっているサイトの状況を何度もリストにアクセスしてチェックするのは少し面倒です。また、リストには海外のサイトはありますが、国内のサイトはありません。
そこで、私が使っているツール「Chromebleed」とセキュリティベンダーQualysによる「SSL Server Test」を使った方法をご紹介します。
まずは、「Chromebleed」ですがこれはブラウザ「Chrome」の拡張機能です。「Chrome」をお使いの方は以下のサイトからインストールが可能です。
Chrome ウェブストア - Chromebleed
「Chromebleed」をインストールし、ブラウジングしていると、脆弱性があるサイトではアラートが表示されます。例えばこんな感じです。

アラートが表示されればそのサイトにはHeartBleed脆弱性がある可能性があります。
ただし、誤検知の可能性もあるので、私の場合はそのようなサイトをさらにQualysの「SSL Server Test」にかけています。
Qualys SSL Labs - Projects / SSL Server Test
「SSL Server Test」はHeartBleed脆弱性だけでなく、そのサイトの証明書や暗号強度など詳細に分析し、その結果をレーティングしてくれます。使い方は簡単です。調べたいサイトのドメイン名を入れ、「Submit」ボタンを押すだけ。
しばらく待つと下記のように結果が表示されます。

「This server is vulnerable to the Heartbleed attack. 」と表示されるとHeartBleed脆弱性が存在します。その場合は、レーティングがFになるようです。
このように私は「Chromebleed」でアラートが上がったらQualysの「SSL Server Test」で確認するようにしています。
一部繰り返しになりますが、私は上記2つの方法でHeartBleed脆弱性を確認し、HeartBleed脆弱性がある、あるいはあったことがわかったら以下のような対策を取っています。
対策1
その1でリストに利用しているサイトがあり「Vulnerability patched. Password change recommended」の場合、パスワードを変更し、対処済みサイトとして書き留めておく
対策2
その1でリストに利用しているサイトがあり「Awaiting response」の場合、未確認サイトとして書き留めておく
対策3
「Chromebleed」でアラートが上がったらQualysの「SSL Server Test」で確認し、HeartBleed脆弱性が存在していたらログインをやめ、そのサイトを脆弱性サイトとして書き留めておく
対策4
対策2,3で書き留めたサイトを時々Qualysの「SSL Server Test」でチェックし、HeartBleed脆弱性が修正されたらパスワードを変更し、対処済みサイトとして書き留めておく
対策5
その1のリストを確認し、対策2,3で書き留めたリストに変更がないか確認し、HeartBleed脆弱性が修正されたらパスワードを変更し、対処済みサイトとして書き留めておく
書き出すと結構めんどくさく思えるかもしれませんが、作業が多いのは最初の対策1、2の時です。その後は、ほとんど「Chromebleed」に任せており、必要に応じて対策4,5を行う程度です。
むろん、これで100%安全というわけではありませんが、ある程度自衛するために行っています。とりあえず対策1,2を行い、「Chromebleed」を入れておくだけでも効果はあると思います。
よろしければ参考になさってください。
オープンソースのSSL/TLS実装ライブラリ「OpenSSL」に深刻な脆弱性が見つかり、今朝から大きな話題となっています。
といっても、サーバ管理者でもセキュリティエンジニアでもない方にとっては、この脆弱性が意味するところを理解するのはなかなか難しいのではないかと思います。
そこで今回は、この脆弱性が一般的なインターネット利用者に与える影響について解説し、その後、私が実践している利用者としての対策をご紹介したいと思います。
参考になれば幸いです。
HeartBleed脆弱性が一般的利用者に与える影響
今回発見されたHeartBleed脆弱性が悪用された場合、主に会員制のWebサイトなどで利用されている暗号化技術が意味をなさなくなります。攻撃者は、HeartBleed脆弱性が存在するサイトから、IDやパスワードなどの本来暗号化してやりとりしている情報やその暗号化に使用されている証明書の秘密鍵と呼ばれるデータなど機密性の高い情報を抜き取ることができます。
しかも、この脆弱性は2年間に渡り存在していたため、皆さんが第三者に盗まれないよう大切に管理しているIDやパスワード、個人情報などがすでに盗まれてしまっている可能性があります。
IDやパスワードを盗まれると、各種会員制サイトでなりすましが簡単に可能となります。
また、Webサイトの証明書の秘密鍵が盗まれることで、そのWebサイト自体になりすますことも可能となります。本ブログでも何度か紹介していますが、銀行などの偽サイト(それもこれまで紹介したものよりもさらに見分けがつけづらい偽サイト)を作成され、利用者をだますことが可能になります。
脆弱性そのものはサーバサイドに存在するため、サーバ側が対処してくれるまでは上記のようなリスクが利用者側に伴います。
しかも、一般的な利用者が果たしてサーバ側にそのような脆弱性が存在するのか、あるいは存在していたのかを知るのは困難です。
脆弱性の有無の確認〜その1 リストの利用
それでも手がないわけではありません。
一つは、信頼できる第三者による調査結果を参考にするという方法があります。
HeartBleed脆弱性が与える影響は全世界的です。そのため、すでにHeartBleed脆弱性が存在しているサイトのリストが公開されています。そのリストの中に利用しているサイトがあれば、後述の対策を取るといった対応ができます。ここでは、CNETが公開しているリストをご紹介します。
CNETによるHeartBleed脆弱性修正リスト
CNETのリストは現時点(日本時間2014年4月13日AM11時)は頻繁に更新されており、いずれリアルタイムに対応可能になる予定です。このリストは主要なサイトを後述するQualysのチェックツールでチェックした結果と「Confirmation from site」(サイトからの確証)で構成されています。
このリストの各項目の意味は以下です。
「Qualys」(Qualysによる調査結果)
・Be on alert
→要警戒
・Pass
→問題なし
・Not available
→Qualysでは確認できなかった
「Confirmation from site」(サイトからの確証)
・Vulnerability patched. Password change recommended
→脆弱性修正完了。パスワード変更を推奨
・Was not vulnerable
→脆弱性はなかった
・Awaiting response
→回答待ち
リストを見る際はまず「Qualys」項目を確認します。「Be on alert」となっているサイトにはまだ脆弱性がありますので、これらのサイトは当面ログインしないようにしましょう。
次に「Pass」および「Not available」となっているサイトについては「Confirmation from site」項目を確認します。「Was not vulnerable」であればHeartBleed脆弱性はなかったとサイト側が言っているのでひとまず安心できるでしょう。「Vulnerability patched. Password change recommended」であれば脆弱性はあったものの修正されています。この場合はパスワードを変更しましょう。「Awaiting response」はまだ回答が得られていないので待つ必要があります。
気をつけないといけないのは、まだHeartBleed脆弱性が存在しているサイトでうかつにログインしてしまうとその時点でパスワードを盗まれてしまうかもしれないということです。脆弱性が修正されていないうちは、パスワードの変更はもちろんログイン自体を避けた方がよいと思います。
脆弱性の有無の確認〜その2 ツールの利用
「脆弱性の有無の確認〜その1」ではリストの利用方法を紹介しました。これは現時点でリストにある皆さんが利用しているサイトの状況を確認することができますが、「Awaiting response」となっているサイトの状況を何度もリストにアクセスしてチェックするのは少し面倒です。また、リストには海外のサイトはありますが、国内のサイトはありません。
そこで、私が使っているツール「Chromebleed」とセキュリティベンダーQualysによる「SSL Server Test」を使った方法をご紹介します。
まずは、「Chromebleed」ですがこれはブラウザ「Chrome」の拡張機能です。「Chrome」をお使いの方は以下のサイトからインストールが可能です。
Chrome ウェブストア - Chromebleed
「Chromebleed」をインストールし、ブラウジングしていると、脆弱性があるサイトではアラートが表示されます。例えばこんな感じです。
アラートが表示されればそのサイトにはHeartBleed脆弱性がある可能性があります。
ただし、誤検知の可能性もあるので、私の場合はそのようなサイトをさらにQualysの「SSL Server Test」にかけています。
Qualys SSL Labs - Projects / SSL Server Test
「SSL Server Test」はHeartBleed脆弱性だけでなく、そのサイトの証明書や暗号強度など詳細に分析し、その結果をレーティングしてくれます。使い方は簡単です。調べたいサイトのドメイン名を入れ、「Submit」ボタンを押すだけ。
しばらく待つと下記のように結果が表示されます。
「This server is vulnerable to the Heartbleed attack. 」と表示されるとHeartBleed脆弱性が存在します。その場合は、レーティングがFになるようです。
このように私は「Chromebleed」でアラートが上がったらQualysの「SSL Server Test」で確認するようにしています。
対策
一部繰り返しになりますが、私は上記2つの方法でHeartBleed脆弱性を確認し、HeartBleed脆弱性がある、あるいはあったことがわかったら以下のような対策を取っています。
対策1
その1でリストに利用しているサイトがあり「Vulnerability patched. Password change recommended」の場合、パスワードを変更し、対処済みサイトとして書き留めておく
対策2
その1でリストに利用しているサイトがあり「Awaiting response」の場合、未確認サイトとして書き留めておく
対策3
「Chromebleed」でアラートが上がったらQualysの「SSL Server Test」で確認し、HeartBleed脆弱性が存在していたらログインをやめ、そのサイトを脆弱性サイトとして書き留めておく
対策4
対策2,3で書き留めたサイトを時々Qualysの「SSL Server Test」でチェックし、HeartBleed脆弱性が修正されたらパスワードを変更し、対処済みサイトとして書き留めておく
対策5
その1のリストを確認し、対策2,3で書き留めたリストに変更がないか確認し、HeartBleed脆弱性が修正されたらパスワードを変更し、対処済みサイトとして書き留めておく
書き出すと結構めんどくさく思えるかもしれませんが、作業が多いのは最初の対策1、2の時です。その後は、ほとんど「Chromebleed」に任せており、必要に応じて対策4,5を行う程度です。
むろん、これで100%安全というわけではありませんが、ある程度自衛するために行っています。とりあえず対策1,2を行い、「Chromebleed」を入れておくだけでも効果はあると思います。
よろしければ参考になさってください。