Podcast Episode Details

Back to Podcast Episodes

STP078: Common Weakness Enumeration (Teil 1)


Season 1 Episode 78


Nachdem wir kurz über Alex' Feedback gesprochen haben, soll es heute mal wieder um Sicherheit gehen; diesmal speziell darum, was Personen die Software schreiben beachten sollten, um die bekantesten Fallstricke sicher zu umgehen.

Shownotes

  • Rückbezug STP049: CVE-Datenbank für bekannte Sicherheitslücken in bestimmten Programmen (z.B. Heartbleed ist CVE-2014-0160)

    • betrieben von dem privaten Forschungsinstitut Mitre Corporation auf Basis von Fördermitteln der US-Regierung
    • April 2025: kurzzeitige Verwirrung nach Aussetzen des Fördervertrages, dann einen Tag später Kommando zurück (Pentaradio berichtete)
    • neben CVE pflegt Mitre Corp. eine weniger bekannte Datenbank: CWE (Common Weakness Enumeration), ein Klassifizierungssystem für Arten von Sicherheitslücken
    • wir besprechen die jährliche Rangliste der CWE Top 25 mit Stand von 2024
    • wertvoll, weil man so als interessierter Laie oder Programmierer-Generalist ein Gefühl für wichtige Angriffsvektoren bekommt
  • Platz 1: CWE-79; fehlerhafte Neutralisierung von Eingaben während der Erzeugung von Webseiten ("Cross-Site Scripting", XSS)

    • siehe Beispielbild im Link
    • Webseiten können JavaScript-Code enthalten, der auf dem Browser des Endanwenders ausgeführt wird
    • wenn Webseiten aus Eingaben anderer Benutzer zusammengebaut werden, können diese Code einschleusen
    • Lösung: Escaping (Entfernen oder Ersetzen von Zeichen mit syntaktischer Bedeutung), kann durch Template Engines teilweise automatisiert werden
    • passend dazu Platz 7: CWE-78; fehlerhafte Neutralisierung von Eingaben während der Erzeugung von Befehlszeilen
    • außerdem Platz 13: CWE-77; dasselbe für alle anderen Befehlssprachen, die nicht JavaScript oder die System-Shell sind
    • allgemeiner als Platz 12: CWE-20; unzureichende Überprüfung von Eingaben
    • Lösung: "assume all input is malicious"; nur Eingaben akzeptieren, die strikten Formatvorgaben folgen (z.B. unter Einsatz von regulären Ausdrücken, siehe STP021)
  • Platz 2, 6 und 20: CWE-787 und CWE-125; Schreiben bzw. Lesen außerhalb des allokierten Speicherbereichs ("Out-of-Bounds Write/Read") sowie als übergeordnete Kategorie CWE-119; allgemeiner Pufferüberlauf ("Buffer Overflow")

    • und passend dazu Platz 8: CWE-416; Benutzung nach dem Freigeben ("Use after Free")
    • alle bereits besprochen in STP047
    • Lösung: speichersichere Programmiersprachen, Speicherprofiling-Tools wie Valgrind (siehe STP076)
  • Platz 3: CWE-89; SQL-Injektion

    • SQL siehe STP012: Abfragesprache für relationale Datenbanksysteme
    • Beispiel siehe XKCD 327
    • Lösung: Datenwerte von der Abfrage trennen (z.B. SELECT * FROM users WHERE name = 'Alice' -> SELECT * FROM u


      Published on 13 hours ago






If you like Podbriefly.com, please consider donating to support the ongoing development.

Donate