FPGA-Based Remote-Code Integrity Verification of Programs in Distributed Embedded Systems

The explosive growth of networked embedded systems has made ubiquitous and pervasive computing a reality. However, there are still a number of new challenges to its widespread adoption that include scalability, availability, and, especially, security of software. Among the different challenges in software security, the problem of remote-code integrity verification is still waiting for efficient solutions. This paper proposes the use of reconfigurable computing to build a consistent architecture for generation of attestations (proofs) of code integrity for an executing program as well as to deliver them to the designated verification entity. Remote dynamic update of reconfigurable devices is also exploited to increase the complexity of mounting attacks in a real-word environment. The proposed solution perfectly fits embedded devices that are nowadays commonly equipped with reconfigurable hardware components that are exploited to solve different computational problems.

[1]  Swarup Bhunia,et al.  HARPOON: An Obfuscation-Based SoC Design Methodology for Hardware Protection , 2009, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[2]  Christos A. Papachristou,et al.  Embedded system protection from software corruption , 2010, 2010 NASA/ESA Conference on Adaptive Hardware and Systems.

[3]  Steve J. Chapin,et al.  Address-space layout randomization using code islands , 2009, J. Comput. Secur..

[4]  Paolo Prinetto,et al.  A FPGA-Based Reconfigurable Software Architecture for Highly Dependable Systems , 2009, 2009 Asian Test Symposium.

[5]  David Aucsmith,et al.  Tamper Resistant Software: An Implementation , 1996, Information Hiding.

[6]  Srivaths Ravi,et al.  Hardware-Assisted Run-Time Monitoring for Secure Program Execution on Embedded Processors , 2006, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[7]  Leah H. Jamieson,et al.  Establishing the Genuinity of Remote Computer Systems , 2003, USENIX Security Symposium.

[8]  Francisco Milton Mendes Neto,et al.  Designing Solutions-Based Ubiquitous and Pervasive Computing: New Issues and Trends , 2010 .

[9]  Bart Preneel,et al.  Remote attestation on legacy operating systems with trusted platform modules , 2008, Sci. Comput. Program..

[10]  Trent Jaeger,et al.  Design and Implementation of a TCG-based Integrity Measurement Architecture , 2004, USENIX Security Symposium.

[11]  Gavin Lowe,et al.  Breaking and Fixing the Needham-Schroeder Public-Key Protocol Using FDR , 1996, Softw. Concepts Tools.

[12]  Pradeep K. Khosla,et al.  SWATT: softWare-based attestation for embedded devices , 2004, IEEE Symposium on Security and Privacy, 2004. Proceedings. 2004.

[13]  Jürgen Teich,et al.  Identifying FPGA IP-Cores Based on Lookup Table Content Analysis , 2006, 2006 International Conference on Field Programmable Logic and Applications.

[14]  Tilman Wolf,et al.  Reconfigurable Hardware for High-Security/ High-Performance Embedded Systems: The SAFES Perspective , 2008, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[15]  Jack W. Davidson,et al.  Protection of software-based survivability mechanisms , 2001, 2001 International Conference on Dependable Systems and Networks.

[16]  Steven Trimberger Trusted Design in FPGAs , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[17]  Saar Drimer,et al.  Volatile FPGA design security { a survey , 2008 .

[18]  Gang Tan,et al.  Delayed and Controlled Failures in Tamper-Resistant Software , 2006, Information Hiding.

[19]  Mariano Ceccato,et al.  Remote Entrusting by Run-Time Software Authentication , 2008, SOFSEM.

[20]  Alfred Menezes,et al.  Handbook of Applied Cryptography , 2018 .

[21]  Bart Preneel,et al.  Embedded Trusted Computing with Authenticated Non-volatile Memory , 2008, TRUST.

[22]  Ryan Kastner,et al.  Managing Security in FPGA-Based Embedded Systems , 2008, IEEE Design & Test of Computers.

[23]  Scott Hauck,et al.  Reconfigurable computing: a survey of systems and software , 2002, CSUR.

[24]  Jonathon T. Giffin,et al.  Strengthening software self-checksumming via self-modifying code , 2005, 21st Annual Computer Security Applications Conference (ACSAC'05).

[25]  Anna Philippou,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 2018, Lecture Notes in Computer Science.

[26]  Jean-Baptiste Note,et al.  From the bitstream to the netlist , 2008, FPGA '08.

[27]  Amit Sahai,et al.  On the (im)possibility of obfuscating programs , 2001, JACM.

[28]  Paul C. van Oorschot,et al.  A generic attack on checksumming-based software tamper resistance , 2005, 2005 IEEE Symposium on Security and Privacy (S&P'05).

[29]  Koen De Bosschere,et al.  Towards Tamper Resistant Code Encryption: Practice and Experience , 2008, ISPEC.

[30]  William A. Arbaugh,et al.  Copilot - a Coprocessor-based Kernel Runtime Integrity Monitor , 2004, USENIX Security Symposium.

[31]  Hamilton E. Link,et al.  Clarifying obfuscation: improving the security of white-box DES , 2005, International Conference on Information Technology: Coding and Computing (ITCC'05) - Volume II.

[32]  Ramarathnam Venkatesan,et al.  Oblivious Hashing: A Stealthy Software Integrity Verification Primitive , 2002, Information Hiding.

[33]  Cas J. F. Cremers,et al.  The Scyther Tool: Verification, Falsification, and Analysis of Security Protocols , 2008, CAV.

[34]  Vyacheslav N. Yarmolik,et al.  Obfuscation as Intellectual Rights Protection in VHDL Language , 2007, 6th International Conference on Computer Information Systems and Industrial Management Applications (CISIM'07).

[35]  Mihai Budiu,et al.  Control-flow integrity principles, implementations, and applications , 2009, TSEC.

[36]  Peng Ning,et al.  Remote attestation to dynamic system properties: Towards providing complete system integrity evidence , 2009, 2009 IEEE/IFIP International Conference on Dependable Systems & Networks.

[37]  Christof Paar,et al.  Security on FPGAs: State-of-the-art implementations and attacks , 2004, TECS.

[38]  Christian S. Collberg,et al.  Watermarking, Tamper-Proofing, and Obfuscation-Tools for Software Protection , 2002, IEEE Trans. Software Eng..

[39]  Paolo Prinetto,et al.  Microprocessor fault-tolerance via on-the-fly partial reconfiguration , 2010, 2010 15th IEEE European Test Symposium.

[40]  Alessandro Cilardo,et al.  Reconfigurable systems self-healing using mobile hardware agents , 2005, IEEE International Conference on Test, 2005..

[41]  Martín Abadi,et al.  On Protection by Layout Randomization , 2010, 2010 23rd IEEE Computer Security Foundations Symposium.

[42]  Paul C. van Oorschot Revisiting Software Protection , 2003, ISC.

[43]  Alok N. Choudhary,et al.  CODESSEAL: Compiler/FPGA Approach to Secure Applications , 2005, ISI.

[44]  Elaine Shi,et al.  Pioneer: verifying code integrity and enforcing untampered code execution on legacy systems , 2005, SOSP '05.

[45]  Mikhail J. Atallah,et al.  Protecting Software Code by Guards , 2001, Digital Rights Management Workshop.

[46]  Lin Guoyuan,et al.  Notice of Retraction Research of software protection , 2010 .

[47]  David L. Weaver,et al.  The SPARC Architecture Manual , 2003 .

[48]  Roberto Giacobazzi,et al.  Semantics-based code obfuscation by abstract interpretation , 2009, J. Comput. Secur..