Automated Vulnerability Discovery
Introduction
Yan Shoshitaishvili�Arizona State University
Embedded device 0day
We're not keeping up...
# CVEs
Year
#
We're not keeping up...
# CVEs
Year
#
We're not keeping up...
# CVEs
Year
67M GitHub Repos
131M GitHub Repos
#
Alan Turing.
"Checking a large routine."
EDSAC Inaugural Conference, 1949.
Alan Turing.
"Checking a large routine."
EDSAC Inaugural Conference, 1949.
Is the program correct secure?
Analysis Paradigms
Static techniques try to find flaws without executing the program.
Dynamic techniques execute the program to find flaws.
#
Static Analysis
Pros:
Cons:
"There is a buffer overflow on every line of the program" will�technically spot all instances of buffer overflows...
#
Dynamic Analysis
Pros:
Cons:
"No bugs detected" is a quite normal result of dynamic�analysis of buggy programs.
#
"The uses of symbolic execution, concolic execution, static analysis, and other emerging technologies to spot substantial vulnerabilities in complex, unstructured, and non-annotated code are still in their infancy."