Scurit des applications PHP - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

Scurit des applications PHP

Description:

PHP interagit avec de nombreuses technologies. PHP peut servir de relais pour attaquer. une ... de code JavaScript arbitraire. D tournement du navigateur. Les ... – PowerPoint PPT presentation

Number of Views:44
Avg rating:3.0/5.0
Slides: 29
Provided by: damien94
Category:

less

Transcript and Presenter's Notes

Title: Scurit des applications PHP


1
Sécurité des applications PHP
  • AFUP Paris, France
  • 10 Novembre 2006

2
Intervenant
  • Damien Seguy
  • Editeur de Nexen.net
  • Mission conseils pour nexenservices.com
  • damien.seguy_at_nexen.net
  • http//www.nexen.net/conferences/

3
Agenda
  • Enjeux
  • Sécurité PHP
  • Sécurité des applications Web
  • Injections SQL
  • XSS
  • CSRF

4
Risques encourus
  • Exploitation indues des ressources
  • Destruction des données
  • Publication de données confidentielles
  • Détournement de votre site
  • Usurpation didentité
  • Ridicule...

5
Sécurité PHP
  • Exploitation des ressources PHP
  • Modifier un script en injectant du code PHP

6
Configuration
  • safe_mode, magic_quote,
  • register_global
  • register_long_arrays
  • open_basedir

7
Configuration
  • error_reporting, error_display, html_display, log
  • disable_functions, disable_class,
  • enable_dl
  • memory_limit, max_execution_time, max_post_size,
    max_upload_size
  • expose_php

8
Sécurité du code PHP
  • Éviter les inclusions dynamiques
  • require(), include() allow_url_fopen
  • include(_GET'action'.".inc")
  • PHP 5.2 allow_url_open_include
  • Téléchargement de fichiers PHP
  • eval() is evil()!
  • Assert()

9
Sécurité des applications Web
  • PHP interagit avec de nombreuses technologies
  • PHP peut servir de relais pour attaquer
  • une autre technologie
  • un autre site
  • Responsabilité du programmeur

10
Injections SQL
  • Objectifs
  • contournement de clause WHERE
  • SELECT login FROM USERS WHERE email
    '_GET'email''
  • SELECT login FROM USERS WHERE email 'admin'
    OR '1''1'
  • déni de service
  • corruption de tables

11
Contrer les injections SQL
  • Utilisation de conteneurs
  • Commandes préparées
  • SELECT login FROM USERS WHERE email ?
  • Procédures stockées / Variables SQL
  • Protection des données
  • mysql_real_escape_string()

12
Attaque XSS
  • Cross Site Scripting
  • A lorigine, via les frames
  • Une XSS est une attaque de lapplication Web, qui
    ses utilisateurs
  • Origine la possibilité dinjecter du code dans
    une page HTML

13
Attaque XSS
URL?XSS
HTML XSS
14
Risques des XSS
  • Vol de cookie
  • Usurpation d'identité
  • Exécution de code JavaScript arbitraire
  • Détournement du navigateur

15
Les voies des XSS
  • echo _GET'variable'
  • Balises HTML complètes
  • PHPltscript src"http//www.site.com/hack.js" /gt
  • ltA HREFhttp//66.102.7.147/gtPHPlt/Agt
  • ltA HREF"http//0x42.0x0000066.0x7.0x93/"gtPHPlt/Agt
  • ltA HREF"http//7777772E676F6F676C652E
    636F6D"gtPHPlt/Agt
  • gtPHPltscript src"//1113982867/hack.js" /gt

16
Les voies des XSS
  • Attributs HTML
  • ltIMG SRCjavascriptalert('XSS')gt
  • ltIMG SRCJaVaScRiPtalert('XSS')gt
  • ltIMG SRC"jav ascriptalert('XSS')"gt
  • ltIMG SRCjavascriptalert( String.fromCharCode(8
    8,83,83)) gt
  • ltform actionindex.phpgtltxss!gtlta" method

17
Défenses contre XSS
  • Concepts à retenir
  • Valider les données entrantes
  • Suivre les données validées
  • Protéger les données sortantes
  • Évitez les , , lt et gt
  • UTF-8, entité HTML, hexadécimal...

18
Virus XSS?
  • XSS sauvée en base de données
  • XSS retardées
  • XSS publiées
  • XSS administrateur

19
Propagation d'une XSS
20
CSRF
  • Cross Site Request Forgery
  • Exploite un site vulnérable pour quun
    utilisateur de ce site attaque un autre site
  • Ou le même site!
  • La seule protection de la victime est
    lidentification de lutilisateur
  • Aucun contact entre le pirate et le site

21
Attaque CSRF
URL?XSS
HTML XSS
Exécution
Victime
22
CSRF
  • Site victime
  • http//admin.site.com/efface.php?id33
  • Site vulnérable
  • ltimg src http//admin.site.com/efface.php?id33
    gt

23
CSRF
  • Il faut se méfier dun utilisateur quon a déjà
    identifié
  • Faire des identifications fréquentes
  • Réduire les temps de sessions
  • Exploiter GET / POST

24
Questions?
25
(No Transcript)
26
Autres attaques
  • Spam et emails
  • Injections HTTP
  • Injections LDAP, ABAP, etc
  • Exécution de commandes
  • Téléchargement de fichiers
  • AJAX!

27
Autres défenses
  • Chiffrement et signatures
  • Pot de miel pour attirer les abeilles
  • CAPTCHA
  • Gestion des mots de passe

28
Sessions
  • Sensibles aux XSS (vol de cookie)
  • Fixation de session
  • Attention aux hébergements partagés
  • Changer lidentifiant régulièrement
  • Relier la session au navigateur
Write a Comment
User Comments (0)
About PowerShow.com