full paper draft.distribution. - oth regensburg › ~har › files › paperv01.pdf · only the...

9
Unpublished working draft. Not for distribution. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 A Survey on Penetration Test Tools for Controller Area Networks Full Paper Enrico Pozzobon Technical University of Applied Sciences Regensburg Regensburg, Germany [email protected] Nils Weiss Technical University of Applied Sciences Regensburg Regensburg, Germany [email protected] Sebastian Renner Technical University of Applied Sciences Regensburg Regensburg, Germany [email protected] Rudolf Hackenberg Technical University of Applied Sciences Regensburg Regensburg, Germany [email protected] ABSTRACT Controller Area Networks (CANs) are still most used network tech- nology in todays connected cars. Today and in the near future, penetration tests in the area of automotive security will still require tools for CAN media access. More and more open source automo- tive penetration tools and frameworks are presented by researchers on various conferences. All with different properties in terms of usability, features and supported use-cases. If one wants to start with security investigations in automotive networks, he has to find a proper tool for his investigations by try and error of available solutions. This paper compares current available CAN media access solutions and gives an advices on competitive hard- and software tools for automotive penetration testing. CCS CONCEPTS Computer systems organization Embedded systems; Re- dundancy; Robotics; • Networks → Network reliability; KEYWORDS CAN, Penetration Testing, Benchmarks ACM Reference Format: Enrico Pozzobon, Nils Weiss, Sebastian Renner, and Rudolf Hackenberg. 2018. A Survey on Penetration Test Tools for Controller Area Networks: Full Paper. In Proceedings of ACM Computer Science in Cars Symposium (ACM- CSCS’18). ACM, New York, NY, USA, 9 pages. https://doi.org/10.475/123_4 1 INTRODUCTION Since the automotive industry is moving towards autonomous driv- ing, more and more cars are or will soon be connected to a backend system in the Internet, the security of automotive systems becomes a crucial factor in the process of developing self-driving cars. With Produces the permission block, and copyright information Unpublished working draft. Not for distribution. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the owner/author(s). ACM-CSCS’18, September 2018, Munich, Germany © 2018 Copyright held by the owner/author(s). ACM ISBN 123-4567-24-567/08/06. . . $15.00 https://doi.org/10.475/123_4 additional remotely accessible interfaces, which are needed to en- able the communication between vehicles and the Internet, the attack surface of a modern car significantly increases. Furthermore, this development can expose protocols like CAN, which usually only have been used in the car’s internal network, to remote ports. Since for example the CAN protocol was developed decades ago, it does not introduce any kind of mechanisms to secure the commu- nication. The combination between the introduction of new con- nected interfaces, which are necessary for the use of self-driving features and the use of legacy and potentially unsecured protocols creates a new high-impact risk in the context of attacks on the car’s IT security. Therefore the evaluation of this risk is an important factor in the process of security testing. To ensure reliable and suf- ficient testing, professional tools specifically developed to support automotive protocols are needed. This paper introduces the most commonly used frameworks, soft- and hardware available in the field of automotive security testing. Additionally, a pattern on how to cluster them into subgroups will be shown. Moreover, different criteria, valid to conduct an extensive comparison between the chosen tools will be described, followed by a survey on the the actual tools. After explaining the test process for each subject under test, the test results will be concluded. The last paragraph will cover possible aspects that may be researched in the future. 2 RELATED WORK In the area of performance evaluation of CAN drivers the work of Sojka et. al is mentionable. They performed an extensive timing analysis of the commonly used driver SocketCAN, in comparison with their own solution LinCAN on different Linux Kernels [21][20]. This differs from the research proposed in this paper, since it focuses solely on the driver itself, while we observe CAN tool solutions as a whole. Further research regarding CAN tools was published by Lebrun et. al in 2016. Lebrun and Demay introduced CANSPY, a tool for CAN frame inspection and manipulation, especially built to aid with security evaluations of CAN devices [9]. Besides the work done on CAN testing, in the field of web appli- cations, alike surveys relevant to analyzing security tools have been conducted in the past. For example, Fonseca et. al benchmarked web vulnerability scanning tools using criteria such as vulnerability Submission ID: 123-A12-B3. 2018-05-03 08:42. Page 1 of 1–9.

Upload: others

Post on 25-Jun-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Full Paper draft.distribution. - OTH Regensburg › ~har › files › paperV01.pdf · only the target ECU and the ECU or the repair shop tester, which are delivering an update, are

Unpublishedworkingdraft.

Not for distribution.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

A Survey on Penetration Test Tools for Controller AreaNetworks∗

Full Paper

Enrico PozzobonTechnical University of Applied Sciences Regensburg

Regensburg, [email protected]

Nils WeissTechnical University of Applied Sciences Regensburg

Regensburg, [email protected]

Sebastian RennerTechnical University of Applied Sciences Regensburg

Regensburg, [email protected]

Rudolf HackenbergTechnical University of Applied Sciences Regensburg

Regensburg, [email protected]

ABSTRACTController Area Networks (CANs) are still most used network tech-nology in todays connected cars. Today and in the near future,penetration tests in the area of automotive security will still requiretools for CAN media access. More and more open source automo-tive penetration tools and frameworks are presented by researcherson various conferences. All with different properties in terms ofusability, features and supported use-cases. If one wants to startwith security investigations in automotive networks, he has to finda proper tool for his investigations by try and error of availablesolutions. This paper compares current available CANmedia accesssolutions and gives an advices on competitive hard- and softwaretools for automotive penetration testing.

CCS CONCEPTS• Computer systems organization→ Embedded systems; Re-dundancy; Robotics; • Networks→ Network reliability;

KEYWORDSCAN, Penetration Testing, BenchmarksACM Reference Format:Enrico Pozzobon, Nils Weiss, Sebastian Renner, and Rudolf Hackenberg.2018. A Survey on Penetration Test Tools for Controller Area Networks: FullPaper. In Proceedings of ACM Computer Science in Cars Symposium (ACM-CSCS’18). ACM, New York, NY, USA, 9 pages. https://doi.org/10.475/123_4

1 INTRODUCTIONSince the automotive industry is moving towards autonomous driv-ing, more and more cars are or will soon be connected to a backendsystem in the Internet, the security of automotive systems becomesa crucial factor in the process of developing self-driving cars. With∗Produces the permission block, and copyright information

Unpublished working draft. Not for distribution.Permission to make digital or hard copies of part or all of this work for personal orclassroom use is granted without fee provided that copies are not made or distributedfor profit or commercial advantage and that copies bear this notice and the full citationon the first page. Copyrights for third-party components of this work must be honored.For all other uses, contact the owner/author(s).ACM-CSCS’18, September 2018, Munich, Germany© 2018 Copyright held by the owner/author(s).ACM ISBN 123-4567-24-567/08/06. . . $15.00https://doi.org/10.475/123_4

additional remotely accessible interfaces, which are needed to en-able the communication between vehicles and the Internet, theattack surface of a modern car significantly increases. Furthermore,this development can expose protocols like CAN, which usuallyonly have been used in the car’s internal network, to remote ports.Since for example the CAN protocol was developed decades ago, itdoes not introduce any kind of mechanisms to secure the commu-nication. The combination between the introduction of new con-nected interfaces, which are necessary for the use of self-drivingfeatures and the use of legacy and potentially unsecured protocolscreates a new high-impact risk in the context of attacks on the car’sIT security. Therefore the evaluation of this risk is an importantfactor in the process of security testing. To ensure reliable and suf-ficient testing, professional tools specifically developed to supportautomotive protocols are needed.

This paper introduces themost commonly used frameworks, soft-and hardware available in the field of automotive security testing.Additionally, a pattern on how to cluster them into subgroups willbe shown. Moreover, different criteria, valid to conduct an extensivecomparison between the chosen tools will be described, followedby a survey on the the actual tools. After explaining the test processfor each subject under test, the test results will be concluded. Thelast paragraph will cover possible aspects that may be researchedin the future.

2 RELATEDWORKIn the area of performance evaluation of CAN drivers the work ofSojka et. al is mentionable. They performed an extensive timinganalysis of the commonly used driver SocketCAN, in comparisonwith their own solution LinCAN on different Linux Kernels [21][20].This differs from the research proposed in this paper, since it focusessolely on the driver itself, while we observe CAN tool solutions asa whole. Further research regarding CAN tools was published byLebrun et. al in 2016. Lebrun and Demay introduced CANSPY, atool for CAN frame inspection and manipulation, especially builtto aid with security evaluations of CAN devices [9].

Besides the work done on CAN testing, in the field of web appli-cations, alike surveys relevant to analyzing security tools have beenconducted in the past. For example, Fonseca et. al benchmarkedweb vulnerability scanning tools using criteria such as vulnerability

Submission ID: 123-A12-B3. 2018-05-03 08:42. Page 1 of 1–9.

Page 2: Full Paper draft.distribution. - OTH Regensburg › ~har › files › paperV01.pdf · only the target ECU and the ECU or the repair shop tester, which are delivering an update, are

Unpublishedworkingdraft.

Not for distribution.

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

ACM-CSCS’18, September 2018, Munich, Germany E. Pozzobon et al.

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

coverage and the false positive rate [3]. Doupe et. al accomplishedsimilar research with the evaluation of vulnerability scanners forweb applications in 2010 [1].

3 GENERAL REQUIREMENTS FORAUTOMOTIVE PENETRATION TESTING

This section introduces some basic requirements for automotivepenetration testing. A competitive tool should fulfill the follow-ing requirements. All mentioned requirements are derived frompractical use-cases in automotive penetration testing.

3.1 Protocol ViewerDuring any security tests on automotive networks, a clear wayto inspect the current traffic on a network is absolutely necessaryto improve the efficiency of automotive security investigations. Asecurity researcher needs an interface which displays the live trafficand allows detailed investigations on captured data. A penetrationtool has to detect and interpret the used protocol automatically. Inaddition to that, such a viewer needs to be extensible with additionalbrand specific protocol information. The following protocols shouldbe supported

• CAN (ISO 11898)• Unified Diagnostic Services (UDS) (ISO 14229)• General Motor Local Area Network (GMLAN)• CAN Calibration Protocol (CCP)• Universal Measurement and Calibration Protocol (XCP)• ISO-TP (ISO 15765)• Diagnostic over Internet Protocol (IP) (DoIP) (ISO 13400)• On-board diagnostics (OBD) (ISO 15031)• Ethernet (ISO 8802/3)• TCP/IP (RFC 793, RFC 7323 / RFC 791, RFC 2460)

3.2 Packet-Manipulation and FuzzingAn automotive penetration test tool should be able to fuzz all com-mon automotive and Ethernet protocols. A fuzzer with an easy touse interface and the capability of fuzzing and listening on differentnetwork interfaces at the same time should be available in a pene-tration test tool. The desired response of a fuzzed message oftenshows up on a different interface, maybe with a different protocol,or on output pins of an Electronic Control Unit (ECU). Anotherfeature is conditional fuzzing. In many situations, an ECU has to beset into a special state before a fuzzer can send the message whichhas to be fuzzed.

3.3 ECU-SimulationUsually, an ECU under test needs a special environment for its nor-mal operation. This environment has to be simulated with periodicCAN and UDS messages on a connected bus. For more advanced in-vestigations, a remaining bus simulation is required. Vector CANoeTODO CITEME for example is specialized in this kind of simula-tion. For white-box security tests, this would be the tool of choicefor complex remaining bus simulations. On black- and gray-boxsecurity tests, periodic messages are sufficient to spoof a certainoperation state. Capturing, modifying and periodically replaying ofvarious messages has to be supported by this penetration test tool.

3.4 Man in the Middle (MITM) CapabilitiesIn order to investigate the communication from a specific ECU, thisECU has to be isolated through a MITM attack. An advanced pene-tration test tool needs some functionality to setup a MITM proxybetween two CAN or Ethernet interfaces. In addition, functions tofilter or hijack the communication between ECUs are very usefulduring black-box security investigations.

3.5 Media Access Layer RequirementsThe mentioned higher level requirements are absolutely necessaryfor efficient penetration testing in automotive networks. It is possi-ble to derive the following media access requirements from theseexisting requirements. For verification of this media access layerrequirements, multiple benchmarks will be created on availableinterfaces for the media access to CAN. A performance evaluationof media access interfaces for automotive penetration tests will beintroduced in the final section of this paper.

3.5.1 Latency. The latency between the initiation of a write toan automotive network from an user space application to the actualpresence of this data on the bus is crucial for all kind of fuzzingand spoofing tests. If one wants to for example react as soon aspossible on a certain CAN message and send out a specific messageas response, the latency of the media access interface has to be asshort as possible.

3.5.2 TX-Throughput. During the investigation of denial of ser-vice or flooding attacks on the CAN bus, a penetration test toolshould be capable of creating a throughput which leads to a busload of 100 percent. To achieve this load from user space writes ofa penetration test application, the interface driver, the operatingsystem and the media access device itself need to be able to handlewrites to the bus faster as the time a message is present on the bus.

3.5.3 RX-Throughput. A common use case in automotive pen-etration testing is the sniffing of firmware updates on the CANbus. During firmware updates of ECUs on the CAN bus, usuallyonly the target ECU and the ECU or the repair shop tester, whichare delivering an update, are allowed to communicate on the bus.All other ECUs remain silent until the flashing procedure finishes.This dedicated communication to only two ECUs on the bus allowsmaximum bandwidth for the firmware transfer. This leads also to amaximum bus load. A media access device for penetration tests, theoperating system and the used drivers need to be capable of hand-ing over this bandwidth to a user space application. Otherwise, thepenetration tester is missing messages which leads to inconsistentresults.

3.5.4 Reliability. For any security investigation in automotivenetworks, the penetration test tool needs a certain reliability. Often,traces and captures can be done only once or require extensivepreparations to the device under test. Unreliable tools will makedifficult security investigations in automotive networks even harderor lead to wrong results.

4 CLASSIFICATION OF MEDIA ACCESS TYPESWhenever one wants to start with automotive penetration test-ing, a soft- and hardware tool for the communication with a car’s

Submission ID: 123-A12-B3. 2018-05-03 08:42. Page 2 of 1–9.

Page 3: Full Paper draft.distribution. - OTH Regensburg › ~har › files › paperV01.pdf · only the target ECU and the ECU or the repair shop tester, which are delivering an update, are

Unpublishedworkingdraft.

Not for distribution.

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

288

289

290

A Survey on Penetration Test Tools for Controller Area Networks ACM-CSCS’18, September 2018, Munich, Germany

291

292

293

294

295

296

297

298

299

300

301

302

303

304

305

306

307

308

309

310

311

312

313

314

315

316

317

318

319

320

321

322

323

324

325

326

327

328

329

330

331

332

333

334

335

336

337

338

339

340

341

342

343

344

345

346

347

348

CAN-bus is required. To get an overview of existing open-sourceautomotive penetration test frameworks, a survey on existing appli-cations and tools for automotive penetration tests was conducted.This survey focused on hard- and software interfaces to accessautomotive networks (CAN). The following table gives an overviewof common used hard- and software for the media access to CAN.

SLCA

NDevice

ELM327

SocketCA

N

Python

-CAN

Others

Busmaster [13] Xc0f [18] X

can-utils [14] XCANiBUS [17] X XCANToolz [16] X X

Caring Caribou [15] XKayak [10] X

Metasploit [12] X XO2OO [25] X

pyfuzz_can [6] Xpython-OBD [26] X

Scapy [24] X XUDSIM [19] X

Wireshark [27] XTable 1: Summary of used hard- and software for CAN-busaccess in open-source automotive penetration test frame-works.

With respect to the evaluation of used media access interface onpublic available penetration test frameworks, the most used mediaaccess interfaces will be taken into account on a performance eval-uation. In order to be able to compare available CAN media accesssolutions for automotive penetration testing, representative groupsfor the different interface solutions have been selected. Devicesinside a group have an identical hard- and software architecture,and will therefore show a similar behavior during benchmarks.

The following list shows the chosen groups for the media accesslayer comparison of CAN-bus interfaces:

(1) Native-CANThe CAN-peripheral module is directly accessible from themain processor. A BeagleBoneBlack with an AM335x 1 GHzARM Cortex-A8 processor and a Banana Pi Pro with anAllwinner A20 dual core ARM processor are the used devicesunder test in this group. All automotive penetration testframeworks which use SocketCAN or Python-CAN are ableto use lower layer CAN-bus interfaces from this group.

(2) Serial Peripherial Interface (SPI)-to-CANThe CAN-peripheral module is accessible over a SPI con-nection. A Raspberry Pi with a MCP2515 TODO CITE_MESPI-CAN module is used as device under test. SocketCAN isthe common way to give an user space application access tothe CAN-bus in this group.

(3) Universal Serial Bus (USB)-to-CANover Serial LineCAN(SLCAN)

The CAN-peripheral module is accessible over a serial linecommunication. The SLCAN protocol is used to access theCAN-bus from the device under test. The open hard- and soft-ware project USBtin TODO CITE_ME is used as an interfacein this class. User space applications can either access theCAN-bus directly over a serial connection, or can connectto a SocketCAN socket, which is offered by an applicationcalled slcand.

(4) ELM327 TODO CITE_METhe ELM327 is an OBD-to-serial interface with a custom ATcommand set. As a device under test, an ELM327 with USB-interface is used. The CAN-bus is accessible over a serialinterface.

(5) USB-to-CANThe CAN-peripheral is accessed over a USB-interface in thisclass. As devices under test, a PEAK PCAN TODO CITE_MEand a Vector VN1611 TODO CITE_ME USB to CAN adapterare used. Devices inside this group require proprietary dri-vers. For user space applications, the CAN-bus is accessiblethrough dynamic linked libraries supported by python-CANor SocketCAN sockets.

The following listing shows media access devices which wereexcluded from this benchmark. A brief reason for for the exclusionis given:

• CANtact [2]CANtact has a very similar architecture to USBtin. It is likely,that the test results would be very similar to each other.

• CANBadger [4]The CANBadger has to be build on your own. It is currentlynot possible to order a ready-to-use piece of hardware, theparts and software for the CANBadger are available and haveto be assembled together according to the datasheets.

• Kvaser [8], IXXAT [11] and INTREPID Control Sys-tems tools [7]These tools are similar to tested tools in the USB-to-CANgroup. Including them into the survey would probably justproduce duplicated results, which does not create and anadded value to this research.

• GoodThopter12 [5]The GoodThopter12 has a similar architecture as the USBtin.The results should be similar to the results in the USB-to-CAN over SLCAN group.

5 BENCHMARKING CRITERIA ANDPROCESS

5.1 Test-SetupsEvery media access device has to be tested individually and with adifferent setup. All tests on media access devices were performedby user space applications, running with maximum priority andcompiled with maximum optimization settings (where applicable).All the tests involving a USB-to-CAN device were executed on thesame laptop computer. All operating systems were tested with theminimum amount of modifications from the moment of installation,including installation of the required software to run the tests,

Submission ID: 123-A12-B3. 2018-05-03 08:42. Page 3 of 1–9.

Page 4: Full Paper draft.distribution. - OTH Regensburg › ~har › files › paperV01.pdf · only the target ECU and the ECU or the repair shop tester, which are delivering an update, are

Unpublishedworkingdraft.

Not for distribution.

349

350

351

352

353

354

355

356

357

358

359

360

361

362

363

364

365

366

367

368

369

370

371

372

373

374

375

376

377

378

379

380

381

382

383

384

385

386

387

388

389

390

391

392

393

394

395

396

397

398

399

400

401

402

403

404

405

406

ACM-CSCS’18, September 2018, Munich, Germany E. Pozzobon et al.

407

408

409

410

411

412

413

414

415

416

417

418

419

420

421

422

423

424

425

426

427

428

429

430

431

432

433

434

435

436

437

438

439

440

441

442

443

444

445

446

447

448

449

450

451

452

453

454

455

456

457

458

459

460

461

462

463

464

drivers for the CAN interfaces, and device trees for the native CANimplementations.

• TI AM3358 (Native CAN)– Platform: BeagleBone Black– OS: Debian GNU/Linux 8– Kernel: 4.4.54-ti-r93 #1 SMP– User space application: Compiled program, written in C,using SocketCAN

• Allwinner A20 (Native CAN)– Platform: Lemaker Banana Pro– OS: Armbian GNU/Linux 9– Kernel: 4.14.18-sunxi #24 SMP– User space application: Compiled program, written in C,using SocketCAN

• MCP2515 (SPI-to-CAN)– Platform: Raspberry Pi 2 Model B– OS: Raspbian GNU/Linux 9– Platform-specific settings: SPI clock frequency set to 8MHz– Kernel: 4.14.30-v7+ #1102 SMP– User space application: Compiled program, written in C,using SocketCAN

• USBtin (USB-to-CAN over SLCAN)– Platform: Dell Latitude E5470– OS: Antergos Linux– Kernel: 4.15.15-1-ARCH #1 SMP PREEMPT– User space application: Compiled program, written in C,using SocketCAN

• ELM327 (USB-to-OBD)– Platform: Dell Latitude E5470– OS: Antergos Linux– Platform-specific settings: UART baud rate set to 460.8 kHz– Kernel: 4.15.15-1-ARCH #1 SMP PREEMPT– User space application: Compiled program, written in C,using glibc termios

• PEAK PCAN (USB-to-CAN)– Platform: Dell Latitude E5470– OS: Antergos Linux– Kernel: 4.15.15-1-ARCH #1 SMP PREEMPT– User space application: Compiled program, written in C,using SocketCAN

• Vector VN1611 (USB-to-CAN)– Platform: Dell Latitude E5470– OS: Windows 10– User space application: Python script

5.2 Test ProcedureAll tests were executed with the maximum baud rate supported bythe tested device. This maximum baud rate was 1 MHz for everydevice except for the ELM327 which only supports a maximum rateof 500 kHz.

All tests involved connecting the device under test to a micro-controller and a logic analyzer for taking measurements. The logicanalyzer was connected to the microcontroller CAN TX and RXpins, in parallel to the transceiver, and the length of the bus con-necting the tested device to the microcontroller was 1.2 meters.

5.2.1 Latency Test. The objective of this test is to measure theamount of time taken by each tool and framework to forward aCAN frame from the physical layer to the user application and viceversa. This measurement is important because it shows whether atool is suitable for timing-critical tasks, such as replying to a framebefore an ECU does, or triggering an action every time a packet isdetected on the bus.

In order to test for latency, a microcontroller with CAN capa-bilities (Espressif ESP32 [22]) was connected to the bus and set tosend a CAN frame every 20 ms, while the device under test wasconfigured to receive these CAN frames and reply as soon as pos-sible with another frame. A logic analyzer was connected to thereceive and transmit lines between the transceiver and the micro-controller, and set to sample data at 10 million samples per second.Since the maximum CAN baud rate reachable by the tested devicesis 1 MHz, a sampling rate of 10 MHz is sufficient to capture andparse the individual CAN frames. An C application was developedusing the Sigrok library to interface with the logic analyzer andcapture precise timings of the time between a CAN frame comingfrom the microcontroller and the response coming from the deviceunder test [23].

Given a pair of "request" and "response" CAN frames (wherethe request is sent by the microcontroller and the response is sentby the device under test), we define the latency introduced by thetested device and framework to be the time passed from the "ACK"field of the request CAN frame and the "START OF FRAME" field ofthe response frame. During this time, the frame is received by thehardware of the Device Under Test (DUT) and it is forwarded to theuser space application, which immediately generates the responseCAN frame without any processing or delay. The measured latencytherefore represents the time which a CAN frame takes to travelfrom the physical layer to the application layer and back to thephysical layer.

It is notable, that the latency measured in this way can never belower than ten baud lengths according to the CAN specification,since between the "ACK" field and the "START OF FRAME" fieldof the next frame there must always be an "END OF FRAME" fieldconsisting of seven recessive bits and an "INTERMISSION" fieldconsisting of three recessive bits. However, while achievable on amicrocontroller, such a low latency was never obtained on any ofthe tested devices, since they all involve a user space applicationrunning on a non real-time operating system.

5.2.2 TX-Throughput Test. The objective of this test is determin-ing how fast a given device can write frames to the CAN bus, andwhat is the maximum data rate it can transmit at. Such a test isimportant to verify that a device is capable of flooding the bus withframes and simulating an high load on the bus.

To execute this test, a small program was written for each testedsoftware stack that would simply send the same CAN frame onemillion times in a loop, while connected to a microcontroller thatwould only acknowledge every frame. The CAN lines were probedwith a logic analyzer to measure the time passed between eachframe, and statistical data was extracted from these measure.

The test was repeated with two different kinds of CAN frames:Frames without a payload and frames with a payload of the maxi-mum size. The smaller frames which still have an effective amount

Submission ID: 123-A12-B3. 2018-05-03 08:42. Page 4 of 1–9.

Page 5: Full Paper draft.distribution. - OTH Regensburg › ~har › files › paperV01.pdf · only the target ECU and the ECU or the repair shop tester, which are delivering an update, are

Unpublishedworkingdraft.

Not for distribution.

465

466

467

468

469

470

471

472

473

474

475

476

477

478

479

480

481

482

483

484

485

486

487

488

489

490

491

492

493

494

495

496

497

498

499

500

501

502

503

504

505

506

507

508

509

510

511

512

513

514

515

516

517

518

519

520

521

522

A Survey on Penetration Test Tools for Controller Area Networks ACM-CSCS’18, September 2018, Munich, Germany

523

524

525

526

527

528

529

530

531

532

533

534

535

536

537

538

539

540

541

542

543

544

545

546

547

548

549

550

551

552

553

554

555

556

557

558

559

560

561

562

563

564

565

566

567

568

569

570

571

572

573

574

575

576

577

578

579

580

of data of 11 bits in the identifier (contained in the "ARBITRATIONFIELD") were used to test the maximum frame rate achievable byeach device. The longer frames which contain 75 bits of data wereused to test the maximum achievable bit rate by each device.

In this test, there was no noticeable difference in the resultswhen testing an high-level framework (e.g. Scapy) or the low layerimplementation (e.g. SocketCAN), due to the amount of bufferingdone by the operating systems and the relatively low data rateof the CAN bus when compared to the speed which frames areprocessed at. Therefore, only one test setup result is shown for eachtested device.

5.2.3 RX-Throughput Test. The objective of this test was deter-mining how fast a given device can read frames from the CAN bus,and what is the maximum data rate it can receive at. This test isimportant for determining if a device can receive all CAN framesin a situation of high bus load, such as when an ECU firmware istransmitted as part of a software update.

To execute this test, the microcontroller was programmed to out-put a CAN frame one million times with the smallest delay allowedby the CAN specification between one frame and the next. In orderto achieve maximum consistency in the transmission interval, aswell as sending the same number of frames whether they were be-ing acknowledged or not, the CAN frames were transmitted usingthe Inter-Integrated Circuit (IC) Sound (I2S) peripheral of the ESP32microcontroller. The validity of the CAN frames sent and of theirtiming was verified with the help of a logic analyzer.

The test was repeated multiple times for each device, with bothshort (no payload) and long (8 bytes payload) frames. The timebetween the start of two consecutive frames was 48 bauds for theshort frames, and 111 bauds for the long frames. During each testsequence, the number of frames received by the device under testwas recorded with a simple program, and the test was repeated1000 times, for a total of 109 frames sent to each device for bothlong and short frames.

6 EVALUATION OF MEDIA ACCESS DEVICES6.1 Latency EvaluationThe results for the latency tests are presented in the form of his-tograms, Empirical cumulative distribution function (ECDF) andbox plots.

The vertical axis of the histogram represents the relative fre-quency of the time measured in one request-response pair. Themost desirable result would be to have a single sharp peak centeredas close to 0 ms as possible, and a wide curve indicates a largevariance in the measurements. The presence of multiple peaks inmany histograms might indicate that a buffer is being filled asyn-chronously with the received CAN frames and it is only being readafter a timeout expires, or it might be due to the operating systemexecuting code for handling interrupts from other peripherals.

The ECDF plots present the integral of the data shown in thehistograms. Given a point (x , y) in these plots, y is the probabilitythat a frame was replied to in time less than x ms. The intersectionbetween the curve and the 0.5 horizontal line in the ECDF plotshows the average latency for that device, while the upmost partrepresents the worst case scenario.

Figure 1: Latency histogram for USB to CAN devices, alltested on the same laptop computer.

Figure 2: Empirical distribution function of the latency forUSB to CAN devices, all tested on the same laptop computer.

Figure 6: Box plot of the measured latency for the tested de-vices. Whiskers represent the 5%�and 995%�quantiles.Submission ID: 123-A12-B3. 2018-05-03 08:42. Page 5 of 1–9.

Page 6: Full Paper draft.distribution. - OTH Regensburg › ~har › files › paperV01.pdf · only the target ECU and the ECU or the repair shop tester, which are delivering an update, are

Unpublishedworkingdraft.

Not for distribution.

581

582

583

584

585

586

587

588

589

590

591

592

593

594

595

596

597

598

599

600

601

602

603

604

605

606

607

608

609

610

611

612

613

614

615

616

617

618

619

620

621

622

623

624

625

626

627

628

629

630

631

632

633

634

635

636

637

638

ACM-CSCS’18, September 2018, Munich, Germany E. Pozzobon et al.

639

640

641

642

643

644

645

646

647

648

649

650

651

652

653

654

655

656

657

658

659

660

661

662

663

664

665

666

667

668

669

670

671

672

673

674

675

676

677

678

679

680

681

682

683

684

685

686

687

688

689

690

691

692

693

694

695

696

Figure 3: Latency histogram for single board computers us-ing SocketCAN.

Figure 4: Empirical distribution function of the latency forsingle board computers using SocketCAN.

6.2 TX-Throughput EvaluationWhen testing the transmission speed of the PCAN and Vector USB-to-CAN interfaces, on any framework or operating system, theperformance was always good enough to obtain a 100% utilizationof the bus. Any variance found in the results of these interfaces isonly present in the first couple of frames, after which the bufferbecomes full and any subsequent sent frame will enter the bus assoon as it becomes free.

Single board computers with native interfaces performed couldalmost constantly send enough CAN frames to reach 100% bus load,but had a larger variance in the results, likely due to other processessharing time on the limited CPUs.

The bottleneck for the transmission speed of the USBtin is theemulated USB UART device, which appears to operate at a maxi-mum speed of 411 kb/s. The speed is further limited by the overhead

Figure 5: Box plot of the measured latency for the tested de-vices. Whiskers represent the 5%�and 995%�quantiles.

of the SLCAN protocol, which is introduced by the use of hexadeci-mal characters and the framing of SLCAN commands, which morethan halve the effective bitrate.

The MCP2515 SPI-to-CAN interface is also a bottleneck. Whilethe speed of the SPI interface would be sufficient to transfer allthe commands necessary to send a CAN frame in a time smallerthan the duration of the CAN frame itself, each successful trans-mission enables the TX0IF flag in the CANINTF register of theMCP2515. TODO CITE_Datasheet Then this happens, the interruptpin is signaled, and the MCP2515 driver on the operating systemwill query the interface for the pending interrupt. The three SPIcommands necessary for reading and resetting the TX0IF flag andthe interruption caused by the driver amount to a total overhead ofapproximately 70 µs for each sent CAN frame when the SPI clockfrequency is set to 8 MHz.

µ [kb/s] σ [kb/s]

USBtin + SocketCAN 57.9261 0.94254pi2 MCP2515 + SocketCAN 66.0764 4.0136Banana Pro + SocketCAN 209.29 7.054

BBB + SocketCAN 225.2256 14.7024PCAN + SocketCAN 229.1065 0.046076

PCAN + python CAN on linux 229.1066 0.0461PCAN + python CAN on windows 228.5465 1.6716

Vector + python CAN 228.568 0.042923Table 2: Results for TX-Throughput evaluation with shortCAN-frame on the tested media access devices.

Submission ID: 123-A12-B3. 2018-05-03 08:42. Page 6 of 1–9.

Page 7: Full Paper draft.distribution. - OTH Regensburg › ~har › files › paperV01.pdf · only the target ECU and the ECU or the repair shop tester, which are delivering an update, are

Unpublishedworkingdraft.

Not for distribution.

697

698

699

700

701

702

703

704

705

706

707

708

709

710

711

712

713

714

715

716

717

718

719

720

721

722

723

724

725

726

727

728

729

730

731

732

733

734

735

736

737

738

739

740

741

742

743

744

745

746

747

748

749

750

751

752

753

754

A Survey on Penetration Test Tools for Controller Area Networks ACM-CSCS’18, September 2018, Munich, Germany

755

756

757

758

759

760

761

762

763

764

765

766

767

768

769

770

771

772

773

774

775

776

777

778

779

780

781

782

783

784

785

786

787

788

789

790

791

792

793

794

795

796

797

798

799

800

801

802

803

804

805

806

807

808

809

810

811

812

µ [kb/s] σ [kb/s]

ELM327 46.8751 2.4707USBtin + SocketCAN 138.7733 7.3381

pi2 MCP2515 + SocketCAN 348.8258 9.6974Banana Pro + SocketCAN 649.1451 5.1531

BBB + SocketCAN 672.3208 12.6014PCAN + SocketCAN 675.5985 0.2309

PCAN + python CAN on linux 674.9145 0.11954PCAN + python CAN on windows 674.9153 0.052812

Vector + python CAN 674.9029 0.13812Vector + scapy 674.9034 0.05797

Table 3: Results for TX-Throughput evaluation with longCAN-frame on the tested media access devices.

6.3 RX-Throughput EvaluationLorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diamnonumy eirmod tempor invidunt ut labore et doloremagna aliquyamerat, sed diam voluptua. At vero eos et accusam et justo duo doloreset ea rebum. Stet clita kasd gubergren, no sea takimata sanctus estLorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consete-tur sadipscing elitr, sed diam nonumy eirmod tempor invidunt utlabore et dolore magna aliquyam erat, sed diam voluptua. At veroeos et accusam et justo duo dolores et ea rebum. Stet clita kasdgubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

TODO: ELM327 is missing

µ [kb/s] σ [kb/s]

USBtin + SocketCAN 89.0387 0.00010953pi2 MCP2515 + SocketCAN 217.5796 2.8753

BBB + SocketCAN 94.3395 1.4791Banana Pro + SocketCAN 228.855 1.5459

PCAN + SocketCAN 229.1495 0.028675PCAN (Windows) + python-can 229.1667 0

Vector + python-can 229.1667 0Table 4: Results for RX-Throughput evaluation with shortCAN-frame on the tested media access devices.

µ [kb/s] σ [kb/s]

USBtin + SocketCAN 179.9568 0.0020292pi2 MCP2515 + SocketCAN 482.6823 16.6219

BBB + SocketCAN 674.4699 2.2591Banana Pro + SocketCAN 675.5324 0.30141

PCAN + SocketCAN 675.6757 0PCAN (Windows) + python-can 675.6757 0

Vector + python-can 675.6757 0Table 5: Results for RX-Throughput evaluation with longCAN-frame on the tested media access devices.

7 EVALUATION OF PENETRATION TESTFRAMEWORKS

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diamnonumy eirmod tempor invidunt ut labore et doloremagna aliquyamerat, sed diam voluptua. At vero eos et accusam et justo duo doloreset ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est

Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consete-tur sadipscing elitr, sed diam nonumy eirmod tempor invidunt utlabore et dolore magna aliquyam erat, sed diam voluptua. At veroeos et accusam et justo duo dolores et ea rebum. Stet clita kasdgubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

Figure 7: Latency histogram for USB to CAN frameworks, alltested on the same laptop computer.

Figure 8: Empirical distribution function of the latency forUSB to CAN frameworks, all tested on the same laptop com-puter.

Submission ID: 123-A12-B3. 2018-05-03 08:42. Page 7 of 1–9.

Page 8: Full Paper draft.distribution. - OTH Regensburg › ~har › files › paperV01.pdf · only the target ECU and the ECU or the repair shop tester, which are delivering an update, are

Unpublishedworkingdraft.

Not for distribution.

813

814

815

816

817

818

819

820

821

822

823

824

825

826

827

828

829

830

831

832

833

834

835

836

837

838

839

840

841

842

843

844

845

846

847

848

849

850

851

852

853

854

855

856

857

858

859

860

861

862

863

864

865

866

867

868

869

870

ACM-CSCS’18, September 2018, Munich, Germany E. Pozzobon et al.

871

872

873

874

875

876

877

878

879

880

881

882

883

884

885

886

887

888

889

890

891

892

893

894

895

896

897

898

899

900

901

902

903

904

905

906

907

908

909

910

911

912

913

914

915

916

917

918

919

920

921

922

923

924

925

926

927

928

Figure 9: Latency histogram for single board computers us-ing different frameworks.

Figure 10: Empirical distribution function of the latency forsingle board computers using different frameworks.

Figure 12: Box plot of the measured latency for the testedframeworks.Whiskers represent the 5%�and 995%�quantiles.

Figure 11: Box plot of the measured latency for the testedframeworks.Whiskers represent the 5%�and 995%�quantiles.

8 CONCLUSIONNon of the investigated tools and frameworks showed an error-freeperformance on Linux. Proprietary tools on Windows performedvery good overall. The python-can framework delivered good re-sults on both tested operating systems, Linux and Windows. Fur-thermore, this framework supports open and closed source mediaaccess devices.

Very popular tools like the ELM327 or USB-to-CAN over SLCANdevices had a bad outcome in our performance evaluation. Thesetools aren’t usable for advanced penetration tests with higher CANbaud rates.

Single-board-computers are a very good alternative to profes-sional CAN media access devices. The availability of a full-featuredoperating system creates a high level of usability in a wide varietyof applications. The tested devices are available for less than 100euros. This fact brings single-board-computers into the same pricerange as popular CAN interfaces like the ELM327 or USB-to-CANover SLCAN devices.

Professional CAN tools for automotive engineering tasks showedthe best results in terms of reliability and throughput. However,these tools are of course much more expensive than single-boardcomputers.

9 FUTUREWORKInspected automotive penetration test frameworks showed onlyvery limited penetration test capabilities. Most tools only supportone specific use case. An open source tool with support of variouscar brands and proprietary automotive protocols is not available,yet. On the other hand, commercial tools do not perfectly fit forpenetration testing tasks and are very expensive in general. Alsothe fact that commercial tools are closed source software productsdecreases the suitability and flexibility for specific penetration tests.To improve automotive penetration testing in general, comprehen-sive open source tools, which fulfill the mentioned requirementsfrom section 3 are necessary. This paper showed that the software

Submission ID: 123-A12-B3. 2018-05-03 08:42. Page 8 of 1–9.

Page 9: Full Paper draft.distribution. - OTH Regensburg › ~har › files › paperV01.pdf · only the target ECU and the ECU or the repair shop tester, which are delivering an update, are

Unpublishedworkingdraft.

Not for distribution.

929

930

931

932

933

934

935

936

937

938

939

940

941

942

943

944

945

946

947

948

949

950

951

952

953

954

955

956

957

958

959

960

961

962

963

964

965

966

967

968

969

970

971

972

973

974

975

976

977

978

979

980

981

982

983

984

985

986

A Survey on Penetration Test Tools for Controller Area Networks ACM-CSCS’18, September 2018, Munich, Germany

987

988

989

990

991

992

993

994

995

996

997

998

999

1000

1001

1002

1003

1004

1005

1006

1007

1008

1009

1010

1011

1012

1013

1014

1015

1016

1017

1018

1019

1020

1021

1022

1023

1024

1025

1026

1027

1028

1029

1030

1031

1032

1033

1034

1035

1036

1037

1038

1039

1040

1041

1042

1043

1044

and hardware interfaces, python-can and SocketCAN, are appro-priate for the implementation of advanced automotive penetrationframeworks.

In the future, our research in the area of automotive penetrationtesting tools will be focused on developing a new framework basedon existing open-source software. The experience gathered duringthe work for this paper will serve as a base of requirements whendesigning the tool. Later, similar tests will be conducted to evaluateand verify the framework’s performance.

REFERENCES[1] Adam Doupé, Marco Cova, and Giovanni Vigna. 2010. Why Johnny Can’t Pentest:

An Analysis of Black-boxWeb Vulnerability Scanners. In International Conferenceon Detection of Intrusions and Malware, and Vulnerability Assessment. Springer,111–131.

[2] Eric Evenchick. 2016. CANtact. (2016). Retrieved April 16, 2018 from http://linklayer.github.io/cantact/

[3] Jose Fonseca, Marco Vieira, and Henrique Madeira. 2007. Testing and comparingweb vulnerability scanning tools for SQL injection and XSS attacks. InDependableComputing, 2007. PRDC 2007. 13th Pacific Rim International Symposium on. IEEE,365–372.

[4] Code White GmbH. 2016. CANBadger. (2016). Retrieved April 16, 2018 fromhttps://gutenshit.github.io/CANBadger/

[5] Travis Goodspeed. 2017. GoodThopter12. (2017). Retrieved April 16, 2018 fromhttp://goodfet.sourceforge.net/hardware/goodthopter12/

[6] Bill Hass. 2018. pyfuzz_can. (2018). Retrieved April 16, 2018 from https://github.com/bhass1/pyfuzz_can

[7] INC. INTREPID CONTROL SYSTEMS. 2018. INTREPID. (2018). Retrieved April16, 2018 from https://www.intrepidcs.com/

[8] Kvaser. 2018. Kvaser. (2018). Retrieved April 16, 2018 from https://www.kvaser.com

[9] Arnaud Lebrun and Jonathan-Christofer Demay. 2016. Canspy: a platform forauditing can devices. (2016).

[10] Jan-Niklas Meier. 2014. Kayak. (2014). Retrieved April 16, 2018 from http://kayak.2codeornot2code.org/

[11] HMS Industrial Networks. 2018. IXXAT. (2018). Retrieved April 16, 2018 fromhttps://www.ixxat.com

[12] Rapid7. 2018. Metasploit. (2018). Retrieved April 16, 2018 from https://www.metasploit.com/

[13] RBEI and ETAS. 2017. BUSMASTER. (2017). Retrieved April 16, 2018 fromhttps://github.com/rbei-etas/busmaster/

[14] Volkswagen Group Electronic Research. 2018. Linux-CAN / SocketCAN userspace applications. (2018). Retrieved April 16, 2018 from https://github.com/linux-can/can-utils

[15] Christian Sandberg, Kasper Karlsson, Tobias Lans, Mattias Jidhage, JohannesWeschke, and Filip Hesslund. 2018. Caring Caribou. (2018). Retrieved April 16,2018 from https://github.com/CaringCaribou/caringcaribou

[16] Alexey Sintsov. 2017. CANToolz - framework for black-box CAN network anal-ysis. (2017). Retrieved April 16, 2018 from https://github.com/CANToolz/CANToolz

[17] Craig Smith. 2013. CAN Device Vehicle Research Server (OpenGarages.org).(2013). Retrieved April 16, 2018 from https://github.com/Hive13/CANiBUS

[18] Craig Smith. 2015. CAN of Fingers (c0f). (2015). Retrieved April 16, 2018 fromhttps://github.com/zombieCraig/c0f

[19] Craig Smith. 2017. UDSim. (2017). Retrieved April 16, 2018 from https://github.com/zombieCraig/UDSim

[20] Michal Sojka, Pavel Píša, Ondřej Špinka, and Zdeněk Hanzálek. 2011. Mea-surement automation and result processing in timing analysis of a Linux-basedCAN-to-CAN gateway. In Intelligent Data Acquisition and Advanced Comput-ing Systems (IDAACS), 2011 IEEE 6th International Conference on, Vol. 2. IEEE,963–968.

[21] M. Sojka, P. PÃŋÅąa, M. Petera, O. Åăpinka, and Z. HanzÃąlek. 2010. A compar-ison of Linux CAN drivers and their applications. In International Symposiumon Industrial Embedded System (SIES). 18–27. https://doi.org/10.1109/SIES.2010.5551367

[22] Espressif Systems. 2018. Espressif Systems ESP32. (2018). Retrieved April 16,2018 from https://www.espressif.com/en/products/hardware/esp32/overview

[23] Bert Vermeulen Uwe Hermann. 2018. Sigrok. (2018). Retrieved April 16, 2018from https://sigrok.org/

[24] Guillaume Valadon and Pierre Lalet. 2018. Scapy. (2018). Retrieved April 16,2018 from http://www.secdev.org/projects/scapy/

[25] Folkert van Heusden. 2014. O2OO. (2014). Retrieved April 16, 2018 fromhttps://www.vanheusden.com/O2OO/

[26] Brendan Whitfield. 2016. python-OBD. (2016). Retrieved April 16, 2018 fromhttps://github.com/brendan-w/python-OBD

[27] Peter Wu. 2018. Wireshark. (2018). Retrieved April 16, 2018 from https://www.wireshark.org/

Submission ID: 123-A12-B3. 2018-05-03 08:42. Page 9 of 1–9.