インターネットが生活に欠かせないものとなった現代、無線LAN(Wi-Fi)のセキュリティは非常に重要です。しかし、かつて主流だった暗号化方式「WEP」は、現在では非常に脆弱であることが知られています。
このブログ記事では、Kali Linuxに含まれるAircrack-ngスイートの一部であるwesside-ng
というツールに焦点を当てます。このツールは、WEPで保護されたネットワークのキーを自動的に解読することを目的としていますが、その使用には大きな注意が必要です。
ここでは、wesside-ng
の仕組み、使い方、そして最も重要な法的・倫理的な注意点について詳しく解説します。
Warning: Undefined array key “is_admin” in /home/c2261046/public_html/omomuki-tech.com/wp-content/themes/sango-theme/library/gutenberg/dist/classes/Toc.php on line 113
Warning: Undefined array key “is_category_top” in /home/c2261046/public_html/omomuki-tech.com/wp-content/themes/sango-theme/library/gutenberg/dist/classes/Toc.php on line 118
Warning: Undefined array key “is_top” in /home/c2261046/public_html/omomuki-tech.com/wp-content/themes/sango-theme/library/gutenberg/dist/classes/Toc.php on line 124
WEPとは? なぜ危険なのか? 🤔
wesside-ng
を理解する前に、まずターゲットとなるWEP (Wired Equivalent Privacy) について知る必要があります。WEPは1997年に登場した、初期のWi-Fi暗号化規格です。その名前(有線同等機密性)が示すように、有線LANと同程度のセキュリティを提供することを目指していましたが、設計上の欠陥が次々と発見されました。
主な脆弱性としては、以下の点が挙げられます。
- 短い初期化ベクトル (IV): WEPでは暗号化に使う鍵の一部として、初期化ベクトル (IV) と呼ばれる24ビットの値を使用します。このIVは平文で送信され、しかも24ビットと短いため、通信量が多いネットワークでは比較的短時間(約5000パケット程度)で同じIVが再利用される可能性が高くなります。
- IVの再利用による鍵解読: 同じIVが再利用されると、RC4ストリーム暗号の性質上、鍵ストリームの一部が推測可能になります。攻撃者は、十分な量の暗号化されたパケット(特にARPパケットなど、内容が推測しやすいもの)を収集することで、統計的な解析(関連鍵攻撃など)を行い、最終的にWEPキー全体を特定できてしまいます。
- 認証メカニズムの弱さ: WEPの認証プロセスにも弱点があり、容易に突破される可能性があります。
これらの脆弱性は2001年頃から次々と明らかにされ、専用のツールを使えば数分でWEPキーを解読できることが示されました。IEEE(米国電気電子学会)は対策として802.11iタスクフォースを立ち上げ、その結果としてWPA (Wi-Fi Protected Access) や、より強固なWPA2、そして現在の主流であるWPA3といった後継規格が登場しました。
IEEEは2004年にWEPが本来のセキュリティ目標を達成できなかったとして、正式に廃止(置換されるべき)規格であると宣言しました。しかし、ニンテンドーDSなどの古いゲーム機や一部のIoT機器がWEPしかサポートしていなかったため、残念ながらその後もしばらくの間、WEPを使用するアクセスポイントが存在し続けました。
wesside-ngとは? 🧐
wesside-ng
は、有名な無線LANセキュリティ監査ツールスイートであるAircrack-ngに含まれるツールの1つです。公式サイトでは「不安定/実験的なツール」として分類されています。
その主な目的は、WEPで暗号化されたWi-Fiネットワークのキーを自動的に発見し、解読することです。「Auto-magic tool(自動魔法ツール)」と表現されることもあり、ユーザーの介入を最小限に抑え、一連の攻撃プロセスを自動で実行するように設計されています。
wesside-ng
は、以下のような複数の技術を組み合わせてWEPキーの解読を試みます。
- ターゲットネットワークの探索と特定
- アクセスポイントへの認証と関連付け(必要であればMACアドレスの偽装も試みる)
- PRGA(疑似乱数生成アルゴリズム)のXORデータの取得(フラグメンテーション攻撃などを使用)
- ネットワークのIPアドレス体系の特定
- ARPリクエストパケットの再注入によるデータ収集の高速化
- 収集したデータを用いたWEPキーの解読(Aircrack-ngのPTW攻撃などを内部で利用)
このツールは、元々Andrea Bittau氏によって書かれた「wesside」という概念実証プログラムがベースになっています。これは、彼の発表した論文「The Fragmentation Attack in Practice」と「The Final Nail in WEP’s Coffin」で示された攻撃手法を実装したものでした。Aircrack-ngスイートに組み込まれるにあたり、WEPキー解読技術の進歩を反映して更新されています。
重要な点として、wesside-ng
はWEP専用のツールであり、WPA、WPA2、WPA3といった現代的なセキュリティ規格には全く対応していません。
また、公式サイトにも記載がある通り、wesside-ng
は概念実証(Proof-of-Concept)レベルのツールであり、不安定であったり、期待通りに動作しないバグが含まれている可能性があります。代替または補助ツールとしてeasside-ng
の使用も検討されています(ただしeasside-ng
はキー解読ではなく、キーなしでの通信確立を目指すツールです)。
wesside-ngの仕組み(概要)⚙️
wesside-ng
は、WEPの脆弱性を突く複数のステップを自動で実行します。以下はその大まかな流れです。
- ネットワーク探索: まず、利用可能なチャンネルをスキャンし、WEPで暗号化されているアクセスポイントを探します。
- 認証と関連付け: WEPネットワークを見つけると、そのアクセスポイントに対して認証を試みます。認証が失敗した場合、現在接続中のクライアントのMACアドレスを探し出し、それを偽装して再度認証を試みることがあります。認証に成功すると、アクセスポイントとの関連付け(アソシエーション)を行います。
- データパケットの傍受とPRGA取得: 関連付けが成功した後、アクセスポイントから送信されるデータパケットを待ち受けます。1つでもデータパケットを傍受できれば、それを元にフラグメンテーション攻撃を開始します。この攻撃は、既知の平文(ARPリクエストなど)を利用して、アクセスポイントに特定のパケットを送信させ、その応答を解析することでPRGA(暗号化に使われる疑似乱数列の一部)を段階的に取得する手法です。取得したPRGAは、後のパケット注入や解読に使用されます。
- IPアドレス体系の特定: 傍受したARPリクエストなどを、取得したPRGAやその他の技術(マルチキャストフレームの利用など)を用いて部分的に復号し、ネットワーク内のIPアドレス体系(どの範囲のIPアドレスが使われているか)や、ARPリクエスト元のIPアドレスなどを特定します。
- ARPリクエストの注入: 特定したIPアドレス情報を元に、有効なARPリクエストパケットを生成します。このARPリクエストを大量にネットワークに注入(インジェクション)することで、アクセスポイントに応答パケットを強制的に生成させます。WEPでは、応答パケットごとに異なるIVが使われるため、これにより解読に必要なIV(初期化ベクトル)を含むパケットを効率的に収集できます。
- WEPキーの解読: 十分な量のIVを含むパケット(データ)が収集されると、内部的にAircrack-ngのPTW (Pyshkin, Tews, Weinmann) 攻撃などの高速な解読アルゴリズムを起動し、WEPキーの特定を試みます。
- 結果の保存: 解読に成功すると、WEPキーを
key.log
というファイルに保存します。また、キャプチャしたパケットはwep.cap
、取得したPRGAはprga.log
というファイルにそれぞれ保存されます。
これらのステップが、ユーザーがコマンドを一度実行するだけで、自動的に進行するのがwesside-ng
の最大の特徴です。しかし、各ステップが常に成功するとは限らず、環境によっては途中で失敗することもあります。
wesside-ngの使い方 💻
wesside-ng
を使用するための基本的な手順とコマンド例を説明します。繰り返しますが、許可された環境でのみ実行してください。
前提条件
- Kali Linux:
wesside-ng
を含むAircrack-ngスイートがプリインストールされているKali Linuxの使用が最も簡単です。他のLinuxディストリビューションでも利用可能ですが、別途インストールが必要です。 - 互換性のある無線LANアダプター: モニターモード (Monitor Mode) とパケットインジェクション (Packet Injection) に対応した無線LANアダプターが必要です。すべてのアダプターが対応しているわけではないため、事前に確認が必要です。Aircrack-ngのドキュメントやコミュニティで互換性情報を確認できます。
- root権限: ネットワークインターフェースの制御や生パケットの送受信には、通常root権限が必要です。
ステップ1: 無線LANアダプターをモニターモードにする
まず、使用する無線LANインターフェースをモニターモードに切り替える必要があります。これにはairmon-ng
コマンドを使用します。
-
利用可能な無線LANインターフェースを確認します。
出力例(インターフェース名が `wlan0` の場合):sudo airmon-ng
PHY Interface Driver Chipset phy0 wlan0 ath9k_htc Atheros Communications Inc. AR9271 802.11n
-
干渉する可能性のあるプロセスを確認し、停止します(推奨)。
sudo airmon-ng check kill
-
モニターモードを開始します。`wlan0`の部分は実際のインターフェース名に置き換えてください。
成功すると、`wlan0mon`(または類似の名前)という新しいモニターモードのインターフェースが作成されます。以降はこの新しいインターフェース名を使用します。sudo airmon-ng start wlan0
ステップ2: wesside-ngを実行する
モニターモードのインターフェース名を指定してwesside-ng
を実行します。最も基本的なコマンドは以下の通りです。
sudo wesside-ng -i wlan0mon
ここで、-i wlan0mon
は、使用するモニターモードのインターフェースを指定するオプションです。
コマンドを実行すると、wesside-ng
は自動的に周囲のWEPネットワークをスキャンし始めます。
[...]
Scanning for networks...
Got one! BSSID: 00:11:22:33:44:55 ESSID: TargetNetwork Channel: 6 Encryption: WEP
Trying to associate with 00:11:22:33:44:55 ... Associated!
Trying to get PRGA... Got 1500 bytes of PRGA!
Trying to determine IP scheme... Got ARP packet, source IP: 192.168.1.100
Injecting ARP requests...
Waiting for enough data... (0 IVs)
[...]
Waiting for enough data... (5000 IVs)
Launching PTW attack...
KEY FOUND! [ XX:XX:XX:XX:XX ] (ASCII: KeyString)
Saved key to key.log
Saved capture to wep.cap
Saved PRGA to prga.log
Exiting...
上記は成功した場合の出力例です(実際の内容とは異なる場合があります)。wesside-ng
がWEPネットワークを発見すると、自動的に関連付け、PRGA取得、IP体系特定、ARP注入、データ収集、そしてキー解読の一連のプロセスを実行します。解読に成功すると、キーがコンソールに表示され、key.log
ファイルに保存されます。
主なオプション
オプション | 説明 |
---|---|
-i <interface> |
使用するモニターモードの無線インターフェースを指定します。(必須) |
-v |
詳細な(Verbose)モードで実行します。より多くのデバッグ情報が表示されます。問題発生時の原因特定に役立つことがあります。 |
-c <channel> |
特定のチャンネルのみをスキャンします。ターゲットのチャンネルが分かっている場合にスキャン時間を短縮できます。 |
-m <IP address> |
自分のIPアドレスを指定します。DHCPが利用できない場合などに手動で設定します。 |
-n <IP address> |
ターゲットネットワークのネットワークアドレスを指定します。 |
-k <number> |
パケットを送信する回数を指定します。一部のカード/ドライバはACK(確認応答)を正しく報告しない場合があります。このオプションを使うと、ACKを無視して指定回数だけパケットを再送信します。例えば-k 1 は1回送信、-k 2 は2回送信します。値が大きいほど再送が増えるため、通信速度は低下します。「MAX retransmits」エラーが出る場合は-k 1 を試したり、接続が不安定な場合は-k 3 などを試す価値があります。 |
通常は -i
オプションのみで十分な場合が多いですが、状況に応じて他のオプションを使用します。
ステップ3: モニターモードを停止する
作業が完了したら、モニターモードを停止してインターフェースを通常の状態に戻します。
sudo airmon-ng stop wlan0mon
その後、ネットワークサービスを再開する必要があるかもしれません。
sudo systemctl start NetworkManager # または使用しているネットワークマネージャー
⚠️ 非常に重要な注意点 ⚠️
wesside-ng
を含むAircrack-ngスイートのツールを使用する際には、以下の点を絶対に守ってください。
まとめ
wesside-ng
は、Aircrack-ngスイートに含まれる、WEPで保護されたWi-Fiネットワークのキーを自動的に解読するためのツールです。フラグメンテーション攻撃やARPリクエスト注入などの技術を駆使して、ユーザーの介入を最小限に抑えながらWEPキーの特定を試みます。
しかし、以下の点を強く認識する必要があります。
- 法的・倫理的な問題: 許可なく他人のネットワークに使用することは違法であり、絶対に行ってはいけません。
- WEPの脆弱性: WEPは時代遅れで非常に危険な規格です。このツールが有効であること自体がその証拠です。
- 限定的な用途:
wesside-ng
はWEP専用であり、WPA/WPA2/WPA3には対応していません。現代のほとんどのネットワークには無力です。 - ツールの不安定性: 概念実証レベルのツールであり、不安定さやバグを含む可能性があります。
wesside-ng
について学ぶことは、Wi-Fiセキュリティの進化と過去の脆弱性を理解する上で役立ちますが、その使用は厳格に管理された、許可された環境での教育・研究目的に限定されるべきです。
最も重要なことは、自身のネットワークのセキュリティを常に最新の状態に保ち、WEPのような古い規格を使用せず、WPA3などの強力な暗号化方式を採用することです。🛡️
参考情報
- Aircrack-ng Official Website – wesside-ng: https://www.aircrack-ng.org/doku.php?id=wesside-ng (ツールの公式ドキュメント、英語)
- Kali Linux Tools – aircrack-ng: https://www.kali.org/tools/aircrack-ng/ (Kali LinuxでのAircrack-ngスイートの概要)
- Wired Equivalent Privacy – Wikipedia: https://ja.wikipedia.org/wiki/Wired_Equivalent_Privacy (WEPに関するWikipediaの解説)
- Wi-Fi Protected Access – Wikipedia: https://ja.wikipedia.org/wiki/Wi-Fi_Protected_Access (WPA/WPA2/WPA3に関するWikipediaの解説)