Blog

Coders Conquer Security OWASP Top 10 API-Serie – Fehlerhafte Authentifizierung

September 16, 2020
Dr. Matias Madou

Es ist kein Wunder, dass fehlerhafte Authentifizierung auf der OWASP-Liste der API-Probleme steht – Authentifizierungsmechanismen sind bekanntermaßen schwer korrekt zu implementieren. Zudem haben Angreifer einen kleinen Vorteil, da die meisten Authentifizierungsabfragen naturgemäß für Benutzer zugänglich sein müssen. Dies gibt Angreifern die Möglichkeit, sie zu untersuchen und nach Mustern oder Schwachstellen zu suchen, die sie ausnutzen können.

Da die Authentifizierung oft als Zugangstor zu einer Anwendung und potenziell zum gesamten Netzwerk fungiert, ist sie ein attraktives Ziel für Angreifer. Wenn ein Authentifizierungsprozess fehlerhaft oder anfällig ist, ist die Wahrscheinlichkeit hoch, dass Angreifer diese Schwachstelle entdecken und ausnutzen.

In diesem Kapitel lernen wir daher, wie wir Angreifern bei Authentifizierungsproblemen den Riegel vorschieben können. Wenn Sie Ihre Fähigkeiten zuerst testen möchten, probieren Sie unsere spielerische Challenge aus:

Möchten Sie Ihr Ergebnis verbessern? Bleiben Sie dran, während wir die Details durchgehen.

Was sind einige Beispiele für fehlerhafte oder falsch konfigurierte Authentifizierung?

Ein Beispiel, bei dem das Problem möglicherweise nicht sofort offensichtlich ist, tritt auf, wenn eine Authentifizierungsmethode anfällig für Credential Stuffing ist – also die Verwendung von Listen bekannter Benutzernamen und Passwörter, um Sicherheitsvorkehrungen zu umgehen. Selbst eine normalerweise sehr sichere Autorisierungsmethode wie die Multi-Faktor-Authentifizierung kann anfällig sein, wenn Anfragen nicht begrenzt, gedrosselt oder anderweitig überwacht werden.

Ein Angreifer könnte beispielsweise eine Passwortwiederherstellung auslösen, indem er eine POST-Anfrage an /api/system/verification-codes sendet und einen Benutzernamen im Request-Body angibt. Wenn eine Anwendung eine SMS-Abfrage verwendet, bei der ein sechsstelliger Code an das Telefon des Benutzers gesendet wird, das Eingabefeld jedoch nicht begrenzt ist, kann die Anwendung in nur wenigen Minuten geknackt werden. Ein Angreifer muss lediglich jede mögliche sechsstellige Kombination an die Anwendung senden, bis er die richtige gefunden hat.

In diesem Szenario sieht es oberflächlich betrachtet so aus, als würde eine Zwei-Faktor-Authentifizierung die Anwendung sicher machen. Da die Benutzereingabe jedoch nicht ratenbegrenzt ist, ist die Authentifizierung fehlerhaft und anfällig.

In einem anderen Beispiel könnte eine Anwendung kodierte Benutzerobjekte als Authentifizierungs-Cookies verwenden. Wenn ein Angreifer mit Benutzerrechten niedriger Ebene dieses Cookie jedoch mittels Base64 dekodiert, könnte er herausfinden, wie das Cookie Sitzungen und Benutzer gegenüber der Anwendung definiert. Nach der Dekodierung könnte er beispielsweise folgendes JSON sehen:

{
"username" : "ShadyGuy",
"role" : "user"
{

An diesem Punkt könnte der böswillige Benutzer seinen Benutzernamen, seine Rolle oder beides ändern. Durch das Ändern einiger Werte könnte er zu einem anderen Benutzer mit einer höheren Berechtigungsstufe werden:

{
"username" : "GoodGuy",
"role" : "admin"
{

Wenn der Angreifer die Informationen nun neu kodiert und als Cookie-Wert festlegt, wird er im Grunde zum neuen Benutzer mit einer höheren Berechtigungsstufe. Sofern keine Methoden vorhanden sind, um eine solche Änderung zu verhindern, ist die Wahrscheinlichkeit hoch, dass die Anwendung die Manipulation akzeptiert.

Beseitigung fehlerhafter oder falsch konfigurierter Authentifizierung

Wenn die Authentifizierung fehlschlägt, ist die Sicherheit des gesamten Systems wahrscheinlich gefährdet. Die Einhaltung einiger wichtiger Richtlinien bei der Programmierung von Anwendungen kann jedoch dazu beitragen, alles sicher zu halten.

Stellen Sie zunächst sicher, dass Authentifizierungsprüfungen überall dort integriert sind, wo Benutzer auf Programmfunktionen zugreifen können. Wenn die Authentifizierungsprüfung gänzlich fehlt, ist der Kampf von vornherein verloren.

Was bewährte Verfahren angeht, ist es ratsam, Sitzungs-IDs nicht in der URL offenzulegen, die für Benutzer zugänglich ist. Im zweiten Beispiel oben zur fehlerhaften Authentifizierung ist es wesentlich einfacher, einen Angreifer daran zu hindern, das Sitzungs-Cookie zu dekodieren, wenn es ihm gar nicht erst zugänglich gemacht wird.

Es ist zudem ratsam, eine Multi-Faktor-Authentifizierung zu implementieren. Dies lässt sich sicher über Hardware-Token realisieren, die algorithmisch in kurzen Zeitabständen Passwörter generieren. Falls Sie Ihren Nutzern solche Geräte nicht bereitstellen können, sind SMS-Nachrichten eine Alternative. Achten Sie jedoch darauf, die Versuche auf ein vernünftiges Maß zu begrenzen, etwa drei bis vier Versuche innerhalb von 30 Sekunden, und lassen Sie die Codes nach wenigen Minuten ablaufen. Die Verwendung alphanumerischer Codes erhöht die Sicherheit zusätzlich, da sie Buchstaben und Zahlen einbezieht.

Vermeiden Sie schließlich nach Möglichkeit Benutzernamen oder vorhersehbare, fortlaufende Werte als Session-IDs. Verwenden Sie stattdessen einen sicheren serverseitigen Session-Manager, der bei jedem Aufruf eine zufällige Session-ID generiert.

Die Implementierung sicherer Authentifizierungsmethoden ist etwas komplexer als die Abwehr gewöhnlicher Schwachstellen. Da die Autorisierung jedoch für jede Anwendung, jedes Programm und jede API von entscheidender Bedeutung ist, lohnt es sich, die nötige Zeit zu investieren, um sie korrekt umzusetzen.

Besuchen Sie die Secure Code Warrior-Blogseiten für weitere Einblicke in diese Schwachstelle und erfahren Sie, wie Sie Ihr Unternehmen und Ihre Kunden vor den Auswirkungen anderer Sicherheitslücken schützen können. Sie können auch eine Demo der Secure Code Warrior-Schulungsplattform ausprobieren, um Ihre Cybersicherheitskenntnisse stets auf dem neuesten Stand zu halten.


Slogan

Kontrollieren Sie KI-gestützte Entwicklung, bevor sie in Produktion geht

Bewerten Sie KI-gestützte Risiken, setzen Sie Richtlinien für sicheren Code direkt beim Commit durch und beschleunigen Sie die sichere Bereitstellung über Ihren gesamten SDLC hinweg.

Demo buchen
Ressourcenbibliothek

Weitere Blogs entdecken

Erhalten Sie Zugang zu Experteninhalten über sichere Programmierung, KI-Governance und Software-Risikomanagement.

alle anzeigen
Fallstudie
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Mehr erfahren
Fallstudie
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

Mehr erfahren
Fallstudie
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Eine Sicherheitskultur: Wie Sage sein Champions-Programm aufgebaut hat

Erfahren Sie, wie Sage die Sicherheit durch einen flexiblen, beziehungsorientierten Ansatz gestärkt, über 200 Security Champions ausgebildet und eine messbare Risikoreduzierung erzielt hat.

Mehr erfahren
Blog
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Cybersecurity Awareness Month 2026: Das Verständnis von KI-Sicherheit ist entscheidend für die Unternehmensverteidigung

Wir haben einen Punkt erreicht, an dem die meisten führenden KI-Unternehmen öffentlich eine weltweite Verlangsamung der KI-Entwicklung gefordert haben, damit die Sicherheitsvorkehrungen Schritt halten können. Doch die Wahrheit ist: Ernsthafte Sicherheitsprobleme sind bereits Realität geworden. Dies bringt unzählige Sicherheitsverantwortliche und Führungsteams in eine dringliche Lage, da die finanziellen Kosten und Risiken durch die Implementierung von KI stetig steigen.

Mehr erfahren
Blog
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Enabler 8: Branding für Ihr Programm

Ein Programm für sicheres Programmieren braucht mehr als nur großartige Inhalte, um erfolgreich zu sein. Enabler 8 zeigt, wie Branding die Teilnahme zu einem begehrten, statusorientierten Erlebnis macht.

Mehr erfahren
Blog
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Jeder Mitarbeiter steht jetzt an vorderster Front der KI-Cybersicherheit

Die Unternehmenslandschaft wandelt sich mit einer Geschwindigkeit, die kaum jemand vorhergesehen hat, bis es zu spät war. Wir haben offiziell die Schwelle von handgeschriebenem Code und einfacher Copilot-Unterstützung hin zur Ära des Agentic Development Lifecycle (ADLC) überschritten. Während autonome KI-Agenten eine beispiellose Effizienz in vielen Bereichen versprechen, bringen sie auch eine völlig neue Klasse von Sicherheits- und Regulierungsrisiken mit sich.

Mehr erfahren

Sichere KI-gestützte Entwicklung vor dem Release

Erkennen Sie Entwicklerrisiken, setzen Sie Richtlinien durch und verhindern Sie Schwachstellen über den gesamten Softwareentwicklungszyklus hinweg.

Demo buchen
Keine Elemente gefunden.