zurück zum Artikel

Testing: Code Intelligence holt Fuzzing auf die Kommandozeile

Rainald Menge-Sonnentag

(Bild: Gorodenkoff/Shutterstock.com)

Das Kommandozeilenwerkzeug CI Fuzz CLI zum Aufspüren von Schwachstellen über Fuzzing soll möglichst einsteigerfreundlich sein.

Das deutsche Unternehmen Code Intelligence hat mit CI Fuzz CLI ein Werkzeug veröffentlicht, das Fuzz-Tests von der Kommandozeile aus startet. Das Open-Source-Tool soll besonders einfach zu bedienen sein und richtet sich damit vor allem an diejenigen, die bisher kein Fuzzing zum Testen ihrer Projekte verwenden.

Im ersten Aufschlag untersucht CI Fuzz CLI C- und C++-Code im Zusammenspiel mit CMake. Mittelfristig soll das Werkzeug auch Code in Go, JavaScript und JVM-Sprachen untersuchen. Für Letztere hat das Unternehmen Anfang 2021 mit Jazzer [1] ein Open-Source-Tool zum Fuzzing veröffentlicht.

Das Tool soll die Einstiegshürde in das Fuzzing verringern, da wenige Befehle und kleine Anpassungen im Editor für den ersten Fuzz-Test ausreichen. Gleichzeitig lässt sich das Kommandozeilenwerkzeug in Continuous-Integration-Prozesse, Build-Werkzeuge und Entwicklungsumgebungen integrieren.

Die Projektseite zeigt die Einbindung in ein einfaches Projekt: Das Initialisieren über cifuzz init erstellt die Datei cifuzz.yaml mit der Testkonfiguration. Den eigentlichen Test erstellt der Befehl cifuzz create, der eine Stub-Datei wie my_fuzz_test_1.cpp anlegt.

Entwicklerinnen und Entwickler müssen anschließend die Datei so konfigurieren, dass sie die passenden Funktionen im Programm testet. Außerdem müssen sie die CMake-Anweisungen passend konfigurieren. Schließlich stößt der Befehl cifuzz run my_fuzz_test_1 den Fuzz-Test an. Wer einen Bericht über die Testabdeckung benötigt, kann mit cifuzz coverage my_fuzz_test_1 einen Coverage Report generieren.

Beim Fuzzing blicken Werkzeuge anders als bei der statischen Codeanalyse nicht auf den Sourcecode, sondern füttern die zu testende Software mit Eingabedaten, die zufällig oder bewusst fehlerhaft beziehungsweise unvollständig sind. Auf die Weise findet das Fuzz-Testing Fehler wie Pufferüberläufe, die durchrutschen können, wenn menschliche Tester nur plausible Daten nutzen. Code Intelligence ist ein deutsches Start-up, das sich auf Fuzzing spezialisiert hat.

International ist Google ein starker Verfechter von Fuzzing. Der Internetriese hat 2016 mit OSS Fuzz [2] ein Projekt zum Testen von Open-Source-Software mit Fuzzing vorgestellt. Daneben hat er mit ClusterFuzz ein kommerzielles Fuzzing-Werkzeug zum Integrieren in die CI/CD-Pipeline (Continuous Integration / Continuous Delivery) im Portfolio, von dem 2021 eine abgespeckte Open-Source-Variante [3] erschienen ist.

Googles Programmiersprache Go bringt seit Version 1.18 Fuzzing [4] in der Toolchain mit, das aber laut dem jüngsten Survey des für die Sprache verantwortlichen Teams [5] bisher wenig genutzt wird.

Weitere Details zu CI Fuzz CLI lassen sich dem Readme des GitHub-Repository [6] und der Projektseite bei Code Intelligence entnehmen [7].

(rme [8])


URL dieses Artikels:
https://www.heise.de/-7271424

Links in diesem Artikel:
[1] https://www.heise.de/news/Testing-Mit-Jazzer-erscheint-ein-Open-Source-Fuzzer-fuer-JVM-Anwendungen-5050930.html
[2] https://www.heise.de/meldung/Googles-OSS-Fuzz-testet-Open-Source-Software-auf-Schwachstellen-3534552.html
[3] https://www.heise.de/news/Codeanalyse-ClusterFuzzLite-automatisiert-Fuzzing-im-Softwareentwicklungszyklus-6265214.html
[4] https://www.heise.de/news/Programmiersprache-Go-Beta-zu-Go-1-18-fuehrt-Generics-ein-6295955.html
[5] https://www.heise.de/news/Programmiersprache-Go-Entwickler-setzen-auf-die-neuen-Generics-7259189.html
[6] https://github.com/CodeIntelligenceTesting/cifuzz
[7] https://www.code-intelligence.com/cli-tool
[8] mailto:rme@ix.de