Sécurisation d'un site internet
Upcoming SlideShare
Loading in...5
×
 

Sécurisation d'un site internet

on

  • 561 views

 

Statistics

Views

Total Views
561
Views on SlideShare
561
Embed Views
0

Actions

Likes
0
Downloads
28
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Sécurisation d'un site internet Sécurisation d'un site internet Document Transcript

  • Sasha Pons, Security Architect, CASINO Groupsapons [at] groupe-casino [.] frMerci à Damien Cazenave pour sa présence lors de cette présentation, pour cesillustrations qu’il a su transmettre très pédagogiquement.Merci à mon stagiaire, Mathias Roussillon, pour tous les éléments qu’il a pum’apporter. 1
  • /! La sécurité applicative est un processus, pas une technologie /!Description du cycle de développement d’une application : # design : pour cDiscount, revue des chartes projets tous les 15 jours auxquellesle responsable de la sécurité applicative participe. La charte projet contient unslide sécurité obligatoire, rempli par les chefs de projet fonctionnels, listant 20questions simples (baseline) auxquelles ils doivent répondre par oui/non. Pour lesréponses ne correspondant pas aux standards, une censure est posée et un comitéspécifique est organisé. # develop : revue de code croisée, avec un focus plus particulièrement appuyésur le TOP10 OWASP. Action réalisée prioritairement sur les processus critiquesde l’application. REX : permet aussi d’optimiser le code. # test : scan automatique quotidien des environnements de recette et pré-production.# deploy :# maintain : awarness annuel des acteurs de ce processus cyclique.Le responsable de la sécurité applicative tire chaque domaine de l’activité d’unedirection de la sécurité des systèmes d’information approche plus pragmatiquequ’une approche par silo (sécurité applicative, sécurité opérationnelle,compliance) s’interfaçant difficilement autour des nombreux projets pilotage 3
  • par le risque.Son objectif est de construire une application « hack resilient », en jouant sur 2 leviers :# diminuer la surface d’attaque# diminuer l’impact en cas d’attaqueFiche de mission d’un responsable de la sécurité applicative qui accompagne ce cycle :# design : § rédige une politique de sécurité complète, notamment avec des procéduresopérationnelles § s’interface entre les différentes contraintes légales / le métier / l’IT, § modélise le risque.# develop : § sensibilise les développeurs à la sécurité applicative § fournit des règles de codage, orientées menaces et pas forcément pour la beauté dugeste ! § relit manuellement le code présentant un niveau de risque élevé# test : § fournit les outils au testing pour la détection des failles de sécurité (progressez enpartant des vulnérabilités à portée de main, puis en passant par l’OWASP/10 et enfinissant par CWE/25) § forme les testeurs à la recherche des failles § rejette les demandes de mise en production en cas de déficience# deploy / maintain : § audit régulièrement les applications de production pour vérifier qu’il n’y a pas eu dedégradation. Permet de tester que les acteurs savent utiliser les procédures en casd’intrusion ou de fuite de donnée § alerte en cas de découverte d’une faille 0 day par exemple § investigue dans un cas de compromission § reporte des indicateurs fiables et pédagogiques. “A basic tenet of softwareengineering is that you cant control what you cant measure” T. De Marco_____________________2011 Top Cyber Security Risks Report de HP DVLabs :Ainsi, 36 % de toutes les vulnérabilités toucheraient des applications web à butcommercial.Ensuite parce que si le nombre des vulnérabilités diminue, leur exploitation augmente via« l’émergence d’un marché privé d’échange des vulnérabilités ». Le rapport cite les kitsd’exploits vendus en ligne qui rencontrent un réel succès et afficheraient un taux de 3
  • réussite élevé. Les taux d’infection sur certaines vulnérabilités s’affichentexceptionnellement élevés, reflet des faiblesses des systèmes en place et finalement de larelative facilité que rencontrent les hackers pour dérober des données sensibles.Enfin, professionnalisation des criminels et émergence d’hacktiviste désintéressés. 3
  • Différents types de site : # Corporate : publie principalement des données statiques. L’objectif desécurité est principalement de lutter contre le défacement, la disponibilité n’estpas primordiale.# Réseau Social et site communautaire : § cVous : site communautaire destiné aux consommateurs dans le but d’avoirun impact sur les produits et les services du quotidien dans leurs magasins. 1)créer du lien entre les consommateurs et 2) co-crééer des produits qui serontintégrer au panel des enseignes partenaires (Géant Casino, Casino Supermarchés,Casino Proximité, Franprix, Leader Price). § la fourmiliére : forum d’échange dédié à la relation client, permet deproposer des services proches des canaux de vente traditionnelle: conseils, SAV,astuces. Une utilisation induite est la surveillance du phising et la communicationen réaction à une situation dangereuse. l’enjeu de sécurité est principalement la modération ducontenu posté et la disponibilité de la plateforme# B2C, B2B : § cDiscount : pure player dans les sites d’eCommerce un des enjeu principal est la lutte contre les tentatives de 4
  • phishing et malware avec un plan de réponse à incident § Banque Casino : site de eBanking § Gold Franchise : interface de commande à destination des magasins franchisés.Fréquemment, franchisé signifie que le SI du magasin n’est pas managé par l’IT de lamaison mère, il s’agit souvent d’un PC personnel connecté à une box. Souvent un pointfaible des SI d’entreprise, car ces réseaux de franchisés sont faciles à compromettre etpermettent un accès au plus ou moins complet au SI de la maison mère. § TMS (Transport Management System) : site de gestion permettant le suiviopérationnel et administratif du transport de la supply chain (interface entre lesfournisseurs et le distributeur).Pour tous ces sites, les enjeux sont les suivants : confidentialité des données personnelles, des données bancaires, patrimoineinformationnel de l’entreprise haute-disponibilité intégrité des données manipulées pour garantir le moins d’impact opérationnelpossibleCompliance ? # PCI : est la norme la plus directive et la plus verticale. C’est une norme qui nécessite lepassage d’une certification à renouveler régulièrement. § exemple d’un travail effectué par cDiscount de valorisation des contraintes apportéespar la norme PCI pour la mise en œuvre d’un service SaaS de paiement.# I&L : impose la protection des données personnelles mais sans préciser les modalitésminimales à mettre en œuvre avant d’être coupable de manquement. Due Diligence ? 4
  • Coquetterie : parler de défense en hauteur (plutôt qu’en profondeur) car, ensécurité applicative, on remonte les couches du modèle OSI=========================== Firewall & IPS=========================== # Le FW permet de tracer et éventuellement détecter des comportementsprécurseurs d’attaques. 2 mots clés : ACCEPT et DENY # L’IDS permet de détecter des activités anormales ou suspectes en s’appuyantentre autre sur un système de signature. L’éditeur publie régulièrement dessignatures avec un conseil d’action : ALLOW et BLOCK.=========================== Reverse Proxy=========================== # ré-écriture programmable des URLs pour masquer et contrôler larchitecturedun site web interne# Encryption SSL : terminaison SSL par le biais de matériel dédié# Load Balancer# compression : optimiser la compression du contenu des sites 5
  • # cache : décharger les serveurs Web de la charge de pages/objets statiques (pagesHTML, images) par la gestion dun cache local.=========================== Cache===========================Utilisation d’un CDN (Content Delivery Network) : # ensemble de nœud en « bordure » d’Internet permettant de mettre à disposition ducontenu au plus rapide et au plus proche de l’utilisateur # basé sur une requête DNS qui redirige l’utilisateur vers son nœud de contenu le plusproche # Akamai ou Limlight sont les grands noms, mais des fédérations de CDN TelCo sont entrain de voir le jour, permettant de concurrencer les acteurs historiques dont les coûts sontimportants. # possibilité de loadbalancer le contenu entre plusieurs CDN pour l’optimisation de lafacture en fin de mois ;-)=========================== WAF=========================== # Un web application firewall peut se décliner sous la forme d’une appliance, d’un pluginpour un web server ou tout simplement d’un ensemble de filtre appliqués directement surun webserver. # Cet ensemble de règle couvre les attaques communes comme par exemple les XSS etles injections SQL. La personnalisation pour couvrir des attaques plus sophistiquées ouintégrant la dimension business du site demande un travail important et doit êtreentièrement intégrer au cycle de développement de l’application à protéger. 5
  • Modèle de sécurité + : consiste à n’accepter que ce qui est spécifiquementautorisé. C’est la notion de liste blanche.# modèle présentant le niveau de sécurité le plus fort. # c’est aussi le moins facilement gérable, notamment pour des sites construitautour de CMS pour lesquels des webmasters produisent du contenu plus oumoins riche.Modèle de sécurité - : consiste à bloquer ce qui explicitement spécifié.# modèle le plus automatisable# adhérence faible avec le contexte protégé Modèle – (liste noire) Modèle + (liste blanche)FW #Deny @ anonymous / TOR #Allow 80 / 443IPS #Deny signature #Allow exceptions after false-positive detectionWAF #Deny URL pour CMS #Allow identified values in sensitives fields #Deny HTTP Method 6
  • #learn then blocked #Bufferoverflow #Deny IP from Korean/Ukraine #SQL injectionDescription du graphique : Evolution du niveau de sécurité en fonction du temps# le cloud permet d’augmenter le niveau de sécurité plus rapidement que la configurationde matériel hébergé sur site. # le passage d’un modèle de sécurité négatif à positif se fait aux environs de 80%. Ilarrive donc plus tôt lorsque le service est dans le cloud. # l’écart résiduel persistant couvre les failles zéro-days ainsi que les faillestechnologiques et business non-maitrisées # plus la courbe de correction est verticale moins cela coûte cher, plus elle est horizontaleplus le coût est important 6
  • =========================== Réseau===========================Tous ces composants sont eux aussi concernés par le patch management !Routeur / Firewall / IPS / Reverse Proxy / Load Balancing # auditez régulièrement les routes/règles en place. Des outils d’optimisationexistent permettant de rationaliser lorsque l’on a atteint un degré de complexitétrop important. # limitez le NAT, il n’est pas nécessaire d’avoir 3 NAT en DMZ avant d’atteindrele serveur web, surtout cela permet de limiter le nombre de sessions TCP # exemple : mauvaise configuration du FW où le nombre de session TCPn’étaient pas limité. La configuration d’un FW internet n’est pas la même choseque celle d’un FW cœur de réseau. # faites des tests de charge poussés si vous souhaitez faire faire de l’analyseapplicative par votre FW. L’overload est important et ce n’est pas forcément lemeilleur équipement pour le faire. # les technologies de type Virtual Routing and Forwarding (VRF) aide à lasegmentation d’une plateforme mutualisée. # un mythe : la publication via un reverse proxy n’est pas une obligation pourfaire de la terminaison SSL. Possible de le faire avec des WAF de niveau L2. 7
  • =========================== Hôte===========================Patch Management# alerting : inscription à un CERT, permettant de déclencher les opérations. # operating : négociation d’un créneau quotidien de redémarrage de la plateforme. Lahaute disponibilité est un voeux pieux mais pas toujours réalisable (ex SharePoint).Attention donc à la mutualisation à outrance. Le patch virtuel n’est encore qu’une notionmarketing. # tracking : s’assurer du déploiement exhaustif et de l’inclusion dans les nouvellesversions de master par exemple.Services# construction de l’hôte en sécurité positive gain d’exploitation important # similairement, ajoutez uniquement les modules nécessaires à votre serveur web. Lesfichiers de configuration httpd.conf ou web.config ne doivent pas être ésotériques pourvos administrateurs, ils doivent être en mesure de vous les expliquer.Protocoles/Ports # n’utilisez plus les protocoles que vous utilisez peut-être encore à la maison : POP3,SMTP, FTP et surtout Telnet ne sont pas des protocoles d’entreprise. Des alternativessécurisées existent pour chacun.# faites des scan de port réguliers et automatiques (Nessus) pour vous assurer que vosmachines ne sont pas compromises.Accounts# privilégiez la centralisation d’administration des comptes # optez pour un typage fort. Pour rappel, 3 types de compte peuvent être utilisés : compted’utilisateur, compte de service, compte d’application, les deux derniers devant êtrestrictement habilités suivant le principe du juste droit# auditez et positionnez des alertes sur les comptes sensibles# prévoyez plus que moins de compte d’application ou de service # prévoyez aussi une politique de pwd fort et de lockout des comptes. Conficker a eu unpoint positif : celui de repérer les programmes s’exécutant avec des comptes built-in deMicrosoft.# utilisez des coffres fort de mot de passe (KeePass est bien souvent suffisant)Partage 7
  • # supprimez aussi les partages administratifs. Hébergez les logs dans des locations non-accessibles par le webserver. # les logs web exposent beaucoup d’information. Accessible depuis Internet, l’intrusionest proche !Registre # Interdisez l’accès au registre à distance. Exemple d’un antivirus avec un pwd deprotection facilement contournable par un accès au registre (pourtant en v10!)Auditing and Logging # ils contiennent toute la matière utile à la compréhension de l’application et de l’hôte.Entrainez les équipes à rechercher des informations à l’intérieur. Mieux vaut savoir lesexploiter que les stocker !=========================== Application===========================Validation des paramètres d’entrée :# les mots magiques sont par ordre d’importance : § SQL injection § Cross-site scripting § Canonicalization : /etc/shadow passé en argument GET peut ne pas être vérifiéutilisez des chemins relatifs, vérifiez les paramètres requestEncoding etresponseEncoding du fichier Web.config pour valider qu’ils sont en relation avec lalangue du site. § Buffer overflowsAuthentification : # utilisez le verrouillage de compte pour éviter les attaques par dictionnaire, informez lesutilisateurs lors d’un changement de mot de passe ou en cas de désactivation du comptesuite à une période d’inactivité trop importante, prévoyez un processus de recovery en casde perte/vol.# évidemment le triptyque de Sainte Authentification : § hash du pwd § chiffrement du canal de communication § stockage du hash dans la base de d’authentification # vol de session : exemple d’un cookie de session admin (n’expirant jamais) qui étaitpassé en paramètre GET. L’admin avait rendu les logs du site web visible depuis Internet,il était très facile de pouvoir utiliser le cookie Admin pour s’authentifier sur la DB et 7
  • l’aspirer entièrement.Autorisation :# la principale menace est l’élévation de privilège. L’objectif de toutes les contres-mesures à apporter à cette faille est de rendre impossible l’accès à l’hôte en administrateurlocal ou root.# la connexion au serveur de base de donnée en SA illustre plusieurs problèmes : § une méconnaissance de la part des développeurs des principes de sécurité, peut-êtreliés en partie à l’absence de Coding Rules ? § une faille dans le contrôle opéré par les gestionnaires applicatifs en charge dudéploiement de l’application en production § une faille aussi dans le code/config review opéré par les équipes de sécuritéGestion de la configuration : # accès aux interfaces d’administration, de supervision, de gestion de contenu. Exempled’un SharePoint hébergé, proposant du webmastering aux propriétaires des données, del’administration des collections de site pour la création/modification/suppression des sitespubliés, de l’administration des serveurs applicatifs par des « Application Manager »(rafraichissement des caches de données par exemple), de l’administration des serveursweb (IIS ou tout autre middleware), de l’administration de base de donnée,… Authentification forte pour les sections le nécessitant (ex de l’administration des tauxd’intérêt sur un site d’eBanking) contrôle d’accès nominatif basé sur un modèle RBAC (attention aux demandes detype comptes d’astreintes en password never expires). logging et audit plus particulièrement des procédures, des fichiers de configurationafin de vérifier que les informations type loging/pwd restent bien confidentielles, qu’ilssont bien stockés en dehors de l’arborescence de fichier accessible à partir du webserver. documentation et archivage des configurations.Données confidentielles : # données d’authentification, personnelle, ... Attention à la portée d’une donnée : unnuméro de carte de fidélité peut s’avérer tentant comme identifiant unique mais peut aussiêtre utiliser comme moyen de paiement avec une autre donnée personnelle stockée dans laDB et accessible aux administrateurs.Cryptographie : # La robustesse d’un mécanisme de cryptographie (symétrique ou asymétrique) reposeprincipalement sur la sécurité mise en œuvre autour du secret (soit la clé privée, soit lesecret partagé). Une clé de longueur trop faible, avec une durée de vie trop longue,stockée dans le file system sans ACLs, ou dans le fichier de configuration du serveur websont les faiblesses fréquemment rencontrées lors des audits de plateforme web. 7
  • # la compréhension de l’implémentation est primordial. Exemple d’un calcul de MD5 viaun JavaScript local puis envoyé au serveur => aussi efficace que l’envoi du pwd en clair!Gestion des sessions :# ne respecte pas le modèle OSI, car fait au niveau 7 # l’attaque la plus fréquemment utilisée est le vol de cookie, soit localement sur le poste(malware), soit en écoutant la conversation si elle est en clair. Utiliser du HTTPs pouréviter les écoutes, les fonctions logout et des durées d’expiration de cookies réalistes. Pourles fonctions critiques (type tunnel de paiement), re-demander systématiquementl’authentification de l’utilisateur et re-calculer un HMAC par exemple.Manipulation des paramètres : # URL : tous les paramètres passés dans l’URL, facilement accessibles via un browser.Exemple du calcul incrémentiel d’un code de retrait permettant de modifier unecommande. # champs des formulaires : entrées postées via un formulaire. Souvent les développeursrépondent : pas d’inquiétude, des contrôles sont fait localement sur le client avant l’envoiau serveur. L’intention est bonne mais inutile car ces contrôles sont facilementcontournables en n’exécutant pas le JS localement.# cookies : modification des valeurs contenues qui sont parfois trop explicites.Chiffrement ou signature du cookie pour valider l’intégrité des informations transmises. /? qui possède un inventaire des cookies délivrés par son application ? Cet inventaireest-il en conformité avec la loi sur le paquet telecom passé en application en Août 2011 /? # http headers : exemple de l’http referer utilisé de manière important dans lesmécanismes de fédération d’identité pour retourné au site web après unpaiement/authentification. Un mécanisme de protection est la vérification de laprovenance par un canal directement entre les 2 serveurs par exemple.Gestion des exceptions : #nécessite souvent un travail avec le métier pour imaginer un comportement le plusacceptable par l’utilisateur.#l’erreur redirige-t-elle vers une 404, une 404 chartée, renvoie un reset TCP ? 7
  • Classiquement, le traitement d’un risque d’attaque est réalisé par un ensemble decomposant de sécurité (réseaux & applicatifs), représentés ici par un simplefirewall. L’objectif étant bien entendu la protection du SI ainsi protégé.L’évolution des menaces suit 2 axes distinct : # attaques distribuées, le DDoS est un bon exemple. Elles sont perpétrées par desréseaux de botnets, contrôlés ou loués par des cyberhacktivistes ou des groupesde type anonymous. # attaques ciblées, précises, complexe dont l’objectif peut-être le vold’information, du cyber chantage, du défacement, de l’injection de donnéeerronées.L’évolution des architectures opère elle aussi un glissement dans le Cloud etcouvre tous les composants applicatifs :Le traitement des attaques distribuées peut se faire dans le cloud. On parle ausside dWAF pour Distributed WAF. Quels sont les avantages ?# PME/PMI : § service hébergé, éventuellement opéré. Modèle de sécurité négatif.# dimension géographique dans les requêtes : § un centre de contrôle peut détecter des requêtes en provenance d’une certainepartie du globe, les identifier comme malsaines, et prendre comme décision de 8
  • les bloquer sans impacter le flux français par exemple. § La commande d’un panier sur CASINO Express est-elle valide lorsqu’elle est réaliséedepuis l’inde ? # Réputation des requêtes : basée sur la réputation des IPs, en provenance de proxyanonyme ? d’IP du réseau TOR ou identifiées comme infectantes ?------# Shift d’une présentation du contenu via un site web vers des architecture d’applicationmobile consommant des webservices. cycle de développement intégrant des équipes extérieures, sur des technologies peumatures, agrégeant des technologies composites. Les plateformes n’intègrent pas encoretous les mécanismes de sécurité que l’on rencontre sur un poste de travail classique.------Les attaques spécialisées et les vulnérabilités vont se vérifier tout au long de la chaine.C’est une corrélation d’événements applicatifs (SIEM ?) qui permettra l’identificationd’une menace précise. # DataBase Firewall (DBF) : à l’identique du WAF mais dédié aux protocoles SQL etautres. Les éditeurs ont tirés les enseignements du WAF en proposant 1) un moduled’apprentissage automatique identifiant et classifiant les données sensibles sur le LAN(convergence avec DLP?), 2) d’enregistrer les accès à ces données et 3) d’en déduire desrègles de contrôle d’accès. # File FireWall (FFW) : approche identique à DBF avec découverte, apprentissage etconstruction de règles de contrôle d’accès.Dans ces 2 cas, pouvoir bénéficier de log précis sur la provenance et la destination, lanature applicative de l’attaque (quel utilisateur applicatif de connexion à la DB est utilisépour passer l’injection SQL ? ) permet du forensic en impactant le moins possible lefonctionnement de l’application.Service d’hygiène du flux web : service de protection contre la fraude et le vol d’identitébasé sur des technologies d’éditeurs anti-fraude (ex Trusteer). # est-ce un robot ou un humain ? Injection d’un cookie aléatoire ou d’un JS qui n’est pasou mal interprété par le client. Analyse statistique de la navigation pour la comparer auxprécédentes navigations. # Permet de s’assurer de l’état de santé du browser, sans agent. Ce afin de lutter contre lesattaques de type Man in The Browser. Peut aussi mettre à disposition un browser sécurisé,assurant que les informations d’identité (cookie ou autre) n’ont pas été subtilisées. # Fraude, sécurisation espace client et scoring commande pour détecter les commandesfrauduleuses 8
  • Exemple du protocole SPDYImpulsé par Google, ce protocole à pour objectif de transporter du contenu webplus rapidement et ce afin d’améliorer le protocole HTTP. # SPDY s’appuiera obligatoirement sur une couche 5/6 TLS/SSL. Nativement, leprotocole embarquera la protection de la couche applicative dans un tunnel SSL,allégeant la charge de développement.# /? Multiplexage des sessions http dans une même session TCP# Push d’information à l’initiative du serveur# /? Factorisation des headers http (lequels par exemple…)# compression systématique des requêtes envoyées # priorisation des requêtes faite par le client (priorité au contenu, aux images,aux publicités, …)Pourquoi ne pas faire ces améliorations au niveau TCP, couche en charge de lagestion des sessions ? # parce que cela impliquerai une mise à jour massive des éléments réseauxconstitutifs de la stack TCP/IP. L’exemple de la lenteur d’adoption de IPv6 estsuffisamment parlant alors même que les équipements sont compatibles. # stratégie quick wins, car la couche HTTP n’est pas parfaite et que c’est la plussimple à mettre à jour. Pourquoi ? Parce que tous les internautes sont habitués à 9
  • monter la version de leurs browsers (le saint graal du patch management ;-) ) et parce quela mise à jour d’un web server est plus simple que les changements d’équipementsréseaux, voir même le simple upgrade de firmware les rendant compatibles. 9