Formally verified software countermeasures for control-flow integrity of smart card C code

被引:12
|
作者
Heydemann, Karine [1 ]
Lalande, Jean-Francois [2 ]
Berthome, Pascal [3 ]
机构
[1] Sorbonne Univ, CNRS, LIP6, F-75005 Paris, France
[2] Univ Rennes, CentraleSupelec, INRIA, CNRS,IRISA,UMR 6074, F-35065 Rennes, France
[3] Univ Orleans, CINSA Ctr Val de Loire, LIFO, EA 4022, F-18022 Bourges, France
关键词
Physical attacks; Smart card; Control-flow integrity; Code securing; Countermeasures; FAULT INJECTION; VERIFICATION; ERRORS;
D O I
10.1016/j.cose.2019.05.004
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Fault attacks can target smart card programs to disrupt an execution and take control of the data or the embedded functionalities. Among all possible attacks, control-flow attacks aim at disrupting the normal execution flow. Identifying harmful control-flow attacks and designing countermeasures at the software level are tedious and tricky for developers. In this paper, we propose a methodology to detect harmful inter- and intra-procedural jump attacks at the source code level and automatically inject formally proven countermeasures into a C code. The proposed software countermeasures protect the integrity of individual statements at the granularity of single C statements. They support many control-flow constructs of the C language. The countermeasure scheme can detect an attack early either inside a control-flow construct or only at its exit. The secured source code defeats 100% of attacks that jump over at least two C source code statements. Experiments showed that the resulting code is also hardened against unexpected function calls and jump attacks at the assembly code level. Securing a source code automatically and extensively with our scheme degrades the performance. The performance overhead of our countermeasures on three well-known encryption algorithms available in C ranged from +41% to +138% on an x86 platform and from +45% to +217% on an ARM-v7 platform. However, combining code rewriting with hardening of sensitive code regions identified by the weakness detection step enables an application to be fully hardened while limiting the overhead. (C) 2019 Elsevier Ltd. All rights reserved.
引用
收藏
页码:202 / 224
页数:23
相关论文
共 50 条
  • [1] Software Countermeasures for Control Flow Integrity of Smart Card C Codes
    Lalande, Jean-Francois
    Heydemann, Karine
    Berthome, Pascal
    COMPUTER SECURITY - ESORICS 2014, PT II, 2014, 8713 : 200 - 218
  • [2] Embedding formally proved code in a smart card: Converting B to C
    Requet, A
    Bossu, G
    ICFEM 2000: THIRD INTERNATIONAL CONFERENCE ON FORMAL ENGINEERING METHODS, PROCEEDINGS, 2000, : 15 - 22
  • [3] Control-Flow Bending: On the Effectiveness of Control-Flow Integrity
    Carlini, Nicolas
    Barresi, Antonio
    Payer, Mathias
    Wagner, David
    Gross, Thomas R.
    PROCEEDINGS OF THE 24TH USENIX SECURITY SYMPOSIUM, 2015, : 161 - 176
  • [4] Enforcing Unique Code Target Property for Control-Flow Integrity
    Hu, Hong
    Qian, Chenxiong
    Yagemann, Carter
    Chung, Simon Pak Ho
    Harris, William R.
    Kim, Taesoo
    Lee, Wenke
    PROCEEDINGS OF THE 2018 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY (CCS'18), 2018, : 1470 - 1486
  • [5] Fine-Grained Control-Flow Integrity for Kernel Software
    Ge, Xinyang
    Talele, Nirupama
    Payer, Mathias
    Jaeger, Trent
    1ST IEEE EUROPEAN SYMPOSIUM ON SECURITY AND PRIVACY, 2016, : 179 - 194
  • [6] Opaque Control-Flow Integrity
    Mohan, Vishwath
    Larsen, Per
    Brunthaler, Stefan
    Hamlen, Kevin W.
    Franz, Michael
    22ND ANNUAL NETWORK AND DISTRIBUTED SYSTEM SECURITY SYMPOSIUM (NDSS 2015), 2015,
  • [7] Modular Control-Flow Integrity
    Niu, Ben
    Tan, Gang
    ACM SIGPLAN NOTICES, 2014, 49 (06) : 577 - 587
  • [8] PROLEPSIS: Binary analysis and instrumentation of IoT software for control-flow integrity
    Forte, Valentina
    Maunero, Nicolo
    Prinetto, Paolo
    Roascio, Gianluca
    International Conference on Electrical, Computer, Communications and Mechatronics Engineering, ICECCME 2021, 2021,
  • [9] Control-Flow Carrying Code
    Lin, Yan
    Cheng, Xiaoyang
    Gao, Debin
    PROCEEDINGS OF THE 2019 ACM ASIA CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY (ASIACCS '19), 2019, : 3 - 14
  • [10] Out Of Control: Overcoming Control-Flow Integrity
    Goktas, Enes
    Athanasopoulos, Elias
    Bos, Herbert
    Portokalidis, Georgios
    2014 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP 2014), 2014, : 575 - 589