ブログ

OpenSSL脆弱性(Heartbleed)について

2014年4月14日 11:51 | シスキュー技術部 | | 313 views
タグ: , ,

このエントリーをはてなブックマークに追加
はてなブックマーク - OpenSSL脆弱性(Heartbleed)について
reddit にシェア
Pocket
LINEで送る

OpenSSLというWEBサイトの暗号化に使われるソフトウェアの脆弱性が発見されました。

OpenSSLは、オンラインバンキングや、自治体、オンラインショッピング、SNSなど広く使われており、通信の内容を暗号化するための仕組みです。

これに、現在WEBサーバーが扱っている情報を暗号を解除して取り出す方法が発見されました。もちろんこれは暗号化の目的からあってはならない事です。

どのような内容か

この脆弱性はここ二年間の間にリリースされたすべてOpenSSLに存在し、この脆弱性が指摘し修正されるまでの二年間にすでにこの脆弱性を利用されている事態も考えられます。

WEBブラウザのアドレスバーに鍵のマークが出てくるhttpsで通信した内容が、余す事無く漏洩しているかというとそれは最悪の場合であり、現実的なケースを考えるとサーバーとブラウザなどのクライアントの通信の間に入り込めば、通信の一部が傍受できる状態になっていた、という事です。

専門的な話になりますが、OpenSSLはサーバの中に秘密鍵という外部に出してはいけないデータと、通信相手に公開する公開鍵の二種類の鍵のペアで、暗号化と復号を行います。

その仕組みの中で、秘密鍵がサーバーの外に漏洩しなければ、他者の通信を復号して傍受する事はできません。

ただ今回の脆弱性はOpenSSL自体が扱うデータのすべてを、ごくわずかながら復号化された形で攻撃者によって取り出せてしまうため、そのOpenSSL自体が実行中に秘密鍵を扱う性質上、秘密鍵を取り出す事が可能となります。

秘密鍵以外にも、現在通信中の、何らかのデータも復号して取り出す事ができます。その中にユーザーのパスワードやクレジットカード情報が含まれている可能性はあります。

攻撃者は望み通りのデータを取り出す事ができないので、いま扱われているデータのどこかしらを取得できる、というものですが、実際10万回の試行で秘密鍵を取り出す事ができた、という報告もあります。

どのような影響があるか

あくまで最悪の可能性を考えると、すべての暗号化通信が復号化され傍受されている、という事になります。

サーバーの秘密鍵を完全に取得し、サーバーとクライアント間の通信を取得する事ができるものがいれば、暗号化はされていなかった事とほぼ同じになります。

ただサーバーとクライアントの中間に入るというのは、言葉にするほど簡単な事ではありません。

簡単な事ではありませんが、中間者からの攻撃を防ぐ手段として利用されていたSSL自体にこのような脆弱性があることは、かなり大きなリスクで、利用者の多い大規模なWEBサービスや、特定の個人や組織をターゲットとした攻撃としては、十分に想定すべき内容です。

またこの攻撃の手法が確立した事により、OpenSSLへの攻撃アクセスが増加しているという事です。

価値のある情報、例えばクレジットカード、個人情報などに紐づくサービスを利用されていて、サーバーがOpenSSLを利用している事がわかる場合は、脆弱性修正までに利用していたパスワードなどは変更することがベストな選択です。

逆に言えば、対策前のサーバーに対して、パスワードを変更しても、脆弱性を悪用され、漏洩する危険性があるという事になります。

現在利用しているSSLを利用したサービスの対応状況がアナウンスされるまでは、通信は控えた方がよいかも知れません。

弊社独自管理サーバーのOpenSSLは最新版に更新し、サーバー内の秘密鍵の変更を既に行っています。