JNSA「セキュリティしんだん」

 

« 「(10)スマート家電への攻撃に備えよ」へ   「(12)オープンソースとの付き合い方再考」へ »



(11)話題のセキュリティ問題を考える(2014年4月25日)

日本ネットワークセキュリティ協会 幹事
(社)日本クラウドセキュリティアライアンス代表理事
アルテア・セキュリティ・コンサルティング 代表 二木真明

このところ、深刻なセキュリティ問題がいくつか話題になっています。これらは、それぞれが危険なものですが、これらを組み合わせると、一気に危険度が上がる場合がありますから注意が必要です。
1.Heartbleed(OpenSSLのTLS/Heartbeat拡張機能によるメモリ情報の漏洩)問題
2.ID、パスワードリスト攻撃
3.DNSキャッシュ汚染(DNS Cache Poisoning)問題
4.バンキングマルウェア
5.Windowsサポート終了問題
6.「合わせ技」の危険性

まずは、最近最も話題になっているこの脆弱性から話を進めましょう。

  • 1.Heartbleed問題
  • 2.IDパスワード攻撃
  • 3.DNSキャッシュ汚染
  • 4.バンキングマルウェア
  • 5.Windowsサポート終了
  • 6.合わせ技の危険性

1.Heartbleed(OpenSSLのTLS/Heartbeat拡張機能によるメモリ情報の漏洩)問題

OpenSSLは、ご存じの通り、世界中で使われているオープンソース暗号通信パッケージで、SSL/TLSプロトコルの実装をはじめ、様々な暗号アルゴリズムやハッシュアルゴリズム実装を提供しています。SSLが必要なWebサイトはもちろん、たとえば組み込み機器を操作するためのSSLを使ったポータル機能や、機器間通信にSSLを使うような場合にも利用されています。今回、バージョン1.0.1という最新のバージョンからサポートされた、ハートビートと呼ばれる機能(通信が一定時間行われない場合でも接続維持、確認を行うための機能)に脆弱性が発見され、これによってサーバ側のメモリ内の情報を外部から取得できることが明らかになりました。

【図1】※クリックで拡大します。
Heartbleed(OpenSSLのTLS/Hesrtbeat拡張機能によるメモリ情報の漏洩)問題 図1

この機能は、相手方が正しく応答を返すかどうかを確認するため送られたメッセージの指定された長さ分を単純に送り返すだけのものです。

【図2】 ※クリックで拡大します。
Heartbleed(OpenSSLのTLS/Hesrtbeat拡張機能によるメモリ情報の漏洩)問題 図2

ハートビート要求の先頭には送り返すべき文字列の長さが入っています。今回発見された脆弱性はこの長さのチェックが正しく行われていないことに起因します。

【図3】 ※クリックで拡大します。
Heartbleed(OpenSSLのTLS/Hesrtbeat拡張機能によるメモリ情報の漏洩)問題 図3

こうした長さが変わるデータは、一般にヒープ領域と呼ばれる一時的なデータ格納領域に格納されますが、この領域は様々なデータのために動的に割り当てられるため、周辺には処理に必要な多くの情報が格納されています。もし、10バイトを越えて、データを読み出そうとすると、本来、読み出してはいけない他のデータまで読み出して送り返してしまうことになるのです。これが、今回の脆弱性でメモリ上の情報が漏洩する仕組みです。要求できるサイズは最大64KBまでですが、繰り返し試行することで、たとえば暗号処理に使用する秘密鍵のようなデータも取得できてしまうことがあります。

【図1】のようにSSLで実際に行われる通信は、毎回生成されるランダムな共通鍵(セッション鍵)で暗号化されます。問題となる秘密鍵はこのセッション鍵の受け渡しに使われます。これを盗むことにより、セッション鍵を入手でき、暗号通信を解読できます。

【図4】 ※クリックで拡大します。
Heartbleed(OpenSSLのTLS/Hesrtbeat拡張機能によるメモリ情報の漏洩)問題 図4

もちろん、この方法で情報を盗むためには、なんらかの方法で通信を盗聴する必要があります。こうした盗聴はいくつかの手法がありますが、通信経路上に割り込む手法(Man in The Middle)がよく使用されます。

もう一つの懸念が、いわゆるサイト証明書の流用です。SSLで使われるサイト証明書(公開鍵証明書)は、秘密鍵と対応しており、異なる鍵を使って、この証明書を使うことはできません。しかし、秘密鍵を入手できれば、公開されている証明書を偽物のサイトに掲示して実際に公開鍵を使うことができます。

【図5】 ※クリックで拡大します。
Heartbleed(OpenSSLのTLS/Hesrtbeat拡張機能によるメモリ情報の漏洩)問題 図5

但し、フィッシングサイトでは証明書内の情報とドメイン名がミスマッチを起こすため、ブラウザで警告がでてしまいます。ですから、慎重にアクセスすれば気づくことはできます。

このHeartbleed脆弱性で入手した秘密鍵を悪用する最も現実的な方法は、公衆Wi-Fiスポットなど公衆ネットワークでのMan in the Middle攻撃かもしれません。一般にこうした攻撃を防ぐためにSSLの使用は有効ですが、もし、攻撃者がWebサイトのSSLに使われる秘密鍵を持っていたとすればSSLは意味をなしません。

【図6】 ※クリックで拡大します。
Heartbleed(OpenSSLのTLS/Hesrtbeat拡張機能によるメモリ情報の漏洩)問題 図6

図6はその一例です。こうした攻撃は、たとえば正規のWi-Fiスポットであっても、一定の確率で成功します。さらに、怖いのは、多くのWi-Fiクライアントが一度接続したアクセスポイントと同じSSIDを持つアクセスポイントに対して自動接続してしまう設定になっている点です。もし、たとえば、本来Wi-Fiスポットでない場所でこうした偽物のアクセスポイントを用意すれば、こうした設定になっているクライアントは、ほぼ100%自動接続されます。常時動作しているスマートフォンなどは格好のターゲットとなりますし、利用者がその接続を意識することは、あまりありません。また、メールアプリ、SNSアプリなどは自動的にSSLで認証を行い、情報を取得します。このSSL通信を盗聴された場合、利用者がまったく気がつかない間にIDやパスワードが盗まれることになります。これはかなり深刻な問題です。この問題が一段落するまでは、Wi-Fiの自動接続は無効にしておいたほうがいいでしょう。

さて、ここでこの問題は一旦おいて、次の問題を考えてみましょう。

2.ID、パスワードリスト攻撃

最近、Webサイトなどが攻撃を受け、ユーザのIDやパスワードが大量に流出する事件があいついでいます。こうした情報は、実際、ブラックマーケットで取引され、流通してしまいます。一般に、こうしたユーザIDはメールアドレスであることが多く、もし、同じユーザIDでアカウントを持っているサービスに同じパスワードを使用していた場合、あるサイトから流出した情報を使って別のサイトの自分のアカウントも不正利用されてしまう可能性があります。

【図7】 ※クリックで拡大します。
ID、パスワードリスト攻撃 図7

最近、「パスワードの使い回し」をやめようという注意喚起が頻繁に行われるのは、こうした理由からです。複雑なパスワードをいくつも覚えるのは大変ですが、たとえば今回のHeartbleedのようなケースで、サービス事業者からパスワード変更要請が送られてきた場合、使い回しを行っていれば、それらを全部変更する必要があります。それは、その事業者で流出したパスワードは、多くの場合、他のサイトへの攻撃でも利用されるからです。また、こうした場合に変更が間に合わないケースも考えられます。もし、いくつもパスワードを覚えるのが面倒であれば、パスワードを記憶、管理できるツールも市販されているので、それらを使うといいでしょう。また、自分にしかわからない方法で(たとえば、大部分を伏せ字にしたり、文字を置き換えたりするなど)メモを残しておくのも一つの方法です。こうしたリストはかなり古い物も流通しますから、一旦流出したと疑われるパスワードはもう使用するべきではありません。また、IDについても、プライベートで使うサービスに会社のメールアドレスなどを使っていると、流出した場合に思わぬ被害を受ける場合がありますので、これも避けるべきです。再度、自分のIDとパスワード管理を見直しておきましょう。

3.DNSキャッシュ汚染(DNS Cache Poisoning)問題

この問題は、あまりクローズアップされていませんが、悪用されるとかなり深刻な被害につながりますから注意が必要です。

インターネットはIPアドレス空間で構成されるネットワークと、ドメイン、ホスト名とIPアドレスを対応づけるためのDNSという2階層で構成されています。ドメイン管理者は、自らのDNSサーバを使用して、自分のドメインとホストを管理し、IPアドレスと対応づけます。本来は、すべてのユーザがアクセス時にそのDNSサーバに問い合わせてIPアドレスを取得すればよいのですが、アドレス検索の効率化やDNSトラフィックの軽減のため、たとえばISPが提供しているユーザ向けDNSサーバや企業の社内向けDNSサーバなどは、一度アクセスしたアドレスを一定期間記憶し、問い合わせなしで、クライアントに送り返します。これをキャッシュと呼びます。

実は、キャッシュDNSサーバが、本来のドメインDNSサーバに問い合わせを行ったタイミングで、加工された偽の応答を送りつけることで、記憶されたアドレス情報を上書きする攻撃(DNSキャッシュ汚染攻撃)が知られています。このような上書きが行われた場合、利用者はそれにまったく気づかずに、不正なサイトにアクセスさせられてしまいます。たとえば、それがフィッシングサイトであったとしても、ブラウザ上には正しいURLが表示されているため、ユーザは気がつきません。これは、きわめて深刻な被害に結びつきかねない問題です。

【図8】 ※クリックで拡大します。
DNSキャッシュ汚染(DNS Cache Poisoninh)問題 図8

この手法は、ずいぶん古くからありました。当初、成功率はかなり低かったのですが、数年前に非常に効率のよい攻撃法が考案され、可能性が一気に高まりました。一方、サーバ側でも、応答偽装を困難にするため、発信元のポート番号や、パケットのID情報をランダム化するなどの対応がとられていますが、それでも100%防げる保証はありません。また、インターネット上で使われているキャッシュDNSサーバの中には古い物もあり、これらは前述したランダム化が不十分なため、より攻撃に対して脆弱です。自分が使用しているキャッシュDNSサーバがどの程度安全か、確認ができるサイトもありますので、一度確認してみるとよいでしょう。ただ、こうした対策を講じてもなお、攻撃を成功させる方法があるという議論も有り、当面、サーバ管理者はこうした攻撃を常に意識してサーバ管理を行うしかなさそうです。また、利用者もアクセス先のサイトに不審な部分がないか、また、SSLの証明書は正しい認証局によって発行された物かなど、注意しておく必要があるでしょう。

4.バンキングマルウェア

昨年あたりから、金融機関のWebサイトへのアクセスを狙ったマルウエアの被害が多発しています。これまで金融機関へのアクセスを狙った攻撃は主にフィッシングでした。しかし、偽サイトは見破られることも多く、本物のサイトにアクセスさせながら不正を働く方法として考え出されたのがバンキングマルウエアと呼ばれるものです。

バンキングマルウエアには様々なものがありますが、典型的なものの一つが下の【図9】の例です。

【図9】 ※クリックで拡大します。
バンキングマルウェア 図9

この例では、PCに感染したマルウエアがWebブラウザ内部に入り込み、アクセスを監視しています。そして、ユーザが銀行サイトにアクセスしてログイン完了した直後に、ブラウザに表示された正式な銀行サイトの画面に重ねて不正なポップアップ画面を表示し、パスワードの変更や、銀行から配布された暗証カードの数字などの入力を要求します。利用者は自ら銀行にアクセスしているため、疑うことなく、こうした画面に情報を入力してしまいます。こうした情報は攻撃者に取得されるほか、ただちに利用されて不正送金などが実行されてしまう場合もあります。このように、ブラウザに入り込んで操作を監視するような手法を、Man in The Browser (MiTB) と呼ぶこともあります。
 フィッシングとは異なり、マルウエア感染により発生するため、こうしたマルウエアに 感染しないよう心がけると同時に、普段と異なる動きがあった場合、とりわけ暗証カードをすべて入力させるなどの不審な要求があった場合は、銀行に確認するなどの対応が必要でしょう。最近主流になっているZeusと呼ばれるマルウエアは、亜種がどんどん増加しており、個人だけでなく、企業口座を標的にしたものも確認されているため、特に注意が必要です。

5.Windowsサポート終了問題

Windows XPのサポートが終了しましたが、依然として多数のPCでXPが使用されているという現実があります。実はPCだけではなく、XPは様々な機器にも組み込まれています。一例を挙げれば、コンビニなどに置かれたキオスク端末、各種の自動販売機、銀行ATMなどもXPで動作している可能性があります。

Windowsには過去の例から見て、年間数十件の「緊急」レベルの脆弱性が発見されています。これらの脆弱性は、既に攻撃成功が確認され、攻撃ツールなどが流通しているもので、放置すれば標的にされる可能性が極めて高いものです。こうした脆弱性に対する修正が行われなくなることで、時間がたつにつれ、XPの危険性はどんどん増加します。それだけではありません。インターネット上には、攻撃ツールや未公表の脆弱性などを取引する闇市場が複数存在します。未公表つまり、いわゆるゼロデイ脆弱性は近年密かに使用されるため、長いものでは2年以上公知にならないものもあると言います。さらに、XPサポート切れを待って、こうした脆弱性が温存されているという噂も絶えず、もしこれが事実ならば、サポート切れと同時にXPに対する危険は一気に増大します。

XPがインターネットと通信できる状態になっていた場合の危険は言うまでもありませんが、そうでなくても様々な危険が生じます。下の【図10】にその一部を示します。

【図10】 ※クリックで拡大します。
Windowsサポート終了問題 図10

最近では、PCへの攻撃はマルウエアが主体となっていますが、こうした脆弱性を利用したマルウエアは、PCへ深刻なダメージをもたらすと同時に、セキュリティソフトなどをかいくぐる危険も高くなります。

マルウエアが感染する経路は様々です。最近の主流はWebサイトによるドライブ・バイ・ダウンロード感染ですが、メールやオフラインの各種記憶媒体経由の感染も依然として残っています。また、最近では、PCや特定のアプリケーションの更新を管理するサーバが侵入を受け、マルウエアを一斉配信するというような事態も発生しています。実際、昨年3月に発生した韓国での大規模マルウエア感染事件は、こうした管理サーバにマルウエアが感染したことが引き金でした。結果として、インターネットとは直接接続されていないはずの、銀行ATMがマルウエアに感染し、業務停止に追い込まれています。

現在、大多数のPCは、インターネットとは接続されていなくても、なんらかのネットワークに接続されています。また、ソフトウエアの更新やメンテナンスなどの必要から、こうしたネットワークと他のネットワークとの間でPCやオフラインメディアを使ったデータの移動も少なくありません。つまり、これらの閉鎖的なネットワークにおいても、少なからず外部との接点は存在するのが実情です。こうしたネットワークでは、たった一台のマルウエア感染が深刻な結果をもたらす可能性があります。また、入ったも のは同じ方法で出て行くことも可能ですから、データの持ち出しも、場合によっては可能になるかもしれません。

このようなことをすべて考えるならば、XPは、どんな使われ方であれ、可能な限り速やかに使用をやめ、新しいOSに更新すべきでしょう。リスクは一般に考えられているより、遙かに高いのです。

6.「合わせ技」の危険性

さて、これまで紹介してきた攻撃の例は、組み合わせることもできます。とりわけ、Heartbleed問題を狙った攻撃により入手したSSL用の秘密鍵を他の攻撃に利用すると、きわめて危険な攻撃が可能になります。

たとえば、DNSキャッシュ汚染を行って、利用者が誘導された先のフィッシングサイトに、正式なサイト証明書を掲示するようなことです。【図11上】この場合、DNSが操作され、本来のドメイン名を使用した状態で不正サイトにアクセスしているため、ブラウザは一切警告を出しません。つまり完璧なフィッシングサイトを作ることができるのです。

【図11】 ※クリックで拡大します。
「合わせ技」の危険性 図11

フィッシングは銀行だけとは限りません。有名なSNSサイトの偽サイトを仕掛ければ大量のIDとパスワードのリストを入手でき、これらを闇市場で売ったり、リスト攻撃に利用したりすることができます。この場合もDNSキャッシュ汚染を併用されれば利用者が気づくのは困難です。

Heartbleed脆弱性の影響はWebサイトにとどまりません。様々なネットワーク機器や、ネットワークに接続された機器がSSL/TLS通信を行っており、こうした実装の多くにOpenSSLが利用されていることを忘れてはいけないでしょう。たとえば、最近、企業のリモートアクセスに多用されているSSL/VPN装置が影響を受けている可能性も無視できません。この場合、悪用されると企業にとって深刻な事態を引き起こす可能性があります。

たとえば、オフィスビル街のコーヒーショップにある公衆Wi-Fiスポットで、Man in The Middle 攻撃を行えば、こうしたSSL/VPNのアクセス先を収集できる可能性があります。また、特定の業界を狙うのであれば、その業界に関連した展示会場などの公衆Wi-Fiを待ち受けるのも有効な手段となり得ます。 【図11下】

SSL/VPNが狙われた場合の影響は様々です。たとえば、閲覧できるのは社内Webサイトだけだったとしても、もしそこにSQLインジェクションなどの脆弱性が存在すると、最悪の場合、マルウエアを埋め込むようなこともできる可能性があります。また、社員のWebメールをのぞき見されたり、その社員になりすましてマルウエアをメールで送りつけたりするようなこともできる可能性があります。また最近のSSL/VPNでは、ネットワークレイヤのVPNトンネルをサポートしている製品も少なくないので、この場合はより深刻な事態に陥るかもしれません。

たとえば、自社のSSL/VPNなどの装置に問題が無いことを確認するまでは、公衆無線LANからの利用を控えるなどの措置をとったほうがいいかもしれません。

 このように、Heartbleedを軸として、様々な組み合わせ攻撃が可能になります。これが、この問題を危険視する最大の理由なのです。
これからも新しい脆弱性はなくならないでしょう。それらと、すでに過去の物になったと思っていた攻撃手法が組み合わされたとき、思わぬ危険が生じる可能性がありますから、常に注意を怠らないことが大切です。





« 「(10)スマート家電への攻撃に備えよ」へ   「(12)オープンソースとの付き合い方再考」へ »