Blog

Programmierer erobern die Sicherheit: Serie „Teilen und Lernen“ — Padding Oracle

January 24, 2019

Padding Oracle klingt zwar nach einem wirklich schlechten Ruf für eine alternative Rockband, ist aber tatsächlich eine Sicherheitslücke, die von Angreifern genutzt werden kann, um Informationen zu entschlüsseln, ohne den Verschlüsselungsschlüssel zu kennen.

In Bezug auf die Gesamtschwierigkeit für einen Angreifer liegt dieser ziemlich weit oben auf der Skala. Wir sprechen nicht von einer magischen Entschlüsselungsschaltfläche, sondern von einem mühsamen Prozess, bei dem Hacker die an sie gesendeten Fehlermeldungen zum Auffüllen von Zellen untersuchen und anhand dieser Informationen feststellen können, wo verschlüsselte Daten enden und das Auffüllen beginnt. Sie können dann verschiedene Teile der Verschlüsselung herausfinden und sie möglicherweise knacken, wenn sie genügend Zeit und Eingaben zur Untersuchung haben.

Zum Glück gibt es mehrere relativ einfache Schritte, die einem Angreifer die Möglichkeit nehmen können, Padding Oracle zum Entschlüsseln verschlüsselter Daten zu verwenden. In dieser Episode werden wir lernen:

  • So funktioniert's
  • Warum diese Sicherheitslücke so gefährlich ist
  • Wie Sie Abwehrmaßnahmen einrichten können, um dies zu verhindern.

Wie funktioniert Padding Oracle?

Cipher Block Chaining (CBC) ist eine Methode, eine Blockchiffre zu erstellen, bei der eine ganze Folge von Informationsbits, z. B. Zellen, die in einer Datenbank gespeichert sind, mit einem Verschlüsselungsschlüssel verschlüsselt wird, der für die gesamte Informationskette gilt. Bei Verwendung von CBC hängt die Verschlüsselung eines einzelnen Chiffretextblocks von allen weiteren Blöcken ab. Theoretisch macht dies die Verschlüsselung extrem stark, da alles, selbst die Neuordnung der Blöcke, die Daten beschädigt.

Das Problem mit CBC-Chiffren (und allen Blockchiffren übrigens) besteht darin, dass sie nur mit Blöcken exakter Größe verschlüsselt werden können. Normalerweise erfolgt dies in 8- oder 16-Byte-Größen. Was passiert also, wenn CBC 2 Byte an Daten in eine 16-Byte-Chiffretexteinheit einpassen muss? Es wird Füllungen verwenden, im Grunde genommen nur unsinnige Zeichen, um die Lücken zu füllen und der Einheit eine angemessene Größe zuzuweisen.

Die meisten Padding-Schemata sind allgemein bekannt, wobei PKCS #7 eines der beliebtesten ist, sodass Angreifer möglicherweise wissen, welche Art von Padding verwendet wird. Wenn das CBC beispielsweise fünf Zeichen in einem Block auffüllen muss, würde PKCS #7 den Bytewert 0x05 verwenden, der fünfmal nach dem Klartext wiederholt wird.

Angreifer nutzen ihr Wissen über CBC- und Padding-Schemata, um Anfragen an einen Hostserver zu senden, der auch als Oracle bezeichnet wird. Wenn sie Zugriff auf die richtigen Tools haben, können sie den Server möglicherweise dazu zwingen, ihnen mitzuteilen, ob das Padding in ihrer Abfrage falsch ist. Um dies zu erreichen, können sie für jedes Byte in der Chiffre von Null auf 255 wechseln, bis der Server ihnen mitteilt, dass das Padding korrekt ist. Dann fahren sie mit der nächsten Einheit fort und wiederholen den Vorgang, wobei sie jeweils aufzeichnen, wo das Padding beginnt.

Dadurch können sie die Nachricht oder sogar die Zelle nicht entschlüsseln, aber sie könnten jedes Glied in der Kette so zuordnen, wo der Klartext endet und wo das Padding beginnt. Sie können möglicherweise auch XOR-Berechnungen verwenden, um den Wert des letzten Bytes des ursprünglichen Klartextes zu ermitteln.

Warum ist Padding Oracle so gefährlich?

Der Grund, warum ein Hacker so viel Arbeit in das Knacken der Verschlüsselung stecken würde, liegt in der möglichen Auszahlung. Nur wenige Leute verschlüsseln Dinge, die nicht wertvoll sind. Die Gefahr für die Host-Organisation hängt davon ab, ob die Daten kompromittiert werden. Dazu können Dinge wie Passwörter, Benutzerkonten, Finanzinformationen, Kreditkartennummern, Patientenakten, vertrauliche Kommunikation oder eine beliebige Anzahl von äußerst gesuchten und wertvollen Informationen gehören.

Die Verwendung von Padding Oracle könnte auch das Tor zu nachfolgenden Angriffen sein. Wenn ein Angreifer beispielsweise mithilfe von Padding Oracle Passwörter stehlen kann, ist es eine einfache sekundäre Aufgabe, seine Rechte zu erhöhen und tiefer in ein Netzwerk einzudringen.

Jeder hält Verschlüsselung für die ultimative Verteidigung gegen Schnüffeln oder Kompromittieren. Das Hin und Her zwischen der Verschlüsselungswissenschaft und denjenigen, die sie brechen würden, dauert jedoch schon seit Jahrhunderten an. Das Padding Orakel ist nur eine Methode, die Angreifern einen Vorteil verschafft.

Padding Oracle-Angriffen eine harte Landung

Zum Glück gibt es eine ganze Reihe von Möglichkeiten, das Padding Orakel zu verhindern. Eine der besten Methoden ist die Verwendung eines stärkeren Verschlüsselungsmodus für Operationen wie Galois/Counter Mode (GCM) oder Offset Codebook Mode (OCB). Es unterscheidet sich von CBC dadurch, dass es eine Chiffreblockgröße von 128 Bit verwendet. Es verwendet auch einen Zähler für jeden Datenblock und verwendet dann diese Zahl, um den Chiffretext zu erstellen. Mit anderen Worten, es ist nicht anfällig für Padding-Oracle-Angriffe.

Die Implementierung guter Kontrollen zur Fehlerbehandlung kann auch die Erfolgschancen eines Angreifers erheblich beeinträchtigen. Da Padding-Oracle-Angriffe auf Informationslecks beruhen, geben Sie bei einem Ver-/Entschlüsselungsfehler generische Fehlermeldungen statt spezifischer Padding-Fehler zurück.

Sie können auch den Message Authentication Code (MAC) implementieren. MAC-Werte schützen sowohl die Datenintegrität als auch deren Authentizität, indem sie es Prüfern ermöglichen, Änderungen am Nachrichteninhalt mithilfe eines geheimen Schlüssels zu erkennen.

Schließlich erfordern alle Padding-Oracle-Angriffe wiederholte Abfragen. Es können über 200 Anfragen gestellt werden, um das Auffüllschema für eine einzelne Zelle herauszufinden, multipliziert mit der Anzahl der Informationseinheiten, die in der Kette geschützt werden. Indem Sie die Anzahl der Anfragen einschränken, die von derselben Quelle eingehen, können Sie Padding-Oracle-Angriffe abwehren, indem Sie einem Angreifer den Zugriff verweigern, bevor er seinen Versuch wirklich beginnen kann.

Weitere Studie zu Padding Oracle

Jede Methode, mit der ein Angreifer vertrauliche Informationen entschlüsseln kann, kann zu einem echten Albtraum werden. Wir hoffen jedoch, dass Sie einige gute Methoden gelernt haben, um dies von vornherein zu verhindern.

Für weitere Informationen können Sie sich die OWASP ansehen Definition und Checkliste auf dem Padding Orakel. Sie können Ihr neu gewonnenes Defensivwissen auch auf die Probe stellen mit dem kostenlose Demo der Secure Code Warrior-Plattform, die Cybersicherheitsteams zu ultimativen Cyberkriegern ausbildet. Um mehr über die Beseitigung dieser Sicherheitslücke und eine Galerie mit anderen Bedrohungen zu erfahren, besuchen Sie die Blog von Secure Code Warrior.

Denken Sie, Sie sind jetzt in der Lage, Padding-Oracle-Angriffe abzuwehren? Probieren Sie es auf der Secure Code Warrior-Plattform aus:

Slogan

Govern AI-driven development before it ships

Measure AI-assisted risk, enforce secure coding policy at commit, and accelerate secure delivery across your SDLC.

book a demo
Slogan

Explore more blogs

Lorem ipsum diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis eu volutpat odio facilisis.

browse all
Case Study
Filter Label
This is some text inside of a div block.

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.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

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

Learn More
Case Study
Filter Label
This is some text inside of a div block.

One Culture of Security: How Sage built their security champions program with agile secure code learning

Discover how Sage enhanced security with a flexible, relationship-focused approach, creating 200+ security champions and achieving measurable risk reduction.

Learn More
Blog
Filter Label
This is some text inside of a div block.

Are you a CISO or Engineering Leader worried about the Security and Cost of LLM code generation?

Review the SCW AI Trust Index, our proprietary LLM benchmarking data, before going all-in on an AI model.

Learn More
Blog
Filter Label
This is some text inside of a div block.

Enabler 6: Regular Reporting to Leadership

Executive buy-in doesn't sustain itself. Enabler 6 shows how regular reporting keeps leadership engaged, informed, and invested in program success.

Learn More
Blog
Filter Label
This is some text inside of a div block.

The Future of AI Software Governance Is Built on Strong Partnerships

Discover why Secure Code Warrior is becoming a channel-first company and how trusted partners help organizations adopt AI Software Governance securely and at scale.

Learn More

Secure AI-driven development before it ships

See developer risk, enforce policy, and prevent vulnerabilities across your software development lifecycle.

Book a demo