NotSurprised
@ iThome
notsurprisedtw@gmail.com
NotSurprised @ iThome notsurprisedtw@gmail.com - - PowerPoint PPT Presentation
NotSurprised @ iThome notsurprisedtw@gmail.com https://speakerdeck.com/notsurprised/ithome-cybersec2020-chaos-of-vehicle-communications > > Background Introduction Protocols ECU/Components OMA DM Parser
NotSurprised
@ iThome
notsurprisedtw@gmail.com
https://speakerdeck.com/notsurprised/ithome-cybersec2020-chaos-of-vehicle-communications
– Introduction – Protocols – ECU/Components
– Parser problems – Self-defined – Inconsistency
– Recap – Suggestion – Resource
Intro
Email : notsurprisedtw@gmail.com Skill
Drone, IoT, AI Manufacture, AI Car(VANET) sounds great, but…
– Charlie Miller share series attack vectors
– Proof that signals can be simply trigger and enhance to repeat received signals
– This connect to server problem, review mechanism can be fraud and unlock the car with fake person id
Car Internal Communication Car external communication Key Manufacture server
root@kali:~# nfc-list nfc-list uses libnfc 1.7.1 NFC device: pn532_uart:/dev/ttyUSB0 opened 1 ISO14443A passive target(s) found: ISO/IEC 14443A (106 kbps) target: ATQA (SENS_RES): 00 04 UID (NFCID1): 3c 3d f1 0d SAK (SEL_RES): 08 root@kali:~# nfc-mfsetuid 3c3df10d NFC reader: pn532_uart:/dev/ttyUSB0 opened Sent bits: 26 (7 bits) Received bits: 04 00 Sent bits: 93 20 Received bits: 0c 5c ee 0d b3 Sent bits: 93 70 0c 5c ee 0d b3 5c c2 Generate fake RFID key RFID Reader with Arduino
backup and become all in one RFID key in personal used
RFID
frequency”) NFC
– Compromise the car’s mini computer ( OS: QNX, Win CE, Linux, Android, Green Hills) – As a component in car, mini computer connect to CAN bus and dash board
– CAN message format
– Diagnostic trouble code format
– Same problem that microcontroller is the last defend line in simple aircraft
– ISO-TP (ISO 15765-4) – CANopen – GMLAN bus
– PWN – VPW
– KWP2000 (ISO 9141-2) – ISO 14230-4
– Independent from bus line, for IVI, connect to speaker and cellular network.
credit :
credit :
credit :
– Fastest – Expensive – Top class car – Sensitive
– Good CP value – Widely used
credit :
credit :
ECOM2 OBDII Cable
US $203.37
ValueCan3 OBDII Cable
US $395.00
ELM327 OBDII Cable
US $8.40~$2.50
Expensive OBD2 Cable Cheap OBD2 Cable
Normal Limited Usually not Sometimes GUI / Auto Link Open Source / Self-defined High Low (china copycat) Yes No Lots None Yes None
Some interesting tool:
– For Can
– Type of product connect to OBDII and APP – Control your car’s status to prevent frauded by repair shop – Usually Bluetooth(shorter distance, more secure), WIFI/3G/4G – As IoT, default AC/PW remain problem – Bluetooth default paring key: 0000/1234 (sometime even not give a request)
characteristic command.
client APP
credit :
client APP
credit : Semantic
you can find it on internet. e.g. #123456#
and a binary DES-encrypted configuration (AC/PW : admin/admin)
extend their range to anywhere with an internet connection.
credit :
– https://fccid.io/2AEB4AG21/User-Manual/User-manual-3104674
credit :
credit :
credit :
credit :
BUG BUG BUG BUG CVE CVE CVE CVE
MyCar Vendor MyCar Vendor MyCar Vendor MyCar Vendor
credit : Automotive Electronics
credit :
credit : LGACL Simulator
Vehicular Ad Hoc Network
On-Board Unit, OBU Road Side Unit, RSU
credit : yenchih.kuo@NSYSU
credit : yenchih.kuo@NSYSU
position, speed.
VANET Attack can conclude into 5 phases:
In next section →
In next section →
– A kind of debugging protocol, can download and upload the firmware, find the PIN on manual
– A tool to help researcher find the JTAG PIN on chip
credit : attify
– A kind of debugging protocol, support by STM32F4 series (STM32F4 is the most widely used car chip)
– A debug tool provide by ST themself
credit : st
credit : iotm2mcouncil
MobilePhone / Server HMI MicroController HTTP Modbus Canbus Device PLC ECU No No / TLS1.2 No No Strong Normal Wea eak Lots Few Fe Few *Public Private *Pu *Public lic *Few *Few Lo Lots Remote / Extranet Remote / Extranet Phy Physical / / Sh Shor
/ Remote
like OT
attack
connect to the road system and collect info for AI, therefore, it bring problems in security
Manufactures) try to add remote updating ability to the vehicle ECU
remote updating requirements
Management (DM), to remote implement UPDATE, MANAGE, CONTROL and
version update and retrieve data.
Foundation which engage in cross industry requirements for internet of car. Recently, AGL try to defined OMA DM 2.0 to become car communication standard.
line in security protection is Black Box, open source will make their products in risk.
device.
– Generic device information maintain (DevInfoMO, DmAccMO, DCMO) – Firmware maintain (FUMO) – Software maintain (SCOMO)
– OMA DM I (complete)
give a project as syncml rtk which plays as communication protocol of SyncML – OMA DM II (uncomplete)
Syn yncM cML
JS JSON
Factory Bootstrap Device Serial Number Match Server’s Unregister Device Auth
> > >
Some else RFC2617 Headers (e.g. Authorization)
microcontroller DB as un-encrypted state and can be inferred
infer door number that mentioned in Section 1 IoT part
as RFC 2069.
QOP to let Client use RFC 2069.
they defined as recoverable value. HTTP PlainText HTTP Basic and Digest Access Authentication HTTPS/SSL HTTPS/TLS
< <
We all know where recommends are going ¯\_(ツ)_/¯
– Command Dealer – Parser & Database maintainer – Package Handeler
– Pros
invalid
– Cons
Client
– Pros
– Cons
– DataBuffer stream boundary different in SML & HTTP (1st command result following with 1st data /1st command result code with 2nd command result code) – Command method not backward compatible (Ver2 not support REPLACE command)
– urn:oma:mo:fumo:1.0/<x>/update
– urn:oma:mo:oma-dm-devinfo:1.2/<x>/Ext – urn:oma:mo:oma-dm-dmacc:1.2/<x>/Push/GCM/Ext – urn:oma:mo:fumo:1.0/<x>/Ext
– Sometime diff MO module use same result code, sometime not.
– Server use method commands – Client use Generic Alerts (the one they usually used is to respond the
results of async commands like EXEC)
– urn:oma:at:dm:2.0:BootstrapComplete – urn:oma:at:dm:2.0:ClientInitiatedMgmt – urn:oma:at:dm:2.0:ServerInitiatedMgmt – urn:oma:at:scomo:1.1:UpdateUserRequest – org.openmobilealliance.dm.firmwareupdate:update – org.openmobilealliance.dm.firmwareupdate:downloadandupdate
– Cannot resolve, there’s two MO instances.
– identifies one nodes; the moroot1/Data/1/Value
Usually use on MIID, this regards as only one node/value come up as result.
The actually node name.
– identifies two nodes; the moroot1/Data/1/Value and moroot1/Data/2/Value node
the DM Client MUST resolve
corresponding nv fields for this x-name component; if multiple nodes are resolved, an error code MUST be returned
the DM Client MUST address all nodes at the specified location
Server will manage lots of Clients, but server should sync every Client)
control panel, or better not exist
making parser more complicated
valid characters in every node in URI
– With dynamic-changing table schema in SCOMO – Apply to self-defined table schema with different Vendors’ clients
(e.g. strings in integers, arrays in different JSON objects)
and authenticate mechanism(registration) in this protocol.
module) client cannot even check if it is runnable or not before
it exec the binary.
module), however, download source URL still can be a trap. (Server not even going to auth or check Remote Repository Server status and give a valid token let client to confirm source)
Server Client Hacker Un-encrypted DB Fake Request Hacking Payload Response e.g. DevID (API key)
Benign Server Benign Client Hacker Request Update Fake Command Fake Request Response
Hacker Request Update Malicious Server Benign Server Benign Client Compromised Switch Hack Request Update Malicious Payload DownloadURL Malicious Payload DownloadURL
Hacker Compromised Remote Repository Benign Server Benign Client Hack
Auth Sync????
Update Request TargetURL Response Download Request Malware / File Name Command injection e.g. Ruby,Net::FTP command injection e.g. Unsnenitize file name donwload
Hacker Request Update Compromised Server Client Fake Command Server Control Panel Hack ECU
OMA DM component db information with GET cmd
malicious component application e.g. Node.js ft. misconfigure debugger handshake Allow command injection
RDS Bluetooth WiFi SD USB GPS Infotainment 3G/4G OBD2 Physical Remote Android Apps Remote Repository MyCar server Update server
make serious problems
not take Information Security as a serious problem, then come out with lots of vulnerabilities application
black industry. Apparently, vehicle with its high value deserve to own its targeting attack, and it’s worthy
sensitive to country security
concern on security issues on its document
libraries (& Remote Repository Server)
make sure to change your AC/PW
apply auth confirm & encrypted communication. Vendors’ Web should apply vulnerabilities scanning to fix bugs, avoid brutal force and information leak.
Whitelist can ease the lost after compromised by hacking
automobile-through-bus-reverse-engineering-37825
injections-from-software-layer.pdf
Your-Car-is-My-Car-Code-6e0e599/
stmicroelectronics.pdf