Securing the boot process of embedded Linux systems
Abstract
I løpet av de siste årene har antallet tilknyttede enheter som utgjør Internet of Things økt dramatisk, og lite tyder på at denne utviklingen er i ferd med å snu. Ettersom disse enhetene utgjør en vesentlig del av kritiske sektorer i næringslivet er det essensielt å kunne garantere at de kun kjører pålitelig kode. Målet med denne studien er å undersøke hvordan kjøring av ikke-autorisert kode kan forhindres gjennom sikring av oppstartsprosessen i innebygde systemer. For å forstå virkningen av utnyttelse av en tilknyttet enhet har denne avhandlingen fokusert på en spesifikk System-on-Chip og dens bruk i en valgt Internet of Things- infrastruktur. En undersøkelse av the secure boot protocol ble gjennomført for å vurdere om den er en passende løsning på problemet. Kravene til protokollen ble vurdert gjennom litteraturstudier og implementasjoner av protokollen. Injeksjon av feil i systemet gjennom et maskinvareangrep ble gjennomført for å evaluere hvor robust protokollen er. Resultatene våre viser at the secure boot protocol ikke er en ideell løsning for å sikre oppstartsprosessen til innebygde systemer. Dette er grunnet at protokollen i realiteten gir lavere sikkerhetsgarantier enn først forventet. Videre forskning på andre protokoller, som for eksempel the measured boot, er nødvendig for å avgjøre om kjøring av ikke-autorisert kode kan forhindres gjennom sikring av oppstartsprosessen. The number of connected devices that make up the Internet of Things has risen dramatically in recent years and is showing no signs of slowing down. Furthermore, these devices play a vital role in critical sectors which makes guaranteeing that only trusted code is running on them evermore crucial. The goal of this research is to investigate how securing the boot process of embedded devices could prevent unauthorised code from being executed. This thesis focused on a particular System-on- Chip and its application in a chosen Internet of Things infrastructure to understand the overall impact resulting from its exploitation. A study of the secure boot protocol was made to determine if it is the most adequate solution for our problem. The requirements of the protocol were evaluated through implementations and literature review. The fault injection hardware attack was used to evaluate the robustness of the secure boot protocol. Our results show that the secure boot protocol is not the ideal solution when it comes to securing the boot process of embedded devices as the security guarantees are not as solid as one might expect. Further research is needed to explore other protocols such as the measured boot to determine if running unauthorised code can be entirely prevented by securing the boot process.