OWASP TOP 10 Proactive

Click here to load reader

  • date post

    07-Aug-2015
  • Category

    Technology

  • view

    82
  • download

    5

Embed Size (px)

Transcript of OWASP TOP 10 Proactive

  1. 1. 1 TOP 10 CONTRLES PROACTIFS POUR LA SCURIT DES APPLICATIONS WEB BY ABDESSAMAD TEMMAR (TMR) TEMMAR.ABDESSAMAD@GMAIL.COM
  2. 2. 2 OWASP Top Ten Proactive Controls 1A1 Requtes Paramtres A2 Encoder les donnes A3 Valider toutes les donnes entrantes A4 Implmenter les contrles d'accs appropris A5 tablir les contrles d'identit et d'authentification A6 Protger les donnes et la vie prive A7 Implmenter la journalisation et la dtection d'intrusion A8 Exploiter les fonctionnalits de scurit des Frameworks et bibliothques de scurit A9 Inclure les exigences de scurit spcifiques A10 Conception et architecture de scurit
  3. 3. 3 10: Conception et architecture de scurit Lors de la conception et de l'architecture logique/physique dune application Web, on retrouve plusieurs domaines pour lesquels il est ncessaire de se proccuper de la scurit Maitrise des outils de dveloppement : Le choix de langage(s) et de plate-formes (OS, serveur web, messagerie, base de donnes) peut entraner des risques de scurit spcifiques que l'quipe de dveloppement devra comprendre et grer. Hirarchisation, confiance et dpendances : Dcider quel contrle doit tre appliqu au client, la couche Web, la couche de logique mtier, la couche de gestion des donnes, et o tablir la confiance entre les diffrents systmes ou diffrentes parties d'un mme systme (la frontire de confiance). Grer la surface d'attaque : Comprendre la faon dont les attaquants peuvent rentrer dans le systme et les donnes qu'ils peuvent rcuprer. Une apprciation des risques peut ensuite tre ralise afin de modliser et danticiper les menaces lies au contexte dutilisation et au fonctionnement de lapplication Web.
  4. 4. 4 9: Inclure les exigences de scurit spcifiques Trois catgories principales d'exigences de scurit peuvent tre dfinies lors de la phase de lanalyse fonctionnelle du cycle de dveloppement : 1. lments et fonctions de scurit : les contrles de scurit visibles de lapplication, tels que lauthentification et le contrle daccs. Exemples : Vrifier lidentit de lutilisateur lors du changement de mots de passe, ou Modification/dition dune donne est correctement journalise. 2. Cas d'abus de la logique mtier : les uses cases ou user stories doivent prendre en considration les scnarios dutilisation malveillante, afin de pouvoir dterminer les faiblesses dans la validation et le traitement des erreurs qui impacteront la fiabilit et la scurit de l'application. Exemple : qu'arrive-t-il si une tape choue / expire ou si l'utilisateur tente d'annuler ou de rpter une tape ? 3. Classification des donnes & exigences de confidentialit : lapplication doit assurer la protection des donnes caractre personnel (respect des obligations de la CNIL).
  5. 5. 5 8: Exploiter les fonctionnalits de scurit des frameworks et API de scurit Il est recommand dutiliser des API / Framework de scurit qui vitent davoir recrer des mcanismes de scurit de base (authentification, filtrage des donnes, etc.). Exemple dAPI / Framework de scurit : Une attention particulire doit tre porte lors de lutilisation des API ou des frameworks, notamment : Le choix du Framework / API : privilgier lutilisation des Framework / API les plus documents, tests et prouvs afin de sassurer quils ne portent pas de vulnrabilits ou de code malveillant. Suivi des mises jours. il est essentiel de garder ces Frameworks et API jour comme dcrit dans le chapitre "Utilisation de composants avec des vulnrabilits connues" du document OWASP Top Ten 2013. Gestion des privilges des utilisateurs Un API souple et scuris pour la cryptographie OWASP Java Encoder Project OWASP Java HTML Sanitizer Project
  6. 6. 6 7: Implmenter la journalisation et la dtection dintrusion La journalisation ou Logging joue souvent un rle fonctionnel essentiel dans la scurit des applications Web. La fonctionnalit de journalisation ne doit pas tre limite uniquement au dbogage et diagnostic des erreurs de code. Elle doit pouvoir retracer les lments suivants : La surveillance des applications Analyse et comprhension des affaires Les activits daudit et de vrification de la conformit La dtection dintrusion dans les systmes Informatique lgale (Forensics) Dfinir une politique de gestion des fichiers log rigoureuse (stockage, rotation, rtention) afin de se protger. Encoder les donnes non scurises avant de les journalise Pour vous prmunir contre l'injection de journaux de log (galement appel Log Forging / Forgeage de log). Utiliser un API flexible et scuris : Apache Log4j2 OWASP Logging Cheat Sheet
  7. 7. 7 7: Implmenter la journalisation et la dtection dintrusion Les systme de dtection/prvention dintrusion permet de surveiller le trafic Web en Temps Rel , par opposition la consultation des traces ( logs ) qui se fait forcement en diffr, sans parler des difficults de reprer des failles. Le rle dun IDS/IPS : lmission dalertes qui permettront la dtection de la prparation dune attaque, (scans massifs la recherche de failles sur un ensemble de machines ), une attaque en cours (trafic sur des ports correspondants des failles). Le projet OWASP AppSensor Project dcrit comment mettre en uvre la dtection d'intrusion dans le contexte dune application Web : les sondes ou les points de dtection : plus de 50 points dentrs qui peuvent tre utiliss pour identifier les attaques Web. Rponse sur incident/attaque : les mesures/actions prendre en cas de problmes de scurit rencontrs dans lapplication. Mesures de dfense proactives : identifier et liminer le risque li une vulnrabilit avant quelle soit exploite par un attaquant
  8. 8. 8 6: Protger les donnes et la vie prive La protection des donnes doit tre assure au niveau des deux axes suivants : Protection des changes Afin de garantir la protection des donnes sensibles transmissent au client (navigateur), il est fortement recommand de protger le canal de communication via le protocole SSL. Les avantages de lutilisation du HTTPs : Confidentialit : un pirate ne peux pas lire les donnes Intgrit : un pirate ne peux pas altrer les donnes changs entre le serveur et le navigateur Authenticit : Sassurer que la configuration du SSL au niveau du serveur respecte les exigences de scurit : Eviter lutilisation dune implmentation obsolte. Utiliser un certificat valide et sign par une autorit de confiance reconnue. HTTP Strict Transport Security (HSTS) : Forcer lutilisation du protocole HTTPS. OWASP Transport Layer Protection Cheat Sheet1
  9. 9. 9 6: Protger les donnes et la vie prive La protection des donnes doit tre assure au niveau des deux axes suivants : Stockage des donnes Le stockage des donnes sensibles reprsente un point crucial pour la scurit des applications Web. Le choix des algorithmes cryptographique utiliss doit respecter les exigences de scurit afin de se prmunir contre les attaques de cassage des mots de passe. Bonnes pratiques pour le stockage scuris des mots de passe : Salage des mots de passe : Protect ( [salt] + [password] ) La longeur du salt : 32 ou 64 caractres Algorithme de hash performant : HMAC-SHA-256([private key], [salt] + [password]) Utilisation dune implmentation scuris des algorithmes de chiffrements : Google KeyCzar Librairie open source scuris et simple utiliser : Robuste en terme de gestion des cls (rotation, versioning & lengths ) Implmente en Java, Python et C++. OWASP Password Storage Cheat Sheet2 Crypter crypter = new Crypter("/path/to/your/keys"); String ciphertext = crypter.encrypt("Secret message");
  10. 10. 10 5: Etablir les contrles didentit et dauthentification Complexit des mots de passe : au minimum 8 caractres, une alternance de lettres majuscules, minuscules et chiffres. Scuris le processus de recouvrement dun mot de passe : Le processus recommand par lOWASP est constitu des tapes suivantes : Etape 1) Demande dinformations sur lidentit de lutilisateur (exemple email ou rponse une question secret). Etape 2) Vrification de lidentit de lutilisateur. Etape 3) Envoi dun jeton daccs temporaire travers un moyen scuris (exemple email). Etape 4) Enfin, lapplication doit forcer lutilisateur changer son mot de passe suite lutilisation du jeton daccs fourni prcdemment (tape 3). Protection de la session des utilisateurs : le transport, la cration, le renouvellement et la destruction de la session d'un utilisateur dans l'application. L'authentification est le processus consistant vrifier qu'une personne ou une entit est bien celui qu'elle prtend tre. Dans le contexte des applications Web, on retrouve les mesures/recommandations suivantes :
  11. 11. 11 4: Implmenter les contrles daccs appropris Le contrle daccs est le mcanisme qui permet dautoriser/interdire laccs une ressource/fonctionnalit au niveau de lapplication. Exemple de Mauvaises Pratiques ou Anti-Patterns de contrle daccs : Codage en dur des rgles daccs au niveau du code source. Absence dun systme centralise (couche de scurit) pour le contrle daccs. Une rgle de contrle daccs qui ncessite la modification de plusieurs fichiers de code de source Un systme de contrle daccs ouvert par dfaut. Effectuer des dcisions directement partir des donnes non valides. if ( $_GET[user] === "tmr" ) { echo "Welcome Admin !" } if (user.isManager() || user.isAdministrator() || user.isEditor() || ... ) { //execute action }
  12. 12. 12 4: Implmenter les contrles daccs appropris if (user.isManager() || user.isAdministrator() || user.isEditor() || user.isUser()) { //execute action } Problmatique Solution Implmenter un mcanisme de contrle daccs scuris et centralis. if ( currentUser.hasRole( "admin" ) ) { log.info(" Welcome Admin ! " ); } else { log.info( " You dont have access " ); } Dfinir une politique daccs au niveau du fichier de configuration shiro.ini .
  13. 13. 13 4: Implmenter les contrles daccs appropris Problmatique Solution Lapplication doit garantir laccs uniquement pour un objet unique. int