Sécurité logicielle. École de technologie supérieure (ÉTS) MGR850 Automne 2012 Automne 2012. Yosr Jarraya. Chamseddine Talhi.



Documents pareils
Les enjeux de la sécurité informatique

Sécurité informatique: introduction

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

- Couches - Éléments - Domaines - ArchiMate et les techniques du BABOK

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

Gestion des mises à jour logicielles

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

Les utilités d'un coupe-feu applicatif Web

Rapport de certification

La Sécurité des Données en Environnement DataCenter

IDC Risk Management 2009 Quelles démarches pour satisfaire les exigences de la norme PCI DSS?

Rapport de certification

Industrie des cartes de paiement (PCI) Norme de sécurité des données Récapitulatif des modifications de

Actuellement, de nombreux outils techniques et technologiques sont disponibles pour assurer la sécurité d un système d information.

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

Panorama général des normes et outils d audit. François VERGEZ AFAI

ISO/CEI 27001:2005 ISMS -Information Security Management System

OPTIMISER SON PROCESSUS DE TEST AVEC UNE APPROCHE BOITE GRISE

Travaux soutenus par l ANR. Jean-François CAPURON (DGA) Bruno LEGEARD (Smartesting)

Rapport de certification

Tom Pertsekos. Sécurité applicative Web : gare aux fraudes et aux pirates!

Opportunités s de mutualisation ITIL et ISO 27001

Rapport de certification

Sûreté de fonctionnement. Cyber-sécurité et sécurité informatique Similitudes d approche avec la sécurité fonctionnelle

Rapport de certification

Indicateur et tableau de bord

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Vérifier la qualité de vos applications logicielle de manière continue

Rendez-vous la liberté avec Rational Quality Manager

Analyse,, Conception des Systèmes Informatiques

Découvrir les vulnérabilités au sein des applications Web

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Projet Sécurité des SI

Rapport de certification

Rapport de certification

ISO/IEC Comparatif entre la version 2013 et la version 2005

Gestion des incidents

Face aux nouvelles menaces liées aux cyber attaques et l évolution des technologies, comment adapter son SMSI? CLUB27001 PARIS 22 novembre 2012

Fiche Technique. Cisco Security Agent

DÉVELOPPER DES APPLICATIONS WEB SÉCURISÉES

en SCÈNE RATIONAL Rational Démonstration SDP : automatisation de la chaîne de développement Samira BATAOUCHE sbataouche@fr.ibm.com

A.E.C. - Gestion des Applications, TI LEA.BW

HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet JSSI INSA

Sécurité des systèmes informatiques Introduction

HySIO : l infogérance hybride avec le cloud sécurisé

PCI DSS un retour d experience

Bertrand Cornanguer Sogeti

La sécurité applicative

IBM Security Systems Les nouveaux enjeux de la sécurité Serge Richard - CISSP - Senior Security Architect. serge.richard@fr.ibm.

CEG4566/CSI4541 Conception de systèmes temps réel

UML est-il soluble dans les méthodes agiles?

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

L ASSURANCE QUALITÉ ET SÉCURITÉ DE VOTRE SYSTÈME D INFORMATION

Rapport de certification

SÉCURITÉ DES APPLICATIONS WEB LA SOLUTION D ANALYSE IDÉALE POUR LES APPLICATIONS WEB

MV Consulting. ITIL & IS02700x. Club Toulouse Sébastien Rabaud Michel Viala. Michel Viala

Colloque Du contrôle permanent à la maîtrise globale des SI. Jean-Louis Bleicher Banque Fédérale des Banques Populaires

Processus d Informatisation

Rapport de certification

Cloud Computing: de la technologie à l usage final. Patrick CRASSON Oracle Thomas RULMONT WDC/CloudSphere Thibault van der Auwermeulen Expopolis

REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION

Approche Méthodologique de la Gestion des vulnérabilités. Jean-Paul JOANANY - RSSI

Release Status Date Written by Edited by Approved by FR_1.00 Final 19/03/2014

TEST D INTRUSION : UNE SIMULATION DE HACKING POUR IDENTIFIER LES FAIBLESSES DE VOTRE SYSTÈME

Convergence entre Sécurité et Conformité par l approche Software as a Service Présentation en avant-première de QualysGuard Policy Compliance

Patrons de Conception (Design Patterns)

Conférence sur les marchés publics informatiques

Rapport de certification

CobiT. Implémentation ISO 270. Pour une meilleure gouvernance des systèmes d'information. 2 e édition D O M I N I Q U E M O I S A N D

L'agilité appliquée à nous-mêmes. Philippe Krief, PhD Development Manager IBM France Lab

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

JOURNÉE THÉMATIQUE SUR LES RISQUES

Rapport de certification

Gestion du risque avec ISO/EIC17799

Développement itératif, évolutif et agile

SHAREPOINT PORTAL SERVER 2013

Approche holistique en huit étapes pour la sécurité des bases de données

La gestion des risques IT et l audit

Meilleures pratiques de l authentification:

CYBERSÉCURITÉ. Des capacités globales de cybersécurité pour une transformation numérique en toute confiance. Delivering Transformation. Together.

Des capacités de cybersécurité et de confiance numérique pour accélérer votre transformation digitale

Vérifica(on et Valida(on de Business Process. Ang Chen et Levi Lúcio

Rapport 2015 sur les risques d attaques informatiques

Graphes d attaques Une exemple d usage des graphes d attaques pour l évaluation dynamique des risques en Cyber Sécurité

PAS X. PAS-X Services. Competence. Implementation. Support. Vue d ensemble des services. Portfolio des services proposés

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

Synergies entre Artisan Studio et outils PLM

Christophe Pagezy Directeur Général Mob:

JSSI mars 2012 Laurent Butti Orange France DMGP/PORTAIL

L analyse de logs. Sébastien Tricaud Groupe Resist - Toulouse 2013

Introduction à l ISO/IEC 17025:2005

L'infonuagique, les opportunités et les risques v.1

Gestion des incidents de sécurité. Une approche MSSP

Sujet 2 : Interconnexion de réseaux IP (routeurs CISCO). Sujet 3 : Implémentation d un serveur VPN avec OpenVPN.

GL Processus de développement Cycles de vie

COMPUTING. Jeudi 23 juin CLOUD COMPUTING I PRESENTATION

Contrat de Niveau de Service pour les Services en Ligne Microsoft

Transcription:

MGR850 Automne 2012 Automne 2012 Sécurité logicielle Yosr Jarraya Chargé de cours Chamseddine Talhi Responsable du cours École de technologie supérieure (ÉTS) 1

Plan Motivations & contexte Développement de logiciels sécurisés Le cycle de développement logiciel Les bases de connaissance Le rôle des participants Conclusion Chamseddine Talhi, ÉTS 2

Motivation & contexte Sécurité approche classique La sécurité informatique considère généralement la sécurisation du périmètre d un réseau. Pare-feu Systèmes de détection ou de prévention d intrusions Pots de miel Réaction plutôt que prévention à la source! 3

Motivation & contexte Sécurité approche préventive La sécurité logicielle a pour but de comprendre les risques de sécurité dus aux failles des logiciels, proposer de bonnes pratiques de développement logiciel. Dans ce cadre, sécurité est synonyme de robustesse. Comment s assurer qu un logiciel utilisé dans un environnement hostile n ait pas de faille de sécurité et réponde toujours selon les spécifications. Éliminons les failles à la source! 4

Motivation & contexte Sécurité approche préventive La difficulté provient du fait que: La sécurité est une propriété pas une fonctionnalité! 5

Microsoft s Trustworthy Computing Initiative Mémo de Bill Gates en janvier 2002 présente la nouvelle approche de Microsoft de développer des logiciels sécurisés. Microsoft aurait dépensé plus de 300 millions USD. The Trustworthy Computing Security Development Lifecycle. Publications de Gary McGraw CTO de Cigital Sécurité = Robustesse du logiciel 6

L objectif : intégrer de bonnes pratiques simples tout au long du cycle de développement logiciel afin de produire des logiciels plus robustes donc plus sécurisés. Cette liste de bonnes pratiques est relativement courte. I. Cas abusifs II. Spécifications de sécurité III. Analyse des risques IV. Revue de code V. Plan de tests de sécurité VI. Tests d intrusions VII. Sécurité opérationnelle 7

Analyse des risques Cas abusifs Spécifications de sécurité Analyse des risques Tests sécurité basés sur les risques Revue code (outils) Analyse des risques Tests intrusion Tests intrusion Sécurité opérationnelle Spécification Cas d usage Architecture Plan de tests Code Tests Déploiement Adapté de Software Security de McGraw 8

I. Cas abusifs Entrée: Documents de spécification et de cas d usage. Exemple de résultats Cas abusifs scénarios d utilisation malveillante. Pour atteindre l objectif de cette phase, il peut être nécessaire de recourir à divers intervenants. Experts en sécurité Experts en fiabilité (reliability) Concepteurs du système Analystes fonctionnels 9

I. Cas abusifs - Comment? Répertorier les diverses interfaces. Lorsqu un usager peut interagir avec le système, l attaquant peut essayer d abuser de cette interface. Chercher les hypothèses faites au sujet des usagers. Les usagers ne peuvent faire Les attaquants peuvent le faire! Les usagers ne feront pas Les attaquants vont le faire! Définir ce que le logiciel ne doit pas faire. Aussi important que de définir ce que le logiciel doit faire. Utiliser des modèles d attaque. 10

I. Cas abusifs Exemple 1 Conduire Inclus Barrer véhicule Inclus Barrer la direction Voler véhicule Inclus Court-circuiter allumage Cas d utilisation Cas abusifs I. Alexander, Misuse cases: use cases with hostile intent. IEEE Software, janvier 2003. 11

I. Cas abusifs Exemple 2 Chamseddine Talhi, ÉTS I. Alexander, Misuse cases: use cases with hostile intent. IEEE Software, janvier 2003. 12

II. Spécification de la sécurité Entrées: Documents de spécification, cas d usage et cas abusifs. Exemple de résultats Identification des information critiques à protéger Spécification des propriétés de sécurité à faire respecter Dépendamment des ressources disponibles: spécification des mécanismes de sécurité à déployer. Cette phase doit faire partie intégrante de la phase de spécification du système. Une erreur typique est de développer les spécifications de sécurité indépendamment des spécifications du système. 13 Chamseddine Talhi, ÉTS

II. Spécification de la sécurité Sécurité? Prendre en charge la sécurité durant la conception? Chamseddine Talhi, ÉTS 14

II. Spécification de la sécurité Concevoir les mécanismes de sécurité? Spécifier les propriétés de sécurité? Prendre en charge la sécurité durant la conception? Vérifier le renforcement de la sécurité? Intégrer la sécurité dans un modèle? Caractéristiques des solutions requises: 1. Adoption d un langage standard de modélisation 2. Méthodes de vérification formelles 3. Outils automatiques de vérification & d intégration Chamseddine Talhi, ÉTS 15

II. Spécification de la sécurité Ex. admission d un patient dans une institution médicale C. Talhi et al. Usability of Security Specication Approaches for UML Design: A Survey. JOT 2009. Chamseddine Talhi, ÉTS 16

II. Spécification de la sécurité Ex. profile UML Créer de nouveaux types d éléments en se basant sur les types existants Chaque nouveau type (e.g., privacy) peut être attribué à n importe quel éléments d un diagramme d activité C. Talhi et al. Usability of Security Specication Approaches for UML Design: A Survey. JOT 2009. Chamseddine Talhi, ÉTS 17

II. Spécification de la sécurité Ex. profile UML C. Talhi et al. Usability of Security Specication Approaches for UML Design: A Survey. JOT 2009. Chamseddine Talhi, ÉTS 18

II. Spécification de la sécurité Ex. profile UML Défis: 1. Assister le concepteur NON-EXPERT en sécurité 2. Interpréter les annotations 3. Vérifier automatiquement les propriétés 4. Interagir avec le concepteur afin d interpréter les résultats de l analyse et modifier le modèle Chamseddine Talhi, ÉTS 19

III. Analyse de risques Entrée: Documents de spécifications et d architecture, de cas d usage et de cas abusifs. Exemple de résultats Mauvais contrôle d accès. Mauvaise protection de la confidentialité ou de l intégrité des actifs. Aucun moyen d assurer la disponibilité des actifs. L objectif est d identifier les erreurs de conception. Documenter les hypothèses. Identifier les attaques possibles. Établir une liste des attaques usuelles. Définir les objectifs de sécurité. 20

IV. Revue du code Entrée: Code du logiciel. Exemple de résultats Débordement de tableaux Utilisation de fonctions à risque (e.g., strcat, strcpy) Cas d erreur non traités Tests insuffisants L objectif est d identifier les erreurs d implémentation. Outils d analyse statique (spécialement pour C et C++) Coverity, Fortify Software, Ounce Labs, Secure Software Revue de code humaine 21

IV. Revue du code à la recherche de.. Common Weakness Enumeration cwe.mitre.org Improper access of indexable resource Use of insufficiently random values Interaction error Insufficient control of resource through its lifetime Incorrect calculation Insufficient control flow management Protection mechanism failure Insufficient comparison Failure to handle exceptional conditions Use of incorrectly-resolved name or reference Failure to enforce that messages or data are well-formed Coding standards violation Classification des vulnérabilités répertoriées par cwe.mitre.org 22

V. Test de sécurité Entrée: Modules et système Documents d architecture et d analyse des risques. Exemple de résultats Erreurs d implémentation. Erreurs fonctionnelles. Deux aspects doivent être considérés. Tests fonctionnels de sécurité. Tester les fonctionnalités de sécurité comme toute autre fonctionnalité. Tests malveillants de sécurité Tester en se basant sur les attaques habituelles, l analyse des risques et les cas abusifs. Tester comme une personne malveillante voulant exploiter une faille de sécurité. Toutefois, la personne effectuant les tests a plus d information qu un attaquant. 23

V. Test de sécurité Objectif: S assurer qu un logiciel est robuste et peut continuer de fonctionner de façon acceptable malgré la présence d attaques malveillantes. Comment? Les tests doivent débuter au niveau des composantes. Les risques contre les actifs doivent être atténués à ce niveau. Les tests doivent se poursuivre lors de l intégration. Les risques dus aux interactions entre composantes doivent être testés. Par qui? Les responsables QA (assurance de la qualité) ont l habitude d effectuer des tests de fonctionnalité. Toutefois, ils n ont pas l expertise pour effectuer les tests malveillants. Ces tests reposent sur l expertise et l expérience en sécurité. 24

V. Test de sécurité Changement de paradigme: Au lieu de tester ce qu un logiciel doit faire, il faut tester ce qu il ne doit pas faire. Exemple: interface demandant d entrer son identifiant Entre 5 et 32 caractères Caractères alphanumériques plus les caractères - et _ Lettres non accentuées Le premier caractère doit être une lettre Le responsable de QA va tester tous les cas représentatifs respectant les spécifications. Mais il ne va pas tester les débordements de tableaux. 256 caractères! 25

V. Test de sécurité Tests fonctionnels Tests classiques validant les fonctionnalités de sécurité. Tests malveillants Tests spécifiques validant ce que le logiciel ne doit pas faire. Exemples: L accès est bloqué après trois tentatives d accès invalides. L information est échangée ou stockée de façon chiffrée. Tests de la forme: Lorsque qu un événement X survient, le système réagit de la façon Y. Tests basés: Analyse des risques Vulnérabilités classiques Exemple: Vérifier l existence des débordements de tableaux Basés sur l expérience et une bonne connaissance des vulnérabilités. 26

V. Test de sécurité - exemple Code vulnérable Cas de test Chamseddine Talhi, ÉTS 27

VI. Test d intrusion (penetration testing) Entrée: Système déployé dans un environnement d utilisation. Documents d architecture et d analyse des risques. Exemple de résultats Problèmes de configuration (p.e. certificats X.509 absents) Services ouverts inutilement (p.e. interface de débogage) L objectif est d identifier les erreurs d implémentation, de conception et de configuration. Cette étape est essentielle afin de déterminer les failles dues à la configuration et aux autres facteurs environnementaux. Sans analyse des risques, cette étape donne peu de résultats concluants. Un ethical hacker testant un système comme une boîte noire est très limité. 28

VI. Test d intrusion - pièges Les tests de pénétration sont faits généralement très (trop?) tard. Les erreurs sont généralement coûteuses à éliminer. Les erreurs découvertes par les outils ne sont pas priorisées en fonction des risques d affaire. Il est possible qu une erreur grave n expose pas d actif important. Les erreurs sont souvent corrigées individuellement sans chercher à corriger la cause commune. Les erreurs ne sont pas intégrées au système de gestion d erreurs (bug tracking) Les tests de pénétration sont effectués par un équipe indépendante. La couverture des tests est difficile à évaluer. 29

VI. Test d intrusion Logiciel gratuit nmap nessus nikto Commercial Core Impact QualysGuard family IBM Internet Scanner HP WebInspect Watchfire Appscan Paros Proxy OWASP WebScarab 30

VII. Sécurité opérationnelle Entrée: Système déployé dans un environnement opérationnel. Exemple de résultats Fichier d audit ne contient pas suffisamment d information. Gestion de mots de passe pas assez flexible. L objectif est d évaluer comment le système réagi lorsqu il est déployé dans un milieu «hostile». Identifier les failles dues aux erreurs d implémentation ou de conception mais plus particulièrement celles dues aux «carences» ou «insuffisances» du système. Ces informations opérationnelles doivent être incluses dans le prochain cycle de développement du système afin de pallier aux failles découvertes. 31

Sécurité logicielle ce n est pas que Une histoire de codage ou de convention! Il y a plus que les débordements de tableaux et d entiers. Une histoire de fonctionnalité! Mots de passe, chiffrement, authentification, Une histoire de listes de contrôle (check lists)! 32

Base de connaissances requises Connaissances normatives Principes de la sécurité Principe du moindre privilège, usage exclusif de clés, méthodes de contrôle d accès, Guides Règles Interdire l utilisation des fonctions strcpy, sprintf, (langage C) Connaissances descriptives Vulnérabilités Exploits Scénarios des attaques Connaissances historiques Base de données des risques et des vulnérabilités 33

Rôle de chacun Certaines des bases de connaissance sont traditionnellement du domaine des spécialistes des TI. Exploits Scénarios des attaques Connaissance historique des risques Certaines des activités sont traditionnellement du domaine des spécialistes logiciels. Définition des spécifications et cas abusifs. Tests des fonctionnalités. Revue de code. 34

Spécialistes des TIs Analyse des risques Cas abusifs Spécifications de sécurité Analyse des risques Tests sécurité basés sur les risques Revue code (outils) Analyse des risques Tests intrusion Tests intrusion Sécurité opérationnelle Spécification Cas d utilisation Architecture Plan de tests Code Tests Déploiement Adapté de Software Security de McGraw 35

Spécialistes de génie logiciel Analyse des risques Cas abusifs Spécifications de sécurité Analyse de risque Tests sécurité basés sur les risques Revue code (outils) Analyse des risques Tests intrusion Tests intrusion Sécurité opérationnelle Spécification Cas d utilisation Architecture Plan de tests Code Tests Déploiement Adapté de Software Security de McGraw 36

Conclusion La sécurité est une propriété d un logiciel et non une fonctionnalité dudit logiciel. La sécurité doit faire partie intégrante du logiciel. Dès sa conception et au cours de chacune des phases subséquentes de son développement. Security is a process, not a product. Bruce Schneier, CTO de BT Counterpane Auteur de nombreux livres de sécurité. 37

Références Les livres de Gary McGraw Le site Build Security In (http://buildsecurityin.us-cert.gov/) Best Practices Acquisition Architectural Risk Analysis Assembly, Integration, & Evolution Code Analysis Deployment & Operations Governance & Management Incident Management Legacy Systems Measurement Penetration Testing Project Management Requirements Engineering Risk Management Security Testing System Strategies Training & Awareness White Box Testing Outils 38

Extra Fonctions vulnérables en C https://security.web.cern.ch/security/recommendations/en/codetools/c.shtml C doc: http://www.cplusplus.com/reference/clibrary/cstring/memset/ Secure Coding Principles: OWASP guide pages 31-38 ERROR HANDLING, AUDITING AND LOGGING 192-204 39