Submit Search
Upload
自動車ってどうやってハッキングするんですか? @IoTSecJP #2 by @_tokina23
•
6 likes
•
5,610 views
H
Himitu Eightnote
Follow
IoTSecJP 第二回でお話させて頂いた資料です。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 43
Download now
Download to read offline
Recommended
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
K Kinzal
新分野に飛び入って半年で業績を作るには
新分野に飛び入って半年で業績を作るには
Asai Masataro
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
LLM Webinar - シバタアキラ to share.pdf
LLM Webinar - シバタアキラ to share.pdf
Akira Shibata
#FTMA15 第二回課題 鬼コースサーベイ
#FTMA15 第二回課題 鬼コースサーベイ
Yoichi Ochiai
機械学習をScrumで組織的に学習する (RSGT2022)
機械学習をScrumで組織的に学習する (RSGT2022)
Yukio Okajima
ECCV2020 オーラル論文完全読破 (2/2)
ECCV2020 オーラル論文完全読破 (2/2)
cvpaper. challenge
Binderのはじめの一歩とAndroid
Binderのはじめの一歩とAndroid
l_b__
Recommended
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
K Kinzal
新分野に飛び入って半年で業績を作るには
新分野に飛び入って半年で業績を作るには
Asai Masataro
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
LLM Webinar - シバタアキラ to share.pdf
LLM Webinar - シバタアキラ to share.pdf
Akira Shibata
#FTMA15 第二回課題 鬼コースサーベイ
#FTMA15 第二回課題 鬼コースサーベイ
Yoichi Ochiai
機械学習をScrumで組織的に学習する (RSGT2022)
機械学習をScrumで組織的に学習する (RSGT2022)
Yukio Okajima
ECCV2020 オーラル論文完全読破 (2/2)
ECCV2020 オーラル論文完全読破 (2/2)
cvpaper. challenge
Binderのはじめの一歩とAndroid
Binderのはじめの一歩とAndroid
l_b__
Transformer メタサーベイ
Transformer メタサーベイ
cvpaper. challenge
Pythonでターミナルに画像表示
Pythonでターミナルに画像表示
Masato Fujitake
仕事で使うChatGPT—ディレクター・プランナーの<勉強会>
仕事で使うChatGPT—ディレクター・プランナーの<勉強会>
kotobato
myCobotがある生活
myCobotがある生活
Ryo Kabutan
第1回 GPT / ジェネレーティブAI 勉強会「ChatGPTでMML音楽を奏でてみた&LLMで思うこと」
第1回 GPT / ジェネレーティブAI 勉強会「ChatGPTでMML音楽を奏でてみた&LLMで思うこと」
嶋 是一 (Yoshikazu SHIMA)
SSII2019TS: プロジェクタ・カメラシステムが変わる! ~時間同期の制御で広がる応用~
SSII2019TS: プロジェクタ・カメラシステムが変わる! ~時間同期の制御で広がる応用~
SSII
[part 1]ナレッジグラフ推論チャレンジ・Tech Live!
[part 1]ナレッジグラフ推論チャレンジ・Tech Live!
KnowledgeGraph
落合陽一 筑波大 講演資料 10月17日
落合陽一 筑波大 講演資料 10月17日
Yoichi Ochiai
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)
Yoshitaka Ushiku
エンジニアも知っておきたいAI倫理のはなし
エンジニアも知っておきたいAI倫理のはなし
Yasunori Nihei
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
AI初心者だった私が E資格取得して専門職に転職した話
AI初心者だった私が E資格取得して専門職に転職した話
川上 詩織
SES2020 IoTアーキテクチャ・デザインパターン
SES2020 IoTアーキテクチャ・デザインパターン
Hironori Washizaki
Invariant Information Clustering for Unsupervised Image Classification and Se...
Invariant Information Clustering for Unsupervised Image Classification and Se...
harmonylab
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
Raspberry Pi + Go で IoT した話
Raspberry Pi + Go で IoT した話
yaegashi
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
ryos36
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
ctypes拡張モジュール
ctypes拡張モジュール
Moriyoshi Koizumi
AI最前線2022
AI最前線2022
Koji Fukuoka
More Related Content
What's hot
Transformer メタサーベイ
Transformer メタサーベイ
cvpaper. challenge
Pythonでターミナルに画像表示
Pythonでターミナルに画像表示
Masato Fujitake
仕事で使うChatGPT—ディレクター・プランナーの<勉強会>
仕事で使うChatGPT—ディレクター・プランナーの<勉強会>
kotobato
myCobotがある生活
myCobotがある生活
Ryo Kabutan
第1回 GPT / ジェネレーティブAI 勉強会「ChatGPTでMML音楽を奏でてみた&LLMで思うこと」
第1回 GPT / ジェネレーティブAI 勉強会「ChatGPTでMML音楽を奏でてみた&LLMで思うこと」
嶋 是一 (Yoshikazu SHIMA)
SSII2019TS: プロジェクタ・カメラシステムが変わる! ~時間同期の制御で広がる応用~
SSII2019TS: プロジェクタ・カメラシステムが変わる! ~時間同期の制御で広がる応用~
SSII
[part 1]ナレッジグラフ推論チャレンジ・Tech Live!
[part 1]ナレッジグラフ推論チャレンジ・Tech Live!
KnowledgeGraph
落合陽一 筑波大 講演資料 10月17日
落合陽一 筑波大 講演資料 10月17日
Yoichi Ochiai
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)
Yoshitaka Ushiku
エンジニアも知っておきたいAI倫理のはなし
エンジニアも知っておきたいAI倫理のはなし
Yasunori Nihei
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
AI初心者だった私が E資格取得して専門職に転職した話
AI初心者だった私が E資格取得して専門職に転職した話
川上 詩織
SES2020 IoTアーキテクチャ・デザインパターン
SES2020 IoTアーキテクチャ・デザインパターン
Hironori Washizaki
Invariant Information Clustering for Unsupervised Image Classification and Se...
Invariant Information Clustering for Unsupervised Image Classification and Se...
harmonylab
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
Raspberry Pi + Go で IoT した話
Raspberry Pi + Go で IoT した話
yaegashi
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
ryos36
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
ctypes拡張モジュール
ctypes拡張モジュール
Moriyoshi Koizumi
AI最前線2022
AI最前線2022
Koji Fukuoka
What's hot
(20)
Transformer メタサーベイ
Transformer メタサーベイ
Pythonでターミナルに画像表示
Pythonでターミナルに画像表示
仕事で使うChatGPT—ディレクター・プランナーの<勉強会>
仕事で使うChatGPT—ディレクター・プランナーの<勉強会>
myCobotがある生活
myCobotがある生活
第1回 GPT / ジェネレーティブAI 勉強会「ChatGPTでMML音楽を奏でてみた&LLMで思うこと」
第1回 GPT / ジェネレーティブAI 勉強会「ChatGPTでMML音楽を奏でてみた&LLMで思うこと」
SSII2019TS: プロジェクタ・カメラシステムが変わる! ~時間同期の制御で広がる応用~
SSII2019TS: プロジェクタ・カメラシステムが変わる! ~時間同期の制御で広がる応用~
[part 1]ナレッジグラフ推論チャレンジ・Tech Live!
[part 1]ナレッジグラフ推論チャレンジ・Tech Live!
落合陽一 筑波大 講演資料 10月17日
落合陽一 筑波大 講演資料 10月17日
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)
エンジニアも知っておきたいAI倫理のはなし
エンジニアも知っておきたいAI倫理のはなし
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
AI初心者だった私が E資格取得して専門職に転職した話
AI初心者だった私が E資格取得して専門職に転職した話
SES2020 IoTアーキテクチャ・デザインパターン
SES2020 IoTアーキテクチャ・デザインパターン
Invariant Information Clustering for Unsupervised Image Classification and Se...
Invariant Information Clustering for Unsupervised Image Classification and Se...
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Raspberry Pi + Go で IoT した話
Raspberry Pi + Go で IoT した話
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
ctypes拡張モジュール
ctypes拡張モジュール
AI最前線2022
AI最前線2022
自動車ってどうやってハッキングするんですか? @IoTSecJP #2 by @_tokina23
1.
自動車ってどうやってハッキングするんですか? @IoTSecJP #2 tokina (ひみつ)
@_tokina23 How can I Hack a Car myself?
2.
Agenda ❖ 自己紹介 ❖ 自動車セキュリティってなに? ❖
CANについて ❖ 自動車セキュリティニュース! ❖ わたし(ひみつさん)がやってきたこと ❖ 実践!自動車ミニハック ❖ ➔LAC様がきっとお話してくれているはず…
3.
自己紹介 ❖ はじめまして、あけましておめでとうございます! ❖ Twitter::@_tokina23、呼び方:ひみつさん ❖
所属:電気通信大学大学院 M1 (広島市立大学卒業) ❖ SecHack365 @2017年度 参加 ❖ 趣味:英語、登山、麻雀、旅行、写真、プログラミング、ビットコインなど ❖ 得意分野:クラウド(AWSメイン)、自動車セキュリティ(CANを中心) ❖ ※就職活動中です(小声) tokina (ひみつ) CAN攻撃経験ある自動車 <ひみつだよ>
4.
自動車のハッキングってなに? 最近良く聞くけど・・・ 何から始めればいいのか・・・
5.
❖ (将来) ITS
(Intelligent Transport System)、など ❖ ナビ(インフォテインメント) ❖ 携帯回線, WiFi, Bluetooth ❖ USB端子 ❖ CD/DVD, Audio, ❖ OBDポート(CAN) ❖ キーフォブ ❖ 各種物理センサ ❖ 各コンピュータ(ECU) ❖ ECU鍵の取り出し(サイドチャネル攻撃, ファームウェアダンピング,,) 幅広い自動車セキュリティ 影響・範囲 大 小
6.
車載ネットワークってなに ❖ 自動車に搭載されているから車載ネットワーク:In-vehicle Network ❖
様々な種類が存在 ❖ CAN ➔ 制御系 ❖ MOST ➔ ナビ系 ❖ LIN ➔ 短距離系 ❖ 窓、など ❖ Ethernet ➔ ナビ系 ❖ 高速通信向け 引用:https://www.renesas.com/ja-jp/solutions/automotive/technology/networking.html
7.
CANって聞いたことあるけど・・・ CANについて詳しく解説します
8.
CAN (Controller Area
Network) ❖ 現在自動車で最も利用されているネットワークプロトコル ❖ 主に自動車の制御系に利用される ❖ 通信はブロードキャストのみ ❖ 通信速度(baudrate)は500kpbsと低速 ❖ Frameについて ❖ dominant (0)とrecessive (1)ビットのみで構成 (通常16進数で表記) ❖ 宛先アドレスのみ(CAN ID)をもつ (最大11bit; ~0x7FF) ❖ データ長 (DLC) 4bit、データ部 8byte ❖ CANバスでは0が優先される ❖ ➔DoS攻撃に弱い!(バスがすぐにいっぱいになる ) ❖ ➔送信元アドレスがないのでなりすましを判断不可 ! ❖ ➔セキュリティ機能を付加しづらい!!
9.
❖ もうちょっと詳しく https://en.wikipedia.org/wiki/CAN_bus CAN-Frame before
and after the addition of stufbits (in purple) 基本Frame bitstuffed Frame (実際) High0&Low0=1 Others=0 0を優先 0が6bit連続することを許さない
10.
CANバスのイメージ バスに流れている情報をSnif可能 ID 0x20 ID 0x32 ID
0x20F ID 0x45F ID 0x23 ID 0x22 ID 0x200 ID 0x220 ID 0x250台 アナライザなどを接続
11.
❖ 実際にどんな感じなんですか? candumpの例 引用:https://twitter.com/InfinitelyManic/status/778423162941820928 ASCII表示16進数 気になる方はcan-utilsで検索してみてください
12.
❖ Q. え・・・なんでそんなのがまだ利用されているんですか? ❖
A. 移行コストが莫大にかかるからです 各種サプライヤーさんもいい顔しないし・・・ ❖ Q. じゃあどうすればいいですか? ❖ A. とりあえずの解決策として、ゲートウェイの導入が進んでいます。 さらに次のステップとしてMAC認証が検討されています。 理想としては、Ethernetへの移行などがあげられるでしょう。
13.
最近良く聞く自動車セキュリティ 自動車セキュリティのニュースについて振り返りましょう
14.
https://blog.kaspersky.co.jp/blackhat-jeep-cherokee-hack-explained/8480/ 実際の論文:http://illmatics.com/Remote%20Car%20Hacking.pdf ❖ Jeep リコール問題
@2015 on Blackhat
15.
https://www.youtube.com/watch?v=MK0SrxBC1xs
16.
https://codeblue.jp/2017/result/ https://github.com/commaai/openpilot ❖ Gerge Hotz氏のCODE
BLUE@2017登壇
17.
ELM327
18.
19.
CANを変換するAPIの役割を果たすそうです https://github.com/commaai/opendbc
20.
21.
https://community.comma.ai/cabana/# リバースエンジニアリングツール
22.
https://community.comma.ai/cabana/?demo=1
23.
24.
25.
26.
恐らくレーンキープ(オートクルーズ)機能を模擬 スマホ(EON)
27.
基本的なオートクルーズのための制限だとおもいます😓
28.
❖ 井上博之 先生
@広島市立大学 ❖ CANを始め、自動車セキュリティに関する研究などを行っている https://www.nikkan.co.jp/articles/view/00396292 2016/8/16 車載器 小型Linuxマシン Arduino
29.
Credential
30.
❖ SecHack365での取り組みについて 詳しくはhttps://sechack365.nict.go.jp/ Credential
31.
Lorem Ipsum Dolor 実践!自動車ミニハック
32.
❖ ミニハックでやること ❖ MAC
Book Airから自動車を流れるCANメッセージを覗く!!しかもWirelessに! ❖ 必要なもの ❖ 自動車 (そこら辺のディーラーへGO) ※OBDポートアリに限る ❖ Mac Book Air (Windows, LinuxでもOK) ❖ OBDドングル (Amazonとかでポチりましょう)※今回はBluetoothドングル ❖ ATコマンドについての知識 (ググりましょう) ❖ (おまけ)Pythonについての知識 (勉強しましょう)
33.
34.
!?!?!?! ❖ ※CDついてませんでした
35.
❖ 自動車にOBDドングルを接続 ❖ ハンドルの下とかにあります(たぶん) ❖
自動車のエンジンを起動 (電源供給) ❖ MACからOBDドングルとペアリング ❖ OBD端子に接続するだけで電源ON ❖ うまくいかないときは何度か試しましょう ❖ Terminalから/dev配下にOBDが見えているか確認 ❖ 今回はtty.OBDII-Portとして見えました Bluetooth MAC Address: AA:BB:CC:11:22:33 PIN: 1234 (固定)
36.
❖ cuコマンドを利用してボーレート115200で接続 ❖ sudo
cu -l /dev/tty.OBD-II-Port -s 115200 ❖ Connected. とか出たらOK ❖ cuコマンドなので ~. でDisconnectできます ❖ (テスト)ATIコマンドでELM327チップのバージョンを確認
37.
❖ ATコマンド ❖ ATZ
➔ 設定初期化 ❖ ATL1 ➔ 改行コードを変更 ❖ ATI ➔ コントローラのバージョン情報を返す ❖ ATH1 ➔ メッセージ全体を表示 ❖ ATSPA6 ➔ CAN使用、11bitアドレス、500kbpsにバージョン変更 ❖ ATRV ➔ 車両の電源電圧を返す ❖ ATMA ➔ 受信メッセージのダンプ ❖ ATDP ➔ 自動車が対応しているコマンド数を返す その他コマンド一覧: https://www.sparkfun.com/datasheets/Widgets/ELM327_AT_Commands.pdf
38.
❖ ATDPで自分の自動車がどれだけ対応してるか確認 ❖ 古い自動車ほど対応数がすくないはず ❖
ATSP6でバージョンを変更し、ATMAで流れているメッセージをモニタ CAN ID 安いドングルなのでバッファが小さすぎてダンプが厳しい…
39.
❖ Pythonで連続してダンプするプログラムを作成 import serial import
time con = serial.Serial(‘/dev/tty.OBDII-Port’, 115200, timeout=10) con.write("ATZ¥r") time.sleep(1.0) con.write("ATL1¥r") con.write("ATH1¥r") con.write("ATSPA6¥r") time.sleep(0.1) print "Waiting for CAN message ..." con.write("ATMA¥r") while 1: str = con.readline().rstrip() print str if str == "BUFFER FULL": con.write("ATMA¥r") continue これで繰り返しダンプできる!!
40.
❖ (おまけ)PythonとOBDプロトコルで回転数と速度を取得してみる ❖ pip
install obd をしておくこと import obd import time import inspect print 'Connecting to ...', obd.scan_serial() connection = obd.OBD(baudrate=115200) # auto-connects to USB or RF port print connection.port_name(), 'connected.' while True: response = connection.query(obd.commands.RPM) print response.value response = connection.query(obd.commands.SPEED) print response.value time.sleep(2.0) CAN IDが不明でも情報取得ができる!
41.
42.
おまけ ❖ カーハッカーズ・ハンドブック(翻訳版)が販売開始しています(宣伝) ❖ 井上博之
先生(広島市立大学)ら 翻訳 ❖ 私も一部翻訳を担当してるかも? ❖ 実はCarHacking Villege公式サイトに英語版が公開 ❖ https://www.carhackingvillage.com
43.
Hack your Car
yourself!
Download now