1. Wifi攻撃の基礎知識
1.1. WIFIクラッキングの基礎知識
1.1.1. WiFIとは
IEEE802.11標準に基づくWLANのこと。
詳細はコチラから。
1.2.1. WIFIのクラッキングの種類
WIFIクラッキングは不正使用と盗聴/中間者攻撃に分けられる。
不正使用
不正使用を行うにはAPのスキャニングが必要となる。
具体的にはWIFIを検出するデバイス(PCやスマホ)となる。
WIFIチョーキング
WIFIチョーキングは不正使用可能なAPをマーキングして共有すること。
WIFIチョーキングの手法には以下のようなことがある。
- ウォーウォーキング … 徒歩でオープンなWIFIを検出
- ウォーフライング … ドローンを使用してオープンなWIFIを検出
- ウォードライビング … 車を使用してオープンなWIFIを検出
盗聴/中間者攻撃
盗聴/中間者攻撃には以下のようなことがある。本稿これ以下ではこの手法に関してのヒントを記載する。
- 不正APの設置 … APモードが必要
- 接続したユーザの通信の監視 … Wiresharkなどの使用
- 中間者攻撃の設置
- 無線盗聴
- 無線経路上のデータを傍受
- 通信内容の盗聴(暗号解読の必要)
1.2.2. WIFIセキュリティの基本
4Wayハンドシェイク
4Wayハンドシェイクは現在の一般家庭WIFIルータで広く使用されている規格であるWPA-PSKで使用されている手続き。
この手法によりクライアントは PTK (Pairwise Transient Key) と GTK (Group Temporal Key) という 2 種類の鍵をインストールする。
- PTK … ユニキャスト暗号・復号用の鍵
- GTK … マルチキャストおよびブロードキャスト暗号・復号用の鍵
クライアントとアクセスポイントはそれぞれ、事前に共有したパスワード(PSK)とアクセスポイントの ESSID から PMK (Pairwise Master Key) を計算する。
4Wayハンドシェイクの手順は以下の通り。
- アクセスポイントはランダムな値 ANonce を決めクライアントに送信する
- クライアントも同様にランダムな値 SNonce を決定し、PMK, 受け取ったANonce, SNonce, アクセスポイントの MAC アドレス, クライアントの MAC アドレスから PTK (Pairwise Transient Key) を計算する
- クライアントは SNonce と メッセージのペイロードと PTK から計算した MIC (Message Integrity Code) をアクセスポイントに送信する
- アクセスポイントは SNonce を受け取った後、クライアントと同様に PTK の計算および MIC の検証(MIC を計算し一致するか確認)を行う
- ANonce、マルチキャスト通信の暗号化に使用する鍵 GTK (Group Transient Key) および MIC をクライアントに送信する
- クライアントは ANonce、GTK および MIC を受け取った後、MIC の検証を行う
- ここまでで問題がなければ MIC のみを設定したメッセージ をアクセスポイントに返送する
ステップ4
でクライアントの PSK が正しくない場合や、メッセージが改ざんされていた場合に検知することができる。
また、ステップ6
でクライアントは不正なアクセスポイントに接続しようとしていないかを確認することができる。
SAEハンドシェイク
SAEハンドシェイクはWPA3において4Wayハンドシェイクを行う前に行われる手続きでWPA3に利用されている。
1.2.3. WIFIアダプタの動作モード
WIFIクラッキングを行う場合WIFIアダプタはMonitorモードやInjectionモードに対応している必要がある。
通常のWIFIアダプタはManagedモードのみに対応している。
Managedモード
Managedモードは通常の無線クライアントデバイスとして動作するモード。
このモードは一般的に通常のWi-Fi接続に使用される。
Monitorモード
Monitorモードはパケットキャプチャやネットワークトラフィックの監視に対応しているモード。
このモードではデバイスはアクセスポイントに接続せず、周囲のWi-Fiトラフィックを受信できる。
セキュリティ診断やネットワークトラブルシューティングなどで使用可能。
Monitorモードでキャプチャされるデータは、暗号化されたままのデータ(MACヘッダ+データ部+FCS)となる。 他、入手可能な情報として、受信した電波の強さや伝送速度などがある。
具体的に可能なことは以下の通り。
- 周囲のWifiネットワークのSSIDやそこに繋がれているクライアントデバイス情報の取得
- 行き来しているデータ/パケットを読むことによるパケットの解析
- ARPテーブルを外部から操作するパケットの注入してから中間者攻撃でネットワーク通信の真ん中に入り、HTTPSに対する攻撃であるSSLStripからトロイの木馬へのすり替えを行う
Injectionモード
Injectionモードはセキュリティテストやハッキングのコンテキストで使用されるモードでネットワークにデータパケットを注入する機能がある。
このモードは通常セキュリティ研究や評価の一環として、ネットワークの脆弱性をテストするために使用される。
1.2.4. モード対応WIFIアダプタの入手方法
Monitor/Injectionモードに対応しているWIFIアダプタの入手にはWIFIアダプタ内のチップセットが重要となる。
そのためメーカやモデルよりも搭載されたチップセットを気にする必要がある。
対応アダプタを調べるために役に立つサイトを以下に記載する。
1.2.5. WIFIルータの動作モード
WIFIルータにはAPモード(アクセスポイントモード)とRTモード(ルータモード)、WBモード(ブリッジモード)がある。
APモード
APモードは無線LANにおいて複数のクライアントをネットワークに接続するための電波を受けるモード。
アクセスポイントとして動作するワイヤレスなL2通信モード(スイッチングハブ)といえる。
RTモード
RTモードはAPモードの機能に加えてルーティング機能も併せ持つモード。
WANを含む異なるネットワークにつなぐ場合に必要な機能で、ワイヤレスなL3通信モード(ルータ)といえる。
WBモード
WBモードはルータをネットワーク自体の中継器にするためのモード。 ブリッジとして動作するといえる。
1.3. WIFIの脆弱性への攻撃
WIFIの脆弱性に対する代表的な攻撃を一部記載する。
1.3.1. ディア・ジャミング攻撃
ディア・ジャミング攻撃は攻撃者がクライアントデバイスをネットワークから切断するために使用される攻撃手法のこと。
この攻撃により攻撃者はクライアントデバイスとアクセスポイントの通信を中断し、クライアントをネットワークから切り離すことができる。
具体的な内部動作としては、攻撃者端末はディア・ジャミング攻撃を実行するために特定のディア・アソシエーションフレームを送信する。
これにより、クライアントデバイスは一時的にネットワークから切断され再接続が必要な状態となる。この性質を悪用したものとなっている。
つまりこの攻撃はネットワークの適切な利用を妨害することが目的としてある。
1.3.2. Krack攻撃
Krack攻撃はWPA2暗号化プロトコルに対する攻撃でクライアントとアクセスポイント間の暗号鍵を再インストールし通信を盗聴する中間者攻撃の一種。
具体的には攻撃者は中間者として振る舞い、暗号化鍵の再インストールを誘導する。
これにより攻撃者は通信を解読でき、通信の内容を盗聴できるというものになる。
Krack攻撃の目的はWPA2によって保護されているネットワーク通信を妨害し、機密情報を盗聴することになる。
Krack攻撃の仕組み
KRACK攻撃は4wayハンドシェイクの4Wayハンドシェイクの完了
メッセージ①送信を中間者攻撃により意図的に止めることにより、ANonce、マルチキャスト通信の暗号化に使用する鍵 **GTK** (Group Transient Key) および MIC をクライアントに送信する
メッセージ②を再送させる。
Krack攻撃はこのメッセージ③を再送させ続けることで TK をずっと同じものを使わせることが特徴となる。
この際の 同じ nonceや TK、同じパターンのnonceで暗号化されたフレームを解析することでパターンを解析し盗聴できるようにするものといえる。
1.3.3. PMKID攻撃
PMKID(Pairwise Master Key Identifier)攻撃はWPA/WPA2暗号化プロトコルに対する攻撃で暗号化キーを抽出しようと試みる攻撃。
攻撃者はPMKIDを収集し、ブルートフォース攻撃を使用して暗号化キーを推測する。
この攻撃は事前共有鍵を狙い、パスワードの破解を試みるというものである。
1.3.4. Evil-twins攻撃
Evil-Twin攻撃は、攻撃者が合法的なアクセスポイント(AP)と同じSSID(ネットワーク名)を使用して偽のAPを設定し、ユーザーを欺こうとする攻撃。
的なAPと同じに設定し、ユーザーが接続すると、攻撃者は通信を傍受し機密情報を取得できるようにする。
1.2 WIFIセキュリティの仕組み
1.2.1. WEP
WEPはLANと同等のセキュリティーレベルをWLANで提供することを目的としたセキュリティ規格。 脆弱性が重大であるため使用が非推奨となっている。
WEPはデータの暗号化に単一の暗号鍵を使用しこの暗号鍵は定期的に変更されないため、セキュリティが脆弱となっている。 また、WEPの鍵の長さが短く予測可能なパターンを持つため、攻撃者が鍵を簡単に解読できる可能性が高い。
WEPの脆弱性により、攻撃者はネットワークトラフィックを傍受し、暗号化されたデータを解読することが可能となっている。
1.2.2. WPA
1.2.3. WPA2
WPA2-PSK
WPA2-PSK(WPA2パーソナル)は端末と無線APで事前に設定されている共通のパスフレーズを使って認証する方式。
WPA2-PSKではPSKを元にMSK(Master Session Key)を生成し、MSKの先頭256bitをPMKとして利用する。
この手法から同一のSSID配下のクライアントのPMKは同一となる。
WPA2-PSKでは4way handshakeの通信を傍受することで、PSKを推測するための情報が収集でき、辞書攻撃によるパスワード解析が可能となる。
WPA2-EAP
WPA2-EAP(WPA2エンタープライズ)はEAPを使い認証サーバによる認証をする方式。
WPA2-EAPでは認証サーバにより端末ごとに個別のMSKが生成される。
EAP認証が成功した後、生成されたMSKが端末に送信される。
1.2.4. WPA3
WPA3-Personal
WPA3-Enterprise
1.2.5. WPS
WPSは無線LAN端末と無線ルーターをボタン1つで簡単に設定するための規格。
基本的にWPSでは、アクセスポイントとクライアントが一連のEAPメッセージを交換する。
このトランザクションの終了時に、クライアントは暗号化キーとAPの署名を取得し、暗号化されたネットワークに接続できるようになる。
1.3. WIFIの脆弱性への攻撃
WIFIの脆弱性に対する代表的な攻撃を一部記載する。
1.3.1. ディア・ジャミング攻撃
ディア・ジャミング攻撃は攻撃者がクライアントデバイスをネットワークから切断するために使用される攻撃手法のこと。
この攻撃により攻撃者はクライアントデバイスとアクセスポイントの通信を中断し、クライアントをネットワークから切り離すことができる。
具体的な内部動作としては、攻撃者端末はディア・ジャミング攻撃を実行するために特定のディア・アソシエーションフレームを送信する。
これにより、クライアントデバイスは一時的にネットワークから切断され再接続が必要な状態となる。この性質を悪用したものとなっている。
つまりこの攻撃はネットワークの適切な利用を妨害することが目的としてある。
1.3.2. Krack攻撃
Krack攻撃はWPA2暗号化プロトコルに対する攻撃でクライアントとアクセスポイント間の暗号鍵を再インストールし通信を盗聴する中間者攻撃の一種。
具体的には攻撃者は中間者として振る舞い、暗号化鍵の再インストールを誘導する。
これにより攻撃者は通信を解読でき、通信の内容を盗聴できるというものになる。
Krack攻撃の目的はWPA2によって保護されているネットワーク通信を妨害し、機密情報を盗聴することになる。
1.3.3. PMKID攻撃
PMKID(Pairwise Master Key Identifier)攻撃はWPA/WPA2暗号化プロトコルに対する攻撃で暗号化キーを抽出しようと試みる攻撃。
攻撃者はPMKIDを収集し、ブルートフォース攻撃を使用して暗号化キーを推測する。
この攻撃は事前共有鍵を狙い、パスワードの破解を試みるというものである。
1.3.4. WPSピン攻撃
WPSピン攻撃はWPSのPINコードを解読しようとうする攻撃。
WPSはネットワーク接続を簡略化するための仕組みで、通常はPINを使用してデバイスをネットワークに接続する。
WPSピン攻撃は、WPSのPINコードを解読することでネットワークにアクセスできるというものになる。
この攻撃では通常ブルートフォースアタックでWPSピンコードを試行することとなる。
1.3.5. Evil-twins攻撃
Evil-Twin攻撃は、攻撃者が合法的なアクセスポイント(AP)と同じSSID(ネットワーク名)を使用して偽のAPを設定し、ユーザーを欺こうとする攻撃。
攻撃者は目標ユーザーが接続しやすいようにSSIDを合法的なAPと同じに設定し、ユーザーが接続すると、攻撃者は通信を傍受し機密情報を取得できるようにする。
1.4. WIFIのセキュリティへの攻撃
1.4.1. WEPへの攻撃
WEPキーの解読
WEPキーの解読のための一般的な攻撃には、鍵を総当たりで試行する方法(Brute Force攻撃)や、パケットの収集と統計的な手法(統計的攻撃)がある。
ARPリプレイ攻撃
既知のARPパケットを再生し、WEPキーを取得しようとするWEPの脆弱性を利用した攻撃が可能となっている。
1.4.2. WPAへの攻撃
TKIPの解読
WPAはTKIPと呼ばれる一時的な鍵管理プロトコルを使用してデータを暗号化する。
TKIPは時間が経過するにつれて弱体化するため、高度な攻撃よって解読される場合がある。
WPS攻撃
WPAのネットワークではWPSが有効になっている場合、PIN攻撃などの方法でWPSを乱用しネットワークにアクセスすることができる可能性がある。
これにより設定されたWPAパスワードが無視できる。
1.4.3. WPA2-PSKへの攻撃
ブルートフォースアタック
WPA2-PSKネットワークの最も一般的な攻撃方法はブルートフォースアタックとなる。
これは攻撃者がすべての可能なパスワード組み合わせを試すことを意味する。
強力なパスワードを使用している場合この攻撃は非常に困難となるが、弱いパスワードを使用している場合は攻撃が成功する可能性が高くなる。
辞書攻撃
辞書攻撃では攻撃者は一般的なパスワードや辞書内の単語のリストを使用してネットワークにアクセスしようとする。
ハンドシェイク攻撃
WPA2-PSKではクライアントとアクセスポイント間で安全なハンドシェイクが行われる。
このハンドシェイクをキャプチャすることでオフラインで解析しようとする攻撃もある。
強力なパスワードを使用している場合でも、ハンドシェイク攻撃に対する保護が不十分な場合はこの攻撃が有効になる場合がある。