「Heartbleed」として知られているOpenSSLの脆弱性が2014年4月に発表されました。OpenVPNはデフォルトの暗号化ライブラリとしてOpenSSLを使用しているため、その影響を受けます。
どんな脆弱性ですか?
OpenSSLの脆弱性により、攻撃者がプログラムのメモリ内にある情報を取得できる、という脆弱性です。メモリ内にはユーザーのセッションキー(データを暗号化するために使用されるキー)やマスターシークレットキーなどが格納されています。この脆弱性を持つOpenSSLを利用したOpenVPNが攻撃対象になった場合、VPNユーザーのキーやVPNトンネル上のデータが漏洩する可能性があります。
影響を受ける対象は?
ご利用中のOpenVPNがOpenSSL バージョン 1.0.1~1.0.1fとリンクされている場合に影響を受けます。
該当する場合、どのような対策が必要ですか?
- OpenSSLライブラリのアップデート
- 今まで使用していた秘密鍵の失効処理
- 新しい秘密鍵の生成
- 新しい秘密鍵に基づく証明書の作成
対象となるのはサーバーですか? クライアントですか?
両方です。前述のバージョンのOpenSSLとリンクされたOpenVPNを使用していた場合は、サーバー/クライアントのどちらであっても鍵の更新が必要です。
Android版のクライアントは影響を受けますか?
Android 4.1ではOpenSSL 1.0.1が使用されていますが、4.1.2以降ではheartbeatが無効化されています。したがって、この脆弱性の影響を受けるのはAndroid 4.1(.0) と 4.1.1 です。
Windowsクライアントは影響を受けますか?
すべてのWindows版OpenVPNクライアントのインストーラにはOpenSSLが含まれていますが、今回の脆弱性の対象となるOpenSSLが含まれているのはバージョン 2.3-rc2-I001 から 2.3.2-I003 です。バージョン 2.3.2-I004 では対策済みの OpenSSL 1.0.1g が使用されています。このバージョンはこちらからダウンロードできます。
現在使用しているOpenVPNで使用されているOpenSSLのバージョンを確認したいときは、OpenVPNのインストール先ディレクトリを開き、その中にあるlibeay32.dllを選択して右クリックして、[プロパティ]ウィンドウにある[詳細]タブから[製品バージョン]を確認してください。
OpenVPN Access Serverは影響を受けますか?
はい。Access Serverを使用しているユーザーはバージョン 2.0.6 にすぐにアップデートしてください。古いバージョンのAccess ServerのOpenSSLライブラリにパッチを当てて使用したい場合は、こちらから該当するライブラリをダウンロードし、/usr/local/openvpn_as/libにコピーしてください。
PolarSSL版のビルドは影響を受けますか?
いいえ。こちらを参照してください。
TLS-Authは保護対策として有効ですか?
ある程度そう言えます。できるだけTLS-Authキーを使用してください。今回のケースでは、攻撃者がTLS-Authキーを所持していない限りこの攻撃は行えません。ユーザー数の多いシステムの場合は、一部のOpenVPNインスタンスが侵入を受けた可能性を考慮してください。侵入されたインスタンスは他のインスタンス(サーバーを含む)を攻撃する踏み台にされる可能性があります。