[CULLT:5548] Re: audit PHP

Rached ALEYA rached.aleya at gmail.com
Ven 8 Mai 20:10:34 UTC 2009


Merci Tous pour vos réponse et comme d'habitude je fais un petit "backup" de
vos réponses :)

> Fida a écrit :
> Bonjour
>
> Je ne sais pas ce que tu veux dire exactement par Audit PHP.Tu parles
> d'outils de tests dynamiques, statiques, couvertures de code, etc?
> Moi par exemple j'ai utilisé un outil de profiling et de Debuggage  PHP qui
> s'appelle Xdebug.
>  Il s'installe facilement. et les traces qu'il fait apparaître sous
> trouvent dans les logs apache. Moi ça m'a beaucoup aider à optimiser du code
> PHP parce qu'il permet entre autre de détecter les scripts gourmand en
> matière de temps d'exécutions et de ressources.
>
> Sinon il y'a un bon site qui donne beaucoup de conseils en matière de
> qualimètrie logicielle s'appliquant à du code en PHP:
> http://phptothemoon.com/fr/content/tools-quality-php
>
>
> Nasreddine a écrit :
> La page recommandée par Fida contient une liste exhaustive de ce type
> d'outils, je note aussi KCachegrind (non présent dans cette liste)...
> Il existe une panoplie d'outils assez intéressants, tout dépends du type du
> profiling que tu veux faire.
>  XDebug avec KCachegrind peuvent présenter un duo intéressant (XDebug dans
> ce cas va générer des traces pour KCachegrind)...
> Après, tout dépend de la motivation du profiling, même des simples scripts
> codés à la volée (en php cli ou dans un langage de choix selon la situation)
> peuvent répondre à certains besoins.
>
> Rafik a écrit
>
>>
>>
>> Salut,
>>
>> Trop à dire, faisons bref ^^ faire de l'audit c'est simplement lire le
>> code source et l'examiner.
>> Le but est de repérer les potentielles failles exploitables, évaluer
>> la qualité du code (clarté, hard-coding, organisation en
>> classes/fonctions, requêtes db, inclusions, ...)...
>> Pour donner quelques petits exemples...
>> - tout d'abord, un petit coup d'oeil sur la config (php.ini,
>> .htaccess, display_errors, allow_url_fopen,... )
>> - Vérifier toutes les requests ($_REQUEST, $_GET, $_POST, ...), les
>> cookies et leurs niveau de sécurité.. (injections...)
>> - Nombre de requêtes vers la base de données et la taille des retours
>> ( ex: "SELECT var1, var2 ", au lieu de "SELECT *" vu que * est parfois
>> inutile, gâchis de ram... de même "SELECT var1, var2" au lieu de
>> "SELECT var1" et "SELECT var2", il faut réduire ne nombre de requêtes
>> au max ...)
>> - Les fichiers et sécurité des fichiers à inclure (via readfile(),
>> include_once()... ne jamais parser du code venant d'in fichier uploadé
>> par n'importe qui, ouvrir les fichiers de gros formats risque de
>> plantage, ...)
>> - Système de cache... éviter d'exécuter le code php à chaque page print
>> ça peut dépasser la sécurité et l'optimisation à la "beauté" du code...
>> - L'algorithme lui même, code en double, commentaires, séparation des
>> fonctions, nom des fonctions, les paramètres dans un fichier de
>> config....  il faut penser à celui qui va utiliser le code après la
>> retraite de son auteur original..
>> là un petit exemple de bonne fonction
>> /**
>> * ma fonction fait telle chose
>> * à partir de telles variable
>> * et elle retourne telle chose
>> *
>> * @param $var1 la premiere variable
>> * @param $var2 la deuxième variable
>> * @return le resultat, rien pour le moment
>> */
>>
>> faire_quelque_chose($var1, $var2) {
>>     //FIXME: ecrire cette fonction
>> }
>>
>> Il y a beaucoup beaucoup de choses à vérifier, faire... Je ne suis pas
>> vraiment connaisseur (je n'ai fait que assister un expert il y a
>> quelques années...). Pour faire de l'audit php, il faut être expert en
>> php, en sécurité, .. c'est un métier à part entière.
>> Mais il y a des niveaux d'audit bien sur... d'ailleurs, on le fait
>> soit même, toujours, par souci de bien faire, sans même s'en rendre
>> compte...
>> Pour ce qui est des outils, aucun script ne pourra jamais remplacer
>> l'intelligence humaine ou comprendre la bêtise humaine.
>> A chacun sa façon d'écrire son code bien qu'il y a certaines
>> conventions. Certains arrivent à reconnaitre l'auteur d'un code en
>> regardant, simplement !
>>
>> Perso j'utilise n'importe quel outils tant qu'il sache colorer le
>> php... aucun autre script bien qu'iil y a quelques un par-ci par-là
>> comme phpSecAudit (open source) et phpaudit (non-free).
>>
>> a+
>>
>> -- Rafik
>>
>> ALAYA a écrit :
>
 je viens de trouver cet outil (open source):
http://sourceforge.net/projects/simpletest/

À mon avis il vaut mieux faire des tests avec différents outils pour un
max de sécurité.

Nihed a écrit :
Pour les tests de sérurité il y a nikto
http://www.cirt.net/nikto2


 Chammam a écrit :
salem
je trouve un outil open-source multi-platforme (Linux,Win,Mac,...),ce
outil produit est écrit en python .
L'outil est : W3AF Web Application Attack and Audit Framework)  ses
différentes fonctionnalité est : tests d'injections SQL, CSRF, remote
OS, shell, ....
w3af est divisé en deux parties ; le core qui gère les processus et la
communication entre les plugins et les plugins classés en 8
catégories(découverte, audit, grep, attaques, affichage, modifieurs de
requètes , evasion et brute force).
l'outil disponible sur : http://sourceforge.net/projects/w3af

>
> *Bonne journée :)
> *
>
>
>
> --
> Cordialement
> Rached ALEYA
> Ingénieur Informatique Temps Réel
> Linux registred user #485643 (http://counter.li.org)
> ubuntu user : 26515 (http://ubuntucounter.geekosophical.net)
> Coordinateur groupe Rédaction Ubuntu-tn (http://ubuntu-tn.org    channel
> irc sur freenode : #ubuntu-tn)
> Membre de groupe de Projets : linuxac  (www.linuxac.org  channel irc sur
> freenode : #linuxac)
>



-- 
Cordialement
Rached ALEYA
Ingénieur Informatique Temps Réel
Linux registred user #485643 (http://counter.li.org)
ubuntu user : 26515 (http://ubuntucounter.geekosophical.net)
Coordinateur groupe Rédaction Ubuntu-tn (http://ubuntu-tn.org    channel irc
sur freenode : #ubuntu-tn)
Membre de groupe de Projets : linuxac  (www.linuxac.org  channel irc sur
freenode : #linuxac)
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://lists.ubuntu.com/archives/ubuntu-tn/attachments/20090508/b238b280/attachment.html>


Plus d'informations sur la liste de diffusion Ubuntu-tn