
EvilDoggie Workshop Car Simulator リポジトリへようこそ!このツールは、Black Hat Arsenal 2025 セッションで使用された車両 CANバス環境を再現します。Faraday Security によって開発されたこのシミュレーターは、車両内の複数の電子制御ユニット(ECU)をエミュレートし、研究者が管理された環境で EvilDoggie を使った攻撃的な CANバス攻撃を練習できるようにします。
このシミュレーターはシリアルインターフェースと SocketCAN インターフェースの両方をサポートしており、CAN メッセージのスニッフィング、インジェクション、操作のために Doggie ハードウェアとのシームレスな統合を可能にします。自動車セキュリティの教育目的で設計されており、VIN スプーフィング、ドアロック解除、クルーズコントロール混乱、エアバッグのトグル、ABS 切断などのチャレンジに焦点を当てています(添付のワークショップガイドで詳しく説明されています)。
このオープンソースシミュレーターは MIT ライセンスの下で提供され、より広範な Doggie/EvilDoggie エコシステムの一部です。完全なファームウェアとハードウェアの詳細については、メインリポジトリ を参照してください。
ワークショップの完全なガイドについては、evilDoggie ワークショップドキュメント を参照してください。

シミュレーターを実行するには、2台のDoggie(1台はTX用、もう1台はRX用)が必要です。メッセージが実際の物理バス上で伝播することを保証するために、3台のDoggie(1台は攻撃者(EvilDoggie)、2台はシミュレートされたECU)を推奨します。
依存関係を分離するためにPython仮想環境を作成します:
python3 -m venv doggie_venv
source doggie_venv/bin/activate
requirements.txt から必要なパッケージをインストールします:
python3 -m pip install -r requirements.txt
シミュレーターパッケージをローカルにインストールします:
python3 -m pip install -e .
シリアルまたはSocketCANインターフェースを使用してシミュレーターを起動します。2台のDoggie構成では、2台のDoggieをシステムに接続し(例:USB経由)、そのポートを特定します(例:/dev/ttyUSB0 と /dev/ttyUSB1)。シリアル接続には --serial オプション、仮想CANインターフェースには --socketcan を使用します。
シリアルインターフェースの例(ポートとボーレートは必要に応じて調整してください):
python3 -m doggie_lab --serial /dev/ttyUSB0@921600 /dev/ttyUSB1@921600 --speed 500000
--serial TX_PORT RX_PORT: シリアルポートとボーレートを指定します(例:/dev/ttyUSB0@115200 /dev/ttyUSB1@115200)。--speed SPEED: CANバス速度をビット/秒で設定します(デフォルト: 500000)。SocketCAN(仮想インターフェース)の場合:
python3 -m doggie_lab --socketcan can0 can1 --speed 500000
--socketcan TX_CAN RX_CAN: SocketCAN インターフェースを使用します(例:can0 can1)。全オプションを確認するには python3 -m doggie_lab --help を実行してください。
ハードウェアなしで簡単にテストするには、Linux で SocketCAN を使用して単一の仮想 CAN インターフェースをシミュレートできます。これは基本的なスニッフィングやインジェクションに最適ですが、高度なチャレンジに必要な物理バスの動作は再現されません。
仮想CANインターフェースのセットアップ:
sudo modprobe vcan。sudo ip link add dev vcan0 type vcan および sudo ip link set up vcan0。--socketcan vcan0 vcan0 でシミュレーターを実行します(TX/RX ループバックに同じインターフェースを使用)。ただし、すべてのワークショップチャレンジでは、エラー伝播や競合などの実際のバス相互作用を観察するために、物理的なDoggieが不可欠です。共有物理バスに接続されたEvilDoggie攻撃者として1台、ECUシミュレーション用に2台(TX/RX)、少なくとも3台のDoggieを使用してください。
requirements.txt に記載された依存関係(例:python-can、UI用のtkinter)。このシミュレーターは研究およびトレーニング専用です。実際の車両では使用しないでください。貢献は歓迎します—改善のためのissueやPRを開いてください!
このプロジェクトはMITライセンスの下でライセンスされています。詳細については LICENSE ファイルを参照してください。