OpenSSLの脆弱性 ( CVE-2017-3737, CVE-2017-3738 ) — | サイオスOSS | サイオステクノロジー

OpenSSLの脆弱性 ( CVE-2017-3737, CVE-2017-3738 )

12/7に、当初の予告通りopensslに関しての脆弱性情報 ( CVE-2017-3737, CVE-2017-3738 )が公開されました。今回は、これらの脆弱性の概要と、各ディストリビューションの対応について簡単にまとめてみます。

こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。

12/7に、当初の予告通りopensslに関しての脆弱性情報 ( CVE-2017-3737, CVE-2017-3738 )が公開されました。今回は、これらの脆弱性の概要と、各ディストリビューションの対応について簡単にまとめてみます。



影響するバージョン

OpenSSL: 1.0.2l以前

Priority

Medium(CVE-2017-3738)/Low(CVE-2017-3737)

修正方法

各ディストリビューションの情報を確認してください。

CVE概要(詳細はCVEのサイトをご確認ください)

  • CVE-2017-3737

    • 「error state(エラー状態)」を回避してSSL_read()やSSL_write()が呼び出せるバグ

    • 重要度 – Medium/Moderate

    • 対象:1.0.2系(1.0.2m, 1.0.2l, 1.0.2k, 1.0.2j, 1.0.2i, 1.0.2h, 1.0.2g, 1.0.2f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b)

    • OpenSSL 1.0.2b以降では「error state(エラー状態)」メカニズムが導入されています。これは、ハンドシェイク中に致命的なエラーが発生した場合に、OpenSSLはエラー状態に移行し、ハンドシェイクを続行しようとすると即座に失敗するようになるものです。

      これはハンドシェイク関数(SSL_do_handshake(), SSL_accept() and SSL_connect())の場合には動作しますが、SSL_read()やSSL_write()が直接呼び出された場合にはバグにより動作しません。その場合、ハンドシェイクが失敗した場合には最初の関数のコールで致命的なエラーが返されます。

      もしSSL_read()/SSL_write()がアプリケーションによって同じSSLオブジェクトに対して続けて呼び出された場合、その呼び出しは成功し、データがSSL/TLSレコードレイヤから暗号化/復号化されずに渡ってしまいます。

      この問題を悪用するには、アプリケーションが致命的なエラーを既に受け取った後に、更にSSL_read()/SSL_write()をコールするようなバグが存在する必要が有ります。

  • CVE-2017-3738

    • AVX2モンゴメリ乗算プロシジャーにオーバーフローのバグ

    • 重要度 – Low

    • 対象:1.0.2系(1.0.2m, 1.0.2l, 1.0.2k, 1.0.2j, 1.0.2i, 1.0.2h, 1.0.2g, 1.0.2f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2)

    • 対象:1.1.0系(1.1.0g, 1.1.0f, 1.1.0e, 1.1.0d, 1.1.0c, 1.1.0b, 1.1.0a, 1.1.0)

    • 1024ビットの係数を使用した累乗で使用されるAVX2モンゴメリ乗算プロシジャーにオーバーフローのバグがあります。ECアルゴリズムは影響を受けません。

      これはAVX2をサポートするプロセッサにのみ影響しますが、Intel Haswell(第4世代)などのADX拡張は影響を受けません。

      注):この問題のインパクトは、CVE-2017-3736CVE-2017-3732, CVE-2015-3193に似ています。この問題の重要度は”Low”であるため、現時点ではOpenSSL 1.1.0の新しいリリースは出ていません。


主なディストリビューションの対応方法

詳細は、各ディストリビューションの提供元にご確認ください

なお、OpenSSL 1.0.1シリーズ以前のバージョンは本家ではサポート終了となっておりますので詳しい情報は各ディストリビューションの提供元にご確認下さい。


対処方法

各ディストリビューションの案内に従い、アップデートを行ってください。全てのRed Hat製品でパッチが行き渡っているかを確認するには、Red Hat Satelliteを使うと管理が便利でしょう。

Red Hat Satelliteを用いた一般的なErattaの適用は、『Red Hat Satellite 6でerrataを適用してみる』
参考にして下さい。

また、アプリケーションの再起動が発生しますので、pacemakerなどOSSのクラスタ製品LifeKeeperなどの商用のクラスタリング製品を使うとサービス断の時間を最小限にすることが出来ます。

[参考]

https://mta.openssl.org/pipermail/openssl-announce/2017-December/000109.html


セミナー情報

12/13/(水)に「OSSセキュリティナイターvol.7」と題して、セキュリティのセミナーを行います。この回では、『IoTセキュリティの今/世界のLinux Securityの今 』と題してIoTセキュリティの著名な方、またLinux Securityの著名な方を講師としてお招きし、IoTセキュリティの話と、世界のLinux Securityの最新動向を御講演頂きます。

https://connpass.com/event/72983がプログラム内容と申し込みの詳細になりますので、是非お申し込み下さい。

セキュリティ系連載案内

—–

タイトルとURLをコピーしました