Blog

Les développeurs à la conquête de la sécurité : Série Partage & Apprentissage - Oracle de remplissage

January 24, 2019

Bien que « Padding Oracle » ressemble à un nom de groupe de rock alternatif, il s'agit en réalité d'une vulnérabilité permettant à des attaquants de déchiffrer des informations sans connaître la clé de chiffrement.

En termes de difficulté globale pour un attaquant, cette vulnérabilité se situe dans le haut du panier. Il ne s'agit pas d'un bouton magique de déchiffrement, mais plutôt d'un processus laborieux par lequel les pirates examinent les messages d'erreur liés au remplissage (padding) des cellules pour déterminer où finissent les données chiffrées et où commence le remplissage. Ils peuvent ensuite déduire divers éléments du chiffrement et, avec suffisamment de temps et de données, potentiellement le casser.

Heureusement, il existe plusieurs étapes relativement simples pour empêcher un attaquant d'utiliser le « padding oracle » pour déchiffrer des données. Dans cet épisode, nous apprendrons :

  • Comment cela fonctionne
  • Pourquoi cette vulnérabilité est si dangereuse
  • Comment mettre en place des défenses pour la prévenir.

Comment fonctionne le Padding Oracle ?

Le chaînage de blocs de chiffrement (CBC) est une méthode permettant de créer un chiffrement par blocs où une séquence entière de bits, comme des cellules stockées dans une base de données, est chiffrée à l'aide d'une clé appliquée à toute la chaîne. Avec le mode CBC, le chiffrement d'un bloc de texte chiffré dépend de tous les blocs précédents. En théorie, cela rend le chiffrement extrêmement robuste, car toute modification, même une réorganisation des blocs, corrompt les données.

Le problème avec les chiffrements CBC (et tout chiffrement par blocs, d'ailleurs) est qu'ils ne peuvent être chiffrés qu'en utilisant des blocs de tailles précises, généralement 8 ou 16 octets. Que se passe-t-il lorsque le mode CBC doit intégrer 2 octets de données dans une unité de 16 octets ? Il utilise un remplissage (padding), composé essentiellement de caractères inutiles, pour combler les vides et atteindre la taille requise.

La plupart des schémas de remplissage sont bien connus, PKCS#7 étant l'un des plus populaires ; les attaquants peuvent donc facilement identifier le type de remplissage utilisé. Par exemple, si le mode CBC doit remplir cinq caractères dans un bloc, PKCS#7 utilisera la valeur d'octet 0x05 répétée cinq fois après le texte en clair.

Les attaquants utilisent leurs connaissances du mode CBC et des schémas de remplissage pour envoyer des requêtes à un serveur hôte, appelé « oracle ». S'ils disposent des bons outils, ils peuvent forcer le serveur à leur indiquer si le remplissage de leur requête est incorrect. En procédant ainsi, ils peuvent tester toutes les valeurs de 0 à 255 pour chaque octet du texte chiffré jusqu'à ce que le serveur confirme que le remplissage est correct. Ils passent ensuite à l'unité suivante et répètent le processus, notant à chaque fois où commence le remplissage.

Cela ne leur permet pas de déchiffrer le message ou la cellule entière, mais peut leur permettre de cartographier chaque maillon de la chaîne pour identifier où finit le texte en clair et où commence le remplissage. Ils peuvent également utiliser des opérations 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 consacrerait autant d'efforts à briser un chiffrement est le gain potentiel. Peu de gens chiffrent des données sans valeur. Le danger pour l'organisation hôte dépend de la nature des données compromises : mots de passe, comptes utilisateurs, informations financières, numéros de carte bancaire, dossiers médicaux, communications sensibles ou toute autre information hautement convoitée.

L'utilisation du « padding oracle » peut également servir de porte d'entrée à des attaques ultérieures. Si un attaquant parvient à voler des mots de passe, par exemple, l'élévation de privilèges et l'intrusion plus profonde dans un réseau deviennent une tâche secondaire aisée.

Tout le monde considère le chiffrement comme la défense ultime contre l'espionnage ou la compromission. Cependant, le jeu du chat et de la souris entre la science du chiffrement et ceux qui cherchent à la briser dure depuis des siècles. Le « padding oracle » n'est qu'une méthode parmi d'autres qui donne l'avantage aux attaquants.

Mettre fin aux attaques par Padding Oracle

Heureusement, il existe plusieurs moyens de prévenir les attaques par « padding oracle ». L'un des meilleurs consiste à utiliser des modes de chiffrement plus robustes, tels que Galois/Counter Mode (GCM) ou Offset Codebook Mode (OCB). Ils diffèrent du mode CBC en utilisant une taille de bloc de 128 bits et un compteur pour chaque bloc de données afin de générer le texte chiffré. En d'autres termes, ils ne sont pas vulnérables aux attaques par « padding oracle ».

La mise en œuvre de contrôles de gestion des erreurs appropriés peut également réduire considérablement les chances de succès d'un attaquant. Étant donné que les attaques par « padding oracle » reposent sur la fuite d'informations, renvoyez des messages d'erreur génériques plutôt que des erreurs de remplissage spécifiques en cas d'échec du chiffrement ou du déchiffrement.

Vous pouvez également mettre en œuvre un code d'authentification de message (MAC). Les valeurs MAC protègent l'intégrité des données ainsi que leur authenticité, 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 oracle de remplissage nécessitent des requêtes répétées. Plus de 200 requêtes peuvent être nécessaires 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 requêtes provenant d'une même source, vous pouvez bloquer ces attaques en refusant l'accès à l'attaquant avant même qu'il ne puisse réellement commencer sa tentative.

Étude approfondie sur l'oracle de remplissage

Toute méthode permettant à un attaquant de déchiffrer des informations sensibles peut devenir un véritable cauchemar. Nous espérons toutefois que vous avez découvert plusieurs méthodes efficaces pour empêcher cela dès le départ.

Pour aller plus loin, vous pouvez consulter la définition et la liste de contrôle de l'OWASP sur l'oracle de remplissage. Vous pouvez également mettre vos nouvelles connaissances défensives à l'épreuve avec la démo gratuite de la plateforme Secure Code Warrior, qui forme les équipes de cybersécurité à devenir des experts en la matière. Pour en savoir plus sur la lutte contre cette vulnérabilité et bien d'autres menaces, visitez le blog de Secure Code Warrior.

Vous pensez être prêt à contrer les attaques par oracle de remplissage dès maintenant ? Essayez sur la plateforme Secure Code Warrior :

Slogan

Gouvernez le développement assisté par IA avant la mise en production

Évaluez les risques liés à l'IA, appliquez des politiques de codage sécurisé dès le commit et accélérez la livraison sécurisée tout au long de votre cycle de développement.

Réserver une démo
Bibliothèque de ressources

Explorer plus d'articles

Accédez à du contenu expert sur le codage sécurisé, la gouvernance de l'IA et la gestion des risques logiciels.

tout parcourir
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

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.

En savoir plus
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

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

En savoir plus
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Une culture de la sécurité : comment Sage a bâti son programme de champions

Découvrez comment Sage a renforcé sa sécurité grâce à une approche flexible axée sur les relations humaines, formant plus de 200 champions de la sécurité et obtenant une réduction mesurable des risques.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Mois de la sensibilisation à la cybersécurité 2026 : comprendre la sécurité de l'IA est essentiel à la défense de l'entreprise

Nous avons atteint un point où la plupart des grandes entreprises d'IA ont publiquement appelé à un ralentissement mondial du développement de l'IA afin de permettre aux garde-fous de sécurité de rattraper leur retard. Pourtant, la réalité est que de graves problèmes de sécurité se sont déjà concrétisés. Cela place d'innombrables responsables de la sécurité et équipes de direction dans une situation d'urgence, alors que les coûts financiers et les risques liés à la mise en œuvre de l'IA ne cessent de s'accumuler.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Levier 8 : Valoriser votre programme

Un programme de codage sécurisé a besoin de plus qu'un contenu de qualité pour réussir. Le levier 8 montre comment l'image de marque transforme la participation en une expérience convoitée, axée sur le statut.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Chaque employé est désormais en première ligne de la cybersécurité IA

Le paysage technologique des entreprises évolue à une vitesse que peu avaient anticipée avant qu'il ne soit trop tard. Nous avons officiellement franchi le cap du code écrit par l'humain et de l'assistance basique par copilote pour entrer dans l'ère du cycle de vie de développement agentique (ADLC). Si les agents IA autonomes promettent une efficacité sans précédent dans de multiples fonctions, ils apportent également une toute nouvelle catégorie de risques en matière de sécurité et de réglementation.

En savoir plus

Sécurisez le développement piloté par l'IA avant le déploiement

Identifiez les risques de développement, appliquez vos politiques et prévenez les vulnérabilités tout au long du cycle de vie de vos logiciels.

Réserver une démo
trust score
Aucun élément trouvé.