iPhoneやAndroidなどのスマートフォンを、企業で利活用する例が増え、スマートフォンのセキュリティも強く意識されるようになってきた。マルウエアやスパイウエア(情報収集モジュールを含む)は相次いで現れている。
ただ、それ以外にも様々な攻撃手法が生み出されている。中でも筆者は、「ビットスクワッティング」と呼ばれる手法が気になっている(図1)。
熱などによるビットエラーが起因
ビットスクワッティングはセキュリティ技術者のアーテム・ダイナバーグ氏が、2011年8月に開催されたハッカーイベント「DEFCON」で発表した新しい手法。スクワッティングは「無断占拠」という意味で、ハードウエア上で発生するビットエラーを利用して、DNSハイジャックを行う手法がビットスクワッティングだ。
例えば米放送局のCNNのWebサイト「CNN.COM」にアクセスしたり、CNN.COMドメインのユーザーにメールを送信するケースを想定しよう。宛て先となる「CNN.COM」の文字列は、その信号のうち特定の1ビットの0と1を変えると、「CON.COM」になってしまう。実は、CPUの発熱などに起因するビットエラーによって、こうしたことが起こる場合がある。
ビットエラーが発生したのが通信路ならば誤り訂正符号で復元されたり、TCPによって再送要求が発生したりする。しかし端末内部のメモリー上でビットエラーが発生した場合、特殊なメモリーでないとビットエラーを訂正できない。ユーザーは、CNNにアクセスしているつもりで「CON.COM」という誤ったドメイン名のサーバーにアクセスしようとする。
ここで、CON.COMというサーバーが存在しなければDNSルックアップでエラーになる。CON.COMというサーバーが存在しても、CNNと全く違うWebサイトならユーザーはすぐに気付くだろう。では、CON.COMがCNNと酷似した偽ページになっていたらどうだろう。ビットスクワッティングを使う攻撃者は、こうしたフィッシング詐欺を狙う。
メールの場合、メールアドレスが一致していればCON.COMのサーバーがそのまま受信する。ユーザーは送り先が間違っていることに気付けないかもしれない。CON.COMというドメイン名で待ち受けていれば、いつか獲物が飛び込んでくるわけだ。
ビットエラーは熱や電圧異常、宇宙線、磁気によって引き起こされる。ダイナバーグ氏は、これらに対する対策が、スマートフォンはパソコンに比べて劣るとする。例えばスマートフォンやタブレット端末では、パソコンのような冷却用ファンは搭載していない。そのため長時間使っていると、かなりの熱を持ってくる。これはユーザーならば実感していることだろう。そうした高温状態になったとき、メモリーはビットエラーを起こしやすくなっている。
もちろん、CNNをCONに置き換える特定のビットに、こうしたビットエラーが発生する可能性はかなり低い。それでも、ダイナバーグ氏によると、世界中で毎日60万回のビットエラーが理論上発生していると推測されるそうだ。スマートフォンやタブレット端末が普及すると、もっと増えていくと筆者は予想している。