Audit technique et analyse de code

Slides:



Advertisements
Présentations similaires
Sécurité informatique
Advertisements

Les Systèmes d’Information Financière Atelier conjoint ACBF / Banque Mondiale / AFRITAC de l’Ouest Gérer l’application dans le temps, sur les plans fonctionnel,
Atlas cartographique du Sandre
Exposé de système présenté le 2 décembre 2004, Par Rémy Lataix
Botnet, défense en profondeur
Modélisation des menaces
des Structures de Santé
Laccès distant aux bases bibliographiques J. Gutierrez / B.Nominé – Université Nancy 2.
13/04/05 - RB1 Montpellier 24/03/2005 Les interactions entre le SSO ESUP et le mécanisme de propagation d'identité
Université Nancy 2 - CRI Propositions de mécanisme de SSO dans un environnement d’applications web.
La sécurité en toute simplicité Solution daccès logique By ADDEXA.
Sommaire Introduction Les politiques de sécurité
Conception de la sécurité pour un réseau Microsoft
Module d’Enseignement à Distance pour l’Architecture Logicielle
Vue d'ensemble Implémentation de la sécurité IPSec
Architecture de réseaux
La politique de Sécurité
Le mécanisme de Single Sign-On CAS (Central Authentication Service)
Atelier Portail SAP Durée : 2h.
TP 3-4 BD21.
S. CAGNI, S. PICARD et A. CORDIER Vous avez dit :.
Conception d’une application de gestion de fiches études
Configuration de Windows Server 2008 Active Directory
Maîtrise des données et des métadonnées de l’ODS
Organisation du système d’information comptable et de gestion
Gestion de la communication par établissement sur le site ville
Plateforme de gestion de données de capteurs
Violation de Gestion d’authentification et de Session
Control des objectifs des technologies de l’information COBIT
SECURITE DU SYSTEME D’INFORMATION (SSI)
Développement dapplications web Initiation à la sécurité 1.
Amélioration de la sécurité des données à l'aide de SQL Server 2005
1 Sécurité Informatique : Proxy Présenter par : Mounir GRARI.
0 NOUVEAUTÉS LES PREMIERS SCEAUX FRANÇAIS DÉLIVRÉS PAR WEBTRUST FRANCE.
Les instructions PHP pour l'accès à une base de données MySql
Xavier Tannier Sécurite Web.
Configuration de Windows Server 2008 Active Directory
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Gestion denquêtes et suivi dindicateurs statistiques 1er degré © DOS3 – Pôle Analyse & Développement Octobre 2011 – v.0.1 Tutorial portail directeur décole.
Protocole 802.1x serveur radius
Gestion des bases de données
Jeudi, 20 août 2009 Sécurité informatique Cégep de St-Hyacinthe Par Hugo St-Louis.
Techniques de test Boulanger Jean-Louis.
Développement d’application web
Docteur François-André ALLAERT Centre Européen de Normalisation
Projet Génie Logiciel & UML, Bases de Données & Interfaces
SSO : Single Sign On.
802.1x Audric PODMILSAK 13 janvier 2009.
Une approche documentaire de la diffusion sur Internet Journée WebÉducation Martin Sévigny / Irosoft / 14 mai 2009
Projet de Master première année 2007 / 2008
Adaptée du cours de Richard Grin
S ÉCURITÉ I NFORMATIQUE Asp.net. P LAN Sécurité sur Internet Sécurité avec ASP.net Gestion des comptes et droits d’accès Utilisation des contrôles de.
VPN - SSL Alexandre Duboys Des Termes IUP MIC 3 Jean Fesquet
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
Le workflow Encadré par: M . BAIDADA Réalisé par: ATRASSI Najoua
4 - Annuaires Les Annuaires d ’Entreprises Offres et solutions
Application de gestion de candidatures
Outil de gestion des cartes grises
Module 8 : Surveillance des performances de SQL Server
PHP 5° PARTIE : LES COOKIES
Supports de formation au SQ Unifié
1 Copyright WebTrust France Nouveautés Copyright WebTrust France Les premiers sceaux français délivrés par WebTrust France.
Institut Supérieur d’Informatique
L’enseignement de spécialité SLAM
Introduction aux outils de supervision
Sécurité des systèmes d’information: Web Security & Honeypots
Les bases du protocole Modbus
Sécurité des Web Services
Gestion des documents internes avec SQL Server 2005 Date de publication : janvier 2006.
Développement d’applications Web
Transcription de la présentation:

Audit technique et analyse de code 9 juillet 2008

Ordre du jour Introduction Revue d’architecture Revue de code Diagnostic sur la maintenabilité de l’application Diagnostic sur la sécurité applicative Alignements aux critères DICP Alignements au top ten OWASP Conclusion Audit technique GIBII

Introduction 23 mai 2008

Contexte Dans le cadre de la certification B2I (Brevet Informatique et Internet), l’Education 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 d’utilisation 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. L’objectif de la prestation est de déterminer, si GIBII : Est conforme aux attentes de l’Education Nationale, N’est pas conforme aux attentes, mais peut être corrigé. N’est pas conforme aux attentes, et nécessite une refonte complète. Audit technique GIBII

Méthodologie d’intervention Documentation projet, Code source Lot 2 Audit de code SERIA Interviews Q/R Phase 0 Prise de connaissances Rapport Revue d’architecture Phase 1 Revue d’architecture Rapport Revue de code Phase 2 Revue de code Rédaction rapport Architecture technique/applicative Code Phase 3 Intégration ClearTrust Synthèse managériale Phase 4 Macro chiffrage / synthèse Support de présentation 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 d’utilisations » du projet très complète. Pas de documentation technique. Audit technique GIBII

Revue d’architecture 23 mai 2008

Revue d’architecture 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. 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 d’accès Authentification Identification Autorisation Contrôle des flux Gestion des logs Gestion d’erreur Qualité du code Protection des données Audit technique GIBII

Revue de code 23 mai 2008

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 d’informations) Inutile si SSL Authentification Messages trop explicites en cas d’échec d’authentification Il n’existe pas de mécanisme de blocage lors de multiples tentatives infructueuses . Identification Le processus d’identification n’est pas centralisé. Certaines fonctionnalités d’identification, se basent sur des paramètres d’URL. Habilitation La fonctionnalité se base également sur des valeurs d’URL, Audit technique GIBII

Rappel des remarques détectées 2/2 Contexte / Point de contrôle Remarque Gravité 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 d’URL et de la session est un vecteur d’attaque. Pas de couche d’accè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 d’encodage 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 n’existe pas de mécanisme de gestion des traces fonctionnelles. - Il n’existe pas de mécanisme de gestion des traces applicatives. Audit technique GIBII

Rappel des bonnes pratiques identifiées Contexte / Point de contrôle Remarque 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 l’accès à l’application et d’empêcher le détournement de session. (User-agent chiffré en sha1 + adresse IP) - Stockages des informations utiles en session Blocage des ressources L’accès aux ressources n’est autorisé que si la session est validée. Habilitation Un contrôle d’habilitation est implémenté et utilisé pour toutes les pages du site. Gestion des traces Des traces de sécurité sont stockées en base de données Audit technique GIBII

Maintenabilité de l’application

Maintenabilité de l’application 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 Audit technique GIBII

Alignements de la sécurité applicative (DICP, OWASP) 23 mai 2008

Alignements selon les critères DICP Commentaire Niveau de Garantie Disponibilité Pas d’informations sur les infrastructures. Risques de déni de service. Intégrité Risques d’injection 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 d’un échec d’authentification. Preuve Gestion des preuves non suffisante. 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 Exécution de fichiers malicieux 3 fonctions sensibles : Fopen() Move_Uploaded_File() UnLink() Référence directe d’objets non sécurisés GIBII fait référence à des paramètres d’URL pour accéder à certains objets sécurisés. 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 d’informations. Stockage non sécurisé Mot de passe stocké en clair. Communication non sécurisée SSL utilisé (selon informations recueillies) Violation de contrôle d’accès N/A. Audit technique GIBII

Préconisations et macro chiffrage 23 mai 2008

Préconisations - solution 1 Mécanisme d’authentification (>10J) Revoir la gestion du mot de passe . Mettre en place un moyen limitant le nombre de tentatives d’authentification. Utiliser un seul message d’erreur. Identification (?) Centraliser le processus d’identification dans une classe ou méthode unique Contrôle d’accès – Habilitation - Gestion de session (20J) Dissocier la gestion de session, du contrôle d’accès et de l’habilitation. Ne pas se baser sur les paramètres d’URL Refonte de l’habilitation (appels de la fonction opensession() ) 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 Audit technique GIBII

Préconisations - solution alternative Principe 1 seul mode de connexion : AM CleartTrust Identification / Authentification / contrôle d’accès, assurés par l’outil. Habilitation de GIBII (contrôle d’accès aux URL en fonction du profil) Installation d’un 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 Audit technique GIBII

Conclusion 23 mai 2008

Conclusion GIBII a été développé pour un besoin particulier et est une application qui répond parfaitement aux besoins fonctionnels. L’application web est aujourd’hui « victime de son succès » et doit s’aligner aux exigences de l’Education Nationale. La capacité de l’application à évoluer est aujourd’hui 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é => l’application 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) Audit technique GIBII

questions? Audit technique GIBII