La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Silicomp-AQL Audit technique et analyse de code 9 juillet 2008.

Présentations similaires


Présentation au sujet: "Silicomp-AQL Audit technique et analyse de code 9 juillet 2008."— Transcription de la présentation:

1 Silicomp-AQL Audit technique et analyse de code 9 juillet 2008

2 Document confidentiel page 2 Silicomp-AQL Audit technique GIBII Ordre du jour >Introduction >Revue darchitecture >Revue de code >Diagnostic sur la maintenabilité de lapplication >Diagnostic sur la sécurité applicative -Alignements aux critères DICP -Alignements au top ten OWASP >Conclusion

3 Silicomp-AQL Introduction 23 mai 2008

4 Document confidentiel page 4 Silicomp-AQL Audit technique GIBII Contexte >Dans le cadre de la certification B2I (Brevet Informatique et Internet), lEducation Nationale dispose de GIBII (Gestion Informatique du Brevet Informatique et Internet) largement répandue dans diverses académies, afin de répondre à un besoin de suivi de la certification. >Avant délargir le champ dutilisation de GIBII, le SERIA souhaite réaliser une validation des travaux entamés sous le volet de la maintenabilité et de la sécurité applicative. >Lobjectif de la prestation est de déterminer, si GIBII : -Est conforme aux attentes de lEducation Nationale, -Nest pas conforme aux attentes, mais peut être corrigé. -Nest pas conforme aux attentes, et nécessite une refonte complète.

5 Document confidentiel page 5 Silicomp-AQL Audit technique GIBII Méthodologie dintervention Lot 2 Audit de code Rapport Revue de code Synthèse managériale Rapport Revue darchitecture Architecture technique/applicative Code Phase 0 Prise de connaissances Phase 1 Revue darchitecture Phase 2 Revue de code Phase 3 Intégration ClearTrust Rédaction rapport Documentation projet, Code source Support de présentation Interviews Q/R SERIA Phase 4 Macro chiffrage / synthèse

6 Document confidentiel page 6 Silicomp-AQL Audit technique GIBII Analyse documentaire >Documentation fournie : -Documentation pour la présentation de GIBII (skin), -Documentation administrateurs et utilisateurs finaux, -Documentation pour super-administrateurs, -Documentation annexe (SSO, pacth, etc.) >Documentation « fonctionnelle » et « manuel dutilisations » du projet très complète. >Pas de documentation technique.

7 Silicomp-AQL Revue darchitecture 23 mai 2008

8 Document confidentiel page 8 Silicomp-AQL Audit technique GIBII Revue darchitecture >Protocoles -HTTP(S) -Aucune connexion à des services tiers >Approche purement procédurale dans la conception. -Une architecture simple (mono couche), -Redondance de code, (usage des fonctions limité) -Pas de séparation entre présentation / traitement >Dimensionnement, environ 250 scripts PHP.

9 Document confidentiel page 9 Silicomp-AQL Audit technique GIBII Périmètre de la revue de code >Revue de code orientée sécurité applicative -Vérifier les mécanismes suivants: Contrôle daccès Authentification Identification Autorisation Contrôle des flux Gestion des logs Gestion derreur Qualité du code Protection des données

10 Silicomp-AQL Revue de code 23 mai 2008

11 Document confidentiel page 11 Silicomp-AQL Audit technique GIBII Rappel des remarques détectées 1/2 Contexte / Point de contrôle Remarque Gravité Code Client Le code Javascript est peu structuré dans les bibliothèques. Méthodes de chiffrement exposées côté client. (Divulgation dinformations) Inutile si SSL AuthentificationMessages trop explicites en cas déchec dauthentification Il nexiste pas de mécanisme de blocage lors de multiples tentatives infructueuses. Identification Le processus didentification nest pas centralisé. Certaines fonctionnalités didentification, se basent sur des paramètres dURL. HabilitationLa fonctionnalité se base également sur des valeurs dURL,

12 Document confidentiel page 12 Silicomp-AQL Audit technique GIBII Rappel des remarques détectées 2/2 Protection des données - Mots de passe stockés et non chiffrés - Date de naissance pour mot de passe (syntaxe trop simple) Inspection des flux Globaliser les variables issues de paramètres dURL et de la session est un vecteur dattaque. - Pas de couche daccès aux données (ou librairies). - Fonctions déchappement ne sont pas systématiquement utilisées avant chaque requête SQL - Pas de contrôles des flux coté serveur (ou dencodage et de canonisation). Qualité du code- Pas de règles ou de normes de programmation en vigueur. - Code peu factorisé. Maintenance difficile. Gestion des traces- Il nexiste pas de mécanisme de gestion des traces fonctionnelles. - Il nexiste pas de mécanisme de gestion des traces applicatives. Contexte / Point de contrôle Remarque Gravité

13 Document confidentiel page 13 Silicomp-AQL Audit technique GIBII Rappel des bonnes pratiques identifiées Cookies- Ne stockent pas de données sensibles Protection des données - La modification du mot de passe lors de sa première connexion - SSL utilisé pour le transfert des mots de passe Gestion de session - Processus de gestion de session PHP - Différents contrôles ont été ajoutés afin de valider laccès à lapplication et dempêcher le détournement de session. (User-agent chiffré en sha1 + adresse IP) - Stockages des informations utiles en session Blocage des ressources Laccès aux ressources nest autorisé que si la session est validée. HabilitationUn contrôle dhabilitation est implémenté et utilisé pour toutes les pages du site. Gestion des tracesDes traces de sécurité sont stockées en base de données Contexte / Point de contrôle Remarque

14 Silicomp-AQL Maintenabilité de lapplication 23 mai 2008

15 Document confidentiel page 15 Silicomp-AQL Audit technique GIBII Maintenabilité de lapplication >Bibliothèques et fonctions peu utilisées. -Code peu factorisé. -Plusieurs logiques métier >Requêtes SQL codées dans les pages Web -Présentation et accès aux données dans une unique couche -Pas de centralisation du code >Des évolutions majeures sembles difficiles à mettre en œuvre : -Charges conséquentes en développement, -Risques de régression

16 Silicomp-AQL Alignements de la sécurité applicative (DICP, OWASP) 23 mai 2008

17 Document confidentiel page 17 Silicomp-AQL Audit technique GIBII Alignements selon les critères DICP CritèreCommentaire Niveau de Garantie Disponibilité Pas dinformations sur les infrastructures. Risques de déni de service. Intégrité Risques dinjection SQL. Confidentialité - Pas de protection contre XSS, - Mdp stocké en clair dans la base de données, - Pas de mécanisme de blocage des authentifications infructueuses, - Messages trop explicites en cas dun échec dauthentification. Preuve Gestion des preuves non suffisante.

18 Document confidentiel page 18 Silicomp-AQL Audit technique GIBII Alignements selon les critères OWASP 1/2 Vulnérabilité OWASP Commentaire Niveau de Garantie Cross site Scripting (XSS) Pas de contrôle des flux. Injection de commandes Pas de contrôle des flux. Exécution de fichiers malicieux 3 fonctions sensibles : Fopen() Move_Uploaded_File() UnLink() Référence directe dobjets non sécurisés GIBII fait référence à des paramètres dURL pour accéder à certains objets sécurisés.

19 Document confidentiel page 19 Silicomp-AQL Audit technique GIBII Alignements selon les critères OWASP 2/2 Vulnérabilité OWASP Commentaire Niveau de Garantie Cross Site Request Forgery (CSRF) Pas de contrôle des flux. Mauvaise gestion des erreurs Pas de divulgation dinformations. Stockage non sécurisé Mot de passe stocké en clair. Communication non sécurisée SSL utilisé (selon informations recueillies) Violation de contrôle daccès N/A.

20 Silicomp-AQL Préconisations et macro chiffrage 23 mai 2008

21 Document confidentiel page 21 Silicomp-AQL Audit technique GIBII Préconisations - solution 1 >Mécanisme dauthentification (>10J) -Revoir la gestion du mot de passe. -Mettre en place un moyen limitant le nombre de tentatives dauthentification. -Utiliser un seul message derreur. >Identification (?) -Centraliser le processus didentification dans une classe ou méthode unique >Contrôle daccès – Habilitation - Gestion de session (20J) -Dissocier la gestion de session, du contrôle daccès et de lhabilitation. -Ne pas se baser sur les paramètres dURL -Refonte de lhabilitation (appels de la fonction opensession() )

22 Document confidentiel page 22 Silicomp-AQL Audit technique GIBII Préconisations - solution 1 >Inspection des flux (?) -Contrôles de saisie coté serveur (Javascript => PHP). -Ne pas globaliser les variables de session. -Contrôler toutes les saisies utilisateur Contrôle métier (longueur, syntaxe, etc.) Protection SQL injection et XSS >Gestion des traces et des erreurs (7j) -Utiliser un framework de log et tracer les actions utilisateur. Le macro chiffrage estime le correctif à une charge supérieure à 100 jours

23 Document confidentiel page 23 Silicomp-AQL Audit technique GIBII Préconisations - solution alternative >Principe -1 seul mode de connexion : AM CleartTrust Identification / Authentification / contrôle daccès, assurés par loutil. Habilitation de GIBII (contrôle daccès aux URL en fonction du profil) -Installation dun filtre applicatif sur le serveur frontal comme mod_security Inspection des flux SQL Injection et XSS >Macro chiffrage (applicatif GIBII) -Suppression du mode SSO CAS (1j) -Intégration ClearTrust RSA (6j) -Installation mod_security (2j) -Gestion des traces et des erreurs (7j) Le macro chiffrage estime le correctif à une charge environ à 20 jours >Reste le code Javascript => coté serveur >Impose un compte LDAP pour chaque élève

24 Silicomp-AQL Conclusion 23 mai 2008

25 Document confidentiel page 25 Silicomp-AQL Audit technique GIBII Conclusion >GIBII a été développé pour un besoin particulier et est une application qui répond parfaitement aux besoins fonctionnels. >Lapplication web est aujourdhui « victime de son succès » et doit saligner aux exigences de lEducation Nationale. >La capacité de lapplication à évoluer est aujourdhui limitée -Uniquement des évolutions mineures. >La sécurité est très perfectible : -Un correctif purement applicatif serait trop coûteux >Un correctif purement applicatif -Charge de développement conséquente -Ne corrige que la sécurité => lapplication reste difficilement maintenable ! >Une refonte complète iso fonctionnelle JEE -Entre 200 et 300 jours de développement (soit environ 500 h/j au total)

26 Document confidentiel page 26 Silicomp-AQL Audit technique GIBII questions?


Télécharger ppt "Silicomp-AQL Audit technique et analyse de code 9 juillet 2008."

Présentations similaires


Annonces Google