CSI4139 / CEG4399 Design of Secure Computer Systems
Transcription
CSI4139 / CEG4399 Design of Secure Computer Systems
CSI4139 / CEG4399 Design of Secure Computer Systems Sécurité logiciel: quelques exemples Prepared by Guy-‐Vincent Jourdan Web Applica7ons 1. 2. 3. 4. 5. 6. IP TCP (SSL/TLS) HTTP (HTTPS) HTML Browser’s scrip7ng engines Quelques faits 1. Aucun contrôle côté client 2. HTTP protocole stateLESS => u7lise les « session ID » 1. Vous êtes votre ID 2. Géneralement, les ID sont dans les « cookies » 3. Les applica7ons Web contournent les pare-‐ feux (les WAF ne sont pas très effec7fs non plus) OWASP The Open Web Applica7on Security Project hep://owasp.org Le “top 10” pour 2010 : hep://owasptop10.googlecode.com/files/ OWASP%20Top%2010%20-‐%202010.pdf OWASP top ten – 2010 • • • • • • • • • • A1-‐Injec7on A2-‐Cross Site Scrip7ng (XSS) A3-‐Broken Authen7ca7on and Session Management A4-‐Insecure Direct Object References A5-‐Cross Site Request Forgery (CSRF) A6-‐Security Misconfigura7on A7-‐Insecure Cryptographic Storage A8-‐Failure to Restrict URL Access A9-‐Insufficient Transport Layer Protec7on A10-‐Unvalidated Redirects and Forwards OWASP top ten – 2010 A1-‐Injec7on && A2-‐Cross Site Scrip7ng (XSS) • 2 aspects du même problème • Il s’agit des vulnérabilités plus communes – SQL, LDAP – HTML – XSS – “deuxième ordre” OWASP top ten – 2010 A4-‐Insecure Direct Object References • Un paramètre est envoyé côté client de façon non sécuritaire – Modifica7on de données (e.g. changement de prix) – Contournement des mécanismes de contrôle d’accès (e.g. accès à un élément qui n’est pas à moi) OWASP top ten – 2010 A5-‐Cross Site Request Forgery (CSRF) • Exploite la logique des cookies et HTML OWASP top ten – 2010 A8-‐Failure to Restrict URL Access • Time of Check to Time of Use (TOCTOU) • Directory browsing OWASP top ten – 2010 A9-‐Insufficient Transport Layer Protec7on • Par7al use of SSL/ mixed pages • “Secure” cookies (SSL only) Autres • Clickjacking heps://www.owasp.org/index.php/Clickjacking “out of context” data disclosure Source: http://blog.quaji.com/2009/08/facebook-csrf-attack-full-disclosure.html Software Security Seminar Browser fingerprin7ng Electronic Frontier Foundation (eff.org) : est ce que votre browser vous identifie ? http://panopticlick.eff.org/ Voir aussi: https://www.eff.org/deeplinks/2010/01/primer-information-theory-and-privacy Buffer overflow Imaginons la fonction suivante : Function f(int A, int B){ Int someVariable[50]; … } Dans le code, la fonction est appelée : … f(1,2); Ce code, une fois compilé, va contenir l’appel, … qui va être loadé à une adresse, disons @1234 : … @1233 PUSH something @1234 CALL f(1,2) @1235 … Buffer overflow . L’appel va empiler l’adresse de retours (@1234), les paramètres (1 et 2), puis les variables local statiques ( int someVariable[50]) Pile: someVariable[0] … someVariable[48] someVariable[49] 2 1 @1234 Buffer overflow En écrivant au-delà de someVariable[49], on commence à écraser d’abord les paramètres, puis l’adresse de retours. Pile avant: Pile après: someVariable[0] … someVariable[48] => (address: @xyz) someVariable[49] 2 1 @1234 someVariable[0] … Some really => (address: @xyz) Scary nasty Code 1 @xyz Buffer overflow Solutions: • OO code • Non executable stack • stackguard Logique malicieuse Malwares: Sous unix, créer le script nommé “ls” suivant: - augmente mes droits, crée un compte etc.. - rm ./ls - ls $* => Ne pas mettre “.” au début du path Logique malicieuse Processus lapins : - while fork(); - while !fork(); - while true { Mkdir x Chdir x } Logique malicieuse • Cheval the Troie : voir l’article de Ken Thompson • Vers: se propage tout seul. Voir “internet Worm” (Morris worm) en 88 • Virus • Résidents • “stealth” • Polymorphiques: virus chiffrés • Antivirus : white list vs black list