Abo
  • IT-Karriere:

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.

Artikel von veröffentlicht am
Entwickler implementieren Verschlüsselung oft fehlerhaft.
Entwickler implementieren Verschlüsselung oft fehlerhaft. (Bild: Alexas_Fotos)

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.

Stellenmarkt
  1. Wirecard Issuing Technologies GmbH, Aschheim bei München
  2. MKT Krankentransport Schmitt / Obermeier OHG, München

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.



Anzeige
Hardware-Angebote
  1. 294€

JohSpaeth 06. Jun 2019 / Themenstart

Hallo, ich bin ein Mitarbeiter der Gruppe von Eric Bodden und bin an der Entwicklung rund...

JohSpaeth 06. Jun 2019 / Themenstart

Hallo, ich bin ein Mitarbeiter der Gruppe von Eric Bodden und habe CogniCrypt...

Kommentieren


Folgen Sie uns
       


Mordhau Gameplay

Klirrende Klingen und packende Kämpfe mit bis zu 64 Spielern bietet das in einem mittelalterlichen Szenario angesiedelte Actionspiel Mordhau.

Mordhau Gameplay Video aufrufen
Wolfenstein Youngblood angespielt: Warum wurden diese dämlichen Mädchen nicht aufgehalten!?
Wolfenstein Youngblood angespielt
"Warum wurden diese dämlichen Mädchen nicht aufgehalten!?"

E3 2019 Der erste Kill ist der schwerste: In Wolfenstein Youngblood kämpfen die beiden Töchter von B.J. Blazkowicz gegen Nazis. Golem.de hat sich mit Jess und Soph durch einen Zeppelin über dem belagerten Paris gekämpft.
Von Peter Steinlechner


    Physik: Den Quanten beim Sprung zusehen
    Physik
    Den Quanten beim Sprung zusehen

    Quantensprünge sind niemals groß und nicht vorhersehbar. Forschern ist es dennoch gelungen, den Vorgang zuverlässig zu beobachten, wenn er einmal angefangen hatte - und sie konnten ihn sogar umkehren. Die Fehlerkorrektur in Quantencomputern soll in Zukunft genau so funktionieren.
    Von Frank Wunderlich-Pfeiffer


      Ada und Spark: Mehr Sicherheit durch bessere Programmiersprachen
      Ada und Spark
      Mehr Sicherheit durch bessere Programmiersprachen

      Viele Sicherheitslücken in Software sind auf Programmierfehler zurückzuführen. Diese Fehler lassen sich aber vermeiden - und zwar unter anderem durch die Wahl einer guten Programmiersprache. Ada und Spark gehören dazu, leider sind sie immer noch wenig bekannt.
      Von Johannes Kanig

      1. Das andere How-to Deutsch lernen für Programmierer
      2. Programmiersprachen, Pakete, IDEs So steigen Entwickler in Machine Learning ein
      3. Software-Entwickler Welche Programmiersprache soll ich lernen?

        •  /