Embedded systems are omnipresent in our everyday life and are becoming
increasingly present in many computing and networked environments. For example,
they are at the core of various Common-Off-The-Shelf (COTS) devices such as
printers, video surveillance systems, home routers and virtually anything we
informally call electronics. The emerging phenomenon of the Internet-of-Things
(IoT) will make them even more widespread and interconnected. Cisco famously
predicted that there will be 50 billion connected embedded devices by 2020.
Given those estimations, the heterogeneity of technology and application fields,
and the current threat landscape, the security of all those devices becomes of
paramount importance. In addition to this, manual security analysis does not
scale. Therefore, novel, scalable and automated approaches are needed.
In this talk, we present several methods that make *the large scale
security analyses of embedded devices* a feasible task. We implemented
those techniques in a scalable framework that we tested on real world data.
First, we collected a large number of firmware images from Internet
repositories and then performed simple static analysis.
Second, since embedded devices often expose web interfaces for
remote administration, therefore we developed techniques for large scale
static and dynamic analysis of such interfaces.
Finally, identifying and classifying the firmware files, as well as
fingerprinting and identifying embedded devices is difficult, especially
at large scale.
Using these techniques, we were able to discover a large number of new
vulnerabilities in dozens of firmware packages, affecting a great variety of vendors and
device classes. We were also able to achieve high accuracy in fingerprinting and
classification of both firmware images and live devices.