11_php_securite.pdf

(247 KB) Pobierz
HERVÉ SCHAUER CONSULTANTS
Cabinet de Consultants en Sécurité Informatique depuis 1989
Spécialisé sur Unix, Windows, TCP/IP et Internet
Forum AFUP 2003
Sécurité PHP
<Alain.Thivillon@hsc.fr>
Alain Thivillon
Constat d'un consultant en sécurité ...
Les problèmes de sécurité se sont déplacés
Jusqu'en 1999/2000, les plus gros problèmes étaient trouvés dans
l'infrastructure (routeurs, filtrages) ou sur les logiciels serveurs (failles IIS,
failles Apache, sendmail, ...)
Ces problèmes sont de mieux en mieux appréhendés par les administrateurs
et les hébergeurs (upgrade massif de machines, application automatisée des
correctifs)
Les applications sont de plus en plus la cible des attaques
La sécurité des applications n'a pas évolué
Elle a même probablement baissé (les applications se complexifiant)
On voit des horreurs, même par de grands noms de l'industrie logicielle ....
Les langages de programmation sont indirectement responsables
2 / 22
Copyright Hervé Schauer Consultants 2000­2003  ­  Reproduction Interdite
Plan
Analyse et Classification des Risques
Distinguer trois types de vulnérabilités PHP
Distinguer les cibles
Exemples de problèmes
Recommandations
Compilation, Installation
Configuration
Programmation
Méthodes
Actions en amont
Audits, ...
3 / 22
Copyright Hervé Schauer Consultants 2000­2003  ­  Reproduction Interdite
Vulnérabilités PHP - PHP Lui même
Vulnérabilités dans l'interpréteur
Directes dans le traitement des données réseau (exemple «File Upload
Vulnerability»
http://www.cert.org/advisories/CA-2002-05.html)
Locales dans l'interpréteur
Dans les modules annexes (exemple IMAP)
Dans les bibliothèques (OpenSSL, Zlib, ...)
Dues à l'implémentation de fonctions (random, suivi de session, safe-mode,
mail ...)
Causes
Coder en C est un art difficile !
La qualité du code dans PHP est très variable selon les modules
C'est aussi le cas ailleurs !
4 / 22
Copyright Hervé Schauer Consultants 2000­2003  ­  Reproduction Interdite
Vulnérabilités PHP - Langage - 1
Langage faiblement typé
Variables non déclarées, non initialisées
Attention aux effets de bord
Pollution de l'espace de nommage
Jusqu'à récemment, les variables HTTP étaient automatiquement injectées:
http://www.site.com/huhu.php?toto=a&tutu=b
$toto = "a";
$tutu = "b";
Idem pour valeurs des POST ou des COOKIE
Facilité pour atteindre des fichiers sur le réseau:
$file = "http://www.site.com/marque.txt";
$fh = open($file);
5 / 22
Copyright Hervé Schauer Consultants 2000­2003  ­  Reproduction Interdite
Zgłoś jeśli naruszono regulamin