vulnérabilités logicielles hantent constamment programmeurs et développeurs . La chaîne bug de format est une telle vulnérabilité , et il peut faire planter des programmes ou exécuter du code malveillant . Le problème avec la chaîne de format tourne autour de l'entrée d'utilisateur cochée. La commande d'impression en C peut être un exemple de ce bug . Un « printf () » est une entrée de l'utilisateur incontrôlée qui permet d'imprimer à partir d'emplacements distants. Cette commande est utilisé seul, donne pirates possibilités de détourner le code à leurs fins. Description
développeurs utilisent le code de la famille printf pour les chaînes de format ou la sortie de données de contrôle . Le code de la famille printf comprend des commandes telles que , toutes les données au format fprintf , vprintf et sprintf mais écrire à des endroits différents. Bogues de chaîne de format se produisent lorsque les développeurs négligent d'imposer des restrictions nécessaires sur le code de la famille printf . Les pirates peuvent alors entrer leur code grâce à ces codes de restriction libres, ou les lacunes , et détourner le code. Le résultat , selon les auteurs de " Le Guide Shellcoders , " est que le pirate peut alors être en mesure d'afficher des informations privées et d'exécuter du code arbitraire.
Format jetons
fixation formats bugs chaîne peut être indolore, et le développeur du logiciel suffit d'ajouter un jeton de format comme "% s " ou "% x". Par exemple , le développeur peut entrer " printf ( "% s " , input) " à la ligne de commande .
Le jeton format restreint les entrées de format et empêche les pirates d'exécuter du code nuisible via des failles présentes dans le code d'origine. Bogues de chaîne de format se produisent généralement lorsque les programmeurs à développer du code pour les grands programmes . Au cours du développement de code , les programmeurs peuvent se concentrer sur la grande image, et donc négliger la chaîne de format . La chaîne de format décochée agit alors comme une fenêtre d'opportunité que l'attaquant peut utiliser pour manipuler le code.
Débordements de tampon
chaînes de format peuvent également créer tampon problèmes de débordement . Quand un programme dépassements de la limite de la mémoire tampon lors de l'écriture des données, buffer overflow se produit , et le programme peut écraser la mémoire adjacente. Il s'agit d'une grave menace en termes de sécurité de la mémoire d'un programme. Problèmes de débordement de mémoire tampon sont souvent associés à C et C + + . Les développeurs de programmes devraient s'assurer de vérifier les limites de tampon pour contrer les anomalies de type buffer overflow . Quand il n'y a pas de format spécifiée pour une fonction du temps d'exécution C , tout code arbitraire peut être exécuté par l'échappatoire spécifié . Depuis que le code ne peut pas savoir les limites de la mémoire tampon , il peut provoquer un buffer overflow , et écraser la mémoire .
Minimiser le risque
Vous pouvez éviter les bogues de chaîne de format par suivant quelques règles de base de la programmation . Afin de minimiser les occurrences de bogues de chaîne formants , installer uniquement les services dont vous avez besoin , et ne permettre l'accès à ces services pour les personnes de votre groupe plus grand , selon les auteurs de " Proofing pirater votre réseau. " N'oubliez pas de spécifier un chaîne de format pour une déclaration " printf" . S'il ya des chaînes de format personnalisées dans le code , prenez un soin particulier lors de l'écriture des privilèges de ces chaînes de format auto-définis .