Coders Conquer Security: Share & Learn Series - Padding Oracle
Während Padding Oracle wie ein wirklich schlechter Name für eine alternative Rockband klingt, handelt es sich tatsächlich um eine Sicherheitslücke, die von Angreifern genutzt werden kann, um Informationen zu entschlüsseln, ohne den Verschlüsselungscode zu kennen.
In Bezug auf die Gesamtschwierigkeit für einen Angreifer liegt dieses Problem an der Spitze der Skala. Wir sprechen hier nicht von einem magischen Entschlüsselungsknopf, sondern von einem mühsamen Prozess, bei dem Hacker Fehlermeldungen untersuchen können, die ihnen in Bezug auf das Auffüllen von Zellen geschickt wurden, und dies nutzen, um zu bestimmen, wo verschlüsselte Daten enden und das Auffüllen beginnt. Sie können dann verschiedene Bits innerhalb der Verschlüsselung herausfinden und sie möglicherweise knacken, wenn sie genug Zeit und Input zur Untersuchung haben.
Glücklicherweise gibt es einige relativ einfache Schritte, die einem Angreifer die Möglichkeit nehmen können, Padding-Orakel zum Entschlüsseln verschlüsselter Daten zu verwenden. In dieser Folge lernen wir:
- Wie es funktioniert
- Warum diese Sicherheitslücke so gefährlich ist
- Wie Sie Schutzmaßnahmen ergreifen können, um dies zu verhindern.
Wie funktioniert das Padding Oracle?
Cipher Block Chaining (CBC) ist eine Möglichkeit, eine Blockchiffre zu erstellen, bei der eine ganze Folge von Informationsbits, z. B. in einer Datenbank gespeicherte Zellen, mit einem Chiffrierschlüssel verschlüsselt wird, der für die gesamte Informationskette gilt. Bei der Verwendung von CBC hängt die Verschlüsselung eines einzelnen Blocks des Chiffriertextes von allen vorangehenden Blöcken ab. Theoretisch macht dies die Verschlüsselung extrem stark, da alles, selbst die Neuanordnung der Blöcke, die Daten beschädigt.
Das Problem bei CBC-Chiffren (und überhaupt bei allen Blockchiffren) ist, dass sie nur mit Blöcken exakter Größe verschlüsselt werden können. Normalerweise wird dies in 8- oder 16-Byte-Größen gemacht. Was passiert also, wenn CBC 2 Byte Daten in eine 16-Byte-Chiffretext-Einheit einpassen muss? Es verwendet Auffüllungen, im Grunde nur unsinnige Zeichen, um die Lücken zu füllen und die Einheit auf eine angemessene Größe zu bringen.
Die meisten Auffüllungsschemata sind bekannt, wobei PKCS#7 eines der beliebtesten ist, sodass Angreifer wissen könnten, welche Art von Auffüllung verwendet wird. Wenn der CBC z. B. fünf Zeichen in einem Block auffüllen muss, würde PKCS#7 den Byte-Wert 0x05 verwenden, der fünfmal hinter dem Klartext wiederholt wird.
Angreifer nutzen ihr Wissen über CBC- und Padding-Schemata, um Abfragen an einen Host-Server zu senden, der auch als Orakel bezeichnet wird. Wenn sie Zugriff auf die richtigen Tools haben, können sie den Server dazu zwingen, ihnen mitzuteilen, ob das Padding in ihrer Anfrage falsch ist. Zu diesem Zweck können sie für jedes Byte in der Chiffre einen Zyklus von null bis 255 durchlaufen, bis der Server ihnen mitteilt, dass das Padding korrekt ist. Dann gehen sie zur nächsten Einheit über und wiederholen den Vorgang, wobei sie in jedem Fall 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 in Bezug darauf abbilden, wo der Klartext endet und das Padding beginnt. Möglicherweise können sie auch XOR-Berechnungen verwenden, um den Wert des letzten Bytes des ursprünglichen Klartextes herauszufinden.
Warum ist Padding Oracle so gefährlich?
Der Grund, warum ein Hacker so viel Arbeit in das Brechen der Verschlüsselung stecken würde, ist die mögliche Auszahlung. Nur wenige Leute verschlüsseln Dinge, die nicht wertvoll sind. Die Gefahr für die Host-Organisation hängt von den Daten ab, die kompromittiert werden. Dazu gehören Passwörter, Benutzerkonten, Finanzdaten, Kreditkartennummern, Patientendaten, vertrauliche Kommunikation oder eine beliebige Anzahl von begehrten und wertvollen Informationen.
Die Verwendung von Padding-Orakel könnte auch das Einfallstor für nachfolgende Angriffe sein. Wenn ein Angreifer mithilfe von Padding Orakel z. B. Passwörter stehlen kann, ist es ein Leichtes, seine Privilegien zu erhöhen und tiefer in ein Netzwerk einzudringen.
Jeder denkt bei Verschlüsselung an die ultimative Verteidigung gegen Schnüffelei oder Kompromittierung. Das Hin und Her zwischen der Verschlüsselungswissenschaft und denen, die sie brechen wollen, dauert jedoch schon seit Jahrhunderten an. Das Padding-Orakel ist nur eine Methode, die Angreifern einen Vorteil verschafft.
Padding-Oracle-Angriffen eine harte Landung verpassen
Glücklicherweise gibt es eine ganze Reihe von Möglichkeiten, Padding-Orakel zu verhindern. Eine der besten ist die Verwendung einer stärkeren Verschlüsselungsbetriebsart wie Galois/Counter Mode (GCM) oder Offset Codebook Mode (OCB). Er unterscheidet sich von CBC dadurch, dass er eine Chiffrierblockgröße von 128 Bit verwendet. Außerdem wird für jeden Datenblock ein Zähler verwendet, aus dem dann der Chiffretext erstellt wird. Mit anderen Worten, es ist nicht anfällig für Padding-Orakel-Angriffe.
Die Implementierung guter Fehlerbehandlungskontrollen kann die Erfolgschancen eines Angreifers ebenfalls stark beeinträchtigen. Da Padding-Orakel-Angriffe auf Informationslecks beruhen, sollten Sie bei Ver-/Entschlüsselungsfehlern generische Fehlermeldungen anstelle von spezifischen Padding-Fehlern zurückgeben.
Sie können auch einen Message Authentication Code (MAC) implementieren. MAC-Werte schützen sowohl die Integrität als auch die Authentizität der Daten, indem sie es Verifizierern ermöglichen, jede Änderung des Nachrichteninhalts mithilfe eines geheimen Schlüssels zu erkennen.
Schließlich erfordern alle Padding-Orakel-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, die von derselben Quelle kommen, beschränken, können Sie Padding-Orakel-Angriffe unterbinden, indem Sie einem Angreifer den Zugriff verweigern, bevor er seinen Versuch wirklich starten kann.
Weitere Studie zum Padding-Orakel
Jede Methode, mit der ein Angreifer sensible Informationen entschlüsseln kann, kann zu einem echten Albtraum werden. Aber wir hoffen, dass Sie einige gute Methoden kennengelernt haben, um dies von vornherein zu verhindern.
Zur weiteren Lektüre können Sie einen Blick auf die OWASP-Definition und Checkliste auf padding oracle werfen. Sie können Ihr neu erworbenes Verteidigungswissen auch mit der kostenlosen Demo der Plattform Secure Code Warrior testen, die Cybersecurity-Teams zu den ultimativen Cyber-Kriegern ausbildet. Um mehr über die Beseitigung dieser Schwachstelle und eine Schurkengalerie anderer Bedrohungen zu erfahren, besuchen Sie den BlogSecure Code Warrior .
Denken Sie, Sie sind der Aufgabe gewachsen, Padding-Orakel-Angriffe sofort zu vereiteln? Versuchen Sie es auf der Plattform Secure Code Warrior :
Während Padding Oracle wie ein wirklich schlechter Name für eine alternative Rockband klingt, handelt es sich tatsächlich um eine Sicherheitslücke, die von Angreifern genutzt werden kann, um Informationen zu entschlüsseln, ohne den Verschlüsselungscode zu kennen.
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Demo buchenWährend Padding Oracle wie ein wirklich schlechter Name für eine alternative Rockband klingt, handelt es sich tatsächlich um eine Sicherheitslücke, die von Angreifern genutzt werden kann, um Informationen zu entschlüsseln, ohne den Verschlüsselungscode zu kennen.
In Bezug auf die Gesamtschwierigkeit für einen Angreifer liegt dieses Problem an der Spitze der Skala. Wir sprechen hier nicht von einem magischen Entschlüsselungsknopf, sondern von einem mühsamen Prozess, bei dem Hacker Fehlermeldungen untersuchen können, die ihnen in Bezug auf das Auffüllen von Zellen geschickt wurden, und dies nutzen, um zu bestimmen, wo verschlüsselte Daten enden und das Auffüllen beginnt. Sie können dann verschiedene Bits innerhalb der Verschlüsselung herausfinden und sie möglicherweise knacken, wenn sie genug Zeit und Input zur Untersuchung haben.
Glücklicherweise gibt es einige relativ einfache Schritte, die einem Angreifer die Möglichkeit nehmen können, Padding-Orakel zum Entschlüsseln verschlüsselter Daten zu verwenden. In dieser Folge lernen wir:
- Wie es funktioniert
- Warum diese Sicherheitslücke so gefährlich ist
- Wie Sie Schutzmaßnahmen ergreifen können, um dies zu verhindern.
Wie funktioniert das Padding Oracle?
Cipher Block Chaining (CBC) ist eine Möglichkeit, eine Blockchiffre zu erstellen, bei der eine ganze Folge von Informationsbits, z. B. in einer Datenbank gespeicherte Zellen, mit einem Chiffrierschlüssel verschlüsselt wird, der für die gesamte Informationskette gilt. Bei der Verwendung von CBC hängt die Verschlüsselung eines einzelnen Blocks des Chiffriertextes von allen vorangehenden Blöcken ab. Theoretisch macht dies die Verschlüsselung extrem stark, da alles, selbst die Neuanordnung der Blöcke, die Daten beschädigt.
Das Problem bei CBC-Chiffren (und überhaupt bei allen Blockchiffren) ist, dass sie nur mit Blöcken exakter Größe verschlüsselt werden können. Normalerweise wird dies in 8- oder 16-Byte-Größen gemacht. Was passiert also, wenn CBC 2 Byte Daten in eine 16-Byte-Chiffretext-Einheit einpassen muss? Es verwendet Auffüllungen, im Grunde nur unsinnige Zeichen, um die Lücken zu füllen und die Einheit auf eine angemessene Größe zu bringen.
Die meisten Auffüllungsschemata sind bekannt, wobei PKCS#7 eines der beliebtesten ist, sodass Angreifer wissen könnten, welche Art von Auffüllung verwendet wird. Wenn der CBC z. B. fünf Zeichen in einem Block auffüllen muss, würde PKCS#7 den Byte-Wert 0x05 verwenden, der fünfmal hinter dem Klartext wiederholt wird.
Angreifer nutzen ihr Wissen über CBC- und Padding-Schemata, um Abfragen an einen Host-Server zu senden, der auch als Orakel bezeichnet wird. Wenn sie Zugriff auf die richtigen Tools haben, können sie den Server dazu zwingen, ihnen mitzuteilen, ob das Padding in ihrer Anfrage falsch ist. Zu diesem Zweck können sie für jedes Byte in der Chiffre einen Zyklus von null bis 255 durchlaufen, bis der Server ihnen mitteilt, dass das Padding korrekt ist. Dann gehen sie zur nächsten Einheit über und wiederholen den Vorgang, wobei sie in jedem Fall 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 in Bezug darauf abbilden, wo der Klartext endet und das Padding beginnt. Möglicherweise können sie auch XOR-Berechnungen verwenden, um den Wert des letzten Bytes des ursprünglichen Klartextes herauszufinden.
Warum ist Padding Oracle so gefährlich?
Der Grund, warum ein Hacker so viel Arbeit in das Brechen der Verschlüsselung stecken würde, ist die mögliche Auszahlung. Nur wenige Leute verschlüsseln Dinge, die nicht wertvoll sind. Die Gefahr für die Host-Organisation hängt von den Daten ab, die kompromittiert werden. Dazu gehören Passwörter, Benutzerkonten, Finanzdaten, Kreditkartennummern, Patientendaten, vertrauliche Kommunikation oder eine beliebige Anzahl von begehrten und wertvollen Informationen.
Die Verwendung von Padding-Orakel könnte auch das Einfallstor für nachfolgende Angriffe sein. Wenn ein Angreifer mithilfe von Padding Orakel z. B. Passwörter stehlen kann, ist es ein Leichtes, seine Privilegien zu erhöhen und tiefer in ein Netzwerk einzudringen.
Jeder denkt bei Verschlüsselung an die ultimative Verteidigung gegen Schnüffelei oder Kompromittierung. Das Hin und Her zwischen der Verschlüsselungswissenschaft und denen, die sie brechen wollen, dauert jedoch schon seit Jahrhunderten an. Das Padding-Orakel ist nur eine Methode, die Angreifern einen Vorteil verschafft.
Padding-Oracle-Angriffen eine harte Landung verpassen
Glücklicherweise gibt es eine ganze Reihe von Möglichkeiten, Padding-Orakel zu verhindern. Eine der besten ist die Verwendung einer stärkeren Verschlüsselungsbetriebsart wie Galois/Counter Mode (GCM) oder Offset Codebook Mode (OCB). Er unterscheidet sich von CBC dadurch, dass er eine Chiffrierblockgröße von 128 Bit verwendet. Außerdem wird für jeden Datenblock ein Zähler verwendet, aus dem dann der Chiffretext erstellt wird. Mit anderen Worten, es ist nicht anfällig für Padding-Orakel-Angriffe.
Die Implementierung guter Fehlerbehandlungskontrollen kann die Erfolgschancen eines Angreifers ebenfalls stark beeinträchtigen. Da Padding-Orakel-Angriffe auf Informationslecks beruhen, sollten Sie bei Ver-/Entschlüsselungsfehlern generische Fehlermeldungen anstelle von spezifischen Padding-Fehlern zurückgeben.
Sie können auch einen Message Authentication Code (MAC) implementieren. MAC-Werte schützen sowohl die Integrität als auch die Authentizität der Daten, indem sie es Verifizierern ermöglichen, jede Änderung des Nachrichteninhalts mithilfe eines geheimen Schlüssels zu erkennen.
Schließlich erfordern alle Padding-Orakel-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, die von derselben Quelle kommen, beschränken, können Sie Padding-Orakel-Angriffe unterbinden, indem Sie einem Angreifer den Zugriff verweigern, bevor er seinen Versuch wirklich starten kann.
Weitere Studie zum Padding-Orakel
Jede Methode, mit der ein Angreifer sensible Informationen entschlüsseln kann, kann zu einem echten Albtraum werden. Aber wir hoffen, dass Sie einige gute Methoden kennengelernt haben, um dies von vornherein zu verhindern.
Zur weiteren Lektüre können Sie einen Blick auf die OWASP-Definition und Checkliste auf padding oracle werfen. Sie können Ihr neu erworbenes Verteidigungswissen auch mit der kostenlosen Demo der Plattform Secure Code Warrior testen, die Cybersecurity-Teams zu den ultimativen Cyber-Kriegern ausbildet. Um mehr über die Beseitigung dieser Schwachstelle und eine Schurkengalerie anderer Bedrohungen zu erfahren, besuchen Sie den BlogSecure Code Warrior .
Denken Sie, Sie sind der Aufgabe gewachsen, Padding-Orakel-Angriffe sofort zu vereiteln? Versuchen Sie es auf der Plattform Secure Code Warrior :
Während Padding Oracle wie ein wirklich schlechter Name für eine alternative Rockband klingt, handelt es sich tatsächlich um eine Sicherheitslücke, die von Angreifern genutzt werden kann, um Informationen zu entschlüsseln, ohne den Verschlüsselungscode zu kennen.
In Bezug auf die Gesamtschwierigkeit für einen Angreifer liegt dieses Problem an der Spitze der Skala. Wir sprechen hier nicht von einem magischen Entschlüsselungsknopf, sondern von einem mühsamen Prozess, bei dem Hacker Fehlermeldungen untersuchen können, die ihnen in Bezug auf das Auffüllen von Zellen geschickt wurden, und dies nutzen, um zu bestimmen, wo verschlüsselte Daten enden und das Auffüllen beginnt. Sie können dann verschiedene Bits innerhalb der Verschlüsselung herausfinden und sie möglicherweise knacken, wenn sie genug Zeit und Input zur Untersuchung haben.
Glücklicherweise gibt es einige relativ einfache Schritte, die einem Angreifer die Möglichkeit nehmen können, Padding-Orakel zum Entschlüsseln verschlüsselter Daten zu verwenden. In dieser Folge lernen wir:
- Wie es funktioniert
- Warum diese Sicherheitslücke so gefährlich ist
- Wie Sie Schutzmaßnahmen ergreifen können, um dies zu verhindern.
Wie funktioniert das Padding Oracle?
Cipher Block Chaining (CBC) ist eine Möglichkeit, eine Blockchiffre zu erstellen, bei der eine ganze Folge von Informationsbits, z. B. in einer Datenbank gespeicherte Zellen, mit einem Chiffrierschlüssel verschlüsselt wird, der für die gesamte Informationskette gilt. Bei der Verwendung von CBC hängt die Verschlüsselung eines einzelnen Blocks des Chiffriertextes von allen vorangehenden Blöcken ab. Theoretisch macht dies die Verschlüsselung extrem stark, da alles, selbst die Neuanordnung der Blöcke, die Daten beschädigt.
Das Problem bei CBC-Chiffren (und überhaupt bei allen Blockchiffren) ist, dass sie nur mit Blöcken exakter Größe verschlüsselt werden können. Normalerweise wird dies in 8- oder 16-Byte-Größen gemacht. Was passiert also, wenn CBC 2 Byte Daten in eine 16-Byte-Chiffretext-Einheit einpassen muss? Es verwendet Auffüllungen, im Grunde nur unsinnige Zeichen, um die Lücken zu füllen und die Einheit auf eine angemessene Größe zu bringen.
Die meisten Auffüllungsschemata sind bekannt, wobei PKCS#7 eines der beliebtesten ist, sodass Angreifer wissen könnten, welche Art von Auffüllung verwendet wird. Wenn der CBC z. B. fünf Zeichen in einem Block auffüllen muss, würde PKCS#7 den Byte-Wert 0x05 verwenden, der fünfmal hinter dem Klartext wiederholt wird.
Angreifer nutzen ihr Wissen über CBC- und Padding-Schemata, um Abfragen an einen Host-Server zu senden, der auch als Orakel bezeichnet wird. Wenn sie Zugriff auf die richtigen Tools haben, können sie den Server dazu zwingen, ihnen mitzuteilen, ob das Padding in ihrer Anfrage falsch ist. Zu diesem Zweck können sie für jedes Byte in der Chiffre einen Zyklus von null bis 255 durchlaufen, bis der Server ihnen mitteilt, dass das Padding korrekt ist. Dann gehen sie zur nächsten Einheit über und wiederholen den Vorgang, wobei sie in jedem Fall 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 in Bezug darauf abbilden, wo der Klartext endet und das Padding beginnt. Möglicherweise können sie auch XOR-Berechnungen verwenden, um den Wert des letzten Bytes des ursprünglichen Klartextes herauszufinden.
Warum ist Padding Oracle so gefährlich?
Der Grund, warum ein Hacker so viel Arbeit in das Brechen der Verschlüsselung stecken würde, ist die mögliche Auszahlung. Nur wenige Leute verschlüsseln Dinge, die nicht wertvoll sind. Die Gefahr für die Host-Organisation hängt von den Daten ab, die kompromittiert werden. Dazu gehören Passwörter, Benutzerkonten, Finanzdaten, Kreditkartennummern, Patientendaten, vertrauliche Kommunikation oder eine beliebige Anzahl von begehrten und wertvollen Informationen.
Die Verwendung von Padding-Orakel könnte auch das Einfallstor für nachfolgende Angriffe sein. Wenn ein Angreifer mithilfe von Padding Orakel z. B. Passwörter stehlen kann, ist es ein Leichtes, seine Privilegien zu erhöhen und tiefer in ein Netzwerk einzudringen.
Jeder denkt bei Verschlüsselung an die ultimative Verteidigung gegen Schnüffelei oder Kompromittierung. Das Hin und Her zwischen der Verschlüsselungswissenschaft und denen, die sie brechen wollen, dauert jedoch schon seit Jahrhunderten an. Das Padding-Orakel ist nur eine Methode, die Angreifern einen Vorteil verschafft.
Padding-Oracle-Angriffen eine harte Landung verpassen
Glücklicherweise gibt es eine ganze Reihe von Möglichkeiten, Padding-Orakel zu verhindern. Eine der besten ist die Verwendung einer stärkeren Verschlüsselungsbetriebsart wie Galois/Counter Mode (GCM) oder Offset Codebook Mode (OCB). Er unterscheidet sich von CBC dadurch, dass er eine Chiffrierblockgröße von 128 Bit verwendet. Außerdem wird für jeden Datenblock ein Zähler verwendet, aus dem dann der Chiffretext erstellt wird. Mit anderen Worten, es ist nicht anfällig für Padding-Orakel-Angriffe.
Die Implementierung guter Fehlerbehandlungskontrollen kann die Erfolgschancen eines Angreifers ebenfalls stark beeinträchtigen. Da Padding-Orakel-Angriffe auf Informationslecks beruhen, sollten Sie bei Ver-/Entschlüsselungsfehlern generische Fehlermeldungen anstelle von spezifischen Padding-Fehlern zurückgeben.
Sie können auch einen Message Authentication Code (MAC) implementieren. MAC-Werte schützen sowohl die Integrität als auch die Authentizität der Daten, indem sie es Verifizierern ermöglichen, jede Änderung des Nachrichteninhalts mithilfe eines geheimen Schlüssels zu erkennen.
Schließlich erfordern alle Padding-Orakel-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, die von derselben Quelle kommen, beschränken, können Sie Padding-Orakel-Angriffe unterbinden, indem Sie einem Angreifer den Zugriff verweigern, bevor er seinen Versuch wirklich starten kann.
Weitere Studie zum Padding-Orakel
Jede Methode, mit der ein Angreifer sensible Informationen entschlüsseln kann, kann zu einem echten Albtraum werden. Aber wir hoffen, dass Sie einige gute Methoden kennengelernt haben, um dies von vornherein zu verhindern.
Zur weiteren Lektüre können Sie einen Blick auf die OWASP-Definition und Checkliste auf padding oracle werfen. Sie können Ihr neu erworbenes Verteidigungswissen auch mit der kostenlosen Demo der Plattform Secure Code Warrior testen, die Cybersecurity-Teams zu den ultimativen Cyber-Kriegern ausbildet. Um mehr über die Beseitigung dieser Schwachstelle und eine Schurkengalerie anderer Bedrohungen zu erfahren, besuchen Sie den BlogSecure Code Warrior .
Denken Sie, Sie sind der Aufgabe gewachsen, Padding-Orakel-Angriffe sofort zu vereiteln? Versuchen Sie es auf der Plattform Secure Code Warrior :
Klicken Sie auf den unten stehenden Link und laden Sie die PDF-Datei dieser Ressource herunter.
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Bericht ansehenDemo buchenWährend Padding Oracle wie ein wirklich schlechter Name für eine alternative Rockband klingt, handelt es sich tatsächlich um eine Sicherheitslücke, die von Angreifern genutzt werden kann, um Informationen zu entschlüsseln, ohne den Verschlüsselungscode zu kennen.
In Bezug auf die Gesamtschwierigkeit für einen Angreifer liegt dieses Problem an der Spitze der Skala. Wir sprechen hier nicht von einem magischen Entschlüsselungsknopf, sondern von einem mühsamen Prozess, bei dem Hacker Fehlermeldungen untersuchen können, die ihnen in Bezug auf das Auffüllen von Zellen geschickt wurden, und dies nutzen, um zu bestimmen, wo verschlüsselte Daten enden und das Auffüllen beginnt. Sie können dann verschiedene Bits innerhalb der Verschlüsselung herausfinden und sie möglicherweise knacken, wenn sie genug Zeit und Input zur Untersuchung haben.
Glücklicherweise gibt es einige relativ einfache Schritte, die einem Angreifer die Möglichkeit nehmen können, Padding-Orakel zum Entschlüsseln verschlüsselter Daten zu verwenden. In dieser Folge lernen wir:
- Wie es funktioniert
- Warum diese Sicherheitslücke so gefährlich ist
- Wie Sie Schutzmaßnahmen ergreifen können, um dies zu verhindern.
Wie funktioniert das Padding Oracle?
Cipher Block Chaining (CBC) ist eine Möglichkeit, eine Blockchiffre zu erstellen, bei der eine ganze Folge von Informationsbits, z. B. in einer Datenbank gespeicherte Zellen, mit einem Chiffrierschlüssel verschlüsselt wird, der für die gesamte Informationskette gilt. Bei der Verwendung von CBC hängt die Verschlüsselung eines einzelnen Blocks des Chiffriertextes von allen vorangehenden Blöcken ab. Theoretisch macht dies die Verschlüsselung extrem stark, da alles, selbst die Neuanordnung der Blöcke, die Daten beschädigt.
Das Problem bei CBC-Chiffren (und überhaupt bei allen Blockchiffren) ist, dass sie nur mit Blöcken exakter Größe verschlüsselt werden können. Normalerweise wird dies in 8- oder 16-Byte-Größen gemacht. Was passiert also, wenn CBC 2 Byte Daten in eine 16-Byte-Chiffretext-Einheit einpassen muss? Es verwendet Auffüllungen, im Grunde nur unsinnige Zeichen, um die Lücken zu füllen und die Einheit auf eine angemessene Größe zu bringen.
Die meisten Auffüllungsschemata sind bekannt, wobei PKCS#7 eines der beliebtesten ist, sodass Angreifer wissen könnten, welche Art von Auffüllung verwendet wird. Wenn der CBC z. B. fünf Zeichen in einem Block auffüllen muss, würde PKCS#7 den Byte-Wert 0x05 verwenden, der fünfmal hinter dem Klartext wiederholt wird.
Angreifer nutzen ihr Wissen über CBC- und Padding-Schemata, um Abfragen an einen Host-Server zu senden, der auch als Orakel bezeichnet wird. Wenn sie Zugriff auf die richtigen Tools haben, können sie den Server dazu zwingen, ihnen mitzuteilen, ob das Padding in ihrer Anfrage falsch ist. Zu diesem Zweck können sie für jedes Byte in der Chiffre einen Zyklus von null bis 255 durchlaufen, bis der Server ihnen mitteilt, dass das Padding korrekt ist. Dann gehen sie zur nächsten Einheit über und wiederholen den Vorgang, wobei sie in jedem Fall 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 in Bezug darauf abbilden, wo der Klartext endet und das Padding beginnt. Möglicherweise können sie auch XOR-Berechnungen verwenden, um den Wert des letzten Bytes des ursprünglichen Klartextes herauszufinden.
Warum ist Padding Oracle so gefährlich?
Der Grund, warum ein Hacker so viel Arbeit in das Brechen der Verschlüsselung stecken würde, ist die mögliche Auszahlung. Nur wenige Leute verschlüsseln Dinge, die nicht wertvoll sind. Die Gefahr für die Host-Organisation hängt von den Daten ab, die kompromittiert werden. Dazu gehören Passwörter, Benutzerkonten, Finanzdaten, Kreditkartennummern, Patientendaten, vertrauliche Kommunikation oder eine beliebige Anzahl von begehrten und wertvollen Informationen.
Die Verwendung von Padding-Orakel könnte auch das Einfallstor für nachfolgende Angriffe sein. Wenn ein Angreifer mithilfe von Padding Orakel z. B. Passwörter stehlen kann, ist es ein Leichtes, seine Privilegien zu erhöhen und tiefer in ein Netzwerk einzudringen.
Jeder denkt bei Verschlüsselung an die ultimative Verteidigung gegen Schnüffelei oder Kompromittierung. Das Hin und Her zwischen der Verschlüsselungswissenschaft und denen, die sie brechen wollen, dauert jedoch schon seit Jahrhunderten an. Das Padding-Orakel ist nur eine Methode, die Angreifern einen Vorteil verschafft.
Padding-Oracle-Angriffen eine harte Landung verpassen
Glücklicherweise gibt es eine ganze Reihe von Möglichkeiten, Padding-Orakel zu verhindern. Eine der besten ist die Verwendung einer stärkeren Verschlüsselungsbetriebsart wie Galois/Counter Mode (GCM) oder Offset Codebook Mode (OCB). Er unterscheidet sich von CBC dadurch, dass er eine Chiffrierblockgröße von 128 Bit verwendet. Außerdem wird für jeden Datenblock ein Zähler verwendet, aus dem dann der Chiffretext erstellt wird. Mit anderen Worten, es ist nicht anfällig für Padding-Orakel-Angriffe.
Die Implementierung guter Fehlerbehandlungskontrollen kann die Erfolgschancen eines Angreifers ebenfalls stark beeinträchtigen. Da Padding-Orakel-Angriffe auf Informationslecks beruhen, sollten Sie bei Ver-/Entschlüsselungsfehlern generische Fehlermeldungen anstelle von spezifischen Padding-Fehlern zurückgeben.
Sie können auch einen Message Authentication Code (MAC) implementieren. MAC-Werte schützen sowohl die Integrität als auch die Authentizität der Daten, indem sie es Verifizierern ermöglichen, jede Änderung des Nachrichteninhalts mithilfe eines geheimen Schlüssels zu erkennen.
Schließlich erfordern alle Padding-Orakel-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, die von derselben Quelle kommen, beschränken, können Sie Padding-Orakel-Angriffe unterbinden, indem Sie einem Angreifer den Zugriff verweigern, bevor er seinen Versuch wirklich starten kann.
Weitere Studie zum Padding-Orakel
Jede Methode, mit der ein Angreifer sensible Informationen entschlüsseln kann, kann zu einem echten Albtraum werden. Aber wir hoffen, dass Sie einige gute Methoden kennengelernt haben, um dies von vornherein zu verhindern.
Zur weiteren Lektüre können Sie einen Blick auf die OWASP-Definition und Checkliste auf padding oracle werfen. Sie können Ihr neu erworbenes Verteidigungswissen auch mit der kostenlosen Demo der Plattform Secure Code Warrior testen, die Cybersecurity-Teams zu den ultimativen Cyber-Kriegern ausbildet. Um mehr über die Beseitigung dieser Schwachstelle und eine Schurkengalerie anderer Bedrohungen zu erfahren, besuchen Sie den BlogSecure Code Warrior .
Denken Sie, Sie sind der Aufgabe gewachsen, Padding-Orakel-Angriffe sofort zu vereiteln? Versuchen Sie es auf der Plattform Secure Code Warrior :
Inhaltsübersicht
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Demo buchenHerunterladenRessourcen für den Einstieg
Benchmarking von Sicherheitskompetenzen: Optimierung von Secure-by-Design im Unternehmen
Die Secure-by-Design-Bewegung ist die Zukunft der sicheren Softwareentwicklung. Erfahren Sie mehr über die wichtigsten Elemente, die Unternehmen berücksichtigen müssen, wenn sie über eine Secure-by-Design-Initiative nachdenken.
DigitalOcean verringert Sicherheitsverschuldung mit Secure Code Warrior
DigitalOceans Einsatz von Secure Code Warrior hat die Sicherheitsverschuldung deutlich reduziert, so dass sich die Teams stärker auf Innovation und Produktivität konzentrieren können. Die verbesserte Sicherheit hat die Produktqualität und den Wettbewerbsvorteil des Unternehmens gestärkt. Mit Blick auf die Zukunft wird der SCW Trust Score dem Unternehmen helfen, seine Sicherheitspraktiken weiter zu verbessern und Innovationen voranzutreiben.
Ressourcen für den Einstieg
Reaktive versus präventive Sicherheit: Prävention ist das bessere Heilmittel
Der Gedanke, Legacy-Code und -Systeme zur gleichen Zeit wie neuere Anwendungen mit präventiver Sicherheit auszustatten, kann entmutigend erscheinen, aber ein Secure-by-Design-Ansatz, der durch die Weiterbildung von Entwicklern durchgesetzt wird, kann die besten Sicherheitsverfahren auf diese Systeme anwenden. Dies ist für viele Unternehmen die beste Chance, ihre Sicherheitslage zu verbessern.
Die Vorteile eines Benchmarking der Sicherheitskompetenzen von Entwicklern
Der zunehmende Fokus auf sicheren Code und Secure-by-Design-Prinzipien erfordert, dass Entwickler von Beginn des SDLC an in Cybersicherheit geschult werden, wobei Tools wie Secure Code Warrior's Trust Score dabei helfen, ihre Fortschritte zu messen und zu verbessern.
Wesentlicher Erfolg für Enterprise Secure-by-Design-Initiativen
Unser jüngstes Forschungspapier „Benchmarking Security Skills: Streamlining Secure-by-Design in the Enterprise“ ist das Ergebnis einer umfassenden Analyse echter Secure-by-Design-Initiativen auf Unternehmensebene und der Ableitung von Best-Practice-Ansätzen auf Grundlage datengesteuerter Erkenntnisse.
Vertiefung: Navigieren durch die kritische CUPS-Schwachstelle in GNU-Linux-Systemen
Entdecken Sie die neuesten Sicherheitsprobleme, mit denen Linux-Benutzer konfrontiert sind, indem wir die jüngsten hochgradigen Sicherheitslücken im Common UNIX Printing System (CUPS) untersuchen. Erfahren Sie, wie diese Probleme zu einer möglichen Remote Code Execution (RCE) führen können und was Sie tun können, um Ihre Systeme zu schützen.