Vulnérabilités logicielles. Jean-Marc Robert
|
|
|
- Augustin Aubin
- il y a 10 ans
- Total affichages :
Transcription
1 Vulnérabilités logicielles Jean-Marc Robert
2 Plan de présentation Vulnérabilités ce qu on en dit Vulnérabilités la responsabilité de Exemples tirés 19 Deadly Sins of Software Security CWE/SANS Top 25 OWASP Top Conclusions Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 2
3 Vulnérabilités ce qu on en dit En 2000, David Wagner de UC Berkeley déclarait que 50 % des vulnérabilités logicielles rapportées par le CERT de 1988 à 1998 étaient dues aux débordements de tableaux. A First Step Towards Automated Detection of Buffer Overrun Vulnerabilities, NDSS CERT: Computer Emergency Response Team Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 3
4 Vulnérabilités ce qu on en dit En 2004, le directeur de la National Cyber Security Division du U.S. Homeland Security déclarait que 95 % des failles de sécurité logicielles étaient dues à 19 erreurs bien connues. Selon les auteurs de 19 Deadly Sins of Software Security. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 4
5 Vulnérabilités ce qu on en dit En 2006, Gary McGraw de Cigital déclarait que les failles de sécurité logicielles étaient dues à 50% aux erreurs de programmation et à 50% aux erreurs de conception. Software Security Building Security In. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 5
6 Vulnérabilités la responsabilité de Tous les développeurs [3] Dépassement de capacité d entier [6] Cas d erreurs non traités [12] Donnée non protégée [13] Fuite d information [14] Accès erroné à un fichier [16] Concurrence critique [19] Méthode non conviviale Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 6
7 Vulnérabilités la responsabilité de Développeurs C / C++ [1] Débordement de tableaux [2] Problème de format de chaînes Développeurs d applications utilisant des bases de données [4] Injection SQL Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 7
8 Vulnérabilités la responsabilité de Développeurs Web (JSP, ASP, ASP.NET, PHP, CGI, Perl) et d applications client-serveur [5] Injection de commandes [7] Injection de scripts à distance [8] Trafic non protégé [9] URL magique et champs caché [10] Mauvaise utilisation de SSL/TLS [15] Mauvaise résolution d une adresse réseau Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 8
9 Vulnérabilités la responsabilité de Développeurs d applications cryptographiques ou utilisant des mots de passe [8] Trafic non protégés [10] Mauvaise utilisation de SSL/TLS [11] Mauvaise utilisation de mot de passe [17] Échange de clés non authentifié [18] Générateur pseudo-aléatoire faible Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 9
10 Vulnérabilités le Top 25 CWE/SANS Interactions non-sécurisées entre les composantes [1] Cross-Site Scripting (XSS) [2] Injection SQL [4] Cross-Site Request Forgery (CSRF) [8] Téléchargement de fichier [9] Injection de commande de l OS [17] Information provenant de messages d erreurs [23] Redirection d URL [25] Concurrence critique Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 10
11 Vulnérabilités le Top 25 CWE/SANS Gestion risquée des ressources (Buffer overflows) [3] Débordement de tableau (copier) [12] Débordement de tableau (taille trop petite) [15] Débordement de tableau (calcul de l index) [18] Débordement de tableau (calcul de la taille) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 11
12 Vulnérabilités le Top 25 CWE/SANS Gestion risquée des ressources [7] Contrôle lors de l utilisation (Path Traversal) [14] Contrôle lors de l utilisation (PHP File Inclusion) [13] Traitement inadéquat des exceptions [16] Dépassement de capacité d entier [20] Téléchargement de code sans test d intégrité [21] Allocation de ressource sans contrainte Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 12
13 Vulnérabilités le Top 25 CWE/SANS Défense poreuse [5] Mauvais contrôle d accès (autorisation) [6] Décision basées sur des données non fiables [10] Absence de chiffrement [11] Justificatif figé dans le code [19] Mauvaise authentification [22] Mauvaise attribution de permissions à un actif [24] Algorithme cryptographique non fiable Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 13
14 Vulnérabilités le Top [A1] [A2] [A3] [A4] [A5] Injection Cross-Site Scripting (XSS) Violation de gestion d authentification et de session Référence directe non sécurisée à un objet Cross-Site Request Forgery (CSRF) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 14
15 Vulnérabilités le Top [A6] [A7] [A8] [A9] [A10] Mauvaise configuration de sécurité Stockage cryptographique non sécurisé Manque de restriction d accès URL Protection insuffisante de la couche Transport Redirection et renvoi non validé Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 15
16 Quelques définitions Vulnérabilité (vulnerability): Défaut ou faiblesse d un système dans sa conception, sa mise en œuvre ou son contrôle interne pouvant mener à une faille de sécurité ou à la violation de sa politique de sécurité. Trou de sécurité qui offre un vecteur d'attaque potentiel sur le système. Exploit (exploit): Un élément de programme permettant à un individu ou un logiciel malveillant d'exploiter une faille de sécurité informatique dans un système d'exploitation ou dans un logiciel. L'exploit exploite la vulnérabilité et exécute la charge utile. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 16
17 Quelques définitions Charge utile (payload): L'exécution de la charge utile est l'objectif ultime de l'attaquant et c'est ici que l'action malicieuse se situe. Détruire des fichiers, faire un déni de service, augmenter ses privilèges, obtenir un terminal (shell) ou installer un cheval de troie (trojan) sont des exemples de charge utiles Jean-Marc Robert, ETS
18 Débordement de tableaux Mise-en-œuvre Un programme permettant d écrire des données au-delà de la limite d un tableau. Dans le meilleur des cas, cette vulnérabilité peut entrainer un comportement erratique du programme fautif (déni de service). Dans le pire des cas, l attaquant exploitant cette faille peut exécuter un code malicieux qu il a construit. Principalement: C et C++ Mais: Java, C# et VB peuvent aussi être vulnérables. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 18
19 Exemple I void copy (char *in) { char buf[16]; strcpy (buf, in);... } int main (int argc, char *argv[]) {... copy (argv[1]);... } Ne jamais faire confiance aux données provenant des utilisateurs! Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 19
20 Exemple II char buf[20], path[20]; char prefix[] = ; strcpy (buf, prefix); strncat (buf, path, sizeof (buf)); au lieu de strncat (buf, path, sizeof (buf) sizeof (prefix)); Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 20
21 Exemple III char buf[20], data[32]; strncpy (buf, data, strlen (data)); au lieu de strncpy (buf, data, strlen (buf)); La liste des erreurs menant à un débordement de tableaux est impossible à énumérer! Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 21
22 Explications Les débordements de tableaux exploitables appartiennent généralement à deux classes: Les débordements sur la pile (Stack overflow Stack smashing). Les débordements sur le tas (Heap overflow). Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 22
23 Explications Stack overflow void copy (char *in) { } char buf[16]; strcpy (buf, in); int main (int argc, char *argv[]) { copy (argv[1]); } main bloc d activation Pointeur de bloc Pointeur de pile main bloc d activation Paramètres fonction appelée Adresse de retour (ret) Pointeur de bloc (SFP) copy bloc d activation variable buf Pointeur de bloc Pointeur de pile Avant l appel Après l appel Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 23
24 Explications Stack overflow void copy (char *in) { char buf[16]; strcpy (buf, input); } int main (int argc, char *argv[]) { copy (argv[1]); } Adresse de retour main bloc d activation Paramètres fonction appelée Adresse de retour Pointeur de bloc Pointeur de bloc Shellcode Après le débordement buf[1] buf[0] Avant le débordement Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 24 Pointeur de pile
25 Vulnérabilités CVE Utilisé par le vers Slammer. Nombreux débordements de tableau (SQL Server 2000 Resolution Service) permettant à un attaquant distant de causer un déni de service ou d exécuter un code malicieux. CVE Utilisé par le vers Sasser. Débordement de tableau (Active Directory du Local Security Authority Subsystem Service (LSASS)) permettant à un attaquant distant d exécuter un code malicieux. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 25
26 Vulnérabilités CVE Débordement de tableau (Adobe Reader et Acrobat 9.x avant 9.3.3, et 8.x avant pour Windows et Mac OS X) permettant à un attaquant distant de causer un déni de service ou d exécuter un code malicieux. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 26
27 Statistiques National Vulnerability Database ( Recherche en utilisant les mots clés: Buffer overflow mais sans analyse de pertinence. Il y a 6,156 entrées répondant à cette recherche (sur ~ 52, 452) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 27
28 Antidotes Formation Revue de code Visuelle Automatique (de nombreux outils d analyse existent) Syntaxique Analyse statique Audit (interne ou externe) Valider toutes les données des usagers. Protection de la pile Security by obscurity Utilisation d un témoin entre l adresse de retour et les variables sur la pile. Pile non exécutable Nécessite le support du processeur. Entraine des problèmes pour la compilation JIT de Java. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 28
29 Dépassement de Mise-en-œuvre capacité d entier Un programme ayant une manipulation d entier inadéquate. Dans le meilleur des cas, cette vulnérabilité peut entrainer un comportement erratique du programme fautif (déni de service). Dans le pire des cas, l attaquant exploitant cette faille peut exécuter un code malicieux qu il a construit. La plupart des langages de programmation. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 29
30 Exemple I Débordements de tableaux en C et C++ non prévus const long MAX_LEN = 0x7fff; char data[0x7fff]; short len = strlen (input); if (len < MAX_LEN) strncpy (data, input, strlen(input)); Mais si la longueur de input est plus grande de 32K, la valeur de len sera négative. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 30
31 Exemple II Débordements de tableaux en C et C++ non prévus ptr = malloc (sizeof(type) * count); for (i=0; i < count; i++) assign value to ptr[i] La longueur de ptr n est pas forcément count, p.e. 256 * 128 < 0 pour short int Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 31
32 Exemple III OpenSSH 3.3 nresp = packet_get_int(); if (nresp > 0) { response = xmalloc(nresp*sizeof(char*)); for (i = 0; i > nresp; i++) } response[i] = packet_get_string(null); Si nresp = , xmalloc() réservera un espace de 0 byte! Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 32
33 Vulnérabilités CVE Débordement d entier (PCRE Perl Compatible Regular Expressions avant 6.2 et utilisé dans Python, Ethereal, and PHP) permettant à un attaquant distant d exécuter un code malicieux. CVE Débordement d entier (client BitchX IRC jusqu à 1.0-0c19) permettant à un serveur malicieux distant de causer un déni de service. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 34
34 Vulnérabilités CVE Débordement d entier (Adobe Flash Player avant pour Windows, Mac OS X, Linux, et Solaris et avant pour Android) permettant à un attaquant distant d exécuter un code malicieux. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 35
35 Statistiques National Vulnerability Database Recherche en utilisant les mots clés : Integer overflow mais sans analyse de pertinence. Il y avait 894 entrées répondant à cette recherche (sur ~ 46,704) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 36
36 Antidotes Formation Revue de code Visuelle Automatisée Cas particuliers Certaines options de compilation (p.e. gcc ftrapv) Détection des débordements lors de l exécution dans le cas des entiers signés. Audit (interne et externe) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 37
37 Mise-en-œuvre Injections SQL Un programme permettant de soumettre à une base de données des requêtes SQL malformées ou trop génériques. Dans le meilleur des cas, cette vulnérabilité peut entrainer un comportement erratique de la base de données (déni de service). Dans le pire des cas, l attaquant exploitant cette faille peut obtenir et altérer des informations auxquelles il ne devrait pas avoir accès. Intégrité et confidentialité affectés. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 39
38 Explications De nombreuses applications utilisent des informations provenant d un usager afin de construire leurs requêtes SQL. Par exemple, le nom de l usager, le nom d une application, etc. Malheureusement, peu de validations sont faites ou elles le sont de façon erronée. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 40
39 Exemple I (SQL) SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='$user_input' ORDER BY PRICE Si $user_input='\'; UPDATE PRODUCT SET PRICE = 0; --' Provenant de l usager sans aucun test Alors le résultat sera: SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=''; UPDATE PRODUCT SET PRICE = 0; ' ORDER BY PRICE sera considéré comme un commentaire (car --) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 41
40 Exemple II (PHP) $id = $_COOKIE["mid"]; mysql_query("select MessageID, Subject FROM messages WHERE MessageID = '$id'"); Si l usager peut modifier le cookie, $id = 1432' or '1' = '1 Alors le résultat sera: SELECT MessageID, Subject FROM messages WHERE MessageID = '1432' or '1' = '1 Solution: $id = intval($_cookie["mid"]); Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 42
41 Vulnérabilités CVE Injection SQL (ASPTicker via le champ PATH_INFO) permettant à un attaquant d exécuter une commande SQL arbitraire. CVE Injection SQL (MitriDAT Web Calendar Pro ) permettant à un attaquant de modifier les requêtes SQL déni de service. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 43
42 Statistiques National Vulnerability Database Recherche en utilisant les mots clés : SQL Injection mais sans analyse de pertinence. Il y avait 5,591 entrées répondant à cette recherche (sur ~ 52, 452) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 44
43 Antidotes Formation Revue de code Visuelle Audit (interne et externe) Valider toutes les données des usagers. Expressions régulières pour les requêtes. Ne jamais utiliser la concaténation ou la substitution de chaînes Utiliser des requêtes prédéfinies ou paramétrées. Utiliser des procédures prédéfinies pour accéder à la BD Ne pas utiliser un nom de table provenant d un usager avec la BD Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 45
44 Injections Mise-en-œuvre de commandes de l OS Un programme permettant de soumettre au système d exploitation des commandes génériques. Dans le meilleur des cas, l attaquant exploitant cette faille peut obtenir des informations auxquelles il ne devrait pas avoir accès. Dans le pire des cas, l attaquant exploitant cette faille peut exécuter un code malicieux qu il a construit. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 46
45 Explications De nombreuses applications utilisent des informations provenant d un usager afin de construire les commandes soumises à l OS. Par exemple, le nom de l usager, le nom d une application, etc. Malheureusement, peu de validations sont faites ou elles le sont de façon erronée. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 47
46 Exemple (PHP) $username = $_POST["user"]; $command = 'ls -l /home/'. $username; system($command); Si l usager peut entrer le nom: ;rm -rf / Alors le résultat sera: ls l /home;rm -rf / ==== ls: list files and directories rm: remove files -rf: r: recursive -f: force: meme si les fichiers sont protégés! Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 48
47 Vulnérabilité CVE Injection de commande (Snoopy et avant, utilisé en autre par (1) ampache, (2) libphp-snoopy, (3) mahara, (4) mediamate, (5) opendb, (6) pixelpost) permettant à un attaquant d exécuter une commande arbitraire via les metacharacters des shells dans les URLs https. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 49
48 Statistiques National Vulnerability Database Difficile de trouver une façon pertinente d interroger la base de données. Absence d une nomenclature adéquate (ontologie) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 50
49 Antidotes Formation Revue de code Visuelle Audit (interne et externe) Ne jamais utiliser la concaténation ou la substitution de chaînes Utiliser des listes blanches de paramètres prédéfinies. Valider toutes les données des usagers. Expressions régulières pour les requêtes. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 51
50 Cross-site scripting (XSS) Conception Un programme permettant de soumettre un script malveillant à un tiers. Dans le meilleur des cas, cette vulnérabilité peut entrainer un comportement erratique de l'application affectée. Dans le pire des cas, l attaquant exploitant cette faille peut obtenir des informations auxquelles il ne devrait pas avoir accès (ex : vol de sessions administrateur). Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 52
51 Cross-site scripting (XSS) Trois principaux types: Non-persistant (ou réfléchi) Persistant (ou stocké) Basé sur des DOM Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 53
52 Explications XSS non-persistant L attaquant identifie un site vulnérable. L attaquant construit une URL qui inclus une chaîne malicieuse contenant du HTML et un script (p.ex. JavaScript). L attaquant envoie cette URL aux victimes potentielles (SPAM?). Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 54
53 Explications XSS non-persistant Une victime alors consulte cette URL qui passe la chaîne malicieuse lorsque le client web effectue la requête GET au site vulnérable. Le site vulnérable renvoie la chaîne malicieuse au client web de la victime qui l exécute. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 55
54 Exemple I (non-persistant) <?php?> $name = $_GET[ name ]; if (isset ($name)) { } echo Hello $name ; Client serveur Un script Java peut être exécuté par le client! Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 56
55 Exemple I (non-persistant) Si simple à corriger! <?php?> $name = $_GET[ name ]; if (isset ($name)) { if (preg_match( /^\w{5,25}$/, $name)) { echo Hello,.htmlentities($name); } else { } echo Allez au diable! ; Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 57
56 Explications XSS persistant L attaquant identifie un site vulnérable. Blog, forum, L attaquant dépose un «billet» malveillant contenant un script malicieux. Le site vulnérable renvoie le script malicieux au client web de la victime qui l exécute. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 58
57 Exemple II (persistant) CreateUser.php $username =mysql_real_escape_string($username); $fullname =mysql_real_escape_string($fullname); $query =sprintf('insert Into users (username,password) Values ("%s","%s","%s")', $username, crypt($password),$fullname); mysql_query($query); Afin d éviter les injections SQL. Remplacer certains caractères spéciaux dans la chaîne. Malgré tout, le nom peut être du code HTML arbitraire. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 59
58 Exemple II (persistant) suite ListUsers.php $query = 'Select * From users Where loggedin=true'; $results = mysql_query($query); if (!$results) { } exit; //Print list of users to page echo '<div id="userlist">currently Active Users:'; while ($row = mysql_fetch_assoc($results)) { } echo '<div class="usernames">'.$row['fullname'].'</div>'; echo '</div> Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 60
59 Explications XSS DOM L attaquant identifie un site vulnérable. Le code malicieux modifie l environnement DOM du fureteur de la victime. L attaquant envoie cette URL aux victimes potentielles (SPAM?). Le code malicieux n est donc pas contenu dans la page retournée par le serveur. DOM: Document Object Model Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 61
60 Exemple III (DOM) Supposons que le code suivant est utilisé afin de sélectionner la langue: <select><script> document.write( "<OPTION value=1>" + document.location.href.substring( document.location.href.indexof("default=") + 8) + "</OPTION>"); document.write("<option value=2>english</option>"); </script></select> Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 62
61 Exemple III (DOM) suite La page est appelée de la façon suivante: L URL suivant est envoyé aux victimes: ert(document.cookie)</script> Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 63
62 Vulnérabilités XSS (Adobe Acrobat Reader Plugin avant pour le client web Firefox) permettant à un attaquant distant d injecter des scripts JavaScript. CVE (Universal XSS) XSS (Adobe Flash Player avant pour Windows, Mac OS X, Linux, et Solaris, et avant pour Android) permettant à un attaquant distant d injecter des scripts JavaScript ou HTML. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 64
63 Statistiques National Vulnerability Database Recherche en utilisant les mots clés: XSS mais sans analyse de pertinence. Il y avait 6,951 entrées répondant à cette recherche (sur ~ 52, 452) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 65
64 Antidotes Formation Revue de code Visuelle Audit (interne et externe) Valider toutes les informations provenant des usagers. Limiter les possibilités. Toute information retournée devrait être en HTML. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 66
65 CSRF Conception Cross-Site Request Forgery Un programme malveillant utilisant un site qui ne peut pas vérifier si une transaction est effectivement faite par un usager. Dans le pire des cas, l attaquant exploitant cette faille peut faire exécuter des requêtes, transactions par des tiers. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 67
66 Explications CSRF premier exemple L attaquant identifie un site vulnérable. L attaquant utilise un site malveillant. Lorsqu une victime visite ce site malveillant tout en étant loggé sur le site vulnérable, le site malveillant cherche à exploiter le site vulnérable. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 68
67 CSRF Exemple I Site vulnérable le formulaire //permet à un utilisateur de mettre à jour son profile <form action="/url/profile.php" method="post"> <input type="text" name="firstname"/> <input type="text" name="lastname"/> <br/> <input type="text" name=" "/> <input type="submit" name="submit" value="update"/> </form> Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 69
68 CSRF Exemple I Site vulnérable profile.php session_start(); //if the session is registered to a valid user then allow update if (! session_is_registered("username")) { echo "invalid session detected!"; // Redirect user to login page [...] exit; } // The user session is valid, process the request update_profile(); function update_profile { // read in the data from $POST and send an update to the database SendUpdateToDatabase($_SESSION['username'], $_POST[' ']); [...] echo "Your profile has been successfully updated."; } Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 70
69 CSRF Exemple I Site malveillant <SCRIPT> function SendAttack () { form. = "[email protected]"; // send to profile.php form.submit();} </SCRIPT> <BODY onload="javascript:sendattack();"> <form action=" id="form" method="post"> <input type="hidden" name="firstname" value="funny"> <input type="hidden" name="lastname" value="joke"> <br/> <input type="hidden" name=" "> </form> Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 71
70 Explications CSRF deuxième exemple L attaquant identifie un site vulnérable. L attaquant construit une URL qui inclus une chaîne malicieuse. L attaquant envoie cette URL aux victimes potentielles (SPAM?). Lorsqu une victime consulte cette URL tout en étant loggé sur le site vulnérable, l attaque se produit.. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 72
71 CSRF Exemple II Site vulnérable Le site vulnérable effectue une transaction une fois que l usager est authentifié. GET HTTP/1.1 L attaquant envoie le courriel (SPAM) suivant: <img src=" width="1" height="1" border="0"> Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 73
72 Explications (variante) CSRF deuxième exemple L attaquant identifie un site vulnérable. Un logiciel Trojan exploite cette vulnérabilité. Lorsqu une victime est loggé sur le site vulnérable, le Trojan soumet des transactions non-prévues. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 74
73 Vulnérabilité ingdirect.com, 2008 Nytimes.com, 2008 "There are simply too many [CSRF-vulnerable Websites] to count," says rsnake, founder of ha.ckers.org À moins d'utiliser un framework qui en protège ou d'implémenter un mécanisme de défense, n'importe quel site Web qui accepte des données usager à travers un formulaire est vulnérable par défaut! Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 75
74 Statistiques National Vulnerability Database Recherche en utilisant les mots clés: CSRF mais sans analyse de pertinence. Il y avait 575 entrées répondant à cette recherche (sur ~ 52, 452) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 76
75 Antidotes Formation Revue de code Visuelle Audit (interne et externe) Tout les formulaires devraient comporter un secret dans un champ de type «hidden» et valider côté serveur la présence du secret lorsque le formulaire est soumis Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 77
76 Mauvaise utilisation Conception des mots de passe Une application ou un protocole utilisant un mot de passe de façon inappropriée. L attaquant exploitant cette faille peut obtenir des informations auxquelles il ne devrait pas avoir accès. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 78
77 Explications La mise en place d une politique de mots de passe est plus complexe qu il n y parait. Est-ce que le système d enregistrement génère des mots de passe difficiles à déterminer? Est-ce que les usagers peuvent choisir des mots de passe trop simples? Est-ce que les usagers doivent changer leurs mots de passe régulièrement? Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 79
78 et fin? La mise en place d une politique de mots de passe est plus complexe qu il n y parait. Comment les mots de passe sont-ils transmis par le protocole? Comment sont-ils conservés? Est-ce qu il existe un moyen de ralentir les attaques massives? Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 80
79 Mise-en-œuvre Path Traversal Un programme permettant de consulter un répertoire inapproprié. Dans le pire des cas, l attaquant exploitant cette faille peut obtenir des informations auxquelles il ne devrait pas avoir accès. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 81
80 Explications De nombreuses applications utilisent des informations provenant d un usager afin de déterminer quel fichier doit être consulté. Par exemple, le nom de l usager, le nom d une application, etc. Malheureusement, peu de validations sont faites ou elles le sont de façon erronée. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 82
81 Exemple I (Java) Tentative de validation (simple): String path = getinputpath(); if (path.startswith("/safe_dir/")) { File f = new File(path); f.delete() } Infructueux: /safe_dir/../important.dat Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 83
82 Exemple II (Perl) Tentative de validation (simple): my $Username = GetUntrustedInput(); $Username =~ s/\.\.\///; my $filename = "/home/user/".$username; ReadAndSendFile($filename); Infructueux! Ne retire que le premier «../» Paramètre global: /g! Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 84
83 Vulnérabilité CVE Path traversal (Apache Tomcat de à , de à , de à ) permettant à un attaquant de consulter les divers répertoires. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 85
84 Statistiques National Vulnerability Database Recherche en utilisant les mots clés : Path traversal mais sans analyse de pertinence. Il y avait 303 entrées répondant à cette recherche (sur ~ 52, 452) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 86
85 Antidotes Formation Revue de code Visuelle Audit (interne et externe) Valider toutes les données des usagers. Expressions régulières pour les requêtes. Normaliser les requêtes. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 87
86 Conception Concurrence critique Un programme utilisant une ressource qui est utilisée par un autre programme. Dans le meilleur des cas, cette vulnérabilité peut entrainer un comportement erratique de l ordinateur compromis. Dans le pire des cas, l attaquant exploitant cette faille peut obtenir des informations auxquelles il ne devrait pas avoir accès. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 88
87 Explications Un programme accédant à une ressource (p.ex., un fichier) doit s assurer qu il en a l usage exclusif. Le programme doit chercher à éviter qu un autre programme modifie la ressource à son insue. Mauvaise utilisation des «mutex». Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 89
88 Exemple (Perl) $transfer_amount = GetTransferAmount(); $balance = GetBalanceFromDatabase(); if ($transfer_amount < 0) { FatalError("Bad Transfer Amount"); } $newbalance = $balance - $transfer_amount; if (($balance - $transfer_amount) < 0) { FatalError("Insufficient Funds"); } SendNewBalanceToDatabase($newbalance); NotifyUser("Transfer of $transfer_amount succeeded."); NotifyUser("New balance: $newbalance"); Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 90
89 Exemple (Perl) Supposons le solde soit de $1000. Deux programmes utilisent simultanément le code. Retrait de $500. Retrait de $1. Combien devrait-il rester d argent dans le compte? $999, $500, $499? Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 91
90 Vulnérabilité CVE Condition critique (Google Chrome avant ) permettant à un attaquant distant d exécuter un code malicieux via les vecteurs audio. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 92
91 Statistiques National Vulnerability Database Recherche en utilisant les mots clés : Race condition mais sans analyse de pertinence. Il y avait 317 entrées répondant à cette recherche (sur ~ 52, 452) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 93
92 Antidotes Formation Revue de code Visuelle Audit (interne et externe) Utilisation de méthodes permettant de réserver les ressources. mutex Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 94
93 Exemple complet Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 95
94 PHP Exemple complet <?php?> $db = mysql_connect( localhost, usagerpass, $MyPass5 ); mysql_select_db( Login, $db); $id = $_GET[ id']; $passe = $_GET['passe']; $qry = SELECT * FROM usager WHERE id=$id AND passe=$passe ; $result = mysql_query ($qry, $db); if ($result) { // accorder accès } else { // accès incorrect } Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 96
95 Problème #1 Accès à la base de données $db = mysql_connect( localhost, usagerpass, $MyPass5 ); mysql_select_db( Login, $db); Solution 1: Utiliser include './accesdb.php'; au lieu des deux lignes sensibles. Le problème n est que déplacé. Le fichier accesdb.php est dans le répertoire «document root» et peut être accéder par URL. Solution 2: include '/path/accesdb.php'; où path est externe à «document root». Pas accessible par URL. Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 97
96 Problème #1 Accès à la base de données Créer un fichier /path/secret où path est externe au «document root» contenant: SetEnv DB_USER = usagerpass SetEnv DB_PASS = $MyPass5 Ce fichier ne doit pouvoir être lu que par apache (usager pour httpd). Inclure ce fichier dans le fichier de configuration de httpd.conf include /path/secret Utiliser les variables de configuration: $db = mysql_connect( localhost,$_env[db_user], $_ENV[DB_PASS]); dans accesdb.php (externe au «document root»). Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 98
97 PHP Exemple complet <?php?> $db = mysql_connect( localhost, usagerpass, $MyPass5 ); mysql_select_db( Login, $db); $id = $_GET[ id']; $passe = $_GET['passe']; $qry = SELECT * FROM usager WHERE id=$id AND passe=$passe ; $result = mysql_query ($qry, $db); if ($result) { // accorder accès } else { // accès incorrect } Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 99
98 Problème #2 Filtrer les entrées L usager entre: toto OR 1=1 ; -- dans le champ id abc dans le champ passe La requête devient donc SELECT * FROM usager WHERE id = toto OR 1=1 ; -- AND passe = abc ; L expression booléenne est toujours vraie! Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 100
99 Problème #2 Filtrer les entrées S assurer que les informations fournies par l usager sont valides: $regexp = /^[A-Za-z][A-Za-z0-9_]+$/ if (preg_match ($regexp, $id)) { // accepter l information de l usager } else { // rejeter l information de l usager } Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 101
100 Problème #2 Filtrer les entrées Autre exemple : $valide = array(); switch($_post['couleur']){ case 'bleu': case 'blanc': case 'rouge': $valide['couleur']= $_POST['couleur']; break;} If (isset($valide['couleur']) { } else { cas d erreur } Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 102
101 PHP Exemple complet <?php?> $db = mysql_connect( localhost, usagerpass, $MyPass5 ); mysql_select_db( Login, $db); $id = $_GET[ id']; $passe = $_GET['passe']; $qry = SELECT * FROM usager WHERE id=$id AND passe=$passe ; $result = mysql_query ($qry, $db); if ($result) { // accorder accès } else { // accès incorrect } Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 103
102 Problème #3 Les mots de passe Les mots de passe sont conservés tels quels dans la base de données. Si la base de données devient accessible, les mots de passe peuvent être obtenus facilement. Solution couverte dans le cours sur le Web mais il faut voir et comprendre la cryptographie avant! Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 104
103 PHP Exemple complet <?php?> $db = mysql_connect( localhost, usagerpass, $MyPass5 ); mysql_select_db( Login, $db); $id = $_GET[ id']; $passe = $_GET['passe']; $qry = SELECT * FROM usager WHERE id=$id AND passe=$passe ; $result = mysql_query ($qry, $db); if ($result) { // accorder accès } else { // accès incorrect } Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 105
104 Problème #4 Les mots de passe Aucun mécanisme permettant de diminuer l impact d une recherche exhaustive. Bloquer le compte après trois tentatives erronées. Déni de service potentiel! Ralentir les vérifications après trois tentatives erronées. Attendre une minute. Les CAPTCHA!!! Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 106
105 Conclusions Utilisation des données des usagers. Valider les informations. Limiter les possibilités (p.ex. requêtes prédéfinies). Protection des informations sensibles. Ne rien «cacher» dans un programme. Cryptographie. Formation, revue de code, audit (outil). Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 107
106 Références Site de CWE Common Weakness Enumeration Colossal! Site de l OWASP Incontournable pour le développement Web Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 108
107 Annexe Android et iphone Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 109
108 National Vulnerability Database June 21, 2011 Query 1: Key words: Android + Flash Number: 30 (high) + 2 (medium) Query 2: Key words: Android (sans Flash) Number: 9 (high) + 18 (medium) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 110
109 National Vulnerability Database June 21, 2011 Query 3: Manufacturer: Apple Product: iphone Number: 11 (high) + 31 (medium) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 111
110 Android + Flash CVE Summary: Adobe Flash Player before on Windows, Mac OS X, Linux, and Solaris, and and earlier on Android, allows remote attackers to execute arbitrary code or cause a denial of service (memory corruption) via unspecified vectors, as exploited in the wild in June CVSS Severity: 10.0 (HIGH) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 112
111 Android + Flash CVE Summary: Integer overflow in Adobe Flash Player before on Windows, Mac OS X, Linux, and Solaris and before on Android allows remote attackers to execute arbitrary code via ActionScript that improperly handles a long array object. CVSS Severity: 9.3 (HIGH) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 113
112 Android + Flash CVE Summary: Cross-site scripting (XSS) vulnerability in Adobe Flash Player before on Windows, Mac OS X, Linux, and Solaris, and and earlier on Android, allows remote attackers to inject arbitrary web script or HTML via unspecified vectors, related to a "universal crosssite scripting vulnerability." CVSS Severity: 4.3 (MEDIUM) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 114
113 Android (sans Flash) CVE Summary: Android before 2.3 does not properly restrict access to the system property space, which allows local applications to bypass the application sandbox and gain privileges, as demonstrated by psneuter and KillingInTheNameOf, related to the use of Android shared memory (ashmem) and ASHMEM_SET_PROT_MASK. CVSS Severity: 7.2 (HIGH) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 115
114 Android (sans Flash) CVE Summary: The Android browser in Android before allows remote attackers to obtain SD card contents via crafted content:// URIs, related to (1) BrowserActivity.java and (2) BrowserSettings.java in com/android/browser/. CVSS Severity: 4.3 (MEDIUM) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 116
115 Apple iphone CVE Summary: Integer overflow in IOSurface in Apple ios before on the iphone and ipod touch, and before on the ipad, allows local users to gain privileges via vectors involving IOSurface properties, as demonstrated by JailbreakMe. CVSS Severity: 6.9 (MEDIUM) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 117
116 Apple iphone CVE Summary: Stack-based buffer overflow in CFNetwork in Apple ios before 4 on the iphone and ipod touch allows remote attackers to execute arbitrary code or cause a denial of service (application crash) via vectors related to URL handling. CVSS Severity: 6.8 (MEDIUM) Jean-Marc Robert, ETS Vulnérabilités logicielles - A11 118
Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement
Guillaume HARRY l Contenu sous licence Creative Commons CC-BY-NC-ND Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement P. 2 1. Introduction 2.
OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI
OWASP Open Web Application Security Project Jean-Marc Robert Génie logiciel et des TI A1: Injection Une faille d'injection, telle l'injection SQL, OS et LDAP, se produit quand une donnée non fiable est
Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin
Sécurité des sites Web Pas un cours un recueil du net INF340 Jean-François Berdjugin Vulnérabilité Définition (wikipédia) : Dans le domaine de la sécurité informatique, une vulnérabilité est une faiblesse
Attaques applicatives
Attaques applicatives Attaques applicatives Exploitation d une mauvaise programmation des applications Ne touche pas le serveur lui-même mais son utilisation/ configuration Surtout populaire pour les sites
cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007
A t t a q u e s c o n t r e l e s a p p l i s w e b cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007 D e l ' u t i l i t é d e l ' a t t a
Failles XSS : Principes, Catégories Démonstrations, Contre mesures
HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet Séminaire 15 ans HSC Failles XSS : Principes, Catégories Démonstrations,
Tech-Evenings Sécurité des applications Web Sébastien LEBRETON
Tech-Evenings Sécurité des applications Web Sébastien LEBRETON Pourquoi revoir la sécurité des applications Web Des technologies omniprésentes Facilité de mise en œuvre et de déploiement. Commerce en ligne,
Vulnérabilités et sécurisation des applications Web
OSSIR 09/09/2002 Vulnérabilités, attaques et sécurisation des applications Web Pourquoi les firewalls sont impuissants [email protected] http://www.edelweb.fr http://www.chambet.com Page 1 Planning
Sécurité des applications web. Daniel Boteanu
I F8420: Éléments de Sécurité des applications web Daniel Boteanu Architecture des applications web Client légitime Internet HTTP 浀 HTML Server Web 2 Architecture des applications web Client légitime Internet
Création d un «Web Worm»
Création d un «Web Worm» Exploitation automatisée des failles web Simon Marechal Thales Security Systems Consultant Risk Management 1 Création d un ver exploitant une faille web 1.1 Introduction Les applications
Programmation Web. Madalina Croitoru IUT Montpellier
Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance
PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)
PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et
Module BD et sites WEB
Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet [email protected] 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD
www.netexplorer.fr [email protected]
www.netexplorer.fr 05 61 61 20 10 [email protected] Sommaire Sécurité applicative... 3 Authentification... 3 Chiffrement... 4 Traçabilité... 4 Audits... 5 Sécurité infrastructure... 6 Datacenters...
Introduction aux buffer overflow, CS335
Introduction aux buffer overflow, CS335 http ://www.phrack.org/archives/49/p49-14 1. Smashing the stack for fun and profit by Aleph One November 1996 Aleph1 United Kingdom : www.aleph1.co.uk Mail : [email protected]
Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4)
Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4) Sommaire : Contenu I. Introduction:... 2 II. Présentation de l atelier :... 2 1) Attaque persistante :... 3 2) Attaque non persistante :...
INTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
SQL Parser XML Xquery : Approche de détection des injections SQL
SQL Parser XML Xquery : Approche de détection des injections SQL Ramahefy T.R. 1, Rakotomiraho S. 2, Rabeherimanana L. 3 Laboratoire de Recherche Systèmes Embarqués, Instrumentation et Modélisation des
TEST D INTRUISION. Document Technique
Document Technique TEST D INTRUISION Préparé et présenté par AMINATA THIAM 3 ème année Sécurité de la Technologie de l Information, la Cité Collégiale Cours analyse des risques et vulnérabilités Mars 2012
PHP et les Bases de données - Généralités
PHP et les Bases de données - Généralités Conception d une base de données Méthodes utilisées : MERISE, UML Modèle conceptuel des données MCD, Modèle logique MLD, Modèle Physique MPD. Ces aspects seront
Préjudices, failles, vulnérabilités et menaces
INF4470 : Fiabilité et sécurité informatique Par Eric Gingras Hiver 2010 Préjudices, failles, vulnérabilités et menaces Préjudice En général, on dit que le préjudice est : "une atteinte subie par une personne
Mysql avec EasyPhp. 1 er mars 2006
Mysql avec EasyPhp 1 er mars 2006 Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requètes vers les bases de données relationnelles. Il en reprend la syntaxe
Pratique et administration des systèmes
Université Louis Pasteur Licence Informatique (L2) UFR de Mathématiques et Informatique Année 2007/2008 1 But du TP Pratique et administration des systèmes TP10 : Technologie LAMP Le but de ce TP est de
TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012
TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 FORMULAIRE DE CONTACT POUR PORTFOLIO PRINCIPE GENERAL Nous souhaitons réaliser un formulaire de contact comprenant les champs suivants : NOM PRENOM ADRESSE MAIL MESSAGE
Manuel d'installation
CyberMUT P@iement P@iement CIC P@iement OBC SERVICE SECURISE DE PAIEMENT INTERNET PAR CARTE BANCAIRE (Sécurisé par le protocole SSL) Manuel d'installation (Document 2/2) EURO Sp.Tech. 1.2.8 Octobre 2001
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC. Qui contacter pour commencer la mise en place d une configuration de test?
Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC Qui contacter pour commencer la mise en place d une configuration de test? CyberMUT Paiement - Paiement CIC Commerce Electronique mailto:[email protected]
NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web
NFA016 : Introduction O. Pons, S. Rosmorduc Conservatoire National des Arts & Métiers Pour naviguer sur le Web, il faut : 1. Une connexion au réseau Réseau Connexion physique (câbles,sans fils, ) à des
Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP
Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Au cours de ce TP, vous allez voir comment PHP permet aux utilisateurs, une interaction avec
L3 informatique TP n o 2 : Les applications réseau
L3 informatique TP n o 2 : Les applications réseau Sovanna Tan Septembre 2009 1/20 Sovanna Tan L3 informatique TP n o 2 : Les applications réseau Plan 1 Transfert de fichiers 2 Le Courrier électronique
L analyse de logs. Sébastien Tricaud Groupe Resist - Toulouse 2013
L analyse de logs Sébastien Tricaud Groupe Resist - Toulouse 2013 whoiam Principal Security Strategist @Splunk Co-Fondateur de la société Picviz Labs Ancien CTO du projet Honeynet Co-lead du chapitre Honeynet
Architectures web/bases de données
Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est
Mise en œuvre des serveurs d application
Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés
Protection des protocoles www.ofppt.info
ROYAUME DU MAROC Office de la Formation Professionnelle et de la Promotion du Travail Protection des protocoles DIRECTION RECHERCHE ET INGENIERIE DE FORMATION SECTEUR NTIC Sommaire 1. Introduction... 2
DenyAll Detect. Documentation technique 27/07/2015
DenyAll Detect Documentation technique 27/07/2015 Sommaire 1. A propos de ce document... 3 1.1 Objet... 3 1.2 Historique... 3 1.3 Contexte... 3 2. Liste des tests... 4 2.1 Découverte réseau (scan de ports)...
Supplément de renseignements : Examens d applications et pare-feux d applications web clarifiés Normes : Normes en matière de sécurité des données de
Supplément de renseignements : Examens d applications et pare-feux d applications web clarifiés Normes : Normes en matière de sécurité des données de la PCI (PCI DSS) Version : 1.2 Date : Octobre 2008
Failles des applications Web. Ce document est extrait du travail de diplôme de M. DIZON dans l état.
Failles des applications Web Ce document est extrait du travail de diplôme de M. DIZON dans l état. 1 Introduction...1 2 Contournement de validation javascript...2 2.1 Introduction...2 2.2 Principe de
OWASP Code Review Guide Revue de code. Paris 2011. The OWASP Foundation. Victor Vuillard
OWASP Code Review Guide Revue de code Paris 2011 Victor Vuillard Copyright The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License.
INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)
CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.
Java et les bases de données
Michel Bonjour http://cuiwww.unige.ch/~bonjour CENTRE UNIVERSITAIRE D INFORMATIQUE UNIVERSITE DE GENEVE Plan Introduction JDBC: API SQL pour Java - JDBC, Java, ODBC, SQL - Architecture, interfaces, exemples
PDO : PHP Data Object 1/13
PDO : PHP Data Object 1/13 Tous ne sont que des extensions... Les fonstions mysql_* : API mysql Les fonctions mysqli_* aussi Il en est de même pour PDO PDO (avec le pilote PDO MySQL Driver et Extension
Rapport de certification ANSSI-CSPN-2010/05. ModSecurity v2.5.12
PREMIER MINISTRE Secrétariat général de la défense et de la sécurité nationale Agence nationale de la sécurité des systèmes d information Rapport de certification ANSSI-CSPN-2010/05 ModSecurity v2.5.12
SYSTÈMES D INFORMATIONS
SYSTÈMES D INFORMATIONS Développement Modx Les systèmes de gestion de contenu Les Content Management Système (CMS) servent à simplifier le développement de sites web ainsi que la mise à jour des contenus.
Hébergement de site web Damien Nouvel
Hébergement de site web Plan L'hébergeur Le serveur web Apache Sites dynamiques 2 / 27 Plan L'hébergeur Le serveur web Apache Sites dynamiques 3 / 27 L'hébergeur L'hébergeur sous-traite l'architecture
Vulnérabilités et solutions de sécurisation des applications Web
Vulnérabilités et solutions de sécurisation des applications Web Patrick CHAMBET EdelWeb ON-X Consulting [email protected] http://www.edelweb.fr http://www.chambet.com Eric Larcher RSSI Accor
Création de formulaires interactifs
SESSION 16 Création de formulaires interactifs Programme de la session Lancer un sondage en utilisant divers éléments d'entrée de formulaire Traiter les entrées utilisateur Activer un script à partir d'un
CREATION WEB DYNAMIQUE
CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de
Bee Ware. Cible de Sécurité CSPN. Validation Fonctionnelle Validation Fonctionnelle Bon pour application AMOA BEEWARE BEEWARE
Référence : BNX_Cible-de-sécurité_CSPN Version : 1.3 Etat : A valider Date : Affaire/projet : Client : BEE WARE Classification : Diffusion projet Bee Ware i-suite Cible de Sécurité CSPN Validation Fonctionnelle
Auteur LARDOUX Guillaume Contact [email protected] Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA
Auteur LARDOUX Guillaume Contact [email protected] Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA Sommaire 1. Introduction 2. Installation 3. Fonctionnement 4. Développement 5. Démonstration 2
WASD en environnement haute disponibilité Jean-Pierre PETIT WASD Le produit WASD WASD signifie Wide Area Surveillance Division C est le nom d une division de la défense australienne qui a accepté en 1996
Hébergement de sites Web
Hébergement de Solutions complètes et évolutives pour l hébergement de sites Web dynamiques et de services Web sécurisés. Fonctionnalités Serveur Web Apache hautes performances Apache 1. et.0 1 avec prise
Fiche Technique. Cisco Security Agent
Fiche Technique Cisco Security Agent Avec le logiciel de sécurité de point d extrémité Cisco Security Agent (CSA), Cisco offre à ses clients la gamme de solutions de protection la plus complète qui soit
Urbanisation des SI Conduite du changement IT 20/03/09. Patrick CHAMBET http://www.chambet.com
Urbanisation des SI Conduite du changement IT 20/03/09 Sécuriser ses Web Services Patrick CHAMBET http://www.chambet.com Bouygues Telecom Direction Gouvernance, Outils et Architecture / Sécurité du SI
Web Application Firewalls (WAF)
Web Application Firewalls (WAF) Forum CERT-IST Paris le 9 Juin 2009 Sébastien GIORIA ([email protected]) French Chapter Leader Copyright 2009 - The OWASP Foundation Permission is granted to copy,
E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1
E-TRANSACTIONS Guide du programmeur API Plug-in Version 1.1 Avertissements : Le fichier Version.txt précise l'environnement dans lequel l API a été compilée et testée. L'installation de l API sur tout
OpenPaaS Le réseau social d'entreprise
OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3
Découvrir les vulnérabilités au sein des applications Web
Applications Web Découvrir les vulnérabilités au sein des applications Web Les vulnérabilités au sein des applications Web sont un vecteur majeur du cybercrime. En effet, selon le rapport d enquête 2012
SQL MAP. Etude d un logiciel SQL Injection
Introduction Ce TP a pour but d analyser un outil d injection SQL, comprendre les vulnérabilités d une BD et de mettre en œuvre une attaque par injection SQL. Prise en main du logiciel SQLMap est un outil
Annexe 5. Kaspersky Security For SharePoint Servers. Consulting Team
Annexe 5 Kaspersky Security For SharePoint Servers Consulting Team 2015 K A S P E R S K Y L A B Immeuble l Européen 2, rue 1 Joseph Monier 92859 Rueil Malmaison Cedex Table des matières Table des matières...
Command Execution:... 10. File Inclusion :... 21. SQL injection :... 10
Web App Security CHEF ATELIER: BEN MARZOUK HAMZA(RT3) BOUJBEL AMEL(RT4) KHALIFI MAJDI(ISI) TOURJMEN HELA(RT3) ALIBI GHAZI(ISET) BEL HAJ HASSINE SOUHA(RT3) TRABELSI OUSSAMA(MPI) Table des matières 1. Présentation
La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)
Le langage PHP (2) Walid Belkhir Université de Provence [email protected] http://www.lif.univ-mrs.fr/ belkhir/ 1 / 54 1 La programmation orientée objet 2 Gestion de Connexions HTTP 3 Manipulation
Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage
Technologies du Web Créer et héberger un site Web Page 1 / 26 Plan Planification Choisir une solution d hébergement Administration Développement du site Page 2 / 26 Cahier des charges Objectifs du site
4. Utilisation d un SGBD : le langage SQL. 5. Normalisation
Base de données S. Lèbre [email protected] Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :
Les risques HERVE SCHAUER HSC
HERVE SCHAUER HSC Les risques Les risques ne cessent d'augmenter: Informatisation systématique de l'ensemble de la société Ouverture des systèmes d'information sur Internet Démultiplication de ce qui est
Stockage du fichier dans une table mysql:
Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table
SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2
SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2 Version 1.0.5 Mentions légales Mentions légales Ce document est susceptible de modification à tout moment sans
Revue de code Sécuritéou Test d Intrusion Applicatif. Quel est le plus efficace pour évaluer un niveau de sécurité applicatif?
Revue de code Sécuritéou Test d Intrusion Applicatif Quel est le plus efficace pour évaluer un niveau de sécurité applicatif? http://www.google.fr/#q=sebastien gioria Responsable de la branche Audit S.I
Sécurité des Applications Web Comment Minimiser les Risques d Attaques les plus Courants
GUIDE: Sécurité des Applications Web Comment Minimiser les Risques d Attaques les plus Courants Sommaire I. L essentiel II. Les bases de la sécurité des applications Web III. Types de vulnérabilités inhérentes
Attaques de type. Brandon Petty
Attaques de type injection HTML Brandon Petty Article publié dans le numéro 1/2004 du magazine Hakin9 Tous droits reservés. La copie et la diffusion de l'article sont admises à condition de garder sa forme
ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5
ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5 Informations juridiques Copyright 2010 Adobe Systems Incorporated and its licensors. All rights reserved. Administration d Adobe LiveCycle Mosaic 9.5 13 octobre
La mémorisation des mots de passe dans les navigateurs web modernes
1 La mémorisation des mots de passe dans les navigateurs web modernes Didier Chassignol Frédéric Giquel 6 décembre 2005 - Congrès JRES 2 La problématique Multiplication des applications web nécessitant
INFO-F-404 : Techniques avancées de systèmes d exploitation
Nikita Veshchikov e-mail : [email protected] téléphone : 02/650.58.56 bureau : 2N8.213 URL : http://student.ulb.ac.be/~nveshchi/ INFO-F-404 : Techniques avancées de systèmes d exploitation Table
Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.
Rational ClearCase or ClearCase MultiSite Version 7.0.1 Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Product Overview IBM Rational
MailStore Server 7 Caractéristiques techniques
MailStore Server 7 Caractéristiques techniques MailStore Server La référence en matière d archivage d e-mails La solution MailStore Server permet aux entreprises de toutes tailles de bénéficier des avantages
Etude de la pertinence et de l'intérêt des appliances WAF (IPS web) à l'inria
Etude de la pertinence et de l'intérêt des appliances WAF (IPS web) à l'inria 1 Philippe Lecler TutoJRES «Sécurité des sites WEB» 4 février 2010 Contexte 2 PCI-DSS : Payment Card Industry Data Security
SÉCURITÉ DES APPLICATIONS WEB LA SOLUTION D ANALYSE IDÉALE POUR LES APPLICATIONS WEB
SWAT BROCHURE SÉCURITÉ DES APPLICATIONS WEB La sécurité des applications Web s est avérée être un énorme défi pour les entreprises ces dernières années, très peu de solutions appropriées étant disponibles
Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France
Développement d applications Internet et réseaux avec LabVIEW Alexandre STANURSKI National Instruments France Quelles sont les possibilités? Publication de données Génération de rapports et de documents
Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet
Expérience d un hébergeur public dans la sécurisation des sites Web, CCK Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet Plan Introduction Sécurisation des sites Web hébergés a Conclusion Introduction
Analyse statique de code dans un cycle de développement Web Retour d'expérience
Analyse statique de code dans un cycle de développement Web Retour d'expérience Laurent Butti et Olivier Moretti Orange France [email protected] Agenda Introduction Notre contexte L (in)sécurité des
Mise en place d un serveur Proxy sous Ubuntu / Debian
BTS INFORMATIQUE DE GESTION Option Administrateur Réseaux Benoît VERRON Activité n 1 Mise en place d un serveur Proxy sous Ubuntu / Debian Présentation d un Proxy Un proxy (serveur mandataire) est un serveur
Devenez un véritable développeur web en 3 mois!
Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web
TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.
ASTRIUM - Toulouse JEE Formation 2013 TP JEE Développement Web en Java Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. Figure 1 Architecture
PHP 4 PARTIE : BASE DE DONNEES
PHP 4 PARTIE : BASE DE DONNEES 1. Introduction 2. Présentation de MySQL 3. Principe 4. Connexion 5. Interrogation 6. Extraction des données 7. Fonctions de services 8. Traitement des erreurs 9. Travaux
INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09
INFORMATIQUE & WEB Code du diplôme : CP09 Passionné par l informatique et le web, vous souhaitez obtenir une certification dans un domaine porteur et enrichir votre CV? PARCOURS CERTIFICAT PROFESSIONNEL
Bilan 2008 du Cert-IST sur les failles et attaques www.cert-ist.com
Bilan 2008 du Cert-IST sur les failles et attaques www.cert-ist.com OSSIR - RéSIST - Avril 2009 Philippe Bourgeois Plan de la présentation L année 2008 du Cert-IST en 3 chiffres clés Les phénomènes majeurs
Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework
Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework L'objectif de ce document est de poser des bases de réflexion sur la modélisation d'un projet réalisé
Gestion de stock pour un magasin
Département d Informatique Université de Fribourg, Suisse http://diuf.unifr.ch Gestion de stock pour un magasin Stock online utilise ASP/MS-Access DO Thi Tra My No étudiant : 05-333-750 Travail de séminaire
L UTILISATEUR, CIBLE DE TOUTES LES MENACES
CHAPITRE 2 : L UTILISATEUR DÉFINIT LE PÉRIMÈTRE L UTILISATEUR, CIBLE DE TOUTES LES MENACES 1 L UTILISATEUR, CIBLE DE TOUTES LES MENACES En 2014, le Groupe NTT a recensé des «70 % des vulnérabilités millions
Ocs Inventory et GLPI s appuie sur un serveur LAMP. Je vais donc commencer par installer les paquets nécessaires.
Installation & Configuration GPLPI / OCS Inventory NG Installer sur Debian 5 Lenny, Liaison Active Directory, Mise en place du couple OCS/GLPI Par : POMENTE Guillaume OCS Inventory et GLPI sont deux outils
Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6
Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières Installation d un serveur HTTP (Hypertext Transfer
Manuel des logiciels de transferts de fichiers File Delivery Services
Manuel des logiciels de transferts de fichiers File Delivery Services Editeur La Poste CH SA Technologies de l information Webergutstrasse 12 CH-3030 Berne (Zollikofen) Contact La Poste CH SA Technologies
Sécurité Informatique : Metasploit
Sécurité Informatique : Metasploit Par Brandon ROL Veille Technologique La veille technologique consiste à s'informer de façon systématique sur les techniques les plus récentes et surtout sur leur mise
PHP 5. La base de données MySql. A. Belaïd 1
PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple
L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.
Gestion de parc Informatique OCS, GLPI sur Debian 5 Jonathan Gautier Open Computer and Software Inventory Next Generation (OCS inventory NG) est une application permettant de réaliser un inventaire sur
Sécurité des systèmes informatiques Introduction
Année 2008-2009 Sécurité des systèmes informatiques Introduction Nicolas Baudru mél : [email protected] page web : nicolas.baudru.esil.perso.univmed.fr 1 Système d'information et système informatique
Introduction à. Oracle Application Express
Introduction à Oracle Application Express Sommaire Qu est-ce que Oracle Application Express (APEX)? Vue d ensemble des fonctionnalités et des différents composants d Oracle APEX Démonstration de création
