【光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」を悪用した攻撃への対策とは?#series-contents .current-page { font-weight: bold; }
脆弱なアクセスポイントとClientを想定そたFragment Cacheの汚染
「FragAttack(Fragmentation and aggregation Attacks)」と名付けられた脆弱性における3つ目の攻撃手法は、前回も少しだけ触れたFragment Cacheを汚染(Poisoning)するというもの。前回紹介した攻撃手法と同様、WEP/CCMP/GCMPを利用している場合が対象だ(TKIPでも、再構成されたFrameの真正性が検証されない場合には有効となる)。
攻撃には、やはりFragment Frameを利用する関係で、これも前回同様に被害者(Client)がFragment Frameを送信していることが必要となる。そして、これは比較的簡単に実現できる、ということは、前回説明した通りだ。
この3つ目のシナリオは、以下の2つのケースを想定している。1つ目は脆弱なアクセスポイントで、これは「eduroam」や「Hotspot 2.0」などのホットスポットに用いられた脆弱なアクセスポイントを悪用するのが前提だ。こうしたネットワークは基本的に信用できないので、ユーザーは個々の認証鍵や暗号鍵を使って利用することが多いが、そうした場合でも今回の攻撃は有効である。
2つ目のケースは脆弱なClientだ。これはやはりホットスポットや、会議室などのゲスト用ネットワークなど、攻撃者(Attacker)もパスワードを知っていると想定されるWi-Fiネットワークへ接続するケースだ。こうした状況において、ユーザーはセキュアなデータを基本的に送信しないと考えられるので、そうしたデータの通信は想定していない。
事前に盗んだアクセスポイントへの認証情報をもとに、Fragment Cacheへ汚染データを注入
さて、Fragment Cacheの汚染について、実際の流れを見ていこう。まずAttackerは前もってClientからデータを盗み出しておく必要がある。その手順は以下に示すように3段階で行われる。
最初の手順は前回の延長といったもの。出典は\”Fragment and Forge: Breaking Wi-Fi Through Frame Aggregation and Fragmentation\”
Stage 1で、AttackerはClientのMACアドレスを偽装してアクセスポイント(AP)へ接続する。上に書いたようにこのアクセスポイントへの認証情報は事前に取得済だから問題はない。
Stage 2は、Clientがネットワークへ接続するためにAuth Frameを送信したときに始まる。AttackerはこのAuthフレームを奪取した上で、そのAuthフレームに含まれる先頭部分だけを抜き出し、暗号化してアクセスポイントへ送信する。これを受信したアクセスポイントがこのFragment Frameを復号。ClientのMACアドレスにつながるFragment Cacheへ、復号した結果を保存する。
この後、Attackerは、Deauth Frameをアクセスポイントへ送信し、いったんネットワークから切断したのち、改めてClientとアクセスポイントの間で「Multi-Channel MitM(Man-in-the-Middle)」を確立する。
問題はこのときのアクセスポイントの挙動だ。IEEE 802.11のSpecificationには、「Clientが切断または再接続された際に、Fragmentを削除すべし」という規定がない。この結果、Fragment Cacheには上の図でいうところの「Frag0(s)」がそのまま残ることになる。
さて、Multi-Channel MitMが確立したらStage 3に入る。Attackerは、Clientからn+1番目のFragmentが送信されるのを待つ(その間は何もせずにClientとアクセスポイントの間の通信を仲介する)。n+1番目のFragmentが送信されたら、このFragmentの中のシーケンス番号を、先ほどStage 2の際で使った「s」に置き換えてアクセスポイントに送る。
すると、アクセスポイントは、Fragment番号とシーケンス番号、MACアドレスが一致するということで、Fragment Cacheの内容に、今送られた内容を復号してつなぎ合わせることになる。その結果として、再構成されたFrameには、宛先がAttacker、ペイロードがユーザーのデータというIPパケットが含まれることとなる。これは、前回も掲載した以下と同じ図式だ。
出典は\”Fragment and Forge: Breaking Wi-Fi Through Frame Aggregation and Fragmentation\”
これを応用(?)したのがパケットインジェクションであり、ここから先は、アクセスポイントからClientへの通信に介入する格好となる。具体的には先のStage 2で、「Frag 0」に汚染データを注入することになる。この結果、Stage 3で2つ目のFragmentを受信してFrameの再構成を行うときに、汚染されたデータが追加されることになる。
つまり、手法としてはFragment Cacheを汚染するかたちなのだが、実はちょっと面倒だ。この攻撃、Wi-Fiレベルでは成立しても、その上位ではね付けられるからだ。
IPパケットやARPパケットなどにはパケットサイズを定義するフィールドがあるので、汚染データが追加されると、それを検出することが可能だ。その場合、不正パケットだとしてドロップされて終わりとなるわけだ。
業務中はVPNで社内LANへ、業務外ではホットスポットへつなぐノートPCに対する攻撃シナリオ
そこでシナリオでは、もう少し複雑な構成が想定されている。例えば、会社貸与のノートPCなどを考えたとき、業務などに関してはVPNなどを用いて会社の社内ネットワークへつなぐが、業務時間外には、同じノートPCをホットスポットにつないでネットサーフィンをする、といった使われ方だ。
こうした場合の攻撃のシナリオは、以下のようなものになる。
Clientへの攻撃は、今まで取り上げてこなかったが、基本は同じだ。出典は\”Fragment and Forge: Breaking Wi-Fi Through Frame Aggregation and Fragmentation\”
まずStage 1で、Attackerは会社のMACアドレスを詐称し、しかもホットスポットのアクセスポイントのSSIDを広告(advertise)することで、Clientに「会社につながっているアクセスポイント」と誤解させることから始まる。
するとClientは(アクセスポイントに接続しているつもりで)実際にはAttackerに接続する。しばらくはAttackerとClientの間で通信が行われるが、この際にAttackerは汚染データをFragmentのかたちでClientに送り付ける。Clientはそれを自身のFragment Cacheへと格納するわけだ。
ところでAttackerは、アクセスポイントを装っていても肝心の認証などは一切できないし、外部にもつながらない。このため、最終的にはClientからDeauth Frameが送られ、いったんセッションは終了する。ただ、このとき、ClientのFragment Frameには、先ほど送った「汚染されたFragment」が残ったままである(理由は上と同じ)。
さて、この後、Attackerは改めてClientが信頼されるアクセスポイント(例えば会社のアクセスポイント)へ接続するのを待ち、上と同じようにMulti-Channel MitMを確立する。この段階でAttackerは、Clientとアクセスポイントの間の全てのパケットをそのまま仲介するが、この際にStage 1で利用したシーケンス番号「s」を利用しないようにする。
そしてアクセスポイントがパケット番号nのFragmentに続き、パケット番号n+1のFragmentをClientに送ったタイミングで介入。フラグメント番号を「s」へと置き換えてClientに送る。ClientはこのFragmentと、先にAttackerから送られてFragment Cacheに残っていたFragmentを組み合わせることになる。
こうすると、Clientのネットワーク層は、後から送ったデータ(先ほどの図でいう「Frag 1」)はPadding Bytesとして破棄し、(汚染された)「Frag 0」の内容を処理することになる。こうして、汚染されたデータの注入が完成するわけだ。これを利用し、例えばClientに悪意のあるDNSサーバーを使わせるといった攻撃が可能になる。この攻撃は、Clientが信頼できるネットワーク(上の例で言えば会社のアクセスポイント)に接続されている間は実行できるわけだ。
FragAttackにおける攻撃手法をスマートフォンやPCなどで実際に試すと?
言うまでもなく赤が問題あり、緑が問題なし。ここにはResulted in crashなどはないが、下の図では出てくる
さて、3種類の基本的な仕組みは、ここまでに解説した通りだが、ドキュメント「Fragment and Forge: Breaking Wi-Fi Through Frame Aggregation and Fragmentation」には、実際の攻撃手順やその結果、対処法などについても言及されているので解説していこう。
最初は攻撃の実験結果について。まずはVanhoef氏らが集めたさまざまなターゲットに対する攻撃結果についての表だ。これは、それぞれの機種がデフォルトの状態でテストを行った結果とのことだ。
そして以下の左が、16種類のWi-FiカードをWindows(W)およびLinux(L)で使った場合、右の表が7種類をFreeBSD(F)およびNetBSD(N)で試した結果だ。次回はこれらについて、もう少し細かく解説していこう。
A-MSDUはLinuxが見事に全滅しており、一概にWindowsの方が問題が多いとも言いにくい。出典は\”Fragment and Forge: Breaking Wi-Fi Through Frame Aggregation and Fragmentation\”
FreeBSDやNetBSDは、そもそも対応ドライバーのある製品が減っている。ちなみに上の7つはClient Mode、下の4つはAccess Point Modeでの振る舞い「周波数帯を拡張するWi-Fi 6E」記事一覧Wi-Fi 6Eの6GHz帯、2019年後半に欧米で免許不要利用にメド「IEEE 802.11be」でほぼ必須の6GHz帯、日本でいつから使える?Wi-Fi 6Eで拡張される6GHz帯を利用可能にする3つの電力クラスWi-Fi 6Eで飛躍的に増えるチャネル、運用にはさらなる議論が必要?Wi-Fi 6Eは80MHz幅で1Gbps、160MHz幅で2Gbpsの高スループット#series-contents .current-page { font-weight: bold; }「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」の機能要件#series-contents .current-page { font-weight: bold; }「利便性を向上する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インタビュー111axはCBRSとあわせて伸びる分野~Ruckus Networksインタビュー2#series-contents .current-page { font-weight: bold; }
大原 雄介
フリーのテクニカルライター。CPUやメモリ、チップセットから通信関係、OS、データベース、医療関係まで得意分野は多岐に渡る。ホームページはhttp://www.yusuke-ohara.com/
▲
全Wi-Fi機器に影響、脆弱性「FragAttack」悪用した攻撃手法とは?
A-MSDUを悪用する「Frame Aggregation」を利用した攻撃の流れ
▲[期待のネット新技術]の他の記事を見る
関連リンク fragattacks.com eduroam Fragment and Forge: Breaking Wi-Fi Through Frame Aggregation and Fragmentation(PDF)
関連記事
全Wi-Fi機器に影響する脆弱性「FragAttacks」発見される。各企業・団体が対応を発表
2021年5月14日
連載
ネット新技術
全Wi-Fi機器に影響、脆弱性「FragAttack」悪用した攻撃手法とは?
2021年6月1日
連載
ネット新技術
全Wi-Fi機器に影響する脆弱性「FragAttack」の仕組みとは?
2021年5月25日
連載
ネット新技術
WPA/WPA2の脆弱性“KRACKs”、悪用のハードルは?
2018年10月2日
Wi-Fiセキュリティ新規格「WPA3」に脆弱性、登場から1年経たずに発見される
2019年4月11日