読者です 読者をやめる 読者になる 読者になる

ローグウェーブソフトウェアのブログ

開発をシンプルに 安全で高品質のコードを 素早くお客様のもとへ

OpenSSL 小史 - CodeBuzzから

記事紹介 OpenLogic

本社ブログCodeBuzzの記事を紹介します。OpenLogicのエンジニア John SaboeとAndrew Pomponioが著名なライブラリOpenSSLの主な脆弱性についてご紹介します。

A brief history of OpenSSL

blog.klocwork.com

OpenSSLは2002年ごろから存在し、現存するあらゆるソフトウェアと同様にバグや脆弱性を公開してきました。ビジネスでも個人的な通信の用途でも人々はOpenSSLと暗号化技術に大きく依存してきました。重要な脆弱性があるたびに世界中の数百万人、あるいは潜在的には何億ものユーザーに影響してきました。会社の資産は危険にさらされているかもしれず、秘密の保持も妥協を強いられるかもしれない... 過去3年間にそのようなことが何回か起こりました。

OpenLogicはOpenSSLに非常に強い関心を寄せ、その脆弱性に注意を払ってきました。

Heartbleed

2014年4月、悪名高いHeartbleedバグ (CVE-2014-0160) が発見されました。エクスプロイトするにはTLS v1.2を利用している秘密鍵を目標にします。攻撃者はこのエクスプロイトを使って上限64kbのリクエストを送り続け、完全な秘密鍵、ログイン情報、その他認証情報が取得できるまでアプリケーションのメモリを取得することができます。このエクスプロイトはOpenSSLクライアントでもサーバでも利用でき、秘密鍵が漏れる可能性を考えると重大な脅威と捉える必要があります。OpenSSLの最近のバージョンへとパッチアップグレードすればこの問題を解決できますが、組織によっては言うは易し、でしょう。 heartbleed.comはこの脆弱性についての詳細な分析を提供しています。この脆弱性はOpenSSL 1.0.1gで修正され、これ以前のブランチ(1.0.0、0.9.8、...)は全て脆弱ではありません。

Bar Mitzvah

同じく2014年、13年の歴史を持つ脆弱性SSL/TLSに発見されました。これは攻撃者がSSLセッション中に認証情報等の情報を盗み見ることができるもので、Bar Mitzvah Attackと名付けられました。これが利用できることと、比較的弱いRC4の暗号化アルゴリズムを利用していることにより攻撃者は暗号化されたデータをくり返しリクエストして弱い鍵のパターンを見つけて、プレーンテキストの情報を復元できます。対応策はRC4の暗号(Cipher)をTLSの設定から除去することです。報告によるとRC4はパフォーマンス上の理由から多くのサーバでデフォルトの暗号として使われているようです。この脆弱性ははるか2001年まで遡るにも関わらず、です。「Weaknesses in the Key Scheduling Algorithm of RC4」と題された詳細な論文がオンラインで利用可能です。

POODLE

2014年の10月、Googleの研究者Bodo Möller、Thai Duong、Krzysztof Kotowiczが一つの脆弱性を発見しました。これを利用するとSSL 3.0まで遡るクライアントとRC4脆弱性エクスプロイトして中間者攻撃を行い、セキュアクッキーなどの暗号化されたストリームを繰り返し盗み見ることができます。サーバの設定を変更してSSLv3を使用不可にする必要があります。この脆弱性はPOODLE (CVE-2014-3566)といううまい名前がつけられました。「Padding Oracle On Downgraded Legacy Encryption」の略ですが、Heartbleedのように深刻な問題であるとは認識されませんでした。この脆弱性が発見されてすぐに同様のエクスプロイトTLSプロトコルに発見されました。Mozzilaによるすばらしいブログ記事は攻撃方法について書かれ、SSLの設定ジェネレータを提供して人々が自分の設定がセキュアであるかどうか確かめられるようにしてくれます。

Logjam

2015年5月、HTTPSで守られた何万ものウェブサイトやメールサーバ、その他インターネットサービスがLogjamと呼ばれる新種の攻撃に対して脆弱であることが発見されました。この欠陥はTLS(Transport Layer Security)プロトコルで見つかりました。TLSはクライアントとサーバ間で暗号化された通信を確立するためのプロトコルです。この脆弱性は短く弱いDiffie-Hellman key exchange(ディフィー・ヘルマン鍵共有、DH鍵共有)に対するレガシーなサポートに存在しましたが、これは通常暗号セッション中に鍵をアップグレードすることで安全性が向上します。アメリカ合衆国政府は1990年代に輸出規制をかけ、USの外で使用されるソフトウェアの暗号鍵のサイズと強度を輸出グレードへと制限しました。外国で使用された暗号に対し、破る可能性を確保しておきたかったからです。弱いキーのサイズに対するレガシーなサポートとコンピュータの処理能力が向上したことによりLogjamのような攻撃に対して復号が容易になりました。Ars Technicaがより詳細に論じています。脆弱性はOpenSSL 1.0.2b、1.0.1n、 1.0.0s、0.9.8zgでパッチが当てられました。

FREAK

Logjamが公開される数カ月前、2015年3月にAndroidiOSデバイスにおいて10年もの間HTTPS通信を解読される脆弱性があることが発見されました。この脆弱性はFREAK (CVE-2015-0204)と呼ばれ、モバイル端末がウェブサイトと通信するときに暗号化のレベルを落とすもので、攻撃者は通信を解読しやすくなります。Logjamと同様、この攻撃は合衆国政府の輸出規制による弱い暗号によるものです。ただしこの場合はLogjamの時のDH鍵共有アルゴリズムの代わりにRSAアルゴリズムに対するものでした。この脆弱性に対する修正はChromeFirefox、Intenet Explorerといったブラウザの会社によって提供されました。ユーザーはこの脆弱性が発見されるとすぐにアップグレードを推奨され、ブラウザは新しくパッチの当たったものとなりました。

CVE-2016-0701

つい最近、今年の1月に最新の脆弱性が発見されました。OpenSSLチームとメンテナが緊急度の高い脆弱性 CVE-2016-0701 に対して修正を行いました。この脆弱性を利用すると攻撃者はトランスポート層で行われる通信を解読できるSSLの鍵ファイルを取得することができます。この脆弱性エクスプロイトするには多くの条件が必要ですが、それらが満たされれば潜在的な影響は大きいです。幸いこの脆弱性が影響するのはOpenSSL1.0.2のブランチのみですが、だからといって組織に対して脆弱性が減るわけではありません。

この脆弱性もまたDH鍵共有の欠陥によるものです。この鍵交換方法を利用するアプリケーションは一時キー(ephemeral key)を利用するデジタル署名アルゴリズムを使う必要があります。デフォルトでは秘密の指数をサーバプロセスの間使用し、変更されることがないため、解読攻撃に対して脆弱性が生じます。この脆弱性は静的なDH暗号セットを使った任意のサーバに存在します。攻撃者はまず大量のハンドシェイクリクエストをサーバとクライアントに対して送りつけ、それらのリクエストが処理されると秘密の値が部分的に明らかになり、解読キーの残りの部分は「中国の余剰定理」により解く手間を減らすことができます。

まとめ

以上の情報から私達が何よりもみなさんに知っていただきたいのは、お使いのOpenSSLを常に最新の状態にしておくことと、どのような暗号と暗号化のレベルがお使いのサーバで使われるか知っておくべきである、ということです。きちんと設定されたSSLだけがOpenSSLに関する脆弱性からみなさんを守ります。全ての組織にとってこれほど重要なツールですので、家や身の回りでも同様の敬意をもってセキュアに保ちましょう。

MozillaSSL configuration generatorを作成し、無償で強化されたセキュアな設定をお使いのサーバに対して生成してくれます。また、サーバが脆弱かどうかはhttps://www.ssllabs.com/ssltestで調べることができます。利用するときはチェックボックスをオンにすれば結果が公開されることはありません。もしこうした公開されているツールを使用したくないのであれば、便利なBASHスクリプトtestssl.shから利用可能で、隔絶された環境でのテストを行うことができます。

そしてもちろん、フレンドリーなOpenLogicのアーキテクトがいつでもあなたのOpenSSL利用をサポートします。

共同執筆者: John Saboe、 Andrew Pomponio

編集後記

AndrewとJohnによるOpenSSL(脆弱性)についてのまとめ記事、いかがだったでしょうか?度々出てくるディフィー・ヘルマン鍵共有(wikipedia)DES(Wikipedia)に対する米合衆国政府の関与、 中国の剰余定理(Wikipedia)など興味深い話題がいろいろと詰まっています。

CodeBuzzではこれからもソフトウェア開発やセキュリティについての記事を公開していきます。この日本語ブログでもなるべくそれらを幅広くご紹介できればと思います。

ローグウェーブ セールスエンジニア 柄澤(からさわ)