Préservation des données personnelles par la conception et le test LOUKMEN REGAINIA [email protected] Sommaire q Contexte q Les patrons de sécurité q La probléma;que q L’approche q Conclusion 2 Contexte Ø Une mul;tude d’applica;ons Web, Ubiquitaires et omniprésentes Ø Ces applica;ons qui gèrent et partage des données personnelles Ø Les applica;ons peuvent contenir des vulnérabilités Ø Les tests sont souvent manuels, et sujets à l’erreur 3 Contexte Exemple : Injec-on SQL Base de données Zone Interne ACL Applica;on web Pare-‐feu Injec;on SQL Zone accessible depuis l’extérieur Page web Ø Prendre en considéra;on les aspects de la sécurité dans le cycle de vie de l’applica;on 4 Les patrons de sécurité Ø Offrent les lignes directrices pour le développement des applica;ons sures et de haute qualité. Ø Un contexte Ø Un problème Ø Une solu;on Ø Caractérisés par : Ø Nom Ø Inten;on Ø Exemple de code Ø L’applicabilité Ø Par;cipants 5 Les patrons de sécurité Ø Nom : Role-‐based access control (RBAC) Ø Inten;on : Affecter les droits d’accès selon le rôle de l’u;lisateur dans l’organisa;on. U;le dans les entreprises avec changement fréquents de personnel Ø Exemple de solu;on : Ø Par;cipants : Contrôle d’accès à base de rôles Ø U;lisateur Ø Objets protégés Ø Les mécanismes de ges;on de rôles et de droits 6 L’organisation des patrons de sécurité L’organisa;on des patrons de sécurité: Plusieurs points de vue: 1. Les phases de cycle de vie 1. 2. 3. Spécifica;on Concep;on Implémenta;on 2. Les classes de vulnérabilités 1. 2. 3. 4. 5. 6. Usurpa;on Falsifica;on Répudia;on Divulga;on Dénie de service Escalade de privilèges 3. Les couches architecturales 1. 2. 3. Cœur Périmètre L’extérieur 7 L’organisation des patrons de sécurité Munawar Hafiz, et al. 2007 8 L’organisation des patrons de sécurité Un contexte de sécurité: Une connexion de Galois: 1. Eléments de Confiance o Leur absence rend l’applica;on vulnérable 2. Les patrons de sécurité o Avec quoi la sécurité est assurée 9 L’organisation des patrons de sécurité ∅ {El-conf1,El-conf2, El-conf3, El-conf4...} El-‐conf El-‐conf El-‐conf El-‐conf El-‐conf El-‐conf El-‐conf 1 2 3 4 5 6 7 Patron 1 X X X Patron 2 X Patron 3 X X Patron 4 X X Patron 5 X Patron 6 X X Patron 7 X X Patron 8 X {patron1} {El-conf1,El-conf2, Elconf7} {patron2} {El-conf6} {patron1} {El-conf1,El-conf2, Elconf7} {patron3} {El-conf6} {patron4} {El-conf4,El-conf4} {patron1} {El-conf1,El-conf2, Elconf7} {patron1,patron2, patron3, patron4...} ∅ Sarmah Achyanta, et al. 2008 10 La Problématique Règles de sécurité fonc;onnelle Ø Suis-‐je vulnérable? Ø Comment s’en prémunir ? Règles de sécurité Spécifica;on Poli;que de sécurité Patrons de sécurité Choix des patrons de sécurité Patrons de sécurité {valider les entrées} 11 La Problématique OWASP Top 10 Vulnérabilités Les patrons de sécurité Les contremesures Les points Forts Prouver Formellement le lien 12 Notre approche I. Les lignes directrices de sécurité Exemple de l’injec;on SQL: Toujours ne pas traiter une entrée avant de la valider □ (RecuperateInput(v) →((¬ TreatInput(v)) U ValidateInput(v))) 13 Notre approche II. Les patrons de sécurité {valider les entrées} Temporal Object Constraint Language [Bilal KANSO et al. 2012] Object Constraint Language temp ValidateInput : let ReceptedInput : Input in never isCalled(treatInput(val:Input), pre : val=ReceptedInput) context System::treatInput(): between isCalled(receiveInput(val:Input), pre : val=ReceptedInput) pre: self.receiveInput() implies self.validateInput() and self.cleanInput() and isCalled(validateInput(val:Input), pre : val=ReceptedInput) and Contrainte Patron de sécurité: isCalled ( cleanInput(val:Input), pre : val=ReceptedInput) □ (RecuperateInput(v) →((¬ TreatInput(v)) U ((ValidateInput(v)) ∧ (CleanInput(v))))) 14 Notre approche Contrainte Patron de sécurité: Ne jamais traiter une entrée, tant qu’elle n’est pas validée et nesoyée □ (RecuperateInput(v) →((¬ TreatInput(v)) U ((ValidateInput(v)) ∧ (CleanInput(v))))) Contremesure: Ne jamais traiter une entrée, tant qu’elle n’est pas validée □ (RecuperateInput(v) →((¬ TreatInput(v)) U (ValidateInput(v)))) 15 Conclusion Ø La sécurité est primordiale pour les applica;ons web Ø Le développeur a dans ca disposi;on les règles de sécurité à respecter pour éviter les vulnérabilités Ø Ainsi qu’un grand nombre de patrons de sécurité Ø Un lien formellement prouvé entre les patrons de sécurité et les vulnérabilités qu’ils couvrent 16 Travaux liés Ø Détec;on des patrons de sécurité dans le code Ø Ø M. VanHilst and E. Fernandez, “Reverse engineering to detect security paserns in code,” Proc. 1st …, 2007. M. Bunke and K. Sohr, “An architecture-‐centric approach to detec;ng security paserns in sowware,” Eng. Secur. So;w. Syst., pp. 156–166, 2011. Ø Evalua;on des Patrons de sécurité Ø Ø S. T. Halkidis, A. Chatzigeorgiou, and G. Stephanides, “A Qualita;ve Evalua;on of Security Paserns 2 A Short Review of Exis;ng Security Paserns,” pp. 132–144, 2004. T. Heyman and R. Scandariato, “Using security paserns to combine security metrics,” … Secur. 2008. …, 2008. Ø Formalisa;on des modèles UML Ø Ø L. Yu, “Scenario-‐based Analysis of UML Design Class Models,” Model. 2010 Dr. Symp. B. Kanso and S. Taha, “Towards Temporal constraint Support for OCL⋆,” wwwdi.supelec.fr, pp. 1–15, 2013. 17
© Copyright 2025 ExpyDoc