TY - JOUR
T1 - Buffer overflow attack with multiple fault injection and a proven countermeasure
AU - Nashimoto, Shoei
AU - Homma, Naofumi
AU - Hayashi, Yu ichi
AU - Takahashi, Junko
AU - Fuji, Hitoshi
AU - Aoki, Takafumi
N1 - Funding Information:
This work has mainly been done when Shoei Nashimoto had been in Tohoku University. This work has been supported by JSPS KAKENHI Grant Nos. 25240006 and 16K12436.
Publisher Copyright:
© 2016, Springer-Verlag Berlin Heidelberg.
PY - 2017/4/1
Y1 - 2017/4/1
N2 - In this paper, we present a hardware/software co-attack to hijack a program flow on microcontrollers. The basic idea is to skip a few instructions using multiple fault injection in microcontrollers in cooperation with a software attack. We focus on buffer overflow (BOF) attacks together with such multiple fault injection. The proposed attack can be applied to a program code with a typical software countermeasure against BOF attacks. The attack manipulates the program control flow by skipping specific instructions related to the countermeasure, and thus, the subsequent BOF attack code is successfully executed on the microcontroller. We show the effectiveness of our proposed attack through experiments using an 8-bit AVR ATmega163 microcontroller and a 32-bit ARM Cortex-M0+ microcontroller, where the target software was equipped with a countermeasure limiting the size of user input against BOF attacks. The result showed that our attack can overwrite a return address stored in a stack and call an arbitrary malicious function. We also propose a software countermeasure against our attack and prove its validity by examining all the possible instruction skips.
AB - In this paper, we present a hardware/software co-attack to hijack a program flow on microcontrollers. The basic idea is to skip a few instructions using multiple fault injection in microcontrollers in cooperation with a software attack. We focus on buffer overflow (BOF) attacks together with such multiple fault injection. The proposed attack can be applied to a program code with a typical software countermeasure against BOF attacks. The attack manipulates the program control flow by skipping specific instructions related to the countermeasure, and thus, the subsequent BOF attack code is successfully executed on the microcontroller. We show the effectiveness of our proposed attack through experiments using an 8-bit AVR ATmega163 microcontroller and a 32-bit ARM Cortex-M0+ microcontroller, where the target software was equipped with a countermeasure limiting the size of user input against BOF attacks. The result showed that our attack can overwrite a return address stored in a stack and call an arbitrary malicious function. We also propose a software countermeasure against our attack and prove its validity by examining all the possible instruction skips.
KW - Buffer overflow attacks
KW - Embedded processors
KW - Fault injection attacks
KW - Program-flow hijacking
UR - http://www.scopus.com/inward/record.url?scp=85016279799&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85016279799&partnerID=8YFLogxK
U2 - 10.1007/s13389-016-0136-3
DO - 10.1007/s13389-016-0136-3
M3 - Article
AN - SCOPUS:85016279799
SN - 2190-8508
VL - 7
SP - 35
EP - 46
JO - Journal of Cryptographic Engineering
JF - Journal of Cryptographic Engineering
IS - 1
ER -