  Due to the broad attack surface and the lack of runtime protection, potential
safety and security threats hinder the real-life adoption of autonomous
vehicles. Although efforts have been made to mitigate some specific attacks,
there are few works on the protection of the self-driving system. This paper
presents a decentralized self-protection framework called Guardauto to protect
the self-driving system against runtime threats. First, Guardauto proposes an
isolation model to decouple the self-driving system and isolate its components
with a set of partitions. Second, Guardauto provides self-protection mechanisms
for each target component, which combines different methods to monitor the
target execution and plan adaption actions accordingly. Third, Guardauto
provides cooperation among local self-protection mechanisms to identify the
root-cause component in the case of cascading failures affecting multiple
components. A prototype has been implemented and evaluated on the open-source
autonomous driving system Autoware. Results show that Guardauto could
effectively mitigate runtime failures and attacks, and protect the control
system with acceptable performance overhead.
