OpenSSLの証明書チェーン構築処理に不具合が発見された。今回のOpenSSLのセキュリティホールは、「Heartbleed」や「FREAK」、「Logjam」のような深刻なレベルのものではないが、パッチを遅らせていいほど軽い問題でもないため、速やかにアップデートを適用すべきだ。
幸い、影響を受けるOpenSSLのバージョンは、エンタープライズ向けのOSではあまり使用されていない。例えば今回の問題は、「Red Hat Enterprise Linux」(RHEL)や「Ubuntu」のサポート対象バージョンには影響がない。Ubuntuに関しては、15.10に向けた開発中のバージョンには影響があるが、パッチはすでに提供されている。
このOpenSSLの脆弱性は次のようなものだ。
OpenSSLが証明書の検証を開始する際、証明書チェーンを構築する最初の試みで失敗すると、別の証明書チェーンを発見しようとする。しかし、現在の実装には問題があり、その際に信頼されていない新しい証明書に対するセキュリティチェックが一部省略されてしまっている。例えば、今回の実装では認証局(CA)のフラグを確認していないため、攻撃者が有効なリーフ証明書を使用して、CAとして偽の証明書を発行することが可能になっている。このセキュリティホールを利用すれば、攻撃者が偽のサイトを正規のサイトに偽装できる。
このセキュリティホールは、中間者攻撃を可能にしてしまう。
この問題の影響を受けるOpenSSLのバージョンは、1.0.2c、1.0.2b、1.0.1n、1.0.1oだ。OpenSSL 1.0.2b/1.0.2cのユーザーは1.0.2dに、OpenSSL 1.0.1n/1.0.1oのユーザーは、1.0.1pにアップグレードする必要がある。
このセキュリティホール(CVE-2015-1793)は、Googleの「BoringSSL」の開発者によって発見された。BoringSSLは、Googleが独自に開発しているオープンソースのSSLだ。BoringSSLのアプリケーションプログラミングインターフェース(API)とアプリケーションバイナリインターフェース(ABI)は、セキュリティ用のプログラムとして広く使用できるほどは安定しておらず、まだオープンソースプロジェクトとしてOpenSSLの代わりに使用できるものではない。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。