先週、Armis LabsがBluetoothの実装における脆弱性情報および攻撃経路を発表した。
まだ攻撃コードは発見されていないというが、「BlueBorne」というタイトルのこのドキュメントを元に、多くのOS(Windows、Linux、iOS、Andoroidなど)に影響するセキュリティクライシスとして、早急な対応がアナウンスされている。


◎スマートフォン普及につれ、身近になったBluetooth
Bluetoothはいまや、スマートフォンユーザーであれば無意識に使っているといえる無線通信の規格だ。無線通信というとすぐに浮かぶのがWi-Fiだが、Wi-Fiと比較すると、

・Wi-Fi(IEEE802.11a/11gの場合)の転送速度は最大54Mbps、通信距離は100〜300メートル
・Bluetoothの転送速度は最大24Mbps、通信距離は10〜100メートル程度

という違いがある。

Wi-Fiが遠くまで高速で通信可能なのに対し、BluetoothはWi-Fiよりは近距離、低速通信となる。音楽や動画の再生などリッチなコンテンツサービスを利用するならWi-Fi、BluetoothはPCとマウスやキーボード、メディアプレイヤーとイヤホンのように、近距離で用いる無線通信に、と活用シーンも異なる。

スマートフォンで多く使われるようになったのは、Bluetooth Low Energy(BLE)という省電力のバージョン(規格)が登場してからだ。
iPhone、Android端末と通信するスマートウォッチから活動量計に至るまで、多くの対応デバイスが登場している。
身につけて生体データを取得したり、スマートフォンと連携しメールやSNSのアクティビティを通知したり、ユーザー側は意識することなく、便利な機能を利用することができる。

◎8つのゼロデイ脆弱性今回、Armis Labsが公表したBluetoothのゼロデイ脆弱性(存在しているものの周知されていない脆弱性のこと)は、さまざまなOSのBluetoothの実装に渡る。
たとえば、次のようなものだ(ここでは、本当にざっくり紹介する)。

・LinuxにおけるL2CAPの実装の脆弱性
攻撃者はL2CAPレスポンスに基づき、細工したデータを送ることでカーネルスタック上のバッファをオーバーフローさせることが可能

・Linux、AndroidにおけるSDP(Service Discovery Protocol)実装の脆弱性
攻撃者は細工したSDPリクエストをSDPサーバに送ることで、領域外メモリ参照を発生させることが可能

・AndroidにおけるBNEP(Bluetooth Network Encapsulation Protocol)実装の脆弱性
攻撃者は細工したパケットをデバイスに送ることでバッファオーバーフローを発生させることが可能。また整数アンダーフローを発生させることにより攻撃者による細工したパケットが処理されてしまう可能性も指摘されている

・iOSにおけるBluetooth Low-Energy Audio Protocol(LEAP)実装の脆弱性
攻撃者は通常のBluetooth パケットを送信することで、複数のバッファーオーバーフローを発生させ、Bluetoothスタックの実行権限で任意のコードを実行することが可能

・AndroidおよびWindowsにおけるBluetooth PANプロファイル実装の脆弱性
認証回避の脆弱性であり、これにより攻撃者は中間者攻撃を行うことができ、機器間の通信を取得することが可能

というように、

これらの脆弱性を用いた攻撃経路をArmis Labsは次のように示す。

・周囲のアクティブなBluetooth接続を探索
(デバイスが検出可能モードに設定されていなくても識別できる)
・特定のデバイスのMACアドレスを取得
・デバイスの情報を調べることにより、使用しているOSを特定
・OSのBluetooth実装に存在する脆弱性を悪用しアクセス権を取得

Bluetoothデバイスは、ほとんどの場合、検出可能モードに設定されていないときでも、そのデバイスをターゲットにしたユニキャストトラフィックを待ち受けている。
こうしたBluetoothのプロトコルを悪用し、攻撃の入り口にしているのだ。

つまり、

・これまでのマルウェアやウイルスとは異なり、実行するためにユーザーの操作を必要としない

今回の衝撃の最大はここだろう。

攻撃を有効にするために、ユーザーに
・フィッシングリンクをクリックさせる
・ファイルをダウンロードさせる
といった、他者のアクションに頼る必要がない。
(脆弱性の)対応デバイスを持っているだけで、攻撃にさらされる危険があるのだ。

さらに、驚かされるのが、その数だ。
今回のBlueBorne、大規模な影響が危惧されているのだ。
脅威にさらされているのは、推定50億台とも、80億台ともいわれている。

Armis Labsはこの情報をすでに、GoogleやApple、Microsoft、Samsung、Linux Foundationなどの関連企業(団体)提供。すでに各社が対策を講じている。

IPAが「Bluetooth の実装における複数の脆弱性について」として公開する情報では、以下のとおり。

・Androidの場合
Android Security Bulletin―September 2017
https://source.android.com/security/bulletin/2017-09-01

・Linuxの場合
- RedHat
Blueborne - Linux Kernel Remote Denial of Service in Bluetooth subsystem - CVE-2017-1000251
https://access.redhat.com/security/vulnerabilities/blueborne
CVE-2017-1000250
https://access.redhat.com/security/cve/CVE-2017-1000250

- ubuntu
Bluetooth/BlueZ information disclosure in BlueZ and remote code execution in the bluetooth L2CAP stack in the Linux kernel (CVE-2017-1000250, CVE-2017-1000251 aka BlueBorne)
https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/BlueBorne

・Windowsの場合
CVE-2017-8628 | Microsoft Bluetooth ドライバーのなりすましの脆弱性
https://portal.msrc.microsoft.com/ja-JP/security-guidance/advisory/CVE-2017-8628

・iOS 10以降は対応済み

また、Armis Labsでは、「BlueBorne Vulnerability Scanner」という、脆弱性を持つシステムかどうかを調べるアプリもリリースしている(Android版のみ)。

Armis Labs BlueBorne
https://www.armis.com/blueborne/#/technical


大内孝子