m2mon: building an mmio-based security reference monitor

16
M2MON: Building an MMIO-based Security Reference Monitor for Unmanned Vehicles Arslan Khan, Hyungsub Kim†, Byoungyoung Lee, Dongyan Xu†, Antonio Bianchi†, Dave (Jing) Tian† Purdue University Seoul National University

Upload: others

Post on 11-Feb-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: M2MON: Building an MMIO-based Security Reference Monitor

M2MON: Building an MMIO-based Security Reference Monitor for Unmanned Vehicles

Arslan Khan†, Hyungsub Kim†, Byoungyoung Lee∗, Dongyan Xu†, Antonio Bianchi†, Dave (Jing) Tian†

†Purdue University ∗ Seoul National University

Page 2: M2MON: Building an MMIO-based Security Reference Monitor

2

Gyro

MMIO

RTOS

ECU

TaskTask

Timer

Task

WiFi

CAN

SPI/I2C

Real-time operations exhibit deterministic patternsAll

communications go through MMIO

Task

Gyro

ECU

Timer

WiFi

CPS malicious activities may cause anomalies at MMIO level

Motivation

Physical Attacks

Cyber Attacks

Page 3: M2MON: Building an MMIO-based Security Reference Monitor

3

Example of attack showing I/O anomaly

GPS Spoofing

Higher count of ephemeris message in case of spoofing.

Page 4: M2MON: Building an MMIO-based Security Reference Monitor

4

More examples of attacks showing I/O anomalies

We are motivated to build an I/O Reference Monitor for CPS.

Page 5: M2MON: Building an MMIO-based Security Reference Monitor

5

M2MON

M2MON is an MMIO-based

Security Reference Monitor

An untamperable, non-bypassable, always-invoked and evaluable module that controls all accesses to data objects or devices.

Page 6: M2MON: Building an MMIO-based Security Reference Monitor

6

Middleware/RTOS

Drivers + ISR

Tasks

Libraries

Middleware

Drivers

App 0

App 1

Libraries

Middleware

Drivers

App 0

App 1

Libraries

Middleware

Drivers

App 0

App 1

Libraries

Unused

Privilege Mode

UnprivilegeMode

# Driver Device Interface:No well defined isolation

Design Challenges

Many real-time, low-power CPS have:• No privilege separation

(i.e., user space/kernel space)

• No MMU and Fewer Execution Modes

Page 7: M2MON: Building an MMIO-based Security Reference Monitor

7

Dev 0

M2MON Microkernel SFI Sandbox(DFI + CFI)

M2MON Design

Tasks

Middleware/RTOS

Drivers + ISR

Libraries

Dev 1 Dev 2

UnprivilegeMode

Privilege Mode

Drivers

Unused

High Overhead

Page 8: M2MON: Building an MMIO-based Security Reference Monitor

8

Interrupt

M2MON Design

Tasks

M2MON Microkernel

Middleware/RTOS

Drivers + ISR

Libraries

Dev 0 Dev 1 Dev 2

UnprivilegeMode

Privilege Mode

Drivers

ISR

# No Device-Driver Interface:MPU

SFI Sandbox(DFI + CFI)

❶ Non-Bypassable

❷ Tamper Proof

③ Evaluable

Page 9: M2MON: Building an MMIO-based Security Reference Monitor

9

M2MON Applications

Instantiation of M2MON Microkernel

• To detect multiple types of attacks against drone• Kalman Filter• Access Pattern Filter

• Access Frequency • Access Chain• Access List

Task 1

EKF

Filter

Raw

Values

EKF

Fused Value

acl_reg 0xFE10002C

⓶⓵

⓷❷

Task 2 Task nTask 2

Scheduler Driver Lib

Devices/MMIO

Page 10: M2MON: Building an MMIO-based Security Reference Monitor

10

• Platform• 3DR IRIS+ UAV platform• Ardupilot

• Evaluation• Performance Evaluation• Security Evaluation

Evaluation

Page 11: M2MON: Building an MMIO-based Security Reference Monitor

11

Performance Evaluation

1

10

100

1000

rc_loop

throttle_loop

update_GPS

update_optical_flow

update_batt_com

pass

read_aux_switches

arm_motors_check

auto_trim

update_altitude

run_nav_updates

update_thr_average

three_hz_loop

compass_accumulate

barometer_accumulate

update_notify

one_hz_loop

ekf_check

landinggear_update

lost_vehicle_check

gcs_check_input

gcs_send_heartbeat

gcs_send_deferred

gcs_data_stream_send

update_mount

ten_hz_logging_loop

fifty_hz_logging_loop

full_rate_logging_loop

perf_update

read_receiver_rssi

rpm_update

frsky_telemetry_send

epm_update

CleanM2MONDeadline

Average overhead of 8.85%

Page 12: M2MON: Building an MMIO-based Security Reference Monitor

12

Security Evaluation

Checked by M2MON microkernel

Page 13: M2MON: Building an MMIO-based Security Reference Monitor

13

Configuration Register

Reload Register

Enable Timer Register

…tboot

I/OAccess

M2MON

sh> BLOC_registerRELOAD_REG

Case study (Timer Reload)

Page 14: M2MON: Building an MMIO-based Security Reference Monitor

14

Limitations

• Complex Rules

0

200

400

600

800

0 64 65 69 74 79 84 89 94

0

50

100

150

200

0 64 65 69 74 79 84 89 940

20

40

60

80

0 64 65 69 74 79 84 89 94

update_batt_compass

rc_loopauto_trim

• Zero-day attacks

Page 15: M2MON: Building an MMIO-based Security Reference Monitor

15

Conclusion

• CPS attacks against drones usually exhibit MMIO-level anomalies

• M2Mon: a reference monitor for MMIO anomaly detection• MMIO Microkernel• Multiple Applications of MMIO Microkernel• Reasonable overhead on real drone controller• Detect a wide range of attacks

Page 16: M2MON: Building an MMIO-based Security Reference Monitor

Thank you! Questions?

[email protected]

*This work was supported in part by ONR under GrantsN00014-20-1-2128 and N00014-17-1-204. This material is also based on research sponsored by DARPA under contract number N6600120C4031.