「OpenSSL」に2件の脆弱性が存在し、パッチが提供されたことが明らかになった。どちらの脆弱性も、セキュリティに重大な影響を及ぼす可能性がある。
暗号ライブラリであるOpenSSLは、有名なウェブサイトのSSLやTLSでも利用されており、これにはTwitter、GitHub、Tumblr、Steam、DropBoxなども含まれる。
OpenSSLが使われているのはウェブサイトだけではない。オープンソースの仮想プライベートネットワークである「OpenVPN」や、リモートからターミナルに安全にログインするために使用する「OpenSSH」の古いバージョンでも使用されている。
これは、セキュアなサーバを運用していれば、OpenSSLを利用している可能性が高く、ただちにパッチを適用する必要があるということだ。
今回修正された脆弱性は次のようなものだ。
第1の問題として、ASN.1エンコーダにメモリ破損の問題が存在する。ASN.1は、言語に依存しないデータ記述形式規則だ。
この問題は、2つのより小さな問題から生じている。その1つは、OpenSSLのASN.1エンコーダが、ゼロを負の整数として表現する場合があるという問題だ。この問題はバッファアンダーフローを発生させ、アウトオブバウンドメモリ書き込みが可能になる可能性がある。一般的な状況では、負の整数が生成されることはないため、このことが実際の問題になることはなかった。
ところが、ASN.1のパーザーが、大きなUniversalタグを誤って負の整数値として解釈する場合があるという、これとは別のバグが明らかになった。大きなUniversalタグは一般的ではないが、ASN.1で使用することは許されている。
これら2つの小さな問題を組み合わせると、攻撃者はアウトオブバウンドの書き込みを行うことができる。
OpenSSLのセキュリティブログによれば、「X.509証明書の構文解釈と再エンコードを行うアプリケーションには、この問題に対する脆弱性が存在することが分かっている」という。X.509はSSLやTLSで利用されている公開鍵証明書であり、ユーザーが暗号化された接続でウェブサイトに接続するたびに利用されている。
また、今回修正された第2の問題は、接続でAES CBC暗号が使われており、サーバがAES-NIをサポートしている場合に、パディングオラクル攻撃によってトラフィックを復号化できるというものだ。パディングオラクル攻撃を使用すると、暗号を簡単に破ることができる。この種の攻撃が危険なのは、もし一部の暗号メッセージが破られると、同じ暗号を使用しているすべてのメッセージが破られてしまうということだ。
これは、中間者攻撃でデータを復号化できるということを意味している。
これらの問題に対する解決方法は、OpenSSLをできるだけ早くアップグレードすることだ。OpenSSL 1.0.2のユーザーは、OpenSSL 1.0.2hへ、OpenSSL 1.0.1のユーザーは、OpenSSL 1.0.1tにアップグレードして欲しい。すでに、すべての主要なLinuxディストリビューションでパッチが提供されている。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。