期待のネット新技術
全Wi-Fi機器に影響、脆弱性「FragAttack」悪用した攻撃手法とは?
【利便性を向上するWi-Fi規格】特別編(2)
2021年6月1日 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」を悪用した攻撃への対策とは?
送出パケットを分割する「Frame Fragmentation」の2つの欠陥
前回の「Frame Aggregation」に続いて、今回は「Frame Fragmentation」について。
こちらには2つの欠陥があり、それを悪用しての攻撃が可能だ。このうち1つ目は仕様上の欠陥である。IEEE 802.11では、1つのパケットが複数のFrameへFragmentされる際に、その全てのFrameが同一の鍵で復号化できることを要求していない。つまり、異なる鍵で暗号化されたFrameが混在していても、それを受信側は受け入れてしまう。これが1つ目の欠陥だ。
2つ目は、暗号化されたFragmentがいつ機器のメモリ(Fragment Cache)から削除されるかに関する規定がないことだ。その結果、例えば暗号化のキーが途中で変更された場合でも、Fragment Cacheの中身がそのまま残るという問題がある。
例えば、Fragment Cacheに不正なFragmentを外部から注入することで、被害者は(自身では意図せずに)不正なFragmentを注入されたパケットを生成したり、あるいは逆に復元したFragmentを流出させてしまうわけだ。
2番目については、筋で言えば実装上の問題という話でもあるが、広義にはやはり仕様上の欠陥としていいかと思う。そして、この2つの欠陥は、それぞれ独立して攻撃の対象となり得る。
11axではFragment Frameが送出される機会が増加
1つ目の欠陥について話す上での前提として、WEP、CCMP(Counter mode with CBC-MAC Protocol)、GCMP(Galois/Counter Mode Protocol)のそれぞれに対して有効な混合鍵攻撃を考えてみよう。CCMPはWPA2、GCMPはWPA3でそれぞれ追加された暗号プロトコルだ。
この攻撃では、ネットワーク内の1つ以上のデバイスがFragment Frameを送信する必要がある。そもそもFragment Frameが生成されるのは、データサイズがMTUを超えてしまう場合だから(このためFragmentの閾値はMTUと通常は一致している)、干渉などのない環境では実はそう頻度が多くない。
ただ、干渉やノイズが多い環境ではFragmentの利用が推奨され、さらにIEEE 802.11axではDynamic Fragmentationが採用されている。
その理由に、従来のFragmentation(Static Fragmentation)では、最後のFragmentを除く全てのFragmentが一定のサイズとなる仕組みだったことがある。例えば、データのサイズが100Bytes、Fragmentの閾値が30であれば、Fragmentのサイズは30/30/30/10となる。ところが、Dynamic Fragmentの場合、30Bytes溜まるまで待たなくても送信できる機会があれば、積極的に送信してしまうことが可能となっている。
その結果、例えば25/30/20/25といった送り方が許されるようになったわけだ。仕様では、これをサポートによって、オーバーヘッドを削減できるとしていた。こうなると、従来と比べてFragment Frameが送出される機会は非常に多くなる。山奥の一軒家などであればともかく、通常の住宅地やオフィス街などであれば、Fragment Frameが利用される機会はかなり多いと考えざるを得ない。
Frameの断片をつなぎ合わせてパケットを偽造
さて、混合鍵攻撃を行うためには、機器のSession Keyを定期的に更新し、被害者をだまして悪意を持った(攻撃者が管理している)サーバーへパケットを送信する必要がある。昨今では、デフォルトのSession Keyを定期的に更新する環境はあまりないが、Mathy Vanhoef氏とFrank Piessens氏が2017年に公開した"Key Reinstallation Attacks: Forcing Nonce Reuse in WPA2"という論文において、WPA2環境でSession Keyを頻繁に更新させる手法が議論されており、これが利用できるとしている。
実際の攻撃手法の骨子は、異なるキーで暗号化されたFrameの断片をつなぎ合わせてパケットを偽造することである。Fragmentでは本来、パケット番号が連続しているはずだ。ただし、Vanhoef氏によれば、この番号が連続しているかを実際に確認している実装はそれほど多くなかったらしい。ただ、一応パケット番号が連続するかたちで偽造を行うようにした(ので、仕様に完全に沿った実装でも今回の脆弱性は内包している)とのことだ。
その攻撃の手順が以下となる。ここでは、脆弱性を持つアクセスポイントを利用し、Clientから送信されたデータを流出させるという流れだ。
Fragmentを起こす長さのURLを持つウェブサーバーへアクセスさせる「Stage 1」
このうちStage 1では、まず何らかの方法で攻撃者(図のAttacker)の準備するウェブサーバーへアクセスさせる。直接ウェブサーバーを開かせなくとも、例えば広告などを利用してもいいわけだ。このアクセスそのものでは、別に悪いことをする必要はなく、無害なコンテンツをダウンロードさせる程度でいい。
ただ、この際にそのURLを、Fragmentを起こすのに十分な長さにすることが重要となる。これによってClientは、Fragment Frameを送信することになる。上の図で言えば「Frag0」と「Frag1」がそれにあたり、このどちらもがEncで暗号化される。なお、ここでのsはシーケンス番号、nはパケット番号だ。
この状況でAttackerは「MitM(Man-in-the-Middle)」、つまり中間者のポジションを取る。AttackerはClientからの全てのパケットを傍受し、Frame内のFragment全てを受信して収集する。その後、Attackerは先頭のFragment(図の「Frag0」)のみをアクセスポイントへ転送する。すると何が起きるかというと、アクセスポイントはこの最初のFragmentのみを受信して復号化し、自身のメモリ(Fragment Cache)へと格納する。Stage 1は以上で終了である。
次いでStage 2、つまり実際の攻撃が行われるまでの間、AttackerはClientから送られてきた全てのFrameをアクセスポイントへ転送する。ただ、ここで注意が必要なのは、ここで転送されるFrameは全て「s」以外のシーケンス番号を取ることだ。
キー更新タイミングの前後で傍受したパケットをつなぎ合わせる「Stage 2」
さて、そのStage 2であるが、スタートはClientが4-wayハンドシェイクでPairwise Keyの更新(Re-Key)を行うタイミングだ。これは一定時間間隔で行われるほか、発生するとSecure Packetのパケット番号が0に戻ることで検出できる。これを先の図で言えば、Stage 1のキー「K」が、Stage 2では「L」へと切り替わるタイミングとなる。
このRe-Keyが発生したら、AttackerはClientからのパケットを再び傍受する。そしてパケット番号「n」でFragment 0、「n+1」でFragment 1が送られるのを待つ。このFragment 0/1は、先に送られたものとは当然中身が異なる(ので内部は「s'」になっている)わけだが、これを検知したAttackerは、最初の「Frag0(s')」を破棄。そして次の「Frag1(s')」のシーケンス番号を「s」へ書き換えてアクセスポイントに送る。
するとアクセスポイントは、Stage1で受信して復号後にFragment Cacheに格納されていた「Frag0」と、今送られてきた別の内容を持つ「Frag1」を(やはり復号後に)組み合わせ、それを目的のサイトへ送り出すという動きをすることとなる。この「Frag1」の方には、暗号化されたユーザーデータ(の断片)が格納されているので、あとは適切なサイトへ誘導し、そのデータを取得すればいい、というわけだ。
一部のアクセスポイントではパケット番号が連続していることが必要となるが、これは例えばClient側で悪意をもったJavaScriptを動かし、バックグラウンドでのトラフィック送信を行わせることで、上手く数字を合わせられる(先の図で言えば「n+1」になる)確率が高まる。
同様の攻撃を繰り返してIDとパスワードを入手
これが上手く行った場合の例が以下だ。1つ目のパケットは、例えば3.5.1.1に対して「image.png」を取得するという単純な(これだけ見ると害のない)もので、2つ目のパケットはSecureなログインを行うものとなる。
この2つを、Mixed Key Attackによって混ぜることで、3.5.1.1という(Attackerが用意した、悪意のある)ウェブサーバーは、ユーザー名とパスワードを無事入手することができる。
もちろん、この例だと、本来ログインすべきウェブサーバーのアドレスである39.15.69.7は分からないが、この1つのパケットだけで全ての情報を引き出す必要はなく、同じような攻撃を繰り返すことで、大量のSecureな情報がAttackerのウェブサーバーへ蓄積されていくわけだ。
「周波数帯を拡張する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