web-dev-qa-db-fra.com

Comment effectuer un audit de sécurité pour une application PHP?

J'ai une application PHP que j'aimerais faire auditer pour la sécurité. Je connais la plupart des problèmes de sécurité généraux, mais je veux m'assurer de ne rien manquer.

Quelles mesures dois-je prendre pour effectuer un auto-audit? Quels outils sont disponibles? Quelle est la meilleure façon de trouver un auditeur tiers? Des recommandations?

Intéressé par l'audit whitebox/codereview et la blackbox/pentest?

44
VirtuosiMedia
27
M.S. Dousti

Vous devriez commencer avec n'importe quel proxy Web interactif, tel que proxy burp, paros, etc.
Moi-même, je suis partial envers Fiddler . Quel que soit l'outil que vous choisissez, cela vous permet d'examiner tout le flux de demandes/réponses et d'interagir avec les demandes post-javascript. Super endroit pour commencer.

Finalement, j'imagine le crawler de code OWASP supportera PHP aussi ... bien que pour le moment je ne connaisse aucun outil automatisé gratuit pour cela. Juste des globes oculaires manuels pour maintenant...
Bien sûr, vous pouvez opter pour l'un des grands fournisseurs, par exemple Fortify, Ounce Labs, etc. - mais c'est assez cher et une autre boîte de vers ...

11
AviD

Jetez un œil à Skipfish de Google: http://code.google.com/p/skipfish/wiki/SkipfishDoc

6
Nev Stokes

Il y a des tonnes d'outils et c'est vraiment une préférence personnelle sur ce que l'on utilisera pour un pentest. Essayez donc tous ceux mentionnés par moi et d'autres et choisissez ceux qui vous conviennent le mieux.

Pour l'examen du code de sécurité (test de la boîte blanche), je recommanderais d'utiliser DÉCHIRE . C'est le meilleur parmi ceux que j'ai essayés.

Pour faire des tests de blackbox, vous avez certainement besoin d'un proxy d'interception. Il y en a beaucoup, mais je vous suggère de jeter un œil à Fiddler si vous êtes sous Windows. Burp / WebScarab / Zed Attack Proxy sont également très bien. Si vous souhaitez automatiser certains des tests d'injection, récupérez quelques charges utiles courantes de fuzzdb .

Familiarisez-vous également avec les modules complémentaires du navigateur comme Firebug et Chrome Developer Tools, ils sont d'une grande aide.

Enfin, essayez les signets de Open Penetration Testing Bookmarks Collection . C'est une énorme liste (juste pour que vous sachiez combien d'outils sont là), mais il y a beaucoup de gemmes à l'intérieur.

6
Krzysztof Kotowicz

Si vous voulez vous assurer de ne rien manquer, la meilleure façon est de demander à un expert de l'examiner. Trop de problèmes surviennent dans les sites Web où un développeur ne sait tout simplement pas qu'il ne suit pas les meilleures pratiques, ou ne parvient pas à comprendre que les pratiques "sécurisées" courantes ne sont pas du tout sécurisées! (par exemple, "Je n'ai pas besoin de paramétrer mon SQL tant que je remplace les guillemets simples par des guillemets simples avec barre oblique inverse, n'est-ce pas??").

Si vous êtes une entreprise, embauchez une entreprise de pentesting externe pour faire un test de votre application. Ils ne sont pas très chers et trouveront la plupart des problèmes. Il est certainement moins coûteux pour une entreprise d'embaucher une entreprise de pentesting que de perdre des jours de temps à former les employés à plein salaire comment trouver certains bugs, et c'est certainement moins cher que d'essayer de reconstruisez votre entreprise après une violation majeure des données client.

3
SecurityMatt