Hard-Coded Credentials einfach erklärt
oder
Wie man vermeidet, unwissentlich, versehentlich und unbewusst alle Passwoerter und Geheimnisse an boese Menschen preiszugeben
Zugangsdaten oder Passwoerter sind ein integraler Bestandteil der Online- und Softwarewelt. Im einfachsten Beispiel sind sie der Schluessel, der Ihr "Online-Haus" schuetzt - sei es Instagram, Facebook, E-Mail usw.
Und selbst in diesen Faellen, in denen sie "nur" Ihre privaten Daten schuetzen, kann viel Schaden entstehen, wenn Zugangsdaten von "boesen Menschen" erlangt werden.
Stellen Sie sich nun den potenziellen Schaden vor, wenn "boese Menschen" Zugangsdaten groesserer Organisationen wie Weltbanken, grosse Einzelhaendler, Versicherungsgesellschaften usw. erlangen - all diese haben zahlreiche Zugangsdaten in ihren Systemen und gefaehrden durch deren potenzielle Preisgabe nicht nur sich selbst, sondern auch die Endnutzer.
Sie wissen also, was Zugangsdaten sind, aber was sind Hardcoded Credentials?
Hardcoded Credentials sind eine Praxis, die von Entwicklern beim Erstellen einer Webseite oder einer Anwendung (oder absolut allem, was Computercode zum Betrieb und zur Ausfuehrung benoetigt) verwendet wird. Bei dieser Praxis betten Entwickler wichtige Informationen (Passwoerter und andere geheime Daten) in den Programmcode ein (anstatt die Passwoerter aus externen Quellen zu beziehen oder sie bei Bedarf zu generieren).
Folglich enthalten Hardcoded Credentials Passwoerter und andere wichtige Geheimnisse, und obwohl sie von aussen nicht sichtbar sind, sind sie im Programmcode fast immer sehr offensichtlich und leicht zu finden, was sie zu einem grossen Sicherheitsrisiko macht.
Warum sind sie so riskant?
Wenn ein Entwickler eine App, Webseite oder jede Art von Software erstellt, verwendet er/sie Hardcoded Credentials im Programmcode. Sie moegen den Programmcode als kompliziert und schwer verstaendlich betrachten, aber jeder mit ein wenig Programmierkenntnissen kann Hardcoded Credentials manchmal erkennen (sie sind normalerweise im Klartext geschrieben und enthalten Woerter wie "password" oder "user").
Da es nicht kompliziert ist, sie im Programmcode zu finden, sind Hardcoded Credentials ein leichtes Ziel fuer Hacker. Sobald die Hacker Passwoerter und andere geheime Daten aus Hardcoded Credentials extrahieren, koennen sie erheblichen Schaden anrichten.
Leider ist diese riskante Praxis eine ziemlich verbreitete Programmierpraxis.
Wo verwenden Entwickler Hardcoded Credentials?
Obwohl es ziemlich einfach ist, Hardcoded Credentials zu hacken und sie ein grosses Sicherheitsrisiko darstellen, findet man sie in verschiedenen Arten von Anwendungen, Webseiten aller Art sowie in Programmen, die Computer, Mobiltelefone, Drucker, Router und alle moeglichen Geraete betreiben (alles, was Computercode zum Betrieb und zur Ausfuehrung benoetigt!).
Konkretere Beispiele sind mobile Apps, in denen Sie persoenliche Informationen preisgeben, oder medizinische Geraete wie Beatmungsgeraete oder Analysegeraete! Die Beispiele sind umfangreich und zahlreich.
Warum machen wir es Angreifern so leicht?
Sie fragen sich wahrscheinlich, warum Menschen immer noch Hardcoded Credentials verwenden. Hauptsaechlich, weil es einfacher ist - es haelt den Programmierprozess weniger kompliziert.
Ausserdem werden Hardcoded Credentials mit der Absicht erstellt, niemals geaendert zu werden, sodass sie einen Teil des Programmcodes darstellen. Viele Entwickler haben Angst, sie zu aendern, um verschiedene Arten von Operationen innerhalb des Systems nicht zu stoeren.
Wenn man bedenkt, dass eine durchschnittlich grosse Organisation Hunderte oder Tausende von Passwoertern und anderen geheimen Daten ueber alle Geraete, Anwendungen und Systeme verteilt haben kann, ist es kein einfacher Prozess, Hardcoded Credentials zu beheben.
Es ist viel einfacher, ueber Hardcoded Credentials vor dem eigentlichen Design nachzudenken (es gibt Moeglichkeiten, sie schwerer zu hacken), aber es ist moeglich (wenn auch kostspielig und kompliziert), sie im Programmcode zu beheben und die notwendigen Anpassungen vorzunehmen, um boswillige Personen daran zu hindern, wichtige Passwoerter und Geheimnisse zu erlangen.