Cours. Sécurité et cryptographie. Chapitre 3: Vulnérabilités des logiciels Attaques Web -



Documents pareils
Vulnérabilités logicielles. Jean-Marc Robert

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

Sécurité des applications web. Daniel Boteanu

Attaques applicatives

SQL Parser XML Xquery : Approche de détection des injections SQL

Vulnérabilités et sécurisation des applications Web

ENDPOINT SECURITY FOR MAC BY BITDEFENDER

Internet Découverte et premiers pas

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Document de présentation technique. Blocage du comportement

Création d un «Web Worm»

ISEC. Codes malveillants

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

La sécurité des systèmes d information

Internet Le guide complet

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

Managed VirusScan et renforce ses services

Fiche Technique. Cisco Security Agent

Module BD et sites WEB

Indicateur et tableau de bord

Désinfecte les réseaux lorsqu ils s embrasent

Vulnérabilités et solutions de sécurisation des applications Web

L3 informatique TP n o 2 : Les applications réseau

Les risques HERVE SCHAUER HSC

La protection des systèmes Mac et Linux : un besoin réel?

Netdays Comprendre et prévenir les risques liés aux codes malicieux

UNE NOUVELLE MENACE : LA PUB-ILLICITE OU QUAND LA PUBLICITE SERT DE PASSERELLE A LA CYBER CRIMINALITE

Préjudices, failles, vulnérabilités et menaces

Sécurité des bases de données Nicolas Jombart Alain Thivillon

Protection des protocoles

Progressons vers l internet de demain

Symantec Protection Suite Enterprise Edition Protection éprouvée pour les terminaux, la messagerie et les environnements Web

Module de sécurité Antivirus, anti-spam, anti-phishing,

«Obad.a» : le malware Android le plus perfectionné à ce jour

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Sécurité informatique

Guide pour la configuration d adresse

Annexe 5. Kaspersky Security For SharePoint Servers. Consulting Team

La sécurité périmètrique multi-niveaux. Un white paper de Daniel Fages CTO ARKOON Network Security

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

Présenté par : Mlle A.DIB

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

Une nouvelle approche globale de la sécurité des réseaux d entreprises

Sécurité des Applications Web Comment Minimiser les Risques d Attaques les plus Courants

Manuel d'installation

Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.

Manuel de l'utilisateur d'intego VirusBarrier Express et VirusBarrier Plus

Table des matières. Avant-propos... Préface... XIII. Remerciements...

CATALOGUE DE FORMATION INTERNET BUREAUTIQUE INFORMATIQUE..::NET-INOV.COM::..

Sécurité des Postes Clients

Introduction aux antivirus et présentation de ClamAV

Urbanisation des SI Conduite du changement IT 20/03/09. Patrick CHAMBET

Les enjeux de la sécurité informatique

Les différentes méthodes pour se connecter

Déployer une application Web avec WebMatrix et Ma Plateforme Web

SQL Server et Active Directory

Les rootkits navigateurs

Manuel des logiciels de transferts de fichiers File Delivery Services

Tech-Evenings Sécurité des applications Web Sébastien LEBRETON

Iobit Malware Fighter

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Dr.Web Les Fonctionnalités

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Guide de démarrage rapide

La gestion des correctifs de sécurité avec WinReporter et RemoteExec

Guide de démarrage rapide. Microsoft Windows 7 / Vista / XP / 2000 / 2003 / 2008

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN

CIBLE DE SECURITE CSPN DU PRODUIT PASS. (Product for Advanced SSO)

OWASP Code Review Guide Revue de code. Paris The OWASP Foundation. Victor Vuillard

Installation du transfert de fichier sécurisé sur le serveur orphanet

Sécurisation d une application ASP.NET

DenyAll Protect. Sécurité & accélération. Parefeux pour applications et services Web. de vos applications.

Les vols via les mobiles

A. Sécuriser les informations sensibles contre la disparition

Introduction aux buffer overflow, CS335

Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4)

Aperçu de l'activité virale : Janvier 2011

Sécuriser les serveurs Web (IIS5 et IIS6) Benoît HAMET Ingénieur d étude / Formateur MVP Concept Réseau

NETTOYER ET SECURISER SON PC

DNSSEC. Introduction. les extensions de sécurité du DNS. Les dossiers thématiques de l AFNIC. 1 - Organisation et fonctionnement du DNS

Module 8. Protection des postes de travail Windows 7

INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

Systèmes d exploitation

VTX FTP. Transfert de fichiers business par FTP - Manuel de l'utilisateur. Informations complémentaires : info@vtx.

Rapport de certification ANSSI-CSPN-2011/14. Fonctionnalités de pare-feu de StoneGate Firewall/VPN build 8069

Bilan 2008 du Cert-IST sur les failles et attaques

Symantec Endpoint Protection Fiche technique

PHISHING/PHARMING. Les Nouvelles Techniques qui portent atteinte à l intégrité des S.I

Services bancaires par Internet aux entreprises. Guide pratique pour : Transfert de fichiers Version

Renforcement de la sécurité des PDF avec Adobe Reader XI et Adobe Acrobat XI

Transférer des fichiers à l aide de WinSCP et 2 contextes d utilisation dans des sites SPIP avec FCK editor

Présentation de la solution Open Source «Vulture» Version 2.0

Sessions en ligne - QuestionPoint

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

NETTOYER ET SECURISER SON PC

RANGER ET NETTOYER SON ORDINATEUR Mise à jour : Septembre 2013

Transcription:

Cours Sécurité et cryptographie Chapitre 3: Vulnérabilités des logiciels Attaques Web - logiciels malveillants 1

Plan Partie 1: Vulnérabilités des logiciels Contexte CWE/SANS Top 25 Most Dangerous Software Errors OWASP Top 10 Application Security Risks Exemples d attaques web Partie 3: logiciels malveillants Définitions et principales caractéristiques Exemples 2

Vulnérabilités des Logiciels 3

Contexte Vulnérabilités logicielles: Communes à plusieurs langages g de programmation ou Spécifiques à un langage particulier L exploitation d une vulnérabilité nécessite: La compréhension du logiciel vulnérable, La détermination de la plateforme, du système d exploitation, des standards adoptés, des protocoles de communication, Atteinte de la partie vulnérable Par exemple: depuis les données acceptées en entrée. 4

CWE: Liste des vulnérabilités logicielles 5

2011 CWE/ SANS Top 25 Source: http://cwe.mitre.org/top25/index.html#listing Rank Score ID [1] 93.8 CWE-89 [2] 83.3 CWE-78 [3] 79.0 CWE-120 [4] 77.7 CWE-79 Name Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') Buffer Copy without Checking Size of Input ('Classic Buffer Overflow') Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') [5] 76.9 CWE-306 Missing i Authentication ti ti for Critical Function [6] 76.8 CWE-862 Missing Authorization [7] 75.0 CWE-798 Use of Hard-coded Credentials [8] 75.0 CWE-311 Missing Encryption of Sensitive Data 6

OWASP Top 10 (2013) Source : https://www.owasp.org M. H HDHILI & K. MAALAOUI Cours sécurité et cryptographie 7

SQL injection Description De nombreuses applications utilisent des informations provenant d un utilisateur pour construire leurs requêtes SQL. (nom, login, password ) Les données ordinaires fournies par les utilisateurs peuvent être interprété comme des requêtes SQL: présence de mauvais caractères tels que : ;)"# Risques: Contourner les vérifications de sécurité Obtenir des informations confidentielles. Modifier la BD, Exécuter des commandes systèmes Types Injections SQL standards Injections SQL de requêtes d union Injections SQL aveugles 8

Détection de la présence de vulnérabilités Comprendre quand l application se connecte à un serveur de BD: Formulaires d'authentification: Il ya des chances que les informations d'identification sont comparées à une BD qui contient tous les comtes des utilisateurs Moteurs de recherche: les chaînes présentées par l'utilisateur peuvent être utilisées dans une requête SQL qui extrait tous les documents pertinents à partir d'une BD Sites de Commerce électronique: Les produits et leurs caractéristiques (prix, description, disponibilité,...) sont très susceptibles d'être stockées dans une BD 9

Détection de la présence de vulnérabilités Stratégie: Tester chaque champs séparément en utilisant différents chaines et récupérer les messages d erreurs générées afin de les analyser. Permet d identifier avec précision les paramètres qui sont vulnérables Test de base: l'ajout de mauvais caractères tels que : ;)"# (') : utilisée dans SQL comme une marque de fin de chaîne de caractères (;): utilisé pour marquer la fin d une instruction SQL. (/*) et (*/): balises de commentaires En l absence de filtres, ces caractères peuvent mener à l exécution de requêtes incorrectes et/ou générer des erreurs Commencer par les injections standards 10

Injection SQL standard: exemples Exemple 1: SQL permet l exécution de commandes shell SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='$USER_INPUT' ' ORDER BY PRICE Si l utilisateur fournie $USER$ _ INPUT = '; exec master..xp_ cmdshell 'dir' - - Le résultat sera: 1. SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=''; 2. exec master..xp_cmdshell 'dir' - - ( exécution de la cmde dir) 3. 'ORDER BY PRICE (considéré comme commentaire) 11

Injection SQL standard: exemples Exemple 2: Soit le script où $login et $password résultent des champs du formulaire d authentification (page html, php, asp, cgi...) $login = Request.Form("login") $password = Request.Form("password") SELECT * FROM users WHERE Login=$login AND Password=$password Le script ne vérifie pas la présence de mauvais caractères tels que : ;)"# 1) Si l utilisateur fournie or"= pour les deux variables, le résultat sera: SELECT * FROM users WHERE Login='' OR ''='' AND Password= '' OR ''=' 'or"=" retourne toujours VRAI Si aucun autre contrôle n est effectué accès sous l identité du premier utilisateur inscrit dans la BD, le plus souvent, l administrateur. 12

Injection SQL standard: exemples 2) Gagner les droit d accès d un utilisateur particulier connaissant son nom de login ou son adresse email (soit user1) : saisir user1 pour $login et or"=" pour $password La requête sera: SELECT * FROM users WHERE Login= user1 AND Password=''OR ''=' 3) Ignorer une partie de la requête en utilisant /* et */ qui sont des balises de commentaire: saisir /* pour $login et */ OR "= pour $password La requête sera: SELECT * FROM users WHERE Login = /* AND Password = */ OR = Qui est equivalente à: SELECT * FROM users WHERE Login = OR = 13

Injection SQL standard: exemples Exemple 3 (PHP): $ID = $_COOKIE["MID"]; MYSQL_QUERY("SELECT MESSAGEID, SUBJECT FROM MESSAGES WHERE MESSAGEID = '$ID'");'") Si l utilisateur modifie le COOKIE $id = 1432' or '1' ='1 Le résultat sera: SELECT MessageID, Subject FROM messages WHERE MessageID = '1432' or '1' = '1 Ce qui permet de récupérer tout les messages (1432 et tout les autres) Solution: $id = intval($_cookie["mid"]); (_ 14

Injection SQL standard: exemples Exemple C# Chercher les items (itemname) dont le nom coïncide avec la chaine saisie par l utilisateur authentifié (username) string username = ctx.getauthenticatedusername(); string query = "SELECT * FROM items WHERE owner = '" + username + "' AND itemname = '" + ItemName.Text + "'"; La requête que ce code cherche à exécuter est SELECT * FROM items WHERE owner = <username> AND itemname = <itemname>; Si l utilisateur wiley fournie name' OR 'a'='a comme itemname, le requête sera: SELECT * FROM items WHERE owner = 'wiley' AND itemname = 'name' OR 'a'='a'; Ce qui est équivalent à SELECT * FROM items; car 'a'='a' est toujours vrai 15

OS Command injection Description Utilisation de données provenant d un usager pour construire les commandes soumises au système d exploitation. Les données utilisateurs peuvent contenir des éléments pouvant dévier la commande de son objectif Exemple (php) Prendre le nom d un utilisateur puis lister le contenu de son répertoire home $username = $_POST["user"]; $command = 'ls -l /home/'. $username; system($command); Si l utilisateur fournie ;rm -rf / la commande sera ls -l /home/;rm -rf / Permet de supprimer tout le système de fichier (la racine /) 16

Buffer overflow (overrun) Un programme permettant d écrire des données au-delà de la limite d un tableau: Les données mises dans un buffer excède sa taille Mettre des données dans un emplacement mémoire extérieur au buffer Copie d un buffer sans tester la taille de ce dernier (classic buffer overflow) Risques: Meilleur cas: arrêt brutal de l application. li i Pire cas: Langages: Exécution d un code injecté durant le débordement de la zone mémoire Prise de contrôle du système Principalement: C et C++ D autres langages peuvent aussi être vulnérables: Java, C# et VB 17

Buffer overflow: Exemples (langage C) Exemple 1: Char name[20]; printf ("Enter your name: "); scanf ("%s", name); Pb: pas de restriction sur la taille du nom saisie Exemple 2: void copy (char *input) { char buf[16]; strcpy (buf,input); } Pas de contrôle sur la taille de input 18

Buffer overflow (overrun) Exemple 3: char dest[20], src[20]; char prefix[] = http:// ; strcpy (dest, prefix); strncat (dest, src, sizeof (dest)); au lieu de strncat (dest, src, sizeof(dest) sizeof(prefix)); sizeof(prefix)); Exemple 4: char buf[20], data[32]; strncpy (buf, data, strlen (data)); au lieu de strncpy (buf, data, strlen (buf)) 19

Buffer overflow: exploitation 2 classes d exploitations: Les débordements sur la pile (Stack overflow Stack smashing). Tableaux statiques Les débordements sur le tas (Heap overflow). Tableaux dynamiques 20

Stack overflow: exploitation 21

Stack overflow: exploitation 22

Buffer overflow: vulnérabilités CVE-2002-0649 Utilisé par le ver 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-2003-0533 Utilisé par le ver Sasser. Débordement de tableau (Active Directory du Local Security Authority Subsystem Service (LSASS)) permettant à un attaquant distant d exécuter un code malicieux. CVE-2010-2212 Débordement de tableau (Adobe Reader et Acrobat 9.x avant 9.3.3, et 8.x avant 8.2.3 pour Windows et Mac OS X) permettant à un attaquant distant de causer un déni de service ou d exécuter un code malicieux. 23

Logiciels malveillants 24

Logiciels malveillants (malware) Développés pour des fins malicieuses sous diverses formes Virus, Ver, Chevaux de Troie,Backdoors,, Spywares, adware Exploitent Les vulnérabilités logicielles: l intervalle de temps entre la découverte d une vulnérabilité et la disponibilité du remède. La naïveté des usagers. Varient selon Le mode d exécution Le mode de propagation L effet malicieux 25

Virus Forme: s attache à un autre logiciel ou document Mode d exécution: exécuté suite à l exécution du code hôte. Propagation: transfert du programme / document hôte d un système à un autre. Reproduction: se reproduisent au sein du nœud infecté peuvent infecter d autres logiciels/documents Exemples: À l aide des usagers Grace à des vulnérabilités logicielles ILoveyou, Melissa, 26

Ver Semblable au virus (ver = virus réseau) Forme: autonome (stand alone) Mode d exécution: Automatique ou par l intervention de l usager (ingénierie sociale) Peut modifier l OS hôte pour être lancé automatiquement Propagation: par le réseau vers d autres ordinateurs vulnérables. Balayage de connexion TCP, courrier, messagerie instantanée (Obtient les informations réseau à partir du poste infecté) Reproduction: Par lui-même (généralement grâce à une vulnérabilité logicielle) Exemples: Moris Worm, Slammer, Sasser, CodeRed, Blaster, 27

Cheval de troie Forme: souvent attachés manuellement au logiciel hôte (jeu, utilitaire ) Mode d exécution: exécutés en faisant partie d'un autre programme Propagation pg : téléchargement de logiciels hôtes: inciter les utilisateurs à les télécharger (Ingénierie sociale) Reproduction: Ne peuvent ni se reproduire ni infecter d'autres logiciels Exemples: Sub7, Back Orifice, faux antivirus 28

Spyware (logiciel espion) Forme: Tout logiciel qui contient un programme-espion p emploie en arrière-plan la connexion Internet de l'utilisateur recueillir et transmettre des données personnelles (intérêts, habitudes de navigation..) i )à une régie publicitaire. i i Mode d éxécution: Installé avec un logiciel populaire, un outil shareware, un faux antispyware etc Propagation: pg Ne se propage pas automatiquement. Reproduction: Ne se reproduit pas. Ne nécessite pas de programme hôte à infecter. 29

Adware (logiciel publicitaire) Forme: Logiciel gratuit affichant, lors de son utilisation, des annonces publicitaires menant à des sites commerciaux. Propagation: Ne se propage pas automatiquement. Reproduction: Ne se reproduit pas. Ne nécessite pas de programme hôte à infecter. Fonctions: Affiche des fenêtres publicitaires (pop-up) Vole les informations personnelles (stockées dans l ordinateur infecté). Enregistre les habitudes de navigation web Déroute certaines requêtes HTTP vers des sites commerciaux 30

Conclusions Nécessité de bien comprendre le fonctionnement des logiciels malveillant: Comment se reproduisent-ils? Comment se propagent-ils? Comment s exécutent-ils? Que font-ils exactement? Pour: Déterminer les menaces qu ils représentent t Evaluer les risques correspondants. Mettre en place les mécanismes de protection adéquats Déterminer l efficacité des divers moyens de protection 31