OpenSSLに発生する脆弱性と対策の基本

 2017.03.28 Secure Enterpriseポータル

Webサイトの暗号化通信技術として標準的に利用されているSSL。これを無償で利用できるOpenSSLには、度々脆弱性が発見されており、個人情報漏えいなど重大事件が発生しています。

今回はこのOpenSSLに対する脆弱性情報や、対策の基本などについて紹介していきます

OpenSSLとは?

まず「SSL」自体について説明すると、インターネット上で標準的に利用されている、暗号通信プロトコルをSSLと言います。インターネット業界やWeb担当者として従事していない方でも、SSLという言葉は聞いたことがあるでしょう。

SSLはクライアントとサーバ間で安全なデータ通信を行うために、「共通鍵暗号化方式」を使用しています。共通鍵暗号化方式とは、データの暗号化と復号化に同じ鍵を使用します。クライアントとサーバ間で同じ鍵を持っていることで、スピーディかつ安全な暗号化通信を可能にするのです。

他にもクライアントとサーバで同じ鍵を安全に共有するための「公開鍵暗号化方式」や、「サーバ証明書」といった関連技術がいくつかありますが今回は割愛します。

SSL対応していないとどうなるのか

Webサイト上ではサービスの提供上、ユーザーに個人情報を入力してもらわなくてはならない場面が多々あります。このときWebサイトがSSL対応していないと、入力された個人情報は丸見え状態です。

もちろん物理的に目に見えるわけではありませんが、攻撃者からすれば透明のトンネルの中を、いくつもの個人情報が通っていくようなものです。これでは簡単に個人情報が搾取され、悪用されてしまう可能性が非常に高まってしまいます。

逆にSSL対応されていれば、個人情報は意味のない文字列に変換されるため、たとえトンネル内を覗かれようと個人情報が漏えいすることはないのです。

こうしたSSLの暗号化技術をオープンソースのライブラリ(プログラム部品)として提供しているのが、OpenSSLになります。オープンソースであるため誰でも無料で取得することができ、また開発や再配布も自由に行うことができます。

OpenSSLが持つ脆弱性

オープンソースで提供されているソフトウェアの多くは、複数の脆弱性を含んでいる可能性があります。世界中で利用され、Webサイトのプログラムソフトウェアとして有名な「WordPress」でも度々脆弱性が発見されています。

そして、OpneSSLも脆弱性が多く発見されているオープンソースソフトウェアの一つです。

OpenSSLが持つ脆弱性のうち、ここ数年でも最も大きな被害があったのが「Heart Bleed(ハートブリード)」と呼ばれる脆弱性です。Heart BleedはOpneSSLの拡張機能である「Heart Beat(ハートビート)」に発見されたものとなります。

Heart Beatの機能はSSLの死活監視(正常に動作しているかを確認)であり、SSL対して送信したデータをオウム返しのようにすることで、SSLが正常に動作しているかを確認するという機能です。

この機能ではデータを送信する際、同時にデータのサイズも送信するのですが、この点に脆弱性が発生しました。送信したデータのサイズを実際に送るデータサイズより大きく詐称することで、メモリ上のデータを余分に取得できてしまうのです。

ちなみにデータは65KBまで取得することができ、この中にユーザーの個人情報が含まれていれば、攻撃者は簡単に情報搾取を成功させてしまいます。メモリ内にはSSLの暗号化鍵も保存されているため、万が一暗号化鍵が盗まれてしまえば、その後継続的に個人情報を搾取されていてもおかしくありません。

大手クレジットカード会社で894人分の個人情報が不正閲覧

OpenSSLの脆弱性(Heart Bleed)を利用したサイバー攻撃事件として、脆弱性が発見された直後の事例があります。

国内の大手クレジットカード会社では、OpenSSLの脆弱性を突いた不正アクセスを確認してから、Webサービスの一部を停止したり、OpenSSLをアップデートしたりなど迅速に対応しましたが、既に個人情報が不正閲覧された後でした(漏えいした可能性もあり)。

閲覧された情報はカード番号と氏名、住所、生年月日、電話番号、メールアドレス、有効期限、WebサービスのID、カード名称、加入年月、支払口座(金融機関名および支店名を含む)、勤務先名称とその電話番号であり、実害はなかったものの、個人情報が流出した可能性は大いにあります。

参考:http://www.itmedia.co.jp/enterprise/articles/1404/19/news014.html

Googleが常時HTTPS化を推奨

世界的に検索サービスを提供するGoogleでは、WebサイトのHTTPS化が検索結果に影響するという情報を公開し、常時HTTPS化を推奨しています。

HTTPSとはSSL暗号化されたWebページにURLに付く文字列であり、通常はHTTPから始まるURLが一般的です。つまり、SSL暗号化されているWebページかどうかは、HTTPSかHTTPかの違いを見分ければいいのです。

Googleでは、ユーザーに安全かつ快適なインターネットライフを提供するという理念のもとから、安全性の面を考慮しHTTPS化されたWebサイトを優遇すると公表しています。つまり、セキュリティ面でもSEO的にも、WebサイトのSSL暗号化は重要なのです。

OpenSSLの脆弱性対策とは?

OpenSSLの脆弱性に対し対策を取るためには、アップデート対応することが基本となります。脆弱性が発見されてから迅速にセキュリティパッチを提供することで、サイバー攻撃を防ぐことが可能です。

しかし、セキュリティパッチが適用されるまでの間に実行される「ゼロデイ攻撃」に注意しなければなりません。ゼロデイ攻撃を防ぐためには、仮想パッチの適用や内部ネットワークへの侵入を想定したサイバー攻撃対策が必要です。

例えば改ざん検知システムによって社内システムの不正なファイル変更などを監視していれば、OpenSSL脆弱性などのサイバー攻撃が発生しても、迅速に検知でき対処することができます。

まとめ

現在OpenSSLを使用して、WebサイトをHTTPS化している企業は多いかと思います。特に、セキュリティ技術者の多い企業ではオープンソースソフトウェアを使用していることも多いため、OpenSSLに限らず様々な脆弱性を抱えている可能性があります。

従って、各ソフトウェアのアップデート対応を定期的に行うことが重要です。また、改ざん検知システムを導入していれば、特定のソフトウェアだけでなく社内システム全体を監視することができるため、どこで攻撃が発生しても即座に対応することができます。

セキュリティ性向上のために利用されているOpenSSLが、逆にセキュリティホールとなってしまっているという事態は、各企業が重く受け止めるべき事実です。

SSLサーバー証明書を提供する最大手の1社であるシマンテックでは、サーバー証明書の利用ユーザ向けに「脆弱性アセスメントサービス」や「マルウェアスキャン」などの脆弱性診断のサービスを付属して提供しています。また、クラウド型のWAF製品も提供しており、Webに対する攻撃を包括的に防御するラインナップを揃えています。

詳しい内容にご関心のある方はこちらよりお問い合わせください。