Upgrade to Pro — share decks privately, control downloads, hide ads and more …

La sécurité applicative par le design

hellosct1
November 19, 2022

La sécurité applicative par le design

Présentation effectuée au Capitole du libre par Christophe Villeneuve sur "La sécurité applicative par le design".
Cette session essaiera d'identifier ce que l'on peut attendre d'une application web sécurité (appelé en anglais Security By Design) qui a pour but de garantir une certaine qualité pour vos données et de vous protéger contre les malveillances, les erreurs et la malchance, sans oublier les vols, fraudes, destructions et perturbations

hellosct1

November 19, 2022
Tweet

More Decks by hellosct1

Other Decks in Technology

Transcript

  1. La sécurité applicative par le design
    Christophe Villeneuve
    @hellosct1
    @[email protected]
    Capitole du Libre 2022

    View Slide

  2. Atos open source - afup – lemug.fr – mariadb – drupal – mozilla - firefox – lemugfr - sumo – webextensions – VR – AR – XR - Cause commune 93.1 FM - TechSpeaker - Lizard - eyrolles – editions eni – programmez – linux pratique – webriver – elephpant - CommonVoice – Sécurité -
    Cybersécurité
    Christophe Villeneuve

    Consultant Open Source

    Dresseur animaux

    View Slide

  3. @hellosct1 – Capitole du libre 2022
    Aujourd’hui

    Les projets

    Logique !!!

    Bonnes pratiques

    View Slide

  4. @hellosct1 – Capitole du libre 2022

    Les projets

    Logique !!!

    Bonnes pratiques

    View Slide

  5. @hellosct1 – Capitole du libre 2022
    Réalisation une application web de base

    Méthodologies
    – Objectifs
    – Analyse et préparation
    – Gestion de projet → orienté métier

    Types de réalisations d’une application web
    – Application web statique
    – Application web dynamique
    – Application de Type e-commerce
    – Application web portail
    – Application web avec gestionnaire de contenu (CMS)

    View Slide

  6. @hellosct1 – Capitole du libre 2022
    Application web

    Plusieurs technologies associées
    Ajouter un nouvel outil ou une nouvelle envie

    View Slide

  7. @hellosct1 – Capitole du libre 2022
    Les erreurs… Jamais chez moi

    Ceux ne sont pas des erreurs
    – Ceux sont des features

    Mais un trou de souris…

    View Slide

  8. @hellosct1 – Capitole du libre 2022
    Tout est beau.. Tout est merveilleux

    View Slide

  9. @hellosct1 – Capitole du libre 2022
    Mais : Le résultat de la réalisation
    Défaut
    Logique métier
    Erreurs
    Sécurité
    Défaut
    De code
    Deux semaines
    Piratage éthique
    Plusieurs années
    de développement

    View Slide

  10. @hellosct1 – Capitole du libre 2022
    Alors...

    View Slide

  11. @hellosct1 – Capitole du libre 2022
    Allo… Docteur ?

    De nombreux problèmes → présent

    Dérive du projet

    ...
    Mauvais
    DESIGN

    View Slide

  12. @hellosct1 – Capitole du libre 2022
    Mauvais Design (1/2)

    Impactera tôt ou tard
    – Sécurité
    – Maintenance
    – Evolution
    – Coûts du projet
    https://www.koreus.com/embed/hacker-controle-voiture-distance

    View Slide

  13. @hellosct1 – Capitole du libre 2022
    Mauvais Design (2/2)

    Cas fréquents :
    – Contrôle des données en entrée
    – Mauvaise usage du chiffrement
    – Absence de framework
    – Secrets en dur dans le code
    – Manque de logs
    – Système d'authentification faible
    – Hétérogénéité des environnements (OS)
    – Problème entre architecture et dev

    View Slide

  14. @hellosct1 – Capitole du libre 2022
    Périmètre utilisation

    Définir un périmètre d’utilisation

    Si mauvais contrôle du périmètre
    – Vous pouvez ouvrir un accès vers l’extérieur

    Ex : un bluetooth ouvert
    – Wifi non sécurisé

    Nombres questions peuvent se poser !!!

    View Slide

  15. @hellosct1 – Capitole du libre 2022
    Pourquoi ? Pas de sécurité

    Sécurité = ralenti les projets

    Faible sensibilisation à la sécurité

    Mauvaises pratiques de développement

    Manque de contrôles

    Manque d’intégration de la sécurité dans les
    projets
    – Préoccupation à la sécurité trop tard

    View Slide

  16. @hellosct1 – Capitole du libre 2022

    Les projets

    Logique !!!

    Bonnes pratiques

    View Slide

  17. @hellosct1 – Capitole du libre 2022
    Origine des erreurs
    La spécification 10 %
    Le Design 40 %
    Le codage 50 %

    View Slide

  18. @hellosct1 – Capitole du libre 2022
    Détections des erreurs trouvées
    Spécification 1 %
    Désign 1 %
    Codage 1 %
    Tests fonctionnels 6 %
    Tests systèmes 12 %
    En production 20 %

    View Slide

  19. @hellosct1 – Capitole du libre 2022
    Sécurité applicative par le design ?

    = Security by design

    Modéliser
    – Les risques
    – Les menaces

    Idée d’intégrer les mécanismes de protection
    – Au plus tôt
    – De manière plus efficiente au produit

    View Slide

  20. @hellosct1 – Capitole du libre 2022
    ISO/IEC 27034:2011

    Norme conçu par
    – L'Organisation Internationale de Normalisation (ISO)

    But :
    – Responsabiliser les organismes

    Gestion de la sécurité de leurs applications et informations.

    Ensemble de concepts et techniques pour garantir
    – Une protection optimale de vos applications.

    View Slide

  21. @hellosct1 – Capitole du libre 2022
    Pour qui ?

    Recommandée
    – dans tous les développements d’applications

    Parfois exigée dans les projets
    – qui touchent à la sécurité de fonctionnement des
    appareils
    → Impact : Ricochet à la sécurité des personnes

    View Slide

  22. @hellosct1 – Capitole du libre 2022
    Les principes

    Aucune norme ou concept
    – par des standards

    Référentiels et bonnes pratiques
    – Viega & McGraw
    – Owasp
    – Nist
    – NCSC
    – Cliff Berg’

    View Slide

  23. @hellosct1 – Capitole du libre 2022
    Se poser les bonnes questions ?

    Comment développer de nouvelles applications

    Ajouter des nouvelles fonctionnalités à des
    applications en production
    → Sans introduire de nouvelles vulnérabilités
    → Compromettre une infrastructure en mode Run

    View Slide

  24. @hellosct1 – Capitole du libre 2022
    Réunir les bons acteurs

    Responsables

    Développeurs

    Commerciaux

    Directeurs

    ...
    Brainstorming sécurité

    View Slide

  25. @hellosct1 – Capitole du libre 2022
    Brainstorming de la sécurité (1/2)

    Nouveau projet
    et / ou

    Evolution du projet
    → Une nouvelle fonctionnalité
    Chaque participant
    a sa vision
    de la sécurité

    View Slide

  26. @hellosct1 – Capitole du libre 2022
    Brainstorming de la sécurité (2/2)

    Clarification des ressources

    Comprendre les attaquants

    Architecture applicative sécurisée
    © adikts.io

    View Slide


  27. Les projets

    Logique !!!

    Bonnes pratiques

    View Slide

  28. @hellosct1 – Capitole du libre 2022

    View Slide

  29. @hellosct1 – Capitole du libre 2022
    1 - Minimiser la surface d’attaque

    Nouvelle fonctionnalité dans Application

    Risque augmente
    – Impact sur la totalité du projet

    Objectif d’un développement sécurisé
    – Réduire le risque global en diminuant la surface
    d’attaque
    - Nouvelle fonction
    (ex : Recherche avancée)
    - Authentification
    - Attaque d'inclusion de fichiers

    View Slide

  30. @hellosct1 – Capitole du libre 2022
    2 – Etablir les valeurs par défaut sécurisées

    Lors du déploiement d’une application
    – Sécurité par défaut pour les utilisateurs
    → obtenir une confiance : « Prête à l’emploi »

    Un utilisateur doit disposer d’un compte avec
    certains privilèges et prédéfinis

    Valeurs par défaut strictes sur les différentes actions
    →que l’utilisateur peut faire
    →méthode d’enregistrement des données
    - Mise à jour d’un mot de passe
    régulièrement
    - Double Authentification

    View Slide

  31. @hellosct1 – Capitole du libre 2022
    3 – Principe du moindre privilège

    Application Web
    → Minimum de privilège (ex : accès au contenu)

    Définition des droits de l’utilisateur

    Permissions des ressources (CPU, mémoire, réseau...)

    Permissions du système de fichiers
    - Site actualité (beaucoup de contributeurs)
    → Rôle & droits définis
    - Si Nouveau contributeur
    → minimum de droits (Auteur / Relecture...?)

    View Slide

  32. @hellosct1 – Capitole du libre 2022
    4 – Défense en profondeur

    Aborder les risques de différentes manières
    – Contrôles de sécurité multiples

    Meilleure option pour sécuriser une application
    – Réduire la surface d’attaque

    Contrôle d’accès d’un utilisateur
    – Validation par différents niveaux
    – Contrôles de vérification centralisés
    – Obligation d’être connecté et identifié
    – Outils de journalisation (log)
    - Connexion utilisateur par ses identifiants
    Contrôle IP, 2FA, Captcha, Historique de connexions

    View Slide

  33. @hellosct1 – Capitole du libre 2022
    5 – Echec en toute sécurité

    2 types d’échec :
    – Action venant de l’utilisateur
    – Echec d’une transaction

    Problème de traitement d’une transaction
    – Un bouton → clic → réponse ?

    Accès à l’interface utilisateur

    Les messages de réponse
    → clair et précis

    Les informations sensibles
    → dans les logs ou BDD
    → pas en clair
    - Champ code postal

    View Slide

  34. @hellosct1 – Capitole du libre 2022
    6 – Services tiers

    Nouvelles fonctionnalités
    – On évite de recoder (pour le développeur)

    Utilisation de Services tiers (API externe, Service…)

    Risque d’élargir la surface d’attaque
    – Suivre leurs actualités
    – Vérifier la validité des données envoyées

    Eviter de donner tous les privilèges
    - Ajout VS suppression d’une API
    - Fonctions obsolètes

    View Slide

  35. @hellosct1 – Capitole du libre 2022
    7 – Séparation des fonctions

    Séparation d’une tâche
    – Important dans une application

    Eviter des agissements frauduleux
    - Accès administrateurs
    Notion différente pour 1 site d’actualité ou marchand

    View Slide

  36. @hellosct1 – Capitole du libre 2022
    8 – Eviter la sécurité par l’obscurité

    Méthode de sécurité faible
    →L’accès n’est pas visible par l’interface

    Accès plus rapide à un écran de configuration

    Eviter les accès différents
    – Porte dérobée
    - modification du port d’une URL

    View Slide

  37. @hellosct1 – Capitole du libre 2022
    9 – Garder la sécurité simple et claire

    Eviter les architectures trop sophistiquées

    Si c’est trop complexe
    → Les risques de failles supplémentaires

    Méthode pas toujours comprise

    Eviter les fonctions inutiles, fonctions en double
    - Nouvelle fonctionnalité dans votre architecture
    Celle-ci, existe-t-elle ?

    View Slide

  38. @hellosct1 – Capitole du libre 2022
    10 – Les corrections

    Quand le problème de sécurité est identifié

    Actions :
    – Elaborer un test
    – Comprendre la cause du problème
    – Conséquence de cette faille

    Réactivé à corriger une faille / une vulnérabilité
    - Fuite de données
    Accès aux informations d’un autre utilisateur
    Modification de la valeur d’un cookie
    - Piratage d’un compte

    View Slide

  39. @hellosct1 – Capitole du libre 2022
    Au final

    Impact tous les métiers

    La sécurité d’une application ajoute une couche
    supplémentaire de sécurité à l’ensemble du SI

    Impact les performances globales
    – Une application
    – Une infrastructure

    La sécurité tardive
    → impact sera important

    View Slide

  40. @hellosct1 – Capitole du libre 2022
    Mais
    Confidentialité
    Intégrité
    Disponibilité
    N'autoriser l'accès qu'aux données pour lesquelles l'utilisateur est autorisé
    S'assurer que les données ne sont altérées (utilisateurs non autorisés)
    Les systèmes et les données, disponible pour les utilisateurs autorisés

    View Slide

  41. @hellosct1 – Capitole du libre 2022
    La plus dangereuse

    Contre les développeurs….
    Les collaborateurs

    View Slide

  42. @hellosct1 – Capitole du libre 2022
    En résumé
    Prévention
    Détection
    Réaction

    View Slide

  43. Christophe Villeneuve
    @hellosct1
    @[email protected]
    Merci

    View Slide