Original-URL des Artikels: https://www.golem.de/news/software-entwickler-krypto-fehler-vermeiden-mit-cognicrypt-1905-141609.html    Veröffentlicht: 31.05.2019 10:45    Kurz-URL: https://glm.io/141609

Software-Entwickler

Krypto-Fehler vermeiden mit Cognicrypt

In vielen Apps steckt fehlerhafte Kryptographie. Auf der Sicherheitskonferenz Ruhrsec wurde eine Lösung vorgestellt: Cognicrypt. Die Open-Source-Software sucht nach Fehlern im Code und generiert sichere Krypto-Funktionen. Neben Java sollen bald auch weitere Programmiersprachen folgen.

Ein Passwortmanager der Sicherheitsfirma Norton und die App der Volksbanken hatten bis vor kurzem eine Gemeinsamkeit: Bei beiden wurden kryptographische Funktionen fehlerhaft implementiert. Entdeckt wurde das durch die Open-Source-Software Cognicrypt. Damit lassen sich Apps auf derartige fehlerhafte Funktionen hin untersuchen. Cognicrypt kann aber nicht nur analysieren, sondern auch den Code für kryptographische Funktionen generieren, wie der Sicherheitsforscher und Professor für Softwaretechnik an der Universität Paderborn, Eric Bodden, auf der Sicherheitskonferenz Ruhrsec in Bochum gezeigt hat.

Die Apps von Norton und den Volksbanken sind keineswegs die einzigen mit fehlerhaften kryptographischen Funktionen, sie sind Teil einer Studie der Cognicrypt-Entwickler, an der auch Bodden mitgewirkt hat. Diese untersuchte die 250 Top-Android-Apps aus den Bereichen Banking, Gesundheit und Passwortspeicher im Google Playstore. In 71 Prozent der Fälle fanden sie fehlerhafte kryptographische Implementierungen. Häufig schreiben App-Entwickler den Code jedoch gar nicht selbst, sondern greifen auf Snippets aus Repositorys wie Maven zurück. Auch hier führten die Forscher eine Studie durch und analysierten über 2,7 Millionen Java-Snipptes auf Maven. Sie wurden in 73 Prozent der Fälle fündig. Nicht selten hätten die Entwickler gleich mehrere Fehler gemacht, sagt Bodden. Das häufigste Problem sei die Verwendung von AES im unsicheren ECB-Modus.

Den eigenen Code untersuchen

Cognicrypt soll den Entwicklern dabei helfen, die kryptographischen APIs sicher zu verwenden. Entwickelt wurde die Software am kollaborativen Forschungszentrum Crossing der TU Darmstadt, an deren Forschung auch Bodden beteiligt ist. Die Software ist als Plugin für die Entwicklungsumgebung Eclipse verfügbar und kann so direkt im Entwicklungsprozess eines Java-Programmes oder einer App verwendet werden. Neben Java sollen zukünftig auch die Programmiersprachen C und C++ sowie weitere Entwicklungsumgebungen unterstützt werden. Auch eine Integration in Online-Dienste ist geplant.

Die Software analysiert den Programm-Code bei jeder Änderung binnen Sekunden und warnt bei hinzugefügten Schwachstellen oder der Verwendung von veralteten oder unsicheren Algorithmen. Die Warnungen werden in Form von Fehlermarkierungen ausgegeben, erklären das Problem und schlagen Korrekturen für die betroffenen Zeilen vor.

Durch die Kombination verschiedener Analysetechniken sowie den Fokus auf die Krypto-Analyse habe Cognicrypt eine niedrige False-Positivie-Rate, erklärt Bodden. Bei der Analyse der 2,7 Millionen Java-Snippets auf Maven habe diese bei 5 Prozent gelegen. Statische Analyse von Software-Code warte üblicherweise mit deutlich mehr False Positives auf.

Cognicrypt generiert sicheren Krypto-Code

"Ein Ziel war es, sicheren Krypto-Integration-Code zu generieren, damit die Entwickler nicht alles selber schreiben müssen", sagt Bodden. Mit Cognicrypt lasse sich für zahlreiche kryptografische Anwendungsszenarien, beispielsweise die Verschlüsselung einer Datei oder die Authentifizierung eines Nutzers, korrekter und sicherer Quellcode generieren. Diesen könne der Entwickler direkt in die Anwendungen integrieren, erklärt Bodden. Mit ein paar Klicks lassen sich die Aufgabe und die Algorithmen auswählen, die verwendet werden sollen. Anschließend generiert die Software den Java-Code für die Krypto-Funktion. Dabei werde nicht viel Wissen vorausgesetzt.

Bodden hofft nach eigenen Angaben auf bessere und vor allem einfachere Krypto-APIs, "die nur auf die richtige Weise verwendet werden können." Vielleicht könnte Cognicrypt damit in fünf Jahren obsolet werden. Sie sei für heute geschrieben und helfe den Entwicklern, Kryptographie auf eine sichere Weise zu verwenden.  (mtr)


Verwandte Artikel:
Grundlagenforschung: Max-Planck-Institut für Cybersicherheit geht nach Bochum   
(05.05.2019, https://glm.io/141045 )
Hacker: Was ist eigentlich ein Exploit?   
(15.06.2018, https://glm.io/134909 )
Path Traversal: Mit Zip Slip lassen sich beliebige Dateien verändern   
(06.06.2018, https://glm.io/134793 )
Vivy & Co.: Gesundheitsapps kranken an der Sicherheit   
(11.01.2019, https://glm.io/138622 )
MIT: Kryptopuzzle 15 Jahre zu früh gelöst   
(30.04.2019, https://glm.io/140958 )

© 1997–2019 Golem.de, https://www.golem.de/