Annual Computer Security Applications Conference · 2021 · 16 citations · 44 references
ComputingCloud ComputingComputer ScienceApplication SecurityCloud SecurityEmbedded SystemsApplication Security TestingDynamic Application Security TestingFuzz TestingSoftware TestingSymbolic ExecutionCase Study EvaluationDynamic Symbolic ExecutionSymbolic Execution EnginesSymbolic-assisted Fuzzing
Existing symbolic execution typically assumes the analyzer can control the I/O environment and/or access the library code, which, however, is not the case when programs run on a remote proprietary execution environment managed by another party. For example, SmartThings, one of the most popular IoT platforms, is such a cloud-based execution environment. For programmers who write automation applications to be deployed on IoT cloud platforms, it raises significant challenges when they want to systematically test their code and find bugs. We propose fuzzing-assisted remote dynamic symbolic execution, which uses dynamic symbolic execution as backbone and utilizes fuzzing when necessary to automatically test programs running in a remote proprietary execution environment over which the analyzer has little control. As a case study, we enable it for analyzing smart apps running on SmartThings. We have developed a prototype and the evaluation shows that it is effective in testing smart apps and finding bugs.
44
Symbolic execution and program testing
James C. King · Communications of the ACM · 1976 · 3K citations · Full text
Patrice Godefroid, Nils Klarlund, Koushik Sen · 2005 · 1.5K citations
IEEE Security & Privacy · 2004 · 1.5K citations
Symbolic execution for software testing
Cristian Cadar, Koushik Sen · Communications of the ACM · 2013 · 749 citations