Applications, sites et API
Particuliers et entreprisesDébordement de tampon
Buffer overflow
Une écriture dépasse la zone mémoire prévue et peut détourner le programme.
Je pense être concerné : que faire ?
Comprendre et agir
Découvrez le piège à partir d’un exemple, puis les gestes que vous pouvez faire. Vous pouvez suivre cette lecture sans connaissances en informatique.
Une situation concrète
Un service convertit un fichier reçu. Le lecteur réserve de la mémoire, mais y copie plus de données que la place disponible. Le service peut s’arrêter. Dans certaines conditions, cette écriture permet aussi à un attaquant de détourner les instructions exécutées.
Comment cela fonctionne
Un tampon est une zone de mémoire réservée à des données. Un débordement se produit lorsqu’un programme écrit au-delà de ses limites. Il peut écraser une valeur voisine, provoquer une panne ou modifier le déroulement du programme. Le défaut peut se trouver dans une bibliothèque utilisée pour lire une image ou traiter une connexion. Une personne peut donc être exposée en ouvrant un document avec un logiciel vulnérable, ou en utilisant un service qui le traite pour elle.
- Une entrée est traitée
Un fichier ou un message arrive au programme.
- Une copie dépasse la place prévue
Des données voisines sont écrasées.
- Le programme se comporte autrement
Panne, altération ou parfois exécution détournée.
Ce que vous pouvez faire
Vos premiers réflexes
Installez les mises à jour et signalez un plantage répété avec la version du logiciel et l’heure. Conservez le document concerné sans le rouvrir pour essayer de reproduire la panne.
Si vous êtes responsable du service ou de l’organisation
Inventoriez les lecteurs et bibliothèques exposés aux fichiers reçus. Faites corriger le composant, isolez ses traitements et examinez l’activité du processus pendant la période vulnérable.
Un plantage ne prouve pas une prise de contrôle. Inversement, certains débordements peuvent être exploités sans panne visible.
À vous de décider
Votre lecteur se ferme après l’ouverture d’un document. Cela prouve-t-il que quelqu’un contrôle votre ordinateur ?
Prenez un moment pour répondre et expliquer votre choix, puis ouvrez la correction.
Voir la réponse expliquée
Non. Le plantage peut avoir plusieurs causes. Un défaut mémoire est une piste à faire examiner, et une prise de contrôle exige d’autres éléments. Notez le contexte, évitez de relancer le document et signalez-le au support.
Analyser un cas technique
Ce cas s’adresse aux personnes qui développent, administrent ou analysent ces systèmes. Si vous découvrez le sujet, commencez par « Comprendre et agir ».
Étude de cas fictive
Un lecteur d’images écrit au-delà du tampon prévu
Dans ce cas fictif, un lecteur d’images s’arrête pendant le traitement du fichier img-42. La copie instrumentée du lecteur confirme une écriture de 96 octets dans une zone qui n’en contient que 64. Le défaut de bornes est établi dans cet environnement de test. Le résultat ne démontre pas une prise de contrôle du service en production.
La première ligne conserve cette limite avec code_execution=not_established. Le rapport mémoire réel doit être examiné avec la version exacte du programme, les symboles et la pile d’appels. Son diagnostic permet de retrouver la copie fautive et le calcul de taille en amont. Les droits du processus de traitement et ses connexions servent ensuite à évaluer l’exposition.
Après correction, le lecteur refuse cette entrée avant la copie. Il faut aussi vérifier les tailles limites et les formats valides : traiter ce seul fichier ne couvre pas toutes les variantes. EternalBlue, documenté par Rapid7, illustre historiquement une corruption de mémoire dans un autre composant, SMB ; le scénario d’image présenté ici ne reconstitue pas cette attaque.
Le déroulement en schéma
Faites défiler le diagramme pour suivre les échanges ; les noms des acteurs restent en haut. Sur petit écran, faites aussi défiler de gauche à droite.
- Action
Envoi du fichier
Expéditeur vers Service d’import
Trace identifiant img-42
- Action
Demande de conversion
Service d’import vers Lecteur natif
Trace version reader-a
- Action sur place
Écriture au-delà du tampon
Lecteur natif
Trace plantage observé
- Réponse
Échec du traitement
Lecteur natif vers Service d’import
Trace exécution détournée non établie
- Action
Transmission d’une copie préservée
Service d’import vers Équipe technique
Trace fichier et versions
- Action sur place
Analyse instrumentée
Équipe technique
Trace WRITE au-delà de 64 octets
- Refus / blocage
Validation du lecteur corrigé
Équipe technique vers Lecteur natif
Trace refus avant copie
Comment repérer cette attaque
Indices à rechercher
- Un service plante de façon répétée pendant le traitement d’une même catégorie d’entrée.
- Un rapport d’analyse mémoire signale une écriture au-delà d’une allocation.
- Un programme lance un processus ou établit une connexion sans rapport avec sa fonction.
Rapprocher les plantages d’une même version, les fichiers traités et les diagnostics mémoire obtenus sur une reproduction isolée. Rechercher séparément les processus enfants, écritures et connexions inattendus du service pendant l’exposition.
Quelles informations comparer
Relier le même fichier préservé à la version déployée puis à sa reproduction instrumentée. Séparer les résultats du laboratoire des événements de production, dont les protections et la disposition mémoire peuvent différer.
Ce que ces indices ne permettent pas de conclure
Le diagnostic WRITE établit une écriture invalide dans le test. Il ne prouve pas une exécution hostile sur le service réel. Des journaux absents ou incomplets empêchent de conclure sur certains effets.
Comment réagir
Retirer le processus de traitement vulnérable du traitement des entrées non fiables, préserver les éléments nécessaires puis appliquer le correctif. Vérifier les autres usages du lecteur. Si une activité hostile est établie, étendre l’enquête aux ressources accessibles avec ses droits ; le redémarrage seul ne corrige pas la copie.
Vérifier la correction
L’équipe responsable du système peut utiliser ces contrôles dans un environnement de test autorisé. Vous pouvez lire et comprendre le cas sans effectuer ces manipulations.
- Les tailles invalides sont refusées avant toute écriture, et les formats valides restent utilisables.
- Les tests instrumentés couvrent les limites et le calcul de taille, avec la version corrigée du lecteur.
- Le service charge effectivement le composant corrigé et conserve des droits limités.
À vous de raisonner
Le lecteur instrumenté signale WRITE avec 96 octets copiés pour 64 disponibles. Pouvez-vous conclure que le service de production a exécuté le code d’un attaquant ?
Quelle décision prendriez-vous, et sur quel indice vous appuieriez-vous ? Répondez avant d’ouvrir la correction.
Comparer avec le raisonnement expliqué
Non. Le test confirme la copie hors limites dans cette version et ce contexte. Pour conclure à une exécution détournée en production, il faut d’autres preuves sur l’activité du processus et les effets observés. Il faut corriger le défaut même si ces preuves manquent.
Consulter les détails techniques
Les extraits permettent de s’exercer à lire les traces du cas. Si vous disposez des outils et des accès nécessaires, le guide de collecte vous aide aussi à rechercher ces informations.
Lire les extraits commentés (reconstitution fictive)
Ces extraits contiennent des valeurs fictives. Certains champs correspondent à ceux des outils documentés ; d’autres réunissent plusieurs sources pour faciliter l’explication. Vos propres exports pourront donc avoir une autre forme. Lisez d’abord les explications des champs, puis repérez-les dans les extraits.
copy_bytes- Taille fictive de la copie présentée dans l’enveloppe pédagogique ; le rapport AddressSanitizer natif doit être lu séparément.
code_execution- État de preuve ajouté par l’analyste dans le cas : not_established signifie non démontré, et non impossible.
Reconstitution d’un traitement et de son analyse en laboratoire
JSONLEnveloppes pédagogiques inventées, pas un export natif AddressSanitizer. Les identifiants et mesures décrivent uniquement ce cas fictif ; aucun contenu de fichier n’est reproduit.
{"case":"img-42","environment":"service","build":"reader-a","result":"crash","code_execution":"not_established"}
{"case":"img-42","environment":"isolated_test","build":"reader-a-asan","access":"WRITE","available_bytes":64,"copy_bytes":96,"result":"out_of_bounds"}
{"case":"img-42","environment":"isolated_test","build":"reader-b-asan","result":"rejected_before_copy"}Préparer une collecte dans votre environnement
Utilisez les sources disponibles dans vos outils et auxquelles vous êtes autorisé à accéder. Vous pouvez comprendre la fiche sans posséder ces outils. Vérifiez que les journaux étaient activés pendant la période étudiée. Gardez l’export original avec son fuseau horaire et sa provenance dans un espace à accès restreint. Pour l’analyse, travaillez sur une copie dont vous avez retiré les secrets.
LLVM — rapport AddressSanitizer en environnement de test
- Où les trouver
- Dans la sortie d’erreur de la compilation instrumentée exécutée au laboratoire, ou son artefact conservé par la chaîne de tests. Lire le type d’accès, la pile d’appels et l’allocation décrite.
- Quoi relever
- Dans la reproduction isolée, relever le type d’accès, la taille, la pile d’appels et l’allocation concernée. Conserver la version compilée et les symboles utilisés pour interpréter le rapport.
- Accès et prérequis
- Reproduction autorisée sur des données factices, binaire instrumenté et symboles correspondant à sa version. Ces rapports ne sont pas présents par défaut en production et ne reconstituent pas une attaque passée ; protéger les données éventuellement contenues dans les diagnostics.
Service concerné — audit et historique à vérifier
- Où les trouver
- Dans l’outil d’administration ou les journaux du service concerné. Demander à son mainteneur où sont enregistrées les décisions d’autorisation et les opérations métier.
- Quoi relever
- Retrouver le fichier traité, son empreinte, la tâche, le processus de traitement et la version réellement chargée. Préserver les rapports de plantage sans les publier : ils peuvent contenir des données privées.
- Accès et prérequis
- Il n’existe ni fichier ni vocabulaire universels. Les champs proposés ici doivent être instrumentés s’ils manquent ; ne pas enregistrer mots de passe, jetons ou contenu privé intégral.
Linux — auditd
- Où les trouver
- Sur le serveur concerné, dans le fichier log_file d’auditd, généralement /var/log/audit/audit.log. Les enregistrements SYSCALL, EXECVE et PATH d’un même événement partagent le numéro dans msg=audit(...).
- Quoi relever
- Si la collecte existait, reconstituer les processus enfants et les opérations du processus de traitement pendant la période exposée. Un plantage et un lancement doivent être reliés au même hôte et au bon processus.
- Accès et prérequis
- Service actif et règles d’audit adaptées avant les faits. Linux n’enregistre pas automatiquement toutes les exécutions et lectures ; les arguments et chemins collectés peuvent être sensibles.
Si vous pensez être concerné
Si vous utilisez le service
Installez les mises à jour et signalez un plantage répété avec la version du logiciel et l’heure. Conservez le document concerné sans le rouvrir pour essayer de reproduire la panne.
Pour l’équipe qui exploite le service
- Conservez l’heure, la version du logiciel et le fichier concerné sans le rouvrir sur un poste de travail.
- Faites isoler le traitement vulnérable et appliquer le correctif validé.
- Recherchez les effets du plantage et toute activité inhabituelle du processus.
Pour comprendre votre situation et trouver de l’aide : obtenir une assistance sur 17Cyber. Dans une organisation, prévenez aussi le responsable ou prestataire chargé de la sécurité.
Sources et repères pour approfondir
- CWE-120 — Copie sans contrôle de taille — cwe.mitre.org
- Rapid7 — EternalBlue, corruption de mémoire SMB — rapid7.com
- LLVM — AddressSanitizer — clang.llvm.org




