
IotShark - IoTトラフィックの監視と分析
これは、2019年秋学期のCS 219の最終プロジェクトです。
IoTSharkは、ユーザーがIoTデバイスの送受信データの傾向を監視できるIoT監視サービスです。 通常、適切な設定で中間者攻撃をセットアップするにはかなりの時間がかかり、コンピュータセキュリティやコンピュータサイエンスの経験がほとんどない人には不可能に思えるかもしれません。
IoTSharkは、ユーザーが単一のスクリプトを実行するだけでIoTデバイスを監視できる、[ほぼ]完全に自動化されたソリューションを提供することを目指しています。ユーザーは監視したいデバイスを選択するだけで、このプログラムはARPポイズニングの開始、パケット転送の設定、中間者パケットスニファなど、残りの重い作業をすべて処理します。また、直感的でインタラクティブなWeb UIも備えており、ユーザーはポート、タイプ、タイムスタンプに基づいてパケットをフィルタリングし、データの量や送信タイミングをより広く把握できます。
また、ハートビートメッセージ、データ転送、異常などの特定の種類のデータを分類することも目指していますが、最後のものはおそらく暗号化されていないRPiテストでデモンストレーションされるでしょう。なぜなら、膨大な量のデータなしで異常検出を行うのは難しく、そのデータを収集するには多くのデバイスと個人が必要になるからです。
🚨🚨🚨 以下の手順はMacOSでのみ検証済みであることにご注意ください。LinuxやWindows + WSLを使用する場合、動作する保証はなく、機能しない可能性があります。🚨🚨🚨
pip3 install -r requirements.txtsudo sysctl net.inet.ip.forwarding=1sudo python3 iotshark.pyPython仮想環境を作成し、依存パッケージをインストールします。
virtualenv --python=`which python3` venv
source venv/bin/activate
pip install -r requirements.txt
ローカルマシンでパケット転送が有効になっていることを確認してください。これは中間者攻撃を機能させるために必要です。macOSでは次のようにして行えます:
sudo sysctl net.inet.ip.forwarding=1
メインプログラム iotshark.py を実行します。受け入れ可能なオプションについては、そのスクリプトを参照してください。
現在、このプログラムは以下の4つのアクションを実行します:
-s オプションで指定されたサブネット内、または一般的な住宅用サブネットのセット内のすべてのホストをスキャン-f オプションでCSVファイルへの相対パスを指定して、過去にキャプチャしたデータのグラフを出力ARPポイズニングの実行後、Wiresharkを使用してターゲットデバイスのトラフィックを次のような表示フィルターで調査できます:
(ip.src==192.168.0.215 or ip.dst==192.168.0.215) and tcp.port != 443
キャプチャされたデータは、次の形式のCSVファイルに保存されます:
{timestamp, incoming_bytes, outgoing_bytes, srcport, dstport, transfer_protocol, connection_protocol, srcip, dstip}
123123213, 0, 240, 36, 80, 65124, HTTP, UDP, 192.168.0.215, 104.24.4.5
123123240, 300, 0, 800, 443, 65125, HTTPS, TCP, 104.24.4.5, 192.168.0.215
例えば、Alexa Echo Dot/Google Homeに向けてこの長い文字列を話しながらトラフィックをスニッフィングします。ウェイクワードの前にデバイスがデータを送信しているかどうかに注意してください。
It is a dark and stormy night. My friends and I just came back from the Yosemite National Park, where the quick brown fox jumps over the lazy dog. Next week is Thanksgiving. Black Friday in 2019 is coming as well. It's a good time to do something exciting, such as taking a Computer Security class or a Programming Language class at UCLA. By the way, the first Airbus A380 jumbo jet is retiring. We like flying in that plane.
WAKE_WORD, what is the weather like in Los Angeles on Thanksgiving?
Anyways, we have Boeing 787 Dreamliners for cross-continental flights. The Web and Mobile System class with Ravi is amazing. We should upgrade the commercial laundry machine during the Black Friday sale. The bright and sunny weather is coming back and a trip to Joshua Tree National Park awaits. Well, I just saw a slow cat crashed into a new Android robot. There are some other robots made by Apple and Amazon too.