Fuzzer

Bei der Verarbeitung medizinischer Daten im Praxis- und Klinikbetrieb tragen die Standards DICOM und HL7 eine Kernrolle. Medizinsoftwareanbietern stehen bei der Implementierung standardkonformer Produkte mehreren Herausforderungen gegenüber. Einerseits gilt es diese komplexen Standards korrekt und nutzerfreundlich in ihrer Software abzubilden, zeitgleich ist auch die Sicherheit der Patientendaten zu gewährleisten.

Ein wesentlicher Schlüsselfaktor hierbei ist der Einsatz moderner kryptographischer Verfahren wie z.B. das Transport Layer Security Protokoll (TLS), das in vielen alltäglichen Bereichen, wie z.B. im Webbrowser, flächendeckend eingesetzt wird und täglich den Datenverkehr von Millionen Internetnutzern absichert.

TLS-Implementierungen sind aufgrund ihrer Verbreitung und Wichtigkeit für die Sicherheit im Internet gut untersucht, dennoch kommt es immer wieder zu Sicherheitslücken. Teilweise beruhen diese nicht auf Fehlern im Standard selbst, sondern auf Implementierungsfehlern die schlimmstenfalls über lange Zeit unentdeckt bleiben. Ein prominentes Beispiel hierfür ist die Heartbleedschwachstelle [1]. Eine fehlerhafte Adressberechnung beim Lesezugriff auf den Speicher führte bei der Heartbleed dazu, das Angreifer geheime Daten auslesen und somit die Sicherheit von TLS umgehen konnten, ohne die Kryptographie dahinter direkt anzugreifen.

Zur frühzeitigen Entdeckung solcher Fehler hat sich „Fuzzing“ [2] als automatisiertes Softwaretestverfahren bewährt. Es kann in Ergänzung zu den gängigen Unit- und Integrationstests eingesetzt werden, um Sicherheitslücken wie Heartbleed frühzeitig aufzufinden, bevor sie von Angreifern ausgenutzt werden können.

Im Vergleich zu TLS-Bibliotheken sind Medizinsoftwareprodukte wesentlich weniger verbreitet, oft nicht frei und teilweise nur zusammen mit teuren Medizingeräten verfügbar, somit obliegt dem Hersteller selbst die Gewährleistung der Softwaresicherheit rund um die hoch sensiblen Patientendaten. Um moderne Fuzzingverfahren im Medizinumfeld einsetzen zu können, wurde im Rahmen des MITSicherheit.NRW Projektes eine Fuzzingplattform zur Untersuchung von DICOM und HL7-Implementierungen entwickelt und erfolgreich zur Untersuchung des DICOM Toolkits, sowie der HL7 Bibliothek NHAPI eingesetzt. Die Plattform übernimmt die Netzwerkkommunikation mit der zur prüfenden Software und bindet sowohl AFL als auch SharpFuzz als Engine ein. Zudem unterstützt sie den Anwender bei der Konfiguration der Fuzzingumgebung, Instrumentierung des Codes, Deduplizierung und Normalisierung der generierten Daten in Vorbereitung auf die Analyse der vom Fuzzer generierten Ergebnisse.

MITSicherheit.NRW stellt die Fuzzingplattform quelloffen über github [3] zur Verfügung. Sie kann von interessierten Medizinsoftwareanbietern in den hauseigenen Testprozess integriert werden, um die Sicherheit der eigenen Produkte kontinuierlich zu untersuchen und verbessern. Bitte beachten Sie, dass sich MedFuzz aktuell in einem experimentellen Status befinden, der Einsatz wird nicht empfohlen, die Nutzung der  Software erfolgt auf eigene Gefahr!

[1] https://heartbleed.com/

[2] https://apps.dtic.mil/sti/pdfs/ADA558209.pdf

[3] https://github.com/RUB-NDS/medfuzz