1 / 28

Sécurité des applications PHP

Sécurité des applications PHP. AFUP Paris, France 10 Novembre 2006. Intervenant. Damien Seguy Editeur de Nexen.net Mission conseils pour nexenservices.com damien.seguy@nexen.net http://www.nexen.net/conferences/. Agenda. Enjeux Sécurité PHP Sécurité des applications Web

mervyn
Download Presentation

Sécurité des applications PHP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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@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 d’identité • 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 FROMUSERSWHEREemail = '$_GET['email']'; • SELECT login FROMUSERSWHEREemail = '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 FROMUSERSWHEREemail = ?; • Procédures stockées / Variables SQL • Protection des données • mysql_real_escape_string()

  12. Attaque XSS • Cross Site Scripting • A l’origine, via les frames • Une XSS est une attaque de l’application Web, qui ses utilisateurs • Origine : la possibilité d’injecter 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 • PHP<script src="http://www.site.com/hack.js" /> • <A HREF=http://66.102.7.147/>PHP</A> • <A HREF="http://0x42.0x0000066.0x7.0x93/">PHP</A> • <A HREF="http://%77%77%77%2E%67%6F%6F%67%6C%65%2E%63%6F%6D">PHP</A> • >PHP<script src="//1113982867/hack.js" />

  16. Les voies des XSS • Attributs HTML • <IMG SRC=javascript:alert('XSS')> • <IMG SRC=JaVaScRiPt:alert('XSS')> • <IMG SRC="jav ascript:alert('XSS');"> • <IMG SRC=javascript:alert( String.fromCharCode(88,83,83)) > • <form action=”index.php”><xss!><a" 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 “, ‘, < et > • 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 qu’un utilisateur de ce site attaque un autre site • Ou le même site! • La seule protection de la victime est l’identification de l’utilisateur • 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?id=33 • Site vulnérable • <img src=” http://admin.site.com/efface.php?id=33”>

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

  24. Questions?

  25. Autres attaques • Spam et emails • Injections HTTP • Injections LDAP, ABAP, etc • Exécution de commandes • Téléchargement de fichiers • AJAX!

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

  27. Sessions • Sensibles aux XSS (vol de cookie) • Fixation de session • Attention aux hébergements partagés • Changer l’identifiant régulièrement • Relier la session au navigateur

More Related