
「Heartbleed」はOpenSSLというオープンソースの暗号ソフトウェアライブラリ上で発見された脆弱性であり、2014年4月7日に発表されました。本稿ではこの脆弱性について解説し実際の被害報告と対応策を記載しています。
目次
OpenSSLとは
OpenSSLは、1998年に最初のリリースが行われたSSL/TLSプロトコルのオープンソースのライブラリで、SSL/TLS通信や共通鍵・公開鍵を用いたデータの暗号/復号に利用できます。OpenSSLは、ほぼ全てのUNIX系OSやWindowsOSで利用する事ができます。
マイクロソフトのWebサーバであるIISはOpenSSLを使用していませんが、WindowsOS上でApacheを利用することもできるため、その場合はOpenSSLが利用されます。
Heartbeatとは
2012年リリースのOpenSSL1.0.1よりHeartbeat機能がサポートされています。Heartbeatは多くのプロトコルやアプリケーションで、自身が正常に稼働していることを通信相手先に伝える機能として利用されます。具体的には、接続されている機器同士でセッションの維持のためデータのやり取りを行います。
2014年4月7日に発表されたHeartbleed脆弱性では、意図的にサイズを細工したHeartbeatのリクエストを脆弱性の含んだバージョンを利用しているサーバに送信すると返答するデータの中に同一プロセス内のデータの中に意図していない、約64KBのデータが含まれた形で返信が来ます。攻撃者は何度も要求を繰り返す事によって、帰ってくるデータの中からID/PWD、場合によっては秘密鍵を取得できる可能性があります。
対象となるOpenSSLのバージョン
- OpenSSL 1.0.1から1.0.1f
- OpenSSL 1.0.2-beta から 1.0.2-beta1
セキュリティに関する調査を行っているNetcraft社(http://www.netcraft.com/)によると、SSLサーバ証明書を利用しているサーバのうちHeartbeatを利用可能にしているサイトは全体の17.5%となっています。
Half a million widely trusted websites vulnerable to Heartbleed bug
脆弱性を突いた事例
Heartbleed脆弱性は2年間に渡って気づかれずに放置されてきました。その間に侵害があったのかどうかはログから判断する事はできないとの見方が有力です。また、脆弱性の公表から、既に2週間以上経過しており、脆弱性のあるバージョンを利用し続けているのは非常に危険です。実際に被害も広がっているためアップデートを行うことを強く推奨します。
実際の被害について
- Canada Revenue Agency
CRA update regarding the Heartbleed Bug – Online services restored - 三菱UFJニコス
弊社会員専用WEBサービスへの不正アクセスにより一部のお客さま情報が不正閲覧された件
秘密鍵の盗難の現実性についての調査事例
- IIJ-SECT
Heartbleed bug による秘密鍵漏洩の現実性について
Heartbleed対象かどうかの確認方法
まず、OpenSSLのバージョンを確認します。OpenSSLがインストールされたサーバ環境で以下のコマンドを実行することでバージョンを確認できます。
# openssl version
また、弊社では無償のウェブサービス「SSLチェックツール」を提供しています。URLを入力することでサーバの設定状況等が確認可能です。
もし、Heartbleedの対象となるバージョンをお使いの場合は、“Server is vulnerable to HeartBleed attack”と表示されます。
※Heartbleed脆弱性が懸念される場合の表示例
秘密鍵が盗まれた場合の影響
秘密鍵が盗まれた場合、暗号化通信の内容が解読される可能性があります。過去に通信したやり取りであっても通信記録が傍受されていた場合には解読される可能性があります。(PerfectForwardSecurityを設定していた場合は除く。)
また、DNS Spoofingと組み合わせることにより、Webサーバのなりすましとフィッシングサイトの構築が行われる可能性があります。
Hartbleed脆弱性への対策方法
OpenSSLのバージョンを修正済みバージョンへアップデートを行ってください。修正済みバージョンの適用が困難な場合は、以下の回避策の適用を検討してください。
「-DOPENSSL_NO_HEARTBEATS」オプションを有効にして OpenSSL を再コンパイル
また、SSLサーバ証明書に関しては、OpenSSLのアップデート後、新たに作成した秘密鍵で証明書を再発行、再インストールの上、失効を推奨いたします。
※再発行が済んでいない段階で失効を行いますと再発行する事ができません。必ず、再発行が済んでいる事を確認してください。
ID/Passwordの変更
OpenSSLの脆弱性が疑われるウェブサイトでID/Passwordは登録している場合には、パスワードの変更をすることを推奨します。なお、当該脆弱性への対応に関わらず定期的にパスワードを変更する事をお奨めします。
ただし、Heartbleedの件を受けてのパスワード変更を促すフィッシングメール、ウェブサイトには十分にご注意ください!
主要なベンダーのセキュリティアドバイザリとパッチについて
主要なベンダーのセキュリティアドバイザリとパッチにつきましては以下のサイトにてご確認ください。
Serverside Software
Hardware
関連する記事