Les codeurs conquièrent la sécurité : Série "Partageons et apprenons" - Padding Oracle
Bien que Padding Oracle semble être un très mauvais nom pour un groupe de rock alternatif, il s'agit en fait d'une vulnérabilité qui peut être utilisée par des attaquants pour décrypter des informations sans connaître la clé de cryptage.
En termes de difficulté globale pour un attaquant, celle-ci se situe en haut de l'échelle. Il ne s'agit pas d'un bouton magique de décryptage, mais d'un processus laborieux par lequel les pirates peuvent examiner les messages d'erreur qui leur sont envoyés concernant le remplissage des cellules et s'en servir pour déterminer où les données cryptées se terminent et où le remplissage commence. Ils peuvent ensuite déterminer les différents bits du chiffrement et éventuellement le déchiffrer s'ils disposent de suffisamment de temps et d'informations pour l'examiner.
Heureusement, il existe plusieurs étapes relativement simples qui permettent à un attaquant de ne plus pouvoir utiliser l'oracle pour déchiffrer des données cryptées. Dans cet épisode, nous allons apprendre :
- Comment cela fonctionne-t-il ?
- Pourquoi cette vulnérabilité est-elle si dangereuse ?
- Comment vous pouvez mettre en place des défenses pour l'éviter.
Comment fonctionne l'Oracle Padding ?
L'enchaînement de blocs de chiffrement (CBC) est un moyen de créer un chiffrement par blocs dans lequel une séquence entière de bits d'information, tels que des cellules stockées dans une base de données, est chiffrée à l'aide d'une clé de chiffrement qui s'applique à l'ensemble de la chaîne d'information. Lors de l'utilisation du CBC, le cryptage d'un seul bloc de texte chiffré dépend de tous les blocs précédents. En théorie, cela rend le cryptage extrêmement solide, puisque tout, même le réarrangement des blocs, corrompra les données.
Le problème des algorithmes de chiffrement CBC (et de tous les algorithmes de chiffrement par blocs, d'ailleurs) est qu'ils ne peuvent être chiffrés qu'à l'aide de blocs de taille exacte. Normalement, cela se fait par blocs de 8 ou 16 octets. Que se passe-t-il donc lorsque le CBC doit faire entrer 2 octets de données dans une unité de texte chiffré de 16 octets ? Il utilisera des caractères de remplissage, c'est-à-dire des caractères absurdes, pour combler les lacunes et donner à l'unité une taille appropriée.
La plupart des schémas de remplissage sont bien connus, le PKCS#7 étant l'un des plus populaires, de sorte que les attaquants peuvent savoir quel type de remplissage est utilisé. Par exemple, si le CBC doit remplir cinq caractères dans un bloc, le PKCS#7 utilisera la valeur d'octet 0x05 répétée cinq fois après le texte en clair.
Les attaquants utilisent leur connaissance des schémas CBC et de remplissage pour envoyer des requêtes à un serveur hôte, également appelé oracle. S'ils ont accès aux bons outils, ils peuvent être en mesure de forcer le serveur à leur dire si le remplissage de leur requête est incorrect. Pour ce faire, il peut passer de zéro à 255 pour chaque octet du chiffrement jusqu'à ce que le serveur lui dise que le remplissage est correct. Il passe alors à l'unité suivante et répète le processus, en notant à chaque fois où commence le remplissage.
Cela ne leur permet pas de décrypter le message ni même la cellule, mais pourrait leur permettre de cartographier chaque maillon de la chaîne pour savoir où se termine le texte en clair et où commence le rembourrage. Ils peuvent également utiliser des calculs XOR pour déterminer la valeur du dernier octet du texte en clair original.
Pourquoi le Padding Oracle est-il si dangereux ?
La raison pour laquelle un pirate informatique consacre autant d'efforts à briser le cryptage est le gain potentiel. Peu de gens chiffrent des données qui n'ont pas de valeur. Le danger pour l'organisation hôte dépend des données compromises. Il peut s'agir de mots de passe, de comptes d'utilisateurs, d'informations financières, de numéros de cartes de crédit, de dossiers de patients, de communications sensibles ou de toute autre information précieuse et très recherchée.
L'utilisation du padding oracle peut également être la porte d'entrée pour des attaques ultérieures. Si un attaquant peut utiliser le padding oracle pour voler des mots de passe par exemple, l'élévation de ses privilèges et la pénétration plus profonde dans un réseau est une tâche secondaire facile.
Tout le monde considère le chiffrement comme la défense ultime contre l'espionnage ou la compromission. Cependant, le va-et-vient entre la science du chiffrement et ceux qui veulent le casser dure depuis des siècles. L'oracle de la capitalisation n'est qu'une des méthodes qui donnent l'avantage aux attaquants.
Les attaques d'Oracle contre le rembourrage ne sont pas à l'abri d'un atterrissage brutal
Heureusement, il existe plusieurs façons d'éviter l'oracle de remplissage. L'une des meilleures consiste à utiliser un mode de chiffrement plus puissant, tel que le mode Galois/compteur (GCM) ou le mode Offset Codebook (OCB). Ce mode diffère du CBC en ce qu'il utilise une taille de bloc de chiffrement de 128 bits. Il utilise également un compteur pour chaque bloc de données, puis utilise ce nombre pour créer le texte chiffré. En d'autres termes, il n'est pas sensible aux attaques par oracle de remplissage.
La mise en œuvre de contrôles efficaces de gestion des erreurs peut également réduire considérablement les chances de succès d'un attaquant. Étant donné que les attaques par oracle de remplissage reposent sur la fuite d'informations, renvoyez des messages d'erreur génériques au lieu d'erreurs de remplissage spécifiques en cas d'échec du chiffrement ou du déchiffrement.
Vous pouvez également mettre en œuvre le code d'authentification des messages (MAC). Les valeurs MAC protègent l'intégrité et l'authenticité des données en permettant aux vérificateurs de détecter toute modification du contenu du message à l'aide d'une clé secrète.
Enfin, toutes les attaques par l'oracle du remplissage nécessitent des requêtes répétées. Il peut y avoir plus de 200 requêtes pour déterminer le schéma de remplissage d'une seule cellule, multiplié par le nombre d'unités d'information protégées dans la chaîne. En limitant le nombre de demandes provenant de la même source, vous pouvez mettre fin aux attaques par oracle de remplissage en refusant l'accès à un attaquant avant qu'il ne puisse réellement commencer sa tentative.
Étude complémentaire sur l'Oracle Padding
Toute méthode permettant à un pirate de décrypter des informations sensibles peut devenir un véritable cauchemar. Mais nous espérons que vous avez appris quelques bonnes méthodes pour éviter que cela ne se produise.
Pour en savoir plus, vous pouvez consulter la définition et la liste de contrôle de l'OWASP sur padding oracle. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la démo gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité pour qu'elles deviennent les meilleurs cyber-guerriers. Pour en savoir plus sur la façon de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .
Vous pensez être à la hauteur pour déjouer les attaques de l'oracle du padding ? Essayez sur la plateforme Secure Code Warrior :
Bien que Padding Oracle semble être un très mauvais nom pour un groupe de rock alternatif, il s'agit en fait d'une vulnérabilité qui peut être utilisée par des attaquants pour décrypter des informations sans connaître la clé de cryptage.
Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Réservez une démonstrationBien que Padding Oracle semble être un très mauvais nom pour un groupe de rock alternatif, il s'agit en fait d'une vulnérabilité qui peut être utilisée par des attaquants pour décrypter des informations sans connaître la clé de cryptage.
En termes de difficulté globale pour un attaquant, celle-ci se situe en haut de l'échelle. Il ne s'agit pas d'un bouton magique de décryptage, mais d'un processus laborieux par lequel les pirates peuvent examiner les messages d'erreur qui leur sont envoyés concernant le remplissage des cellules et s'en servir pour déterminer où les données cryptées se terminent et où le remplissage commence. Ils peuvent ensuite déterminer les différents bits du chiffrement et éventuellement le déchiffrer s'ils disposent de suffisamment de temps et d'informations pour l'examiner.
Heureusement, il existe plusieurs étapes relativement simples qui permettent à un attaquant de ne plus pouvoir utiliser l'oracle pour déchiffrer des données cryptées. Dans cet épisode, nous allons apprendre :
- Comment cela fonctionne-t-il ?
- Pourquoi cette vulnérabilité est-elle si dangereuse ?
- Comment vous pouvez mettre en place des défenses pour l'éviter.
Comment fonctionne l'Oracle Padding ?
L'enchaînement de blocs de chiffrement (CBC) est un moyen de créer un chiffrement par blocs dans lequel une séquence entière de bits d'information, tels que des cellules stockées dans une base de données, est chiffrée à l'aide d'une clé de chiffrement qui s'applique à l'ensemble de la chaîne d'information. Lors de l'utilisation du CBC, le cryptage d'un seul bloc de texte chiffré dépend de tous les blocs précédents. En théorie, cela rend le cryptage extrêmement solide, puisque tout, même le réarrangement des blocs, corrompra les données.
Le problème des algorithmes de chiffrement CBC (et de tous les algorithmes de chiffrement par blocs, d'ailleurs) est qu'ils ne peuvent être chiffrés qu'à l'aide de blocs de taille exacte. Normalement, cela se fait par blocs de 8 ou 16 octets. Que se passe-t-il donc lorsque le CBC doit faire entrer 2 octets de données dans une unité de texte chiffré de 16 octets ? Il utilisera des caractères de remplissage, c'est-à-dire des caractères absurdes, pour combler les lacunes et donner à l'unité une taille appropriée.
La plupart des schémas de remplissage sont bien connus, le PKCS#7 étant l'un des plus populaires, de sorte que les attaquants peuvent savoir quel type de remplissage est utilisé. Par exemple, si le CBC doit remplir cinq caractères dans un bloc, le PKCS#7 utilisera la valeur d'octet 0x05 répétée cinq fois après le texte en clair.
Les attaquants utilisent leur connaissance des schémas CBC et de remplissage pour envoyer des requêtes à un serveur hôte, également appelé oracle. S'ils ont accès aux bons outils, ils peuvent être en mesure de forcer le serveur à leur dire si le remplissage de leur requête est incorrect. Pour ce faire, il peut passer de zéro à 255 pour chaque octet du chiffrement jusqu'à ce que le serveur lui dise que le remplissage est correct. Il passe alors à l'unité suivante et répète le processus, en notant à chaque fois où commence le remplissage.
Cela ne leur permet pas de décrypter le message ni même la cellule, mais pourrait leur permettre de cartographier chaque maillon de la chaîne pour savoir où se termine le texte en clair et où commence le rembourrage. Ils peuvent également utiliser des calculs XOR pour déterminer la valeur du dernier octet du texte en clair original.
Pourquoi le Padding Oracle est-il si dangereux ?
La raison pour laquelle un pirate informatique consacre autant d'efforts à briser le cryptage est le gain potentiel. Peu de gens chiffrent des données qui n'ont pas de valeur. Le danger pour l'organisation hôte dépend des données compromises. Il peut s'agir de mots de passe, de comptes d'utilisateurs, d'informations financières, de numéros de cartes de crédit, de dossiers de patients, de communications sensibles ou de toute autre information précieuse et très recherchée.
L'utilisation du padding oracle peut également être la porte d'entrée pour des attaques ultérieures. Si un attaquant peut utiliser le padding oracle pour voler des mots de passe par exemple, l'élévation de ses privilèges et la pénétration plus profonde dans un réseau est une tâche secondaire facile.
Tout le monde considère le chiffrement comme la défense ultime contre l'espionnage ou la compromission. Cependant, le va-et-vient entre la science du chiffrement et ceux qui veulent le casser dure depuis des siècles. L'oracle de la capitalisation n'est qu'une des méthodes qui donnent l'avantage aux attaquants.
Les attaques d'Oracle contre le rembourrage ne sont pas à l'abri d'un atterrissage brutal
Heureusement, il existe plusieurs façons d'éviter l'oracle de remplissage. L'une des meilleures consiste à utiliser un mode de chiffrement plus puissant, tel que le mode Galois/compteur (GCM) ou le mode Offset Codebook (OCB). Ce mode diffère du CBC en ce qu'il utilise une taille de bloc de chiffrement de 128 bits. Il utilise également un compteur pour chaque bloc de données, puis utilise ce nombre pour créer le texte chiffré. En d'autres termes, il n'est pas sensible aux attaques par oracle de remplissage.
La mise en œuvre de contrôles efficaces de gestion des erreurs peut également réduire considérablement les chances de succès d'un attaquant. Étant donné que les attaques par oracle de remplissage reposent sur la fuite d'informations, renvoyez des messages d'erreur génériques au lieu d'erreurs de remplissage spécifiques en cas d'échec du chiffrement ou du déchiffrement.
Vous pouvez également mettre en œuvre le code d'authentification des messages (MAC). Les valeurs MAC protègent l'intégrité et l'authenticité des données en permettant aux vérificateurs de détecter toute modification du contenu du message à l'aide d'une clé secrète.
Enfin, toutes les attaques par l'oracle du remplissage nécessitent des requêtes répétées. Il peut y avoir plus de 200 requêtes pour déterminer le schéma de remplissage d'une seule cellule, multiplié par le nombre d'unités d'information protégées dans la chaîne. En limitant le nombre de demandes provenant de la même source, vous pouvez mettre fin aux attaques par oracle de remplissage en refusant l'accès à un attaquant avant qu'il ne puisse réellement commencer sa tentative.
Étude complémentaire sur l'Oracle Padding
Toute méthode permettant à un pirate de décrypter des informations sensibles peut devenir un véritable cauchemar. Mais nous espérons que vous avez appris quelques bonnes méthodes pour éviter que cela ne se produise.
Pour en savoir plus, vous pouvez consulter la définition et la liste de contrôle de l'OWASP sur padding oracle. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la démo gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité pour qu'elles deviennent les meilleurs cyber-guerriers. Pour en savoir plus sur la façon de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .
Vous pensez être à la hauteur pour déjouer les attaques de l'oracle du padding ? Essayez sur la plateforme Secure Code Warrior :
Bien que Padding Oracle semble être un très mauvais nom pour un groupe de rock alternatif, il s'agit en fait d'une vulnérabilité qui peut être utilisée par des attaquants pour décrypter des informations sans connaître la clé de cryptage.
En termes de difficulté globale pour un attaquant, celle-ci se situe en haut de l'échelle. Il ne s'agit pas d'un bouton magique de décryptage, mais d'un processus laborieux par lequel les pirates peuvent examiner les messages d'erreur qui leur sont envoyés concernant le remplissage des cellules et s'en servir pour déterminer où les données cryptées se terminent et où le remplissage commence. Ils peuvent ensuite déterminer les différents bits du chiffrement et éventuellement le déchiffrer s'ils disposent de suffisamment de temps et d'informations pour l'examiner.
Heureusement, il existe plusieurs étapes relativement simples qui permettent à un attaquant de ne plus pouvoir utiliser l'oracle pour déchiffrer des données cryptées. Dans cet épisode, nous allons apprendre :
- Comment cela fonctionne-t-il ?
- Pourquoi cette vulnérabilité est-elle si dangereuse ?
- Comment vous pouvez mettre en place des défenses pour l'éviter.
Comment fonctionne l'Oracle Padding ?
L'enchaînement de blocs de chiffrement (CBC) est un moyen de créer un chiffrement par blocs dans lequel une séquence entière de bits d'information, tels que des cellules stockées dans une base de données, est chiffrée à l'aide d'une clé de chiffrement qui s'applique à l'ensemble de la chaîne d'information. Lors de l'utilisation du CBC, le cryptage d'un seul bloc de texte chiffré dépend de tous les blocs précédents. En théorie, cela rend le cryptage extrêmement solide, puisque tout, même le réarrangement des blocs, corrompra les données.
Le problème des algorithmes de chiffrement CBC (et de tous les algorithmes de chiffrement par blocs, d'ailleurs) est qu'ils ne peuvent être chiffrés qu'à l'aide de blocs de taille exacte. Normalement, cela se fait par blocs de 8 ou 16 octets. Que se passe-t-il donc lorsque le CBC doit faire entrer 2 octets de données dans une unité de texte chiffré de 16 octets ? Il utilisera des caractères de remplissage, c'est-à-dire des caractères absurdes, pour combler les lacunes et donner à l'unité une taille appropriée.
La plupart des schémas de remplissage sont bien connus, le PKCS#7 étant l'un des plus populaires, de sorte que les attaquants peuvent savoir quel type de remplissage est utilisé. Par exemple, si le CBC doit remplir cinq caractères dans un bloc, le PKCS#7 utilisera la valeur d'octet 0x05 répétée cinq fois après le texte en clair.
Les attaquants utilisent leur connaissance des schémas CBC et de remplissage pour envoyer des requêtes à un serveur hôte, également appelé oracle. S'ils ont accès aux bons outils, ils peuvent être en mesure de forcer le serveur à leur dire si le remplissage de leur requête est incorrect. Pour ce faire, il peut passer de zéro à 255 pour chaque octet du chiffrement jusqu'à ce que le serveur lui dise que le remplissage est correct. Il passe alors à l'unité suivante et répète le processus, en notant à chaque fois où commence le remplissage.
Cela ne leur permet pas de décrypter le message ni même la cellule, mais pourrait leur permettre de cartographier chaque maillon de la chaîne pour savoir où se termine le texte en clair et où commence le rembourrage. Ils peuvent également utiliser des calculs XOR pour déterminer la valeur du dernier octet du texte en clair original.
Pourquoi le Padding Oracle est-il si dangereux ?
La raison pour laquelle un pirate informatique consacre autant d'efforts à briser le cryptage est le gain potentiel. Peu de gens chiffrent des données qui n'ont pas de valeur. Le danger pour l'organisation hôte dépend des données compromises. Il peut s'agir de mots de passe, de comptes d'utilisateurs, d'informations financières, de numéros de cartes de crédit, de dossiers de patients, de communications sensibles ou de toute autre information précieuse et très recherchée.
L'utilisation du padding oracle peut également être la porte d'entrée pour des attaques ultérieures. Si un attaquant peut utiliser le padding oracle pour voler des mots de passe par exemple, l'élévation de ses privilèges et la pénétration plus profonde dans un réseau est une tâche secondaire facile.
Tout le monde considère le chiffrement comme la défense ultime contre l'espionnage ou la compromission. Cependant, le va-et-vient entre la science du chiffrement et ceux qui veulent le casser dure depuis des siècles. L'oracle de la capitalisation n'est qu'une des méthodes qui donnent l'avantage aux attaquants.
Les attaques d'Oracle contre le rembourrage ne sont pas à l'abri d'un atterrissage brutal
Heureusement, il existe plusieurs façons d'éviter l'oracle de remplissage. L'une des meilleures consiste à utiliser un mode de chiffrement plus puissant, tel que le mode Galois/compteur (GCM) ou le mode Offset Codebook (OCB). Ce mode diffère du CBC en ce qu'il utilise une taille de bloc de chiffrement de 128 bits. Il utilise également un compteur pour chaque bloc de données, puis utilise ce nombre pour créer le texte chiffré. En d'autres termes, il n'est pas sensible aux attaques par oracle de remplissage.
La mise en œuvre de contrôles efficaces de gestion des erreurs peut également réduire considérablement les chances de succès d'un attaquant. Étant donné que les attaques par oracle de remplissage reposent sur la fuite d'informations, renvoyez des messages d'erreur génériques au lieu d'erreurs de remplissage spécifiques en cas d'échec du chiffrement ou du déchiffrement.
Vous pouvez également mettre en œuvre le code d'authentification des messages (MAC). Les valeurs MAC protègent l'intégrité et l'authenticité des données en permettant aux vérificateurs de détecter toute modification du contenu du message à l'aide d'une clé secrète.
Enfin, toutes les attaques par l'oracle du remplissage nécessitent des requêtes répétées. Il peut y avoir plus de 200 requêtes pour déterminer le schéma de remplissage d'une seule cellule, multiplié par le nombre d'unités d'information protégées dans la chaîne. En limitant le nombre de demandes provenant de la même source, vous pouvez mettre fin aux attaques par oracle de remplissage en refusant l'accès à un attaquant avant qu'il ne puisse réellement commencer sa tentative.
Étude complémentaire sur l'Oracle Padding
Toute méthode permettant à un pirate de décrypter des informations sensibles peut devenir un véritable cauchemar. Mais nous espérons que vous avez appris quelques bonnes méthodes pour éviter que cela ne se produise.
Pour en savoir plus, vous pouvez consulter la définition et la liste de contrôle de l'OWASP sur padding oracle. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la démo gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité pour qu'elles deviennent les meilleurs cyber-guerriers. Pour en savoir plus sur la façon de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .
Vous pensez être à la hauteur pour déjouer les attaques de l'oracle du padding ? Essayez sur la plateforme Secure Code Warrior :
Cliquez sur le lien ci-dessous et téléchargez le PDF de cette ressource.
Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Voir le rapportRéservez une démonstrationBien que Padding Oracle semble être un très mauvais nom pour un groupe de rock alternatif, il s'agit en fait d'une vulnérabilité qui peut être utilisée par des attaquants pour décrypter des informations sans connaître la clé de cryptage.
En termes de difficulté globale pour un attaquant, celle-ci se situe en haut de l'échelle. Il ne s'agit pas d'un bouton magique de décryptage, mais d'un processus laborieux par lequel les pirates peuvent examiner les messages d'erreur qui leur sont envoyés concernant le remplissage des cellules et s'en servir pour déterminer où les données cryptées se terminent et où le remplissage commence. Ils peuvent ensuite déterminer les différents bits du chiffrement et éventuellement le déchiffrer s'ils disposent de suffisamment de temps et d'informations pour l'examiner.
Heureusement, il existe plusieurs étapes relativement simples qui permettent à un attaquant de ne plus pouvoir utiliser l'oracle pour déchiffrer des données cryptées. Dans cet épisode, nous allons apprendre :
- Comment cela fonctionne-t-il ?
- Pourquoi cette vulnérabilité est-elle si dangereuse ?
- Comment vous pouvez mettre en place des défenses pour l'éviter.
Comment fonctionne l'Oracle Padding ?
L'enchaînement de blocs de chiffrement (CBC) est un moyen de créer un chiffrement par blocs dans lequel une séquence entière de bits d'information, tels que des cellules stockées dans une base de données, est chiffrée à l'aide d'une clé de chiffrement qui s'applique à l'ensemble de la chaîne d'information. Lors de l'utilisation du CBC, le cryptage d'un seul bloc de texte chiffré dépend de tous les blocs précédents. En théorie, cela rend le cryptage extrêmement solide, puisque tout, même le réarrangement des blocs, corrompra les données.
Le problème des algorithmes de chiffrement CBC (et de tous les algorithmes de chiffrement par blocs, d'ailleurs) est qu'ils ne peuvent être chiffrés qu'à l'aide de blocs de taille exacte. Normalement, cela se fait par blocs de 8 ou 16 octets. Que se passe-t-il donc lorsque le CBC doit faire entrer 2 octets de données dans une unité de texte chiffré de 16 octets ? Il utilisera des caractères de remplissage, c'est-à-dire des caractères absurdes, pour combler les lacunes et donner à l'unité une taille appropriée.
La plupart des schémas de remplissage sont bien connus, le PKCS#7 étant l'un des plus populaires, de sorte que les attaquants peuvent savoir quel type de remplissage est utilisé. Par exemple, si le CBC doit remplir cinq caractères dans un bloc, le PKCS#7 utilisera la valeur d'octet 0x05 répétée cinq fois après le texte en clair.
Les attaquants utilisent leur connaissance des schémas CBC et de remplissage pour envoyer des requêtes à un serveur hôte, également appelé oracle. S'ils ont accès aux bons outils, ils peuvent être en mesure de forcer le serveur à leur dire si le remplissage de leur requête est incorrect. Pour ce faire, il peut passer de zéro à 255 pour chaque octet du chiffrement jusqu'à ce que le serveur lui dise que le remplissage est correct. Il passe alors à l'unité suivante et répète le processus, en notant à chaque fois où commence le remplissage.
Cela ne leur permet pas de décrypter le message ni même la cellule, mais pourrait leur permettre de cartographier chaque maillon de la chaîne pour savoir où se termine le texte en clair et où commence le rembourrage. Ils peuvent également utiliser des calculs XOR pour déterminer la valeur du dernier octet du texte en clair original.
Pourquoi le Padding Oracle est-il si dangereux ?
La raison pour laquelle un pirate informatique consacre autant d'efforts à briser le cryptage est le gain potentiel. Peu de gens chiffrent des données qui n'ont pas de valeur. Le danger pour l'organisation hôte dépend des données compromises. Il peut s'agir de mots de passe, de comptes d'utilisateurs, d'informations financières, de numéros de cartes de crédit, de dossiers de patients, de communications sensibles ou de toute autre information précieuse et très recherchée.
L'utilisation du padding oracle peut également être la porte d'entrée pour des attaques ultérieures. Si un attaquant peut utiliser le padding oracle pour voler des mots de passe par exemple, l'élévation de ses privilèges et la pénétration plus profonde dans un réseau est une tâche secondaire facile.
Tout le monde considère le chiffrement comme la défense ultime contre l'espionnage ou la compromission. Cependant, le va-et-vient entre la science du chiffrement et ceux qui veulent le casser dure depuis des siècles. L'oracle de la capitalisation n'est qu'une des méthodes qui donnent l'avantage aux attaquants.
Les attaques d'Oracle contre le rembourrage ne sont pas à l'abri d'un atterrissage brutal
Heureusement, il existe plusieurs façons d'éviter l'oracle de remplissage. L'une des meilleures consiste à utiliser un mode de chiffrement plus puissant, tel que le mode Galois/compteur (GCM) ou le mode Offset Codebook (OCB). Ce mode diffère du CBC en ce qu'il utilise une taille de bloc de chiffrement de 128 bits. Il utilise également un compteur pour chaque bloc de données, puis utilise ce nombre pour créer le texte chiffré. En d'autres termes, il n'est pas sensible aux attaques par oracle de remplissage.
La mise en œuvre de contrôles efficaces de gestion des erreurs peut également réduire considérablement les chances de succès d'un attaquant. Étant donné que les attaques par oracle de remplissage reposent sur la fuite d'informations, renvoyez des messages d'erreur génériques au lieu d'erreurs de remplissage spécifiques en cas d'échec du chiffrement ou du déchiffrement.
Vous pouvez également mettre en œuvre le code d'authentification des messages (MAC). Les valeurs MAC protègent l'intégrité et l'authenticité des données en permettant aux vérificateurs de détecter toute modification du contenu du message à l'aide d'une clé secrète.
Enfin, toutes les attaques par l'oracle du remplissage nécessitent des requêtes répétées. Il peut y avoir plus de 200 requêtes pour déterminer le schéma de remplissage d'une seule cellule, multiplié par le nombre d'unités d'information protégées dans la chaîne. En limitant le nombre de demandes provenant de la même source, vous pouvez mettre fin aux attaques par oracle de remplissage en refusant l'accès à un attaquant avant qu'il ne puisse réellement commencer sa tentative.
Étude complémentaire sur l'Oracle Padding
Toute méthode permettant à un pirate de décrypter des informations sensibles peut devenir un véritable cauchemar. Mais nous espérons que vous avez appris quelques bonnes méthodes pour éviter que cela ne se produise.
Pour en savoir plus, vous pouvez consulter la définition et la liste de contrôle de l'OWASP sur padding oracle. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la démo gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité pour qu'elles deviennent les meilleurs cyber-guerriers. Pour en savoir plus sur la façon de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .
Vous pensez être à la hauteur pour déjouer les attaques de l'oracle du padding ? Essayez sur la plateforme Secure Code Warrior :
Table des matières
Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Réservez une démonstrationTéléchargerRessources pour vous aider à démarrer
Évaluation comparative des compétences en matière de sécurité : Rationalisation de la conception sécurisée dans l'entreprise
Le mouvement "Secure-by-Design" (conception sécurisée) est l'avenir du développement de logiciels sécurisés. Découvrez les éléments clés que les entreprises doivent garder à l'esprit lorsqu'elles envisagent une initiative de conception sécurisée.
DigitalOcean réduit sa dette de sécurité avec Secure Code Warrior
L'utilisation par DigitalOcean de la formation Secure Code Warrior a considérablement réduit la dette de sécurité, permettant aux équipes de se concentrer davantage sur l'innovation et la productivité. L'amélioration de la sécurité a renforcé la qualité des produits et l'avantage concurrentiel de l'entreprise. À l'avenir, le score de confiance SCW les aidera à améliorer leurs pratiques de sécurité et à continuer à stimuler l'innovation.
Ressources pour vous aider à démarrer
Sécurité réactive contre sécurité préventive : La prévention est un meilleur remède
L'idée d'apporter une sécurité préventive aux codes et systèmes existants en même temps qu'aux applications plus récentes peut sembler décourageante, mais une approche "Secure-by-Design", mise en œuvre en améliorant les compétences des développeurs, permet d'appliquer les meilleures pratiques de sécurité à ces systèmes. C'est la meilleure chance qu'ont de nombreuses organisations d'améliorer leur sécurité.
Les avantages de l'évaluation des compétences des développeurs en matière de sécurité
L'importance croissante accordée au code sécurisé et aux principes de conception sécurisée exige que les développeurs soient formés à la cybersécurité dès le début du cycle de développement durable, et que des outils tels que le Trust Score de Secure Code Warriorles aident à mesurer et à améliorer leurs progrès.
Assurer le succès des initiatives de conception sécurisée de l'entreprise
Notre dernier document de recherche, Benchmarking Security Skills : Streamlining Secure-by-Design in the Enterprise est le résultat d'une analyse approfondie d'initiatives réelles de conception sécurisée au niveau de l'entreprise, et de l'élaboration d'approches de meilleures pratiques basées sur des conclusions fondées sur des données.
Plongée en profondeur : Naviguer dans la vulnérabilité critique de CUPS dans les systèmes GNU-Linux
Découvrez les derniers défis de sécurité auxquels sont confrontés les utilisateurs de Linux en explorant les récentes vulnérabilités de haute sévérité dans le système d'impression commun d'UNIX (CUPS). Apprenez comment ces problèmes peuvent conduire à une potentielle exécution de code à distance (RCE) et ce que vous pouvez faire pour protéger vos systèmes.