IT-Sicherheit: Wie ich mein Passwort im Stack Trace fand

Unser Autor hat versehentlich das MySQL-Passwort seiner Webseite veröffentlicht. Hier schreibt er, wie es dazu kam. Er berichtet, warum Fehler selbst dann passieren, wenn man denkt, alle Sicherheitsmaßnahmen umgesetzt zu haben und warum es in PHP zu einfach ist, derartige Fehler zu produzieren.

Ein Bericht von Hanno Böck veröffentlicht am
Von einer solchen Fehlermeldung wurde unser Autor kürzlich überrascht.
Von einer solchen Fehlermeldung wurde unser Autor kürzlich überrascht. (Bild: Screenshot Hanno Böck)

Ich betreibe eine private Webseite. Diese dient hauptsächlich dazu, eine Liste an Links zu meinen Artikeln, die ich für Golem.de und andere Medien schreibe, zu präsentieren. Die Webseite nutzt dabei PHP, die Linkliste verwalte ich in einer MySQL-Datenbank.

HTTPS, Content Security Policy und Prepared Statements

Inhalt:
  1. IT-Sicherheit: Wie ich mein Passwort im Stack Trace fand
  2. Wie konnte das nur passieren?
  3. PHP macht es dem Nutzer zu einfach, Fehler zu machen

Als jemand, der sich viel mit IT-Sicherheit beschäftigt, versuche ich, auf meiner eigenen Webseite alle mir sinnvoll erscheinenden Sicherheitsmechanismen umzusetzen. Selbstverständlich ist die Seite nur über HTTPS erreichbar. Auch zahlreiche andere, moderne HTTPS- und TLS-Features sind umgesetzt: HTTP Strict Transport Security (HSTS), TLS 1.2 mit authentifizierter Verschlüsselung und Forward Secrecy, CAA-Records und Key-Pinning (HPKP). Der bekannte SSL-Labs-Test bewertet meine TLS-Konfiguration mit A+.

  • Und auf einmal war das Passwort auf der Webseite zu lesen. (Screenshot: Hanno Böck)
  • Die Warnung in der PHP-Doku zu display_errors ist angesichts des<br>Risikos nicht sehr deutlich. (Screenshot: Hanno Böck)
  • Auf die Risiken von fehlendem Exception-Handling in PDO hingegen wird deutlich hingewiesen. (Screenshot: Hanno Böck)
Und auf einmal war das Passwort auf der Webseite zu lesen. (Screenshot: Hanno Böck)

Natürlich bin ich mir auch über die üblichen Angriffsvektoren im Netz im Klaren. Cross-Site-Scripting-Angriffe dürften für meine private Seite zwar eigentlich kein Problem darstellen - es werden keine Nutzereingaben verarbeitet und es gibt weder Cookies, die man stehlen könnte, noch eine Möglichkeit zum Login - aber trotzdem nutze ich Content Security Policy. Außerdem setze ich andere sinnvolle Sicherheitsfeatures mit HTTP-Headern. Der Security-Headers-Check von Scott Helme bescheinigt mir hier ein A. (Ein A+ gibt es nur mit längeren HPKP-Laufzeiten, ich habe mich aus Gründen der Flexibilität dagegen entschieden.)

Auch gegen SQL-Injektionen abgesichert

Eine weitere übliche Sicherheitslücke auf Webseiten sind SQL-Injections. Auch diese sind auf meiner relativ simplen Webseite eher unwahrscheinlich, denn es werden nirgendwo Nutzereingaben verarbeitet. Trotzdem nutze ich Prepared Statements, um SQL-Injections praktisch unmöglich zu machen.

Stellenmarkt
  1. Junior Data Scientist (m/w/d)
    MCM Klosterfrau Vertriebsgesellschaft mbH, Köln
  2. Junior IT-Berater (m/w/d) Personaleinsatzplanung inhouse
    Helios IT Service GmbH, deutschlandweit
Detailsuche

Ich hatte das Gefühl, dass ich alle üblichen Schutzmaßnahmen gegen Angriffe umgesetzt hatte. Was sollte also schiefgehen?

Ein Screenshot - und darin eine Fehlermeldung samt Passwort

Vor einigen Tagen schickte mir ein Bekannter eine Nachricht - und einen Screenshot. Auf dem Screenshot waren meine Webseite und eine Fehlermeldung zu sehen. In der Fehlermeldung enthalten: ein Stack Trace samt Passwort für die MySQL-Datenbank.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
Wie konnte das nur passieren? 
  1. 1
  2. 2
  3. 3
  4.  


Aktuell auf der Startseite von Golem.de
Glasfaser
Berliner Senat blamiert sich mit Gigabitstrategie

Der Berliner Senat ist nach Jahren aus dem Dämmerzustand hochgeschreckt und hat nun eine Gigabitstrategie. Warum haben sie nicht einfach geschwiegen?
Ein IMHO von Achim Sawall

Glasfaser: Berliner Senat blamiert sich mit Gigabitstrategie
Artikel
  1. Razer: Der erste Blade-Laptop mit Ryzen ist da
    Razer
    Der erste Blade-Laptop mit Ryzen ist da

    Wieder 14 Zoll, erstmals mit AMD-Chip: Das neue Razer Blade kombiniert einen 75-Watt-Ryzen mit der flottesten Geforce RTX.
    Ein Hands-on von Marc Sauter

  2. Selbständige: Vodafone mit neuen Tarifen ohne Preissteigerung
    Selbständige
    Vodafone mit neuen Tarifen ohne Preissteigerung

    Vodafone wird seine Preise in neuen Tarifen für Selbständige nach 24 Monaten nicht mehr anheben.

  3. Coronapandemie: Einige Microsoft-Admins schliefen direkt in Rechenzentren
    Coronapandemie
    Einige Microsoft-Admins schliefen direkt in Rechenzentren

    Um weite Arbeitswege und Verspätungen zu vermeiden, hatten es sich einige Microsoft-Mitarbeiter in den eigenen Rechenzentren bequem gemacht.

Astorek 15. Apr 2017

Gibt ja eine Website, die versucht, die bekanntesten Static Website Generatoren zu...

Noppen 15. Apr 2017

Mir ist letztens das Essen angebrannt. Ich würde sagen, dass die eigene Küche...

VigarLunaris 15. Apr 2017

Was soll ich da sagen... config.py enthält die variablen Darin liegen Brent-Hashing PWs...

.:Tim:. 15. Apr 2017

Naja, an das selbstverständlichste auf Produktivsystemen hat er nicht gedacht...

gadthrawn 14. Apr 2017

Es mag nur ein Schalter sein, aber intern wird mit einfachen Schaltern eben viel mehr...


Folgen Sie uns
       


Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Schnäppchen • Dualsense 59,99€ • Battlefield 2042 PC 53,99€ • XXL Sale bei Alternate • Rainbow Six Extraction Limited PS5 69,99€ • Sony Pulse 3D-Headset PS5 99,99€ • Snakebyte Gaming Seat Evo 149,99€ • Bethesda E3 Promo bei GP [Werbung]
    •  /