Was ist das für ein Startup, das die Deutsche Börse, Bosch und die Deutsche Telekom schon zu seinen Kunden zählt? Code Intelligence bringt eine wichtige Innovation in den Software Testing Prozess: die CI Security Suite basiert auf einem neuen Konzept von Fuzzing, das viel manuelle Arbeit und bestehende Integrationsprobleme eliminiert.
Die Lösung unterstützt Entwickler dabei (semi-) automatisierte Sicherheits- und Zuverlässigkeitstests einzurichten und kontinuierlich durchzuführen. Das Versprechen: Softwaretests werden schneller, sicherer und sind leichter einzurichten. Die resultierende Software hat eine höhere Qualität. Sicherheitslücken werden gefunden, bevor Hacker sich daran zu schaffen machen. Welches IT-Unternehmen kann sich dem schon entziehen?
Das Problem
Software zu testen ist eine knifflige Angelegenheit. Die gebräuchlichen Methoden haben alle ihre Mängel. Schauen wir uns an, welche das sind:
Unit / Integration / System Testing
Ein Unit Test oder Modultest wird auf der untersten Ebene ausgeführt. Kleine Module können mit einer geringen Zahl von Testfällen geprüft werden. Die nächste Stufe ist der Integrationstest, der das Zusammenwirken der Module betrachtet. Abschließend wird das Gesamtsystem getestet.
Dieses dreischrittige Bottom-up-Verfahren hat folgende Nachteile:
- Es deckt nur einen kleinen Teil des Codes ab.
- Es ist sehr zeitaufwendig.
- Unerwartetes Verhalten und Randbedingungen werden leicht übersehen.
Static Code Analysis
Bei dieser Methode wird die Software zur Übersetzungszeit getestet, d. h. während sie kompiliert wird und nicht, während sie ausgeführt wird. Heuristiken überprüfen dabei den Quelltext und erkennen Schwachstellen im Code.
Die Mängel dieser Methode sind folgende:
- Statisch können nicht alle Programmabläufe vorhergesagt werden.
- Ein hoher Anteil an False-Positives: Korrektes Verhalten wird als Fehler und Fehler werden als korrektes Verhalten gemeldet.
- Großer manueller Aufwand macht die Methode ineffizient.
- Tester benötigen seltenes Spezialwissen, um die Resultate zu beurteilen.
- Bugs werden nicht zuverlässig erkannt.
Dynamic Code Analysis
Dynamisch bedeutet, dass die Software läuft, während sie getestet wird. Die Tester erstellen Eingabedaten, führen das Testprogramm aus, sammeln die notwendigen Parameter und analysieren die Ausgabe.
Die Schwierigkeiten bei diesem Verfahren sind:
- Es ist ineffizient wegen des sehr hohen manuellen Aufwands.
- Es wird nur der Code getestet, der auch mit den festgelegten Eingabedaten erreicht werden kann.
Penetrationstests durch Consultants
Bei einem Penetrationstest, kurz: Pentest, versuchen Spezialisten, eine Software zu hacken. Penetration ist das unerlaubte Eindringen in ein System. Dabei werden Werkzeuge verwendet, die verschiedenste Angriffsmuster nachbilden.
Auch dieses Verfahren hat seine Probleme:
- Es ist kostspielig wegen des hohen manuellen Aufwands.
- Die Methode lässt sich nicht in einen kontinuierlichen Softwareentwicklungsprozess einbinden, sondern nur punktuell, beispielsweise vor einem Release, anwenden.
Coverage-based Fuzzing
Fuzzing, auch Fuzzy-Test oder Negativtest genannt, ist eine Technik, bei der die Fehleranfälligkeit eines Systems durch die Eingabe einer großen Menge an Zufallsdaten untersucht wird. Es ist ebenfalls eine dynamische Technik, die während der Laufzeit des zu testenden Codes ausgeführt wird.
Die Schwierigkeiten dabei:
- Die Methode ist so komplex, dass sie schwer aufzusetzen ist.
- Sie kann nur von hoch qualifizierten Sicherheitsexperten in den Entwicklungsprozess integriert werden. Diese sind kostspielig und am Markt kaum zu finden.
Die Lösung
Die CI Security Suite vereint die Vorteile statischer und dynamischer Verfahren. Sie kombiniert Coverage-based Fuzzing mit Sanitizern, um Software während der Ausführung zu überwachen und kritische Sicherheitsrisiken aufzudecken.
Die Suite wird direkt in die Entwicklungsumgebung integriert. So fallen Sicherheitslücken bereits während der Entwicklung auf – ein Riesenvorteil für agile Softwareprojekte.
Vorteile
Die Vorteile von Code Intelligence auf einem Blick:
- Sicherheit und Zuverlässigkeit
- Schwachstellen in der Software, die mit anderen Methoden nicht bereinigt werden, werden mithilfe der CI Security Suite erkannt und behoben.
- Kosten der Rekrutierung teurer IT-Sicherheitsexperten werden vermieden.
- Schnelligkeit – die zeitintensive manuelle Auswertung von False-Positives entfällt.
- Testumfang – die gewonnene Zeit kann in umfangreichere Tests investiert werden.
- Prozessoptimierung – Sicherheitstests können in eine agile Softwareentwicklung eingebunden werden.
- Kontinuierliches Qualitätsmanagement
Einfache Integration
Die Integration der CI Security Suite ist einfach, weil ein Plugin den Benutzer durch den Vorgang leitet. Es ist kein teures Fachpersonal dafür nötig. Der Entwickler kann sehen, was der Fuzzer bereits überprüft hat, und er kann durch die Analyseergebnisse browsen. Bei jeder Änderung am Code wird die CI Security Suite erneut ausgeführt.
Einsatzgebiete
Derzeit erkennt die CI Security Suite Sicherheitslücken in C/C++ Projekten. Die Gründer planen, die Lösung auf weitere Programmiersprachen auszuweiten.
Die Kunden des Startups kommen derzeit aus den Bereichen:
- Softwareentwicklung
- Qualitätsmanagement
- IT-Security und Pentesting
Wer steckt hinter Code Intelligence?
Die Gründer, Dr. Khaled Yakdan, Sergej Dechand und Dr. Henning Perl, haben beim Fraunhofer FKIE im Team von Prof. Matthew Smith jahrelang zu Cyber Security, Schwachstellen und Fuzz Driven Development geforscht. Mit im Team ist außerdem Philipp Langnickel, Startup-Gründer und Business Development Manager.
Prof. Matthew Smith, Spezialist für Usable Security and Privacy an der Universität Bonn und am Fraunhofer FKIE, fungiert als Berater des jungen Unternehmens. Als Berater außerdem dabei: Thomas Tschersich, Senior Vice President Security Deutsche Telekom / T-Systems.
Fazit
Code Intelligence bietet eine Lösung für das automatisierte Software Testing an, die den herkömmlichen Methoden überlegen ist. Das Startup zählt bereits jetzt renommierte Unternehmen zu seinen Kunden. Gefördert vom Digital Hub Bonn und dem High Tech Gründerfonds haben die Security-Spezialisten das Potenzial, Software Testing durch Coverage-based Fuzzing auf eine neue Stufe zu heben.
Was ist das für ein Startup, das die Deutsche Börse, Bosch und die Deutsche Telekom schon zu seinen Kunden zählt? Code Intelligence bringt eine wichtige Innovation in den Software Testing Prozess: die CI Security Suite basiert auf einem neuen Konzept von Fuzzing, das viel manuelle Arbeit und bestehende Integrationsprobleme eliminiert.
Die Lösung unterstützt Entwickler dabei (semi-) automatisierte Sicherheits- und Zuverlässigkeitstests einzurichten und kontinuierlich durchzuführen. Das Versprechen: Softwaretests werden schneller, leichter anwendbar und sicherer. Die resultierende Software hat eine höhere Qualität. Sicherheitslücken werden gefunden, bevor Hacker sich daran zu schaffen machen. Welches IT-Unternehmen kann sich dem schon entziehen?