サイバー攻撃の増加に伴い、企業などにおけるサイバーセキュリティ対策への重要性は高まっています。セキュアな接続として知られるSSL/TLS通信を行っているからといって、自社のシステムは安全だと思い込んでしまうのは大変危険です。過去どのような攻撃例があり、対策が必要だったのかをまとめました。

SSL 3.0を狙う「POODLE攻撃」

POODLE攻撃では、レガシーシステムとの互換性のためにSSL 3.0や実装が不十分なTLS1.0/1.1を有効にしているサーバとの通信においてパスワード等の個人情報やCookie情報が第三者に漏えいする可能性が指摘されています。

POODLEとは「Padding Oracle On Downgraded Legacy Encryption」の略で、単語にOracleという文字が含まれますがデータベースのオラクル社とは無関係です。
「Padding Oracle」とは、大量のデータ列をサーバに送りつけ、エラーの発生状況やデータの処理状況などをチェックすることで、そのデータ列が暗号文として適切かどうかを調べることです。
POODLE攻撃における脆弱性はレガシーシステムにおける下記の2つの特徴が原因となっています。

  • 1. SSLv3はランダムにパディングバイトを生成する
  • 2. メッセージの整合性チェックであるメッセージ認証コード(MAC)には、パディングバイトが含まれない

このため、悪意のある第三者が意図的に、攻撃を目的としてこれらのパディングバイトを変えることが可能になってしまいます。対策としては、サーバもしくはクライアントのどちらか一方で、SSL 3.0 を無効化することです。POODLE攻撃が発見された当時は、Google Chrome、Firefox、Internet Explorerなどの著名ブラウザはすべてSSL 3.0をサポートしていましたが、現在では無効化されています。

強度の弱い暗号を狙う「FREAK攻撃」

FREAK攻撃は、「Factoring RSA Export Keys(FREAK)」の略で、1990年代に利用されていた強度の弱いRSA暗号鍵を悪用した攻撃です。中間者攻撃が可能な状況かつブラウザ・サーバ双方の強度が弱い暗号(RSA Export)をサポートしている時に狙われます。

RSA Export Keysの「エクスポート」とは、データを外部に吐き出すことではなく、文字通り「輸出」の意味です。米国政府は安全保障上の理由から、1990年代に国内の暗号技術の海外流出を防ぐ目的で、海外に「輸出」できる暗号の鍵長を「512bit以下」としていたという経緯があります。

現在はこの「512bit以下」という規制は緩和されて、よりセキュリティ的に強固な暗号システムが輸出可能になっていますが、512bit以下の「RSA Export Suites」はFREAK攻撃が問題として取り上げられた2015年当時、多くのサーバがサポートしていることがわかり、問題が広く認識されました。

FREAK攻撃を成功させるには、安全性が低い「RSA Export Suites」を使わせる「中間者攻撃」が必要となります。このため、ウェブサーバー側、クライアント側(Google Chrome、Firefox、Internet Explorerなどの著名ブラウザ)双方がFREAK攻撃対策をしていない場合には、FREAK攻撃につながる中間者攻撃を受けやすいといえるでしょう。

サーバ側でまだ「RSA Export Suites」への対応をしている場合には、すぐにこの対応を中止することが大切です。現在、著名ブラウザではFREAK攻撃は完了しています。

最も広く使われていた暗号形式を対象とした「RC4攻撃」

RC4とは、1987年に開発された鍵長可変のアルゴリズム非公開型ストリーム暗号で、SSL/TLSやWEPでの暗号アルゴリズムとして世界中で最も広く使われていた暗号形式です。

最も広く使われた理由として、他の共通鍵暗号と比較して高速でコストが安いという利点がありましたが、その後初期状態の設定方法によっては期待する安全性強度が得られないという指摘があり、より安全な方式を利用するよう変更することが必要となっています。

RC4攻撃の具体的な方法としては、まず、悪質なJavaScriptを埋め込んだWebサイトをユーザに閲覧させることで、RC4で暗号化されたユーザのCookieを攻撃者に送信します。そして入手したCookieを復号し、正規ユーザになりすましてWebサイトにログインするという流れになります。

攻撃への対策としては、Webサーバ側でRC4を無効化することと、最新のブラウザを使うことです。POODLE攻撃対策やFREAK攻撃対策に比べ対応がやや遅かった著名ブラウザでも、2016年初頭に最新バージョンでの「RC4」サポートが打ち切られています。

ご紹介した攻撃内容にあわせた対策は以下の通りです。

攻撃 対策
POODLE攻撃 古いブラウザを最新のバージョンにアップグレードし、サーバ側でSSL 3.0を使っているという場合には、SSL 3.0を無効化する
FREAK攻撃 古いブラウザを最新のバージョンにアップグレードし、サーバ上のすべてのexport cipher suitesのサポートを無効にする
RC4攻撃 古いブラウザを最新のバージョンにアップグレードし、ApacheではSSL_OP_DONT_INSERT_EMPTY_FRAGMENTS というオプション設定などし、Webサーバ側でRC4を無効にすること

ブラウザは最新バージョンにできる限り対応し、セキュリティ設定に都度対応することで防げる部分が多くあります。

セキュリティに絶対はなし!脆弱性の最新情報は定期的にチェック

SSL/TLS通信の世界においても、最新のクラッキング対策は常に必要であり、現在もSSL/TLS通信の仕様そのものがバージョンアップされています。ただ進化があっても「絶対に」漏えいしないとはいえず、常に「できるだけ安全性の高い通信を行う」「万が一のデータ漏えい、改ざんなどに備える」という心がけが大切です。

具体的なセキュリティ意識として、SSL/TLSの導入担当者・管理者の方は「IPA(独立行政法人 情報処理推進機構)」 などで、SSL/TLSの脆弱性についての最新情報を定期的にチェックすることが大切です。 また、弊社でもSSL/TLSのセキュリティ上の問題についての最新情報はSNSで通知しており、緊急の場合は顧客の方向けに通知メールを送るなどの対応をすることもあります。

SSL/TLSの導入担当者・管理者の方のセキュリティ意識が通信安全性の確保につながりますので引き続き最新のセキュリティ情報にはご留意ください。

トピック関連記事

#

2013年10月11日

Certificate and Public Key Pinning

#

2018年08月28日

地方自治体のSSLサーバ証明書に関する調査結果を追加分析

#

2017年08月30日

CAA (Certificate Authority Authorization)について

この記事を書きました

グローバルサインブログ編集部

グローバルサインカレッジ編集部
所属:GMOグローバルサイン マーケティング部
当サイトの運営・管理を担当。