Préservation des données personnelles par la conception et le test

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