(iii) Le nombre de nouveaux liens Web malveillants a augmenté de 345 % par rapport à 2008. (iv) 60,9 % des attaques de phishing ciblent le secteur financier, tandis que 0,4 % ciblent les organismes gouvernementaux. (v) Le volume de spam d'URL utilisant des noms de domaine de confiance et connus continue d'augmenter. (vi) La plupart des spams, environ 80 %, sont classés comme des URL de spam, c'est-à-dire des URL sur lesquelles un utilisateur clique pour consulter du contenu indésirable. (vii) 7,5 % d'Internet est considéré comme socialement inacceptable, indésirable ou extrêmement malveillant. (viii) Les vulnérabilités liées aux fichiers PDF ont dépassé celles affectant les documents Office. (ix) La grande majorité des exploitations Web se concentrent sur des kits d'exploitation Web ciblant des sources spécifiques. (x) Les États-Unis figurent parmi les principaux pays en matière de liens Web malveillants. Une croissance spectaculaire des botnets a été détectée en juillet, avec plus de 6 000 botnets, chacun comptant des milliers de nœuds ; par exemple, Conficker, avec environ cinq millions de bots.

 


Sécurité des applications web :
On observe une tendance croissante à la transformation des logiciels en services web. Les exemples concrets se multiplient chaque jour : services bancaires en ligne, commerce électronique, administration électronique, démocratie électronique, télémédecine, gestion de la relation client (CRM), réseaux sociaux, entreprises de contenu, etc., et même le cloud computing (XaaS, où X peut représenter l’infrastructure, la plateforme et le logiciel). Les applications hébergées sur des serveurs web sont de plus en plus nombreuses et sont écrites dans divers langages, notamment PHP, Java, Perl, Python, C et ASP. La sécurité web est rarement la priorité des architectes et concepteurs de logiciels. On constate les failles suivantes : (i) Des scripts mal écrits (un script est un ensemble d’instructions qui automatisent des tâches, créant ainsi des utilitaires) avec une validation des entrées insuffisante. (ii) Des données sensibles stockées en clair dans des fichiers accessibles à tous. (iii) L'envoi de mots de passe non chiffrés et l'utilisation du protocole HTTP au lieu du protocole HTTPS (SSL/TLS), etc. Visa et Mastercard ont déployé des efforts considérables pour améliorer la sécurité de la gestion des données grâce à la norme PCI-DSS ; toutefois, il est important de noter qu'une conformité informatique rigoureuse n'est pas toujours synonyme de bonne gestion de la sécurité au sein d'une organisation. Les applications web s'exécutent soit sur un serveur web (physique, virtuel, autonome ou appartenant à une ferme de serveurs), soit sur un serveur d'applications. Elles collectent les données saisies par les utilisateurs via le serveur web et interagissent avec les bases de données internes et externes. Les applications web préparent et fournissent des résultats aux utilisateurs via le serveur web, et deux aspects clés peuvent être identifiés : (i) Elles génèrent dynamiquement des pages HTML. (ii) Ils contiennent du contenu provenant de sources diverses, souvent d'utilisateurs réguliers : blogs, réseaux sociaux, sites de partage de photos, de musique, etc. La sécurité web se divise en deux grands domaines : (1) Les navigateurs web (tels que Microsoft Internet Explorer 8, Mozilla Firefox 3.5.13, Safari 5 (pour PC/macOS), Netscape 9.0, Opera 9.10, Google Chrome 4.0, les micro-navigateurs pour PDA, etc.). Ces navigateurs peuvent être la cible d'attaques depuis n'importe quel site web visité. Ces attaques peuvent entraîner l'installation de logiciels malveillants (comme des enregistreurs de frappe, qui capturent les frappes au clavier ; ce risque peut être atténué par l'utilisation de claviers virtuels), de réseaux de zombies, de logiciels espions, etc. Par exemple, un utilisateur peut être incité à télécharger et à exécuter un logiciel de codec pour visionner une vidéo, le vol de documents et d'identité, la perte de données personnelles, etc. (2) Les applications web. Ces applications s'exécutent sur des sites web (banques en ligne, blogs, boutiques en ligne, applications Google, etc.) et sont écrites en PHP, ASP, JSP, Ruby, etc. Elles présentent de nombreuses failles potentielles, telles que les attaques XSS et les injections SQL. De plus, ces attaques permettent le vol de données bancaires, le défaçage de sites web (comme ce fut le cas pour le site www.eu-2010.es où l'image de ZP a été remplacée par celle du comédien Mr. Bean ; cela aurait pu être évité si un audit de code rigoureux avait été effectué pour prévenir les attaques XSS), etc.


Modèles de menaces/d'attaquants Web.
Les attaquants Web peuvent être très divers : (i) Ils contrôlent des sites Web malveillants et peuvent même obtenir des certificats SSL/TLS pour leurs sites. Les raisons pour lesquelles un utilisateur peut visiter ces sites Web malveillants sont variées : réception d'un courriel d'hameçonnage, consultation d'un contenu très attractif (d'un point de vue récréatif ou professionnel), résultats d'un moteur de recherche, placement par un réseau publicitaire, malchance, etc. (ii) L'attaquant n'a aucun autre accès à la machine de l'utilisateur. (iii) Attaque par gadget. Par exemple, un gadget malveillant inclus dans un mashup légitime. Un gadget est un objet programme/mini-application qui fournit des services dynamiques ; les gadgets sous Windows 7/Vista se trouvent dans la barre latérale. (iv) Attaque réseau. Ils peuvent être passifs (effectuer une écoute clandestine sans fil ou filaire à l'aide d'analyseurs de paquets), actifs (utiliser un routeur malveillant, effectuer un empoisonnement DNS ou du pharming, utiliser un empoisonnement ARP pour effectuer des attaques de type « homme du milieu », etc.). (v) Attaque par logiciel malveillant. L'attaquant prend le contrôle de la machine de l'utilisateur de différentes manières : (a) en exploitant des failles de sécurité dans les applications ou le système d'exploitation (par exemple, un dépassement de tampon) dues à un manque d'audit de code et de correctifs du système d'exploitation ; (b) en incitant l'utilisateur à installer du contenu malveillant de diverses manières, par exemple en le piégeant pour qu'il exécute un antivirus gratuit ou installe un codec spécifique pour lire une vidéo dans un nouveau format, etc. ; (vi) risques XSS/CSS (Cross-Site Scripting). Une attaque XSS est un type d'attaque par réflexe : l'utilisateur est amené à visiter un site web mal conçu, un bug dans le code du site provoque son affichage, et le navigateur de l'utilisateur exécute un script d'attaque arbitraire. Ce script peut : (a) modifier le contenu du site web affecté en manipulant les composants DOM (Document Object Model) (la page HTML est constituée de données structurées, et le DOM fournit la représentation de cette hiérarchie), en affichant de fausses informations, en demandant des données sensibles et en contrôlant les champs de formulaire sur cette page et les pages liées. Par exemple, une attaque de phishing sur MySpace.com injecte le champ du mot de passe, permettant ainsi d'envoyer ce dernier à un ami malveillant. (b) Elle peut également amener le navigateur de l'utilisateur à attaquer d'autres sites web.

Evolution2.tiffp
L'essence de la sécurité de l'information. Erreurs. Générations de menaces.
La sécurité de l'information se définit comme un processus continu ; c'est un enjeu stratégique (et non une simple question de conformité relevant du département informatique) ; elle améliore l'image et la réputation de l'organisation ; elle renforce la confiance et la crédibilité ; elle stimule la productivité ; c'est une nécessité invisible, justifiée et utile ; c'est un investissement ; c'est un avantage concurrentiel ; c'est une priorité ; c'est le pilier de la résilience de l'entreprise ; elle prévient les risques et les pertes financières ; c'est un véritable soutien aux objectifs commerciaux ; c'est le pilier fondamental de la gestion de toute entreprise ; la sécurité soutient et protège les objectifs commerciaux ; c'est un problème d'entreprise dont la direction est responsable. Au fil des ans, de nombreuses idées fausses importantes concernant la sécurité de l'information ont été identifiées : (i) Si notre entreprise possède un antivirus et/ou un pare-feu, nous sommes en sécurité. (ii) La plupart des menaces sérieuses viennent de l'extérieur. (iii) Notre entreprise n'a pas à se soucier de la sécurité car nous sauvegardons nos données quotidiennement. (iv) La responsabilité de la sécurité incombe au personnel de sécurité informatique. Si un membre du personnel rencontre un problème (il peut le signaler en soumettant une demande via le site web de GP ou par téléphone pour une réponse plus rapide), celui-ci sera résolu. (v) Certains PDG, par ignorance, prétendent que leur entreprise est soumise à des contraintes budgétaires et remettent donc absurdement en question la nécessité du budget sécurité si le travail est déjà effectué. De plus, il est gravement erroné d'affirmer : (a) que la sécurité d'une entreprise se résume à un produit à acheter, une technologie à utiliser, une politique à adopter ou un simple investissement en temps. N'oublions pas que le maillon faible est le facteur humain. La sécurité englobe tous les aspects de l'entreprise, imprègne tout, identifie les actifs et les risques en jeu et détermine comment y remédier. En conclusion, la sécurité est un processus continu qui intègre la technologie, les politiques, les bonnes pratiques, la formation et la sensibilisation, instaurant ainsi une culture moderne de sécurité et de confidentialité. Une menace correspond à la probabilité d'une attaque, par exemple, un dépassement de tampon provoqué par un paquet IP. Une vulnérabilité correspond à la probabilité d'une faille exploitable, par exemple, un dépassement de tampon. Les conséquences représentent le coût total d'une attaque réussie. Le risque résulte de la combinaison de menaces, de vulnérabilités et de conséquences, comme par exemple la panne d'un système.
Au fil des années, on a pu identifier les générations de menaces suivantes : (1) Première génération : Subversion d'éléments d'infrastructure. Cela affecte les éléments informatiques, la messagerie, les serveurs, les bases de données, les données, les programmes, etc. (2) Deuxième génération : Subversion de processus métier. Cela affecte les processus, les personnes, etc. (3) Troisième génération : Subversion d'infrastructures critiques. Cela affecte les infrastructures de transport, d'eau, de communication, de santé publique, bancaires et financières, énergétiques et de services publics, les centres de données vitaux, les centrales nucléaires, les infrastructures de production et de distribution d'électricité, etc.  


Principales vulnérabilités des sites web
Les principales vulnérabilités des sites web, également considérées comme des attaques web, sont les suivantes : (i) Injection SQL. Le navigateur envoie des données malveillantes au serveur. Une validation incorrecte de ces données entraîne l’exécution d’une requête SQL malveillante. Le code malveillant de l’attaquant est alors exécuté sur le serveur de la victime. Il utilise SQL pour modifier la signification de la commande de base de données. Plusieurs solutions de défense éprouvées permettent de contrer efficacement ce problème, telles que les pare-feu d’applications web (FortiWeb-400B de Fortinet, NetScaler de Citrix, TrafficShield de F5, etc.). Les attaques par injection de code visent généralement à exécuter du code arbitraire sur le serveur ; dans le contexte de l’injection SQL, les requêtes de base de données PHP sont dangereuses car une chaîne de caractères malveillante peut en modifier le sens. Pour se prémunir contre les injections SQL, il est possible de : ne jamais construire soi-même de commandes SQL, utiliser du SQL paramétré ou employer un framework ORM. (ii) CSRF (Cross-Site Request Forgery) ou XSRF. Un site web malveillant envoie une requête du navigateur à un site web légitime en utilisant les identifiants d’une victime non avertie. Le site web de l'attaquant falsifie la requête du navigateur de la victime vers son serveur. La session de l'utilisateur sur le serveur de la victime est ainsi compromise. Il s'agit d'une requête falsifiée qui affecte la session en cours. Cette attaque peut être partiellement prévenue.
Voici quelques défenses possibles : (1) Validation par jeton secret. Cela nécessite l'utilisation d'un jeton secret difficile à deviner. (2) Validation du référent. Pour votre sécurité, ne saisissez jamais votre mot de passe, par exemple celui de Facebook, sur des sites non hébergés sur Facebook.com. (3) En-têtes HTTP personnalisés. Cette solution ne fonctionne pas entre différents domaines. (4) Script intersite (XSS). Le site web malveillant envoie à une victime non avertie un script qui vole des informations depuis un site web légitime. Le code malveillant de l'attaquant est exécuté dans le navigateur de la victime. Le script malveillant est injecté dans le contexte de confiance. Le problème provient de l'écho de l'entrée non fiable. Cette attaque est difficile à prévenir : elle nécessite une surveillance attentive, des tests, des outils, etc. Une vulnérabilité XSS se produit lorsqu'un attaquant parvient à injecter du code de script dans les pages générées par une application web.

Evolution3.tiffpVoici quelques méthodes d'injection de code malveillant : (a) XSS par réflexion (Type 1). Le script de l'attaquant est renvoyé à l'utilisateur via une page du site web de la victime. (b) XSS stocké (Type 2). L'attaquant stocke le code malveillant dans une ressource gérée par l'application web, comme une base de données. (c) Attaques basées sur le DOM (Document Object Model) qui n'utilisent pas le serveur.
Voici quelques mesures de protection côté client contre les attaques XSS : (i) Protection par proxy. Cette protection analyse le trafic HTTP échangé entre le navigateur web de l'utilisateur et le serveur web de destination, en recherchant les caractères HTML spéciaux et en les encodant avant l'exécution de la page dans le navigateur. (ii) Protection par pare-feu applicatif. Ce dernier analyse les pages HTML consultées à la recherche de liens hypertextes susceptibles d'entraîner la fuite d'informations sensibles et bloque les requêtes malveillantes à l'aide de règles de connexion. (iii) Protection par système d'audit. Ce système surveille l'exécution du code JavaScript et compare les opérations aux politiques de haut niveau afin de détecter les comportements potentiellement malveillants.
Selon l'OWASP (Open Web Application Security Project), voici quelques stratégies pour se protéger contre les attaques XSS :
1) Assurez-vous que vos applications valident tous les en-têtes, cookies, chaînes de requête, champs de formulaire et champs cachés (tous les paramètres) en fonction d'une spécification rigoureuse des éléments autorisés. Ne faites jamais confiance aux données côté client ; la meilleure stratégie consiste à n'autoriser que ce qui est attendu. Supprimez ou encodez également les caractères spéciaux, tels que les caractères longs et les encodages UFT-8. Des outils de test automatisés en boîte noire comme Hailstorm, WebInspect, Retina, eEye, Cenzic et Spidynamic existent, ainsi que des outils de renforcement de la sécurité des applications web comme WebSSARI, basé sur l'analyse des flux d'informations, et des services de tests de sécurité en boîte noire comme whitehatsec.com.
2) N'essayez pas d'identifier, de supprimer, de filtrer ou de nettoyer le contenu actif. En effet, il existe de trop nombreux types de contenu actif et d'innombrables façons de l'encoder pour contourner les filtres de contenu.
3) Utilisez une politique de sécurité positive qui spécifie les éléments autorisés. Les politiques « négatives » basées sur les signatures d'attaques sont difficiles à maintenir et sont souvent incomplètes.


Les 10 principales tendances en matière de sécurité des TIC selon Sans. Les 20 principaux contrôles selon Sans.
Le classement des 10 principales tendances en matière de sécurité des TIC (Technologies de l'Information et de la Communication) selon Sans est le suivant : (1) Appareils mobiles : ordinateurs portables (par exemple, avec chiffrement du disque dur). (2) Appareils mobiles : assistants numériques personnels (PDA)/smartphones. (3) Actions gouvernementales : conformité réglementaire. (4) Attaques ciblées : gouvernements et entreprises. (5) Attaques ciblées : téléphones portables : GSM/GPRS/
UMTS/HSDPA/Bluetooth. (6) Attaques ciblées : VoIP (voix sur IP). (7) Techniques d'attaque : logiciels espions. (8) Techniques d'attaque : vulnérabilités zero-day. (9) Techniques d'attaque : rootkits. (10) Stratégies de défense : amélioration du contrôle d'accès au réseau (NAC). Le classement des 20 principaux contrôles selon Sans est le suivant : (1) Inventaire des appareils autorisés et non autorisés. Utilisation d'un outil automatisé de découverte d'inventaire des actifs matériels et logiciels en temps réel. (2) Inventaire des logiciels autorisés et non autorisés. (3) Configuration sécurisée du matériel et des logiciels sur les ordinateurs portables, les postes de travail et les serveurs. (4) Configuration sécurisée des périphériques réseau tels que les routeurs, les commutateurs, les pare-feu, les systèmes IPS/IDS et les UTM. (5) Protection du périmètre réseau. (6) Maintenance, surveillance et analyse des journaux d'audit de sécurité. (7) Sécurité des logiciels applicatifs. (8) Utilisation contrôlée des privilèges d'administrateur. Accès contrôlé basé uniquement sur les informations nécessaires. (10) Évaluation et correction continues des vulnérabilités. (11) Surveillance et contrôle des comptes. (12) Protection contre les logiciels malveillants. Utilisation d'un antivirus matériel déployé sur le réseau et d'un logiciel sur les postes de travail. (13) Limitation et contrôle des ports, protocoles et services réseau. Utilisation d'un contrôle d'accès réseau matériel (NAC). (14) Contrôle des périphériques sans fil : Wi-Fi, Bluetooth, GSM/GPRS/UMTS/HSPD, etc. (15) Prévention des pertes de données (DLP). (16) Ingénierie de la sécurité réseau. (17) Tests d'intrusion, exercices de l'équipe de lecture et piratage éthique. (18) Capacités de réponse aux incidents. (19) Capacités de récupération des données. (20) Évaluation des compétences en sécurité et formation appropriée pour combler les lacunes.


Corrélation entre les niveaux de sécurité et les menaces.
Actuellement, diverses menaces existent, telles que la distribution de logiciels malveillants, le phishing/pharming, le spam, les rootkits, les attaques DoS/DDoS et les botnets. Si l'on considère un utilisateur externe souhaitant interagir avec une base de données interne, il est possible d'identifier les niveaux de protection suivants, de l'extérieur vers l'intérieur, ainsi que les menaces associées : (i) Niveau client/utilisateur HTTP : détection des menaces telles que le CSS et l'usurpation d'identité. (ii) Niveau transport HTTP(S) : surveillance passive, attaques de type « homme du milieu » (MITM) et détournement de session. (iii) Niveau pare-feu : autorisation du protocole HTTP(S). (iv) Serveur web : dépassement de tampon, chaînes de formatage, traversée de répertoires, comptes par défaut et exemples d'applications. (v) Applications web et CGI : manipulation des filtres, métacaractères, caractères nuls et dépassement de tampon. (vi) Pare-feu : vigilance face aux menaces au sein du réseau interne. (vii) Bases de données. Commandes SQL directes, requêtes de base de données restreintes, exploitation des failles de sécurité des bases de données.


Considérations finales.
Notre groupe de recherche travaille depuis plus de quinze ans dans le domaine de la sécurité web pour les serveurs, les applications, les services, les infrastructures, etc. Nos travaux portent sur l'évaluation et le développement de projets d'amélioration dans le contexte web, la sécurité et la protection de la vie privée dès la conception sur le web, ainsi que la synthèse de mécanismes de protection adaptés, logiciels et matériels, et de la logique embarquée dans les micro- et nanosystèmes.

Cet article s'inscrit dans le cadre des activités menées au sein du projet LEFIS-APTICE (financé par Socrates, Commission européenne).

Bibliographie

- Areitio, J. « Sécurité de l'information : réseaux, informatique et systèmes d'information ». Cengage Learning-Paraninfo. 2010.
- Areitio, J. « Test de sécurité pour évaluer et améliorer le niveau des risques de sécurité ». Conectrónica Magazine. N° 134. Février 2010.
- Zittrain, J. « L'avenir d'Internet et comment l'arrêter ». Yale University Press. 2009.
- Outils d'applications Web : http://www.owasp.org : (i) Web Scarab : Intercepteur HTTP puissant (modifie les données en transit). (ii) Web Goat : Applications volontairement vulnérables pour la formation à l'exploitation de failles.
- Scanner de sécurité des applications web Nikto : http://www.cirt.net/nikto2
- Barre d'outils de développement web : https://addons.mozilla.org/firefox/addon/60
- Modules complémentaires Firefox pour la protection contre les failles XSS et SQL-I : http://securitycompass.com
- N-Stalker : http://www.nstalker.com/products/free
- Scanner de sécurité gratuit des applications web Wapiti : http://wapiti.sourceforge.net
- Scanner d'informations sensibles Spider : http://www.cit.cornell.edu/security/tools
- Outil Absinthe pour la protection contre les injections SQL : http://www.0x90.org/releases/absinthe
- Autres outils gratuits : https://infosec.uga.edu/sate/tools.php

Auteur:

Prof. Dr. Javier Areitio Bertolín – E.Mail : Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer JavaScript pour la visualiser.
Professeur à la Faculté d'ingénierie.
Directeur du groupe de recherche sur les réseaux et les systèmes. Université de Deusto.