Code-Untersuchung mit statistischen Verfahren zum Auffinden von Sicherheitslücken in Firmware

Art der Arbeit: Bachelorarbeit

Hintergrund

Unsichere IoT-Geräten haben in letzter Zeit oft [1,2,3,4] für Schlagzeilen gesorgt. Es wäre daher vorteilhaft, wenn Sicherheitslücken von Sicherheitsexperten zuerst entdeckt werden und nicht von Hackern. Eine wichtige Informationsquelle ist dabei die verwendete Firmware. Die Untersuchung von Firmware für Geräte, die auf Microcontrollern basieren ist in der Praxis aktuell sehr umständlich, da die Hardware oftmals sehr direkt angesprochen wird. Dadurch ist ein Reverse Engineering stark eingeschränkt.

Aufgabe

Im Rahmen dieser Arbeit sollen Möglichkeiten zur teilautomatisierten Untersuchung von Firmware entwickelt werden. Möglich sind beispielsweise:

  • Codeuntersuchung mit statistischen Verfahren (z.B. Entropie) zum Auffinden
  • Erkennung von offenen Schnittstellen (UART, telnet, ssh) mittels Codeanalyse
  • Erkennung eventuell verwendeter Libraries und ggfs. Triage gegen CVE / CVS.

Fragestellungen

Mögliche Fragestellungen:

  1. Welche statistischen Methoden eignen sich zur Untersuchung der Firmware?
  2. Wie weit können offene Schnittstellen im Maschinencode erkannt werden?
  3. Welche Microcontroller sind weit verbreitet? Welche Besonderheiten in diesem Kontext hier sind zu beachten?
  4. Wie zuverlässig funktionieren diese Methoden?
  5. Wie weit lässt sich das Vorgehen automatisieren?

Literatur

  • Zaddach, Jonas, and Andrei Costin. "Embedded devices security and firmware reverse engineering." Black-Hat USA (2013).
  • Cook, Allan, et al. "The industrial control system cyber defence triage process." Computers & Security 70 (2017): 467-481.
  • Chantzis, Fotios, et al. Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things. No Starch Press, 2021.
  • van Woudenberg, Jasper, and Colin O'Flynn. The Hardware Hacking Handbook: Breaking Embedded Security with Hardware Attacks. No Starch Press, 2021.
  • Seal, David, ed. ARM architecture reference manual. Pearson Education, 2001.
  • Beneder, Roman. Development of an OpenOCD compatible debugger for ARM-CMARMJTAG. na, 2011.
  • Gay, Warren. "Beginning STM32." Beginning STM32 (2018).
  • Ning, Zhenyu, and Fengwei Zhang. "Ninja: Towards Transparent Tracing and Debugging on ARM." 26th USENIX Security Symposium (USENIX Security 17). 2017.
  • Jiang, Muhui, et al. "An empirical study on arm disassembly tools." Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis. 2020.

    Voraussetzungen: keine besonderen. Kenntnis der Grundlagen des Penetration Testings sind von Vorteil.

    Links

    1. https://t3n.de/news/studie-gefahr-iot-angriffe-1205978/
    2. https://www.br.de/nachrichten/netzwelt/wie-kriminelle-iot-schwachstellen-zu-geld-machen,ReZsRWd
    3. https://t3n.de/news/studie-gefahr-iot-angriffe-1205978/
    4. https://www.datensicherheit.de/aktuelles/iot-botnetze-sind-weiterhin-grosse-gefahr-fuer-unternehmen-30217
    5. The basics of hacking and penetration testing : ethical hacking and penetration testing made easy, Patrick Engebretson, Syngress 2013