Appleは21日、iOSのソフトウェアアップデート7.0.6をリリースした。
iOS 7.1が早ければ3月中旬にもリリースされるとみられていたが、SSL接続の検証に関して、半月以上も待つことができない重大なバグが見つかったためだ。
Apple史上最悪のセキュリティバグか
SSLとは、「ウェブサイトで入力する個人情報やクレジットカード情報などを暗号化し、安全に送受信する技術」(Symantec)だ。データを安全にやりとりするために利用されている非常に重要な技術となっている。
そして今回、クライアント(ユーザ側)とサーバ(ウェブサイト側)の間をSSL接続する際のプログラムに、「BASIC初心者でも一目で分かるようなミス」(Wired)が見つかり、修正されることになったようだ。ミスがあったのは、以下の部分。
「goto fail;」が2行続けて記述されている箇所に注目してほしい。2行目の「goto fail;」が存在するおかげで、これ以後の検証過程をスキップし、常に検証が成功することになってしまう(詳細に解説している英文記事)。おそらく、プログラマのタイプミス(コピペミス)が原因だろう。むしろ、それ以外に原因が考えづらい。
意訳、ありがとう / “Apple's SSL/TLS bug (22 Feb 2014)の意訳” http://t.co/9STBIn6WR3
— Kazuhiro Ishibashi (@airchair3) 2014, 2月 26
このバグによって、悪意のあるサイトに接続した場合などに、攻撃者はさまざまなデータをキャプチャしたり改ざんしたりすることができてしまう。
暗号の専門家であるMatthew Green氏(ジョンズ・ホプキンス大学教授)は「Really bad(本当にマズイ)」とツイートしている。
Ok, I know what the Apple bug is. And it is bad. Really bad.
— Matthew Green (@matthew_d_green) 2014, 2月 21
いつ頃からバグが存在したのかは明らかではないが、少なくとも2013年10月以前から存在していたという声もある。Mac OS Xにも同様の脆弱性が存在しているとのことだ。
So goto fail was added before October 2013. It is in 10.9 but not 10.8.5; and it is in iOS 6.1 and iOS7...Ouch. Long time to not support SSL
— the grugq (@thegrugq) 2014, 2月 22
Safariでhttps://gotofail.com/にアクセスすると、攻撃されやすい状態にあるか否かを確認することができる。
アップデート方法
非常に危険なバグであるため、ユーザは速やかにアップデートするべきだ。