Bonsoir, Voici la traduction du dernier exemple d'utilisation d'un logiciel d'audit, RATS.
Merci d'avance pour vos relectures. -- Simon Paillard <[EMAIL PROTECTED]>
#use wml::debian::translation-check translation="1.7" maintainer="Simon Paillard" #use wml::debian::template title="Exemple d'audit automatisé : RATS" #use wml::debian::recent_list <p><a href="http://packages.debian.org/rats">RATS</a> est un scanner généraliste pour détecter des problèmes de sécurité potentiels dans de nombreux langages de programmation.</p> <h2>Utiliser RATS</h2> <p>Utiliser RATS est simple, cela se résume à l'invoquer avec le nom du répertoire à examiner. Chaque fichier source reconnu sera examiné. RATS comprend plusieurs langages de programmation : C, Perl, PHP et Python, et traitera tous les fichiers source reconnus.</p> <p>En plus de la liste du répertoire à examiner, il existe plusieurs options de ligne de commande qui sont décrites dans la page du manuel.</p> <p>Les options les plus utiles sont celles concernant la sortie, telles que :</p> <ul> <li>--warning <niveau> (règle le niveau de failles à rapporter) <ul> <li>1 inclue seulement les vulnérabilités à risque par défaut à de haut risque.</li> <li>2 inclue les vulnérabilité à risque moyen (niveau par défaut).</li> <li>3 inclue les vulnérabilités à risque faible.</li> </ul></li> <li>--xml (sortie en XML)</li> <li>--html (sortie en HTML)</li> </ul> <p>En supposant que le <a href="test.c.html">fichier de test</a> situé dans le répertoire courant, sans autre fichier source nous pouvons invoquer le scanner par la commande suivante :</p> <pre> rats --warning 1 --html . >sortie.html </pre> <p>Un fichier HTML contenant les résultats de l'examen sera produit, et pourra être chargé dans un navigateur.</p> <h2>Les résultats</h2> <p>Utiliser RATS sur notre <a href="test.c.html">code d'exemple</a> produit la sortie suivante :</p> <hr /> <blockquote> <b>Severity: High</b><br /> Issue: fixed size global buffer<br/> Extra care should be taken to ensure that character arrays that are allocated on the stack are used safely. They are prime targets for buffer overflow attacks. <br/> <ul style="list-style-type: none;"><li> File: <b>./test.c</b><br/>Lines: 10 11 12 </li></ul> <b>Severity: High</b><br/> Issue: strcpy<br/> Check to be sure that argument 2 passed to this function call will not copy more data than can be handled, resulting in a buffer overflow. <br/> <ul style="list-style-type: none;"><li> File: <b>./test.c</b><br/>Lines: 18 </li></ul> <b>Severity: High</b><br/> Issue: getenv<br/> Environment variables are highly untrustable input. They may be of any length, and contain any data. Do not make any assumptions regarding content or length. If at all possible avoid using them, and if it is necessary, sanitize them and truncate them to a reasonable length. <br/> <ul style="list-style-type: none;"><li> File: <b>./test.c</b><br/>Lines: 22 24 </li></ul> <b>Severity: High</b><br/> Issue: sprintf<br/> Check to be sure that the format string passed as argument 2 to this function call does not come from an untrusted source that could have added formatting characters that the code is not prepared to handle. Additionally, the format string could contain `%s' without precision that could result in a buffer overflow. <br/> <ul style="list-style-type: none;"><li> File: <b>./test.c</b><br/>Lines: 24 </li></ul> <b>Severity: High</b><br/> Issue: popen<br/> Argument 1 to this function call should be checked to ensure that it does not come from an untrusted source without first verifying that it contains nothing dangerous. <br/> <ul style="list-style-type: none;"><li> File: <b>./test.c</b><br/>Lines: 33 </li></ul> <b>Severity: High</b><br/> Issue: printf<br/> Check to be sure that the non-constant format string passed as argument 1 to this function call does not come from an untrusted source that could have added formatting characters that the code is not prepared to handle. <br/> <ul style="list-style-type: none;"><li> File: <b>./test.c</b><br/>Lines: 42 </li></ul> Total lines analyzed: <b>49</b><br> Total time <b>0.001723</b> seconds<br> <b>28438</b> lines per second<br> </blockquote> <hr /> <p>La sortie produite est plutôt volumineuse, bien que le code en lui-même soit très court. Cela montre un des reverts de l'examin automatique de code : le volume énorme des résultats produits.</p> <h2>Comprendre les résultats</h2> <p>La sortie produite est en fait constituée de la description de chacune des fonctions rencontrées, du numéro de la ligne où la faille a été détectée ainsi que d'une description du problème. (Puisque nous avons utilisé « --warning » pour restreindre la sortie aux fonctions à haut risque, nous avons quelque peu réduit la longueur de la sortie).</p> <p>Chacun des problèmes découverts devrait être examiné manuellement pour voir s'il y a vraiment un problème, ou si c'était un faux positif (ie. une fonction susceptible d'être mal utilisée mais pourtant utilisée correctement).</p> <p>Dans ce cas-là, nous pouvons voir que toutes les vulnérabilités de notre code ont été repérées, mais ce n'est pas vraiment clair sans parcourir le code avec un éditeur pour faire correspondre les lignes en question.</p> <p>Une omission importante est faite dans la sortie : en effet, celle-ci n'inclue pas les lignes concernées – un outil comme <a href="flawfinder">flawfinder</a> vous permet de les inclure.</p> <hr /> <p><a href="..">Retour à la page du projet d'audit</a> | <a href="index">Retour à la page des exemples d'audit</a></p>
signature.asc
Description: This is a digitally signed message part