2月中旬の金曜日の夕方近くになって、AppleはiOSのバグに対する修正をひっそりと公開しました。これは証明書の確認に関する深刻なバグで、安全とされる通信を傍受されてしまう恐れがありました。
極めて重大なバグに対する修正パッチが、金曜の夕方という見落とされがちな時間帯に公開されたわけですが、これがAppleのいつものやり方です。カリフォルニア州クパチーノに本社を置く大手コンピューター企業、Appleの秘密主義は、伝説的と言えるほどよく知られています。
しかし翌日には大きな注目が集まりました。このバグがAppleのモバイルオペレーティングシステムであるiOSだけでなく、OS Xにも影響することが判明したのです。その後、さらに関心が高まります。これと不気味なほどよく似たバグがGnuTLSにもあることが明らかになったのです。GnuTLSはフリーのオープンソースソフトウェアで、各種Linuxディストリビューションをはじめとするさまざまなプラットフォームにて暗号化の実装に使用されています。
これらのバグ(特にAppleのバグ)に対する注目度が高まるにつれて、何か裏を示唆する意見を発表する報道機関やリサーチャーが増えました。暗号とセキュリティの世界的な権威であるブルース・シュナイアー(Bruce Schneier)氏は、このぜい弱性を次のように説明しています。
「微妙な不具合であり、コードのスキャンによって発見するのは困難です。ミスによっていかに発生し得たのかは容易に想像がつきます。また、1人の人間がこのぜい弱性をつけ加えるのは、いともたやすいことだったでしょう。」
「故意に行われたのか?それはわかりません。ただ、私が似たようなことを意図的にやるとしたら、まさにこれをやるでしょう。」
他のリサーチャーはもっと遠慮のない論調です。Appleのバグにつながったコーディングエラー(「goto fail」)は、あり得ないようなミスであり、コードのレビュープロセスで見落とすのはもっと可能性が低いとの見方です。もちろん、現在の状況と「goto fail」のぜい弱性が持つ有用性を考えると、AppleのバグもGnuTLSのバグも、スパイ行為をなりわいとしている者にとって非常に価値が高い、という見解は多くの一致するところでした。
偶然性と類似性に疑いの余地はありませんが、この2つのバグが生まれた経緯はまったく異なります。同じく暗号のエキスパートであるジョンズ・ホプキンス大学のマシュー・グリーン(Matthew Green)氏は、GnuTLSのバグを検証した結果、(つまらないミスではあるものの)悪意のないコーディングエラーが原因だと考えました。
陰謀論はさておき、この暗号検証の不具合がGnuTLSに存在するということは、Red Hatのデスクトップ製品とサーバー製品だけでなくDebianやUbuntu(Linux)のインストレーションにも、これらが動作するコンピューターで行われる通信を監視するのに使えるバグがあるということです。このバグは、システムの至るところに影響を与えます。(「HTTPS」と表示される)安全なWebブラウジングセッションのほか、アプリケーションやダウンロードなど、GnuTLSを使用して暗号化されているすべての通信に影響します。
はっきりさせておきたいのは、攻撃者がこれらのバグを利用するためには、標的と同じローカルネットワークに入る必要がある、ということです。しかし、条件が整えば、このバグを利用した中間者攻撃が可能になります。つまり、信頼できるオンラインサービスプロバイダーと通信しているとユーザーは思っていても、実際には、ネットワーク上にいる攻撃者へデータパケットを送信している状態になるのです。どちらのバグも、ログイン情報を盗み、ローカルネットワークでの通信を盗み見る上で非常に有効な手段となり得ます。
セキュリティエキスパートであり、ノースカロライナ州のSocial & Scientific Systemsで主任研究員を務めるケニス・ホワイト(Kenneth White)氏は次のように述べています。「実に最悪のバグです。攻撃者は任意のドメインを簡単に偽造して正規のドメインのようにみせかけ、アクセス要求した人に正規のものと信じ込ませることができます。したがって、機密性の高い通信チャネルが傍受されるだけでなく、信頼されているパッケージファイル署名のプロセスも侵害される恐れがあります。」
別の言い方をすると、ソフトウェアをダウンロードするときには開発元がわかる証明書のようなものが表示されますが、これを偽造される可能性がある、ということです。
Linuxが動作するコンピューターを使っている人はぜい弱を抱えている可能性が高いと言えます。最新の更新をできるだけ早くLinuxディストリビューションにインストールしてください。Linux OSを使っていないからといって、安全とは限りません。GnuTLSは幅広く開発されているオープンソースのソフトウェアパッケージであり、無数のシステムで実行されています。この記事の教訓としてはやはり、パッチを早めに、頻繁にインストールすることです。