Eine Studie (PDF) des Instituts für Informatik 4 der Universität Bonn hat ergeben, dass freiberufliche Programmierer von sich aus nicht immer Regeln für das sichere Speichern von Passwörtern befolgen. Bei einem Test mit 43 Entwicklern gingen viele den einfachen Weg und speicherten Kennwörter ohne eine ausreichenden Schutz vor Diebstahl und unberechtigten Zugriffen.
Für die Studie baten die Forscherinnen Alena Naiakshina, Anastasia Danilova und Eva Gerlitz sowie Emanuel Zezschwitz und Matthew Smith vom Fraunhofer FKIE 260 freie Java-Programmierer über die Plattform Freelancer.com, ein Registrierungssystem für Nutzer eines angeblichen Sozialen Netzwerks zu erstellen. 43 Freiberufler nahmen den Auftrag an und entwickelten auf Basis von Java, JSF, Hibernate und PostgreSQL eine Registrierungssystem.
Die Hälfte der Auftragnehmer sollte den Job für 100 Euro erledigen – der anderen Hälfte boten die Forscher 200 Euro. Ziel war es, herauszufinden, ob die Höhe der Bezahlung Einfluss auf die Implementierung von Sicherheitsfunktionen hat. Darüber hinaus forderten sie wieder jeweils die Hälfte jeder Gruppe auf, die Passwörter sicher zu speichern. Die andere Hälfte erhielt indes keine Vorgaben zur Passwortsicherheit.
Ihren Code lieferten die Entwickler nach ein bis fünf Tagen ab. 18 Programmierer mussten den Code jedoch überarbeiten, da er eine Speicherung von Passwörtern im Klartext vorsah. Von diesen 18 Programmierern hatten 15 den Auftrag ohne Sicherheitsvorgaben erhalten. Drei Entwickler ignorierten zudem die Anforderungen der Forscher. Daraus leiten sie nun ab, dass freiberufliche Entwickler nicht automatisch auch an die Sicherheit denken, wenn sie Code schreiben.
Auch beim Verständnis, was als sicher eingestuft werden kann, gibt es der Studie zufolge unterschiedliche Auffassungen. Von den schließlich 43 Registrierungssystemen basierten lediglich zwölf auf Verschlüsselungstechniken, die allgemein als sicher angesehen werden. Der Code der anderen 31 Entwickler nutzte indes Verfahren wie Base64, MD5, SHA-1, 3DES oder AES.
„Viele Teilnehmer nutzten Hashing und Verschlüsselung als Synonyme“, heißt es in dem Forschungsbericht. Drei Entwickler hätten Base64 gar als Verschlüsselungsalgorithmus angesehen, obwohl es lediglich ein Kodierungsverfahren sei. Zehn Teilnehmer verließen sich indes auf die Hashfunktion MD5, die ebenfalls nicht der vorgegebenen Verschlüsselung entspricht.
Die Forscher fanden zudem heraus, dass 17 der 43 Entwickler von anderen Websites kopierten Code verwendeten. Daraus folgern sie, dass diesen Programmierern das notwendige Wissen für die Erstellung eines sicheren Passwortsystems fehlte. Die Studie ergab außerdem, dass die höhere Bezahlung nur einen sehr geringen Einfluss auf die Qualität der abgelieferten Arbeit hatte.
Ähnliche Studien wurden bereits 2017 und 2018 durchgeführt, jedoch mit Studenten und nicht mit selbstständigen Programmierern. Erste schnitten in den vergangenen Jahren jedoch nicht besser ab als aktuelle Entwickler.
Studie zu Filesharing im Unternehmen: Kollaboration im sicheren und skalierbaren Umfeld
Im Rahmen der von techconsult im Auftrag von ownCloud und IBM durchgeführten Studie wurde das Filesharing in deutschen Unternehmen ab 500 Mitarbeitern im Kontext organisatorischer, technischer und sicherheitsrelevanter Aspekte untersucht, um gegenwärtige Zustände, Bedürfnisse und Optimierungspotentiale aufzuzeigen. Jetzt herunterladen!
Neueste Kommentare
2 Kommentare zu Studie: Programmierer schlampen bei der Passwortsicherheit
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.
AES ist ein symmetrisches Verschlüsselungsverfahren und kommt daher bei der sicheren Speicherung von Passwörtern nicht zur Anwendung. Wo soll man denn den AES-Schlüssel ablegen?
Passwörter werden gesalzen und gehasht, z.B. mit SHA256, SHA512, WHIRLPOOL oder BCrypt. Alles andere ist inakzeptabel.
Die pauschale Behauptung, dass AES nicht sicher sei, halte ich für sehr fragwürdig.
Ferner ist das Verwenden von „von anderen Websites kopierten Code“ wohl kaum ein Indikator für mangelnde Kompetenz eines Entwicklers, sondern vielmehr für Kostenoptimierung.