期待のネット新技術
全Wi-Fi機器に影響する脆弱性「FragAttack」の仕組みとは?
【利便性を向上するWi-Fi規格】特別編(1)
2021年5月25日 06:00
【光Ethernetの歴史と発展】編も、そろそろ終盤に差し掛かったところではあるが、既報の通り、ニューヨーク大学アブダビ校のMathy Vanhoef氏が発見した、Wi-Fiのプロトコルそのものに起因する脆弱性の仕組みや対処法について、解説していきたい。
ちなみに、今回の脆弱性は、2017年に11月に「WPA2/WPA」の脆弱性を発見して公表したMathy Vanhoef氏が、オープンソースのWi-Fiスタックを分析し、IEEE 802.11の規格を体系的に調査していく中で新たに発見したものだそうだ。
「利便性を向上するWi-Fi規格」記事一覧
- Wi-Fiにおけるメッシュネットワークの必要性
- Wi-Fiメッシュ標準「IEEE 802.11s」策定の流れと採用技術
- Wi-Fiメッシュで通信コストを最小化する仕組みとは?
- 「IEEE 802.11s」策定までの流れと採用技術
- 11s非準拠のQualcomm「Wi-Fi SON」がWi-Fiメッシュの主流に
- 「Wi-Fi SON」製品は相互非互換、Wi-Fi Allianceは「EasyMesh」発表
- 最初のWi-Fi暗号化規格「WEP」、当初の目論見は“有線LAN同等のセキュリティ”
- Wi-Fi暗号化は「WPA」から「802.11i」を経て「WPA2」へ
- より強固になった「WPA」で採用された「TKIP」の4つの特徴
- 「AES」採用の「IEEE 802.11i」「WPA2」、11n普及で浸透
- WPA/WPA2の脆弱性“KRACKs”、悪用のハードルは?
- 4-way Handshake廃止で「SAE」採用の「WPA3」、登場は2018年末?
- SSID&パスフレーズをボタンを押してやり取りする標準規格「WPS」
- ボタンを押してSSID&パスフレーズをやり取りする「WPS」の接続手順
- WPSのPIN認証における脆弱性を解消した「WPS 2.0」
- フリーWi-Fi向け「Wi-Fi CERTIFIED Enhanced Open」で傍受が不可能に
- 暗号鍵を安全に共有する「Wi-Fi CERTIFIED Enhanced Open」
- 「IEEE 802.11u」がPasspoint仕様である「Hotspot 2.0」のベースに
- 国内キャリアも採用のホットスポット提供指標「WISPr」
- ホットスポットでの認証の問題を解消した「HotSpot 2.0」
- 【特別編1】全Wi-Fi機器に影響、脆弱性「FragAttack」の仕組みは?
- 【特別編2】脆弱性「FragAttack」悪用した攻撃手法とは?
- 【特別編3】脆弱性「FragAttack」を悪用する3つ目の攻撃シナリオとその手法
- 【特別編4】A-MSDUを悪用する「Frame Aggregation」を利用した攻撃の流れ
- 【特別編5】「Mixed Key Attack」を利用した攻撃シナリオとその手法
- 【特別編6】「FragAttack」を悪用した攻撃の足掛かりとなる脆弱性
- 【特別編7】Wi-Fiの脆弱性「FragAttack」を悪用した攻撃への対策とは?
Mathy Vanhoef氏は、「FragAttack(Fragmentation and aggregation Attacks)」と名付けた今回の脆弱性の詳細について、関係当局に連絡を行った後に一定の猶予期間を経てfragattack.comsのウェブサイトで公開している。
その原理について解説したドキュメント「Fragment and Forge: Breaking Wi-Fi Through Frame Aggregation and Fragmentation」(PDF)や、以下の動画も既に公開されている。
脆弱性3つのうち、「Frame Aggregation」が1つ、「Frame Fragmentation」が2つに起因
FragAttackは大別して2種類3パターンの脆弱性から構成される。「Frame Aggregation」に起因するものが1つ、「Frame Fragmentation」に起因するものが2つである。
前者のFrame Aggregationとは、複数の小さなパケットを個別ではなく、まとめて1つの大きなパケットにして送り出す方法である。
要するに、小さいパケットを大量に送ると、それぞれにヘッダーが付いたり、あるいはSend→ACKのやり取りが頻繁に発生したりするので、そのオーバーヘッドが馬鹿にならない。複数のパケットをまとめて1つにすることで、こうしたオーバーヘッドを大幅に軽減するというものだ。これはIEEE 802.11の当初から実装されていた機能である。
そして、その逆が、後者Frame Fragmentationである。要するに、大き過ぎるデータパケットは送ることができないため、データを適正なサイズへと分割し、複数のパケットで送り出すことで対応するというものだ。
Frame Aggregation/Fragmentationを悪用!?する「FragAttack」
このFrame Fragmentationも、やはりIEEE 802.11の当初から実装されていた。そして、FragAttackは、Frame AggregationとFrame Fragmentationについて、IEEE 802.11の仕様では想定されていなかった使い方(つまり仕様上の漏れ)をした場合に脆弱性が露呈する、というものだ。
まずFrame Aggregationについて。簡単にまとめると、Frame Header内にある未認証フラグ(Unauthenticated Flag)を立てた際、暗号化された認証済みのpayloadは、通常のネットワークパケットではなく1つ以上の複数のパケットが含まれるAggregate Frameとして扱われることになる。
これを利用して任意のフレームを注入し、悪意のあるDNSサーバーを利用させることで、第三者の通信が傍受可能となるというものだ。とはいえ、この説明は少し簡略化し過ぎているので、もう少しきちんと説明しよう。
次は、標準的なIEEE 802.11のフレームの構造である。先頭がFC(Frame Control)である。受信者・送信者・宛先または送信元に続いて、Fragment No.とSequence No.が続き、QoS Control(QoS用の優先順位を定めるフィールド)、PN(Packet Number)が入った後で、データを格納するpayloadが続く格好になる。ちなみに、payloadは暗号化されていることが前提だ。
厳密に言えば、Sequence No.の後にAddress 4が追加されていて、それぞれ「SA(Source Address)」、「DA(Destination Address)」、「TA(Transmitting STA address)」、「RA(Receiving STA address)」となっている。しかし、例えば直接通信であれば、SAが宛先、DAがBSSID、TAが送信元、RAは未使用などとなる。今回、RAは使われない場合を想定しているので、その点は流して欲しい。
上図の先頭にあるFCは、以下のような構造となっている。
FCそのもののサイズは2Bytes(16bit)だが、11bit目(B10)には"More Fragments"というフィールドがある。定義によれば「More Fragmentsサブフィールドは1ビット長で、現在のMSDUまたは現在のMMPDUに続く別のフラグメントを持つ全てのデータまたは管理フレームで1に、それ以外のフレームでは0に設定される」となっている。要するに、このbitが1であれば、複数のpayloadを詰め込んだFragmented Frameであると認識されるわけだ。
一方のQoSはやや複雑だ。QoS Controlも同じく2Bytesのサイズだが、先頭4bitがTID(Traffic Identifier)に、6~7bit目がAck Policyに固定されているものの、これ以外はフィールドの意味やサイズがケースに応じて変わってくる。
複数のpayloadをつないで1フレームとして送りだす「A-MSDU」の仕組みを悪用
ここでポイントとなるのは8bit目(Bit 7)のフィールドで、ここにA-MSDU(Aggregate MAC Service Data Unit)というbitが立つかどうかが重要になる。
A-MSDUは、要するに複数のpayloadをつなぎあわせて1つのフレーム(最大8KB)として送り出すという技法だ。ほかに、payloadだけでなくMACフレームまでを連結してしまい、最大64KBまでにまとめて送る「A-MPDU(Aggregation-MAC Protocol Data Unit)」という方式もあるが、今回は考慮の対象外だ。
以下がA-MSDUの模式図である。上段のNormalが標準的なIEEE 802.11のフレーム構造で言うところのpayloadにあたる。先頭のLLC/SNAP Headerに続いてIP Header、TCP Headerが付き、最後にデータ本体が格納される。
このNormalの部分の前に、宛先と送信元、サイズを付加した1つ分のpayloadとして格納しものが、A-MSDU Subframeとなる。あとはこれを最大8KBまで繰り返すという仕組みだ。
さて、このフレームを受け取った受信者は、QoSフィールドにA-MSDUフラグが設定されていた場合、全てのA-MSDU Subframeを抜き出し、Subframeで指定された送信先と送信元のアドレスを持つEthernet Frameへと変換する。
ここで問題となるのは、QoSフィールドは認証されているもののデフォルトではA-MSDUフラグは0にマスクされており、実際には認証されていないということだ。A-MSDUフラグを改変することで、受信者はpayloadにA-MSDUが含まれると誤った解釈をしてしまうため、これを悪用すれば、第三者が通常のフレームを傍受できてしまうわけだ。
偽のDNSサーバーへアクセスさせる2つの事例
具体的に攻撃を行うには、まず前提として攻撃対象のクライアントのIPアドレスが既知になっている必要がある。これは、例えばダミーのウェブページへあらかじめ誘導しておいたり、ウェブ広告を悪用したりするなど、いくつかの手法が考えられる(これを知る方法そのものは、今回の話には含まれていない)。
フレームが暗号化されたpayloadをどのように解析するかを受信者に通知しているA-MSDUフラグは、上で書いた通り認証の対象とはならない。厳密に言えば、SPP(Signaling and Payload Protected) A-MSDUをサポートすれば認証の対象になるはずだが、Vanhoef氏が調査した機器でこれを行っているものはなかったという。
その結果、A-MSDUをサポートする全ての機器は、通常のFrameをA-MSDUとして処理することも、その逆も可能ということになる。そして、攻撃者は、通常のFrameにA-MSDUフラグを立てて、わざとA-MSDUとして被害者に送り出すわけだ。
以下のA-MSDUの模式図は、上が通常のIPv4パケットとして認識される場合、下側がA-MSDUとして認識される場合を示している。最初のA-MSDU Subframeは(Source/Destinationが出鱈目だから)、もちろん意味をなさないが、これは犠牲者の側で単に破棄されて終わりである。
問題は、IDというかLength fieldを書き換えられることで、これにより攻撃者は2つ目のSubframeをこの後に追加できることになる。これにより、悪意を持った攻撃者が、任意のパケットを被害者に処理させることが可能となるわけだ。
具体的な攻撃例としてVanhoef氏が示したのは、IPv4/v6 Stackを搭載したクライアントに対し、不正なICMPv6 RA(Router Advertisement)を注入して、偽のDNSサーバーにアクセスさせるという事例と、アクセスポイントに対して細工を施したEAPOL(EAP over LAN)フレームを送り付け、結果的にクライアントに偽のDNSサーバーへのアクセスを誘導するという事例の2つだ。
「周波数帯を拡張するWi-Fi 6E」記事一覧
「Wi-Fi高速化への道」記事一覧
- 20年前、最初のWi-Fiは1Mbpsだった……「IEEE 802.11/a」
- ノートPCへの搭載で、ついにWi-Fi本格普及へ「IEEE 802.11b/g」
- 最大600Mbpsの「IEEE 802.11n」、MIMO規格分裂で策定に遅れ
- 1300Mbpsに到達した「IEEE 802.11ac」、2013年に最初の標準化
- 「IEEE 802.11ac」のOptional規格、理論値最大6933Mbps
- 「IEEE 802.11ac」でスループット大幅増、2012年に国内向け製品登場
- 11ac Wave 2認証と、ビームフォーミングの実装状況
- 「IEEE 802.11ad」普及進まず、「IEEE 802.11ax」標準化進む
- 「IEEE 802.11ax」は8ユーザーの同時通信可能、OFDMAも採用
- 「IEEE 802.11ax」チップベンダーとクライアントの製品動向
- 11ad同様に60GHz帯を用いる「WiGig」、UWBの失敗を糧に標準化へ
- 最大7GbpsのWiGig対応チップセットは11adとの両対応に
- 11adの推進役はIntelからQualcommへ
- 次世代の60GHz帯無線LAN規格「IEEE 802.11ay」
- 60GHz帯の次世代規格「IEEE 802.11ay」の機能要件
「利便性を向上するWi-Fi規格」記事一覧
- メッシュネットワーク編【1】【2】【3】【4】【5】【6】
- Wi-Fi暗号化編【1】【2】【3】【4】【5】【6】
- WPS(SSID&パスフレーズ交換)編【1】【2】【3】
- フリーWi-Fiスポット向け接続規格編【1】【2】【3】【4】【5】【6】
- スマホでQRコードを読み取り、ほかの機器をWi-Fi接続する「Wi-Fi Easy Connect」
- Wi-FiでVoIPを実現する音声伝達向け規格「Wi-Fi CERTIFIED Voice-Personal」
- Wi-Fi子機同士を直接接続する「Wi-Fi Direct」
- 高精度の屋内測位機能を提供する「Wi-Fi CERTIFIED Location」
- Wi-Fiで100μs精度の時刻同期ができる「Wi-Fi CERTIFIED TimeSync」
- 公衆Wi-Fiアクセスポイント向けの「Wi-Fi CERTIFIED Vantage」
- 同一LAN内移動時のローミングなどを規定した「Wi-Fi CERTIFIED Agile Multiband」
- 異なるESSIDのへの接続を高速化「Wi-Fi CERTIFIED Optimized Connectivity」
- 11axはCBRSとあわせて伸びる分野~Ruckus Networksインタビュー1
- 11axはCBRSとあわせて伸びる分野~Ruckus Networksインタビュー2