SIoT: Securing Internet of Things through distributed systems analysis

Abstract The Internet of Things (IoT) is increasingly more relevant. This growing importance calls for tools able to provide users with correct, reliable and secure systems. In this paper, we claim that traditional approaches to analyze distributed systems are not expressive enough to address this challenge. As a solution to this problem, we present SIoT, a tool to analyze security aspects of distributed IoT programs and thus protect them against buffer overflow attacks. Our key insight is to look at a distributed system as a single body, and not as separate programs that exchange messages. We then can crosscheck information inferred from different nodes. To construct this global view of a distributed system, we introduce a novel algorithm that discovers inter-program links efficiently. Such links let us build an inter-program view, a knowledge that we can thus forward to a traditional buffer overflow static analysis tool. We prove that our algorithm always terminates and it correctly models the semantics of a distributed system. We have implemented our solution on top of the LLVM compiler, and have used it to secure five ContikiOS applications against buffer overflow attacks. Our solution produces code as safe as the code secured by more traditional analyses; however, applications instrumented by our solution have less than 6% of runtime and program size overhead on average.

[1]  Paul Feautrier,et al.  Automatic Parallelization in the Polytope Model , 1996, The Data Parallel Programming Model.

[2]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[3]  Shay Artzi,et al.  F4F: taint analysis of framework-based web applications , 2011, OOPSLA '11.

[4]  Zhendong Su,et al.  Sound and precise analysis of web applications for injection vulnerabilities , 2007, PLDI '07.

[5]  Azzedine Boukerche,et al.  Trust-based security for wireless ad hoc and sensor networks , 2007, Comput. Commun..

[6]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[7]  Frank Mueller,et al.  ScalaExtrap: trace-based communication extrapolation for spmd programs , 2011, PPoPP '11.

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

[9]  Hans Eberle,et al.  Comparing Elliptic Curve Cryptography and RSA on 8-bit CPUs , 2004, CHES.

[10]  Zhao Li,et al.  SIFT: building an internet of safe things , 2015, IPSN.

[11]  Klaus Wehrle,et al.  Security Challenges in the IP-based Internet of Things , 2011, Wirel. Pers. Commun..

[12]  Dinakar Dhurjati,et al.  SAFECode: enforcing alias analysis for weakly typed languages , 2005, PLDI '06.

[13]  Martin Schulz,et al.  Detecting Patterns in MPI Communication Traces , 2008, 2008 37th International Conference on Parallel Processing.

[14]  Frances E. Allen,et al.  Control-flow analysis , 2022 .

[15]  Eleonora Borgia,et al.  The Internet of Things vision: Key features, applications and open issues , 2014, Comput. Commun..

[16]  Saugata Ghose,et al.  Architectural support for low overhead detection of memory violations , 2009, 2009 Design, Automation & Test in Europe Conference & Exhibition.

[17]  Ricardo Dahab,et al.  TinyPBC: Pairings for authenticated identity-based non-interactive key distribution in sensor networks , 2008 .

[18]  A. One,et al.  Smashing The Stack For Fun And Profit , 1996 .

[19]  Ítalo S. Cunha,et al.  AoT: Authentication and Access Control for the Entire IoT Device Life-Cycle , 2016, SenSys.

[20]  Klaus Wehrle,et al.  KleeNet: discovering insidious interaction bugs in wireless sensor networks before deployment , 2010, IPSN '10.

[21]  Michael D. Smith,et al.  A public-key infrastructure for key distribution in TinyOS based on elliptic curve cryptography , 2004, 2004 First Annual IEEE Communications Society Conference on Sensor and Ad Hoc Communications and Networks, 2004. IEEE SECON 2004..

[22]  Praveen Budhwar,et al.  TinyOS: An Operating System for Wireless Sensor Networks , 2015 .

[23]  Vikram S. Adve,et al.  Memory Safety for Low-Level Software/Hardware Interactions , 2009, USENIX Security Symposium.

[24]  Bjarne Stroustrup,et al.  Evolving a language in and for the real world: C++ 1991-2006 , 2007, HOPL.

[25]  Panagiotis Papadimitratos,et al.  SHIELD: a data verification framework for participatory sensing systems , 2015, WISEC.

[26]  Elisa Bertino,et al.  Kinesis: a security incident response and prevention system for wireless sensor networks , 2014, SenSys.

[27]  Ben Hardekopf,et al.  The ant and the grasshopper: fast and accurate pointer analysis for millions of lines of code , 2007, PLDI '07.

[28]  Adam Dunkels,et al.  Contiki - a lightweight and flexible operating system for tiny networked sensors , 2004, 29th Annual IEEE International Conference on Local Computer Networks.

[29]  Attila Altay Yavuz,et al.  ETA: efficient and tiny and authentication for heterogeneous wireless systems , 2013, WiSec '13.

[30]  Fernando Magno Quintão Pereira,et al.  A fast and low-overhead technique to secure programs against integer overflows , 2013, Proceedings of the 2013 IEEE/ACM International Symposium on Code Generation and Optimization (CGO).

[31]  André L. L. de Aquino,et al.  (CIA)2-ITS: Interconnecting mobile and ubiquitous devices for Intelligent Transportation Systems , 2012, 2012 IEEE International Conference on Pervasive Computing and Communications Workshops.

[32]  Carsten Bormann,et al.  The Constrained Application Protocol (CoAP) , 2014, RFC.

[33]  Qing Wang,et al.  A Survey on Device-to-Device Communication in Cellular Networks , 2013, IEEE Communications Surveys & Tutorials.

[34]  Calton Pu,et al.  Buffer overflows: attacks and defenses for the vulnerability of the decade , 2000, Proceedings DARPA Information Survivability Conference and Exposition. DISCEX'00.

[35]  Arthur B. Maccabe,et al.  The program dependence web: a representation supporting control-, data-, and demand-driven interpretation of imperative languages , 1990, PLDI '90.

[36]  David E. Culler,et al.  SPINS: Security Protocols for Sensor Networks , 2001, MobiCom '01.

[37]  Derek Bruening,et al.  AddressSanitizer: A Fast Address Sanity Checker , 2012, USENIX Annual Technical Conference.

[38]  Martin Schulz,et al.  Formal analysis of MPI-based parallel programs , 2011, Commun. ACM.

[39]  Marimuthu Palaniswami,et al.  Internet of Things (IoT): A vision, architectural elements, and future directions , 2012, Future Gener. Comput. Syst..

[40]  Nicholas Nethercote,et al.  Valgrind: a framework for heavyweight dynamic binary instrumentation , 2007, PLDI '07.

[41]  Muhammad Khalil Afzal,et al.  TinyOS-New Trends, Comparative Views, and Supported Sensing Applications: A Review , 2016, IEEE Sensors Journal.

[42]  Wenguang Chen,et al.  MPIPP: an automatic profile-guided parallel process placement toolset for SMP clusters and multiclusters , 2006, ICS '06.

[43]  Milo M. K. Martin,et al.  Hardbound: architectural support for spatial safety of the C programming language , 2008, ASPLOS.

[44]  Daniel C. DuVarney,et al.  Address Obfuscation: An Efficient Approach to Combat a Broad Range of Memory Error Exploits , 2003, USENIX Security Symposium.

[45]  Manu Sridharan,et al.  TAJ: effective taint analysis of web applications , 2009, PLDI '09.

[46]  Fernando Magno Quintão Pereira,et al.  SIoT: securing the internet of things through distributed system analysis , 2015, IPSN '15.

[47]  Michael Scott,et al.  On the application of pairing based cryptography to wireless sensor networks , 2009, WiSec '09.

[48]  Laurent Hascoët,et al.  Native Handling of Message-Passing Communication in Data-Flow Analysis , 2012 .

[49]  Daniel F. Macedo,et al.  Vehicular networks using the IEEE 802.11p standard: An experimental analysis , 2014, Veh. Commun..

[50]  Jacob West,et al.  Secure Programming with Static Analysis , 2007 .

[51]  Adam Dunkels,et al.  A database in every sensor , 2011, SenSys.

[52]  Yunghsiang Sam Han,et al.  A pairwise key predistribution scheme for wireless sensor networks , 2005, TSEC.

[53]  Peter J. Denning,et al.  Certification of programs for secure information flow , 1977, CACM.

[54]  Ramjee Prasad,et al.  Proposed Security Model and Threat Taxonomy for the Internet of Things (IoT) , 2010, CNSA.

[55]  Milo M. K. Martin,et al.  WatchdogLite: Hardware-Accelerated Compiler-Based Pointer Checking , 2014, CGO '14.

[56]  Fernando Magno Quintão Pereira,et al.  Validation of memory accesses through symbolic analyses , 2014, OOPSLA.

[57]  Peng Li,et al.  T-check: bug finding for sensor networks , 2010, IPSN '10.

[58]  Lars Ole Andersen,et al.  Program Analysis and Specialization for the C Programming Language , 2005 .

[59]  Christopher Krügel,et al.  Saner: Composing Static and Dynamic Analysis to Validate Sanitization in Web Applications , 2008, 2008 IEEE Symposium on Security and Privacy (sp 2008).

[60]  Mubashir Husain Rehmani,et al.  Cognitive-Radio-Based Internet of Things: Applications, Architectures, Spectrum Related Functionalities, and Future Research Directions , 2017, IEEE Wireless Communications.

[61]  Antonio Iera,et al.  The Internet of Things: A survey , 2010, Comput. Networks.

[62]  Noël Crespi,et al.  Exploitation of social IoT for recommendation services , 2016, 2016 IEEE 3rd World Forum on Internet of Things (WF-IoT).

[63]  Bjarne Steensgaard,et al.  Points-to analysis in almost linear time , 1996, POPL '96.

[64]  Milo M. K. Martin,et al.  Watchdog: Hardware for safe and secure manual memory management and full memory safety , 2012, 2012 39th Annual International Symposium on Computer Architecture (ISCA).

[65]  Wei Dong,et al.  Providing OS Support for Wireless Sensor Networks: Challenges and Approaches , 2010, IEEE Communications Surveys & Tutorials.

[66]  Thomas C. Schmidt,et al.  RIOT OS: Towards an OS for the Internet of Things , 2013, 2013 IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS).

[67]  Georg Carle,et al.  Poster: Securing the internet of things with DTLS , 2011, SenSys.

[68]  Peter Kruus,et al.  TinyPK: securing sensor networks with public key technology , 2004, SASN '04.

[69]  Greg Bronevetsky,et al.  Communication-Sensitive Static Dataflow for Parallel Message Passing Applications , 2009, 2009 International Symposium on Code Generation and Optimization.

[70]  Eric Eide,et al.  Efficient memory safety for TinyOS , 2007, SenSys '07.

[71]  Philip Levis,et al.  RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks , 2012, RFC.

[72]  Luigi Alfredo Grieco,et al.  Security, privacy and trust in Internet of Things: The road ahead , 2015, Comput. Networks.

[73]  Thomas C. Schmidt,et al.  Federated End-to-End Authentication for the Constrained Internet of Things Using IBC and ECC , 2015, SIGCOMM.

[74]  David Brumley,et al.  All You Ever Wanted to Know about Dynamic Taint Analysis and Forward Symbolic Execution (but Might Have Been Afraid to Ask) , 2010, 2010 IEEE Symposium on Security and Privacy.

[75]  Ricardo Dahab,et al.  SecLEACH - On the security of clustered sensor networks , 2007, Signal Process..

[76]  Marcelo d'Amorim,et al.  Efficient static checker for tainted variable attacks , 2014, Sci. Comput. Program..