Académique Documents
Professionnel Documents
Culture Documents
Problème :
Solution :
Il exit des stratégies pour réduire le risque d'attaque par mot de passe,
alors voici quelques bonnes pratiques pour les empêcher :
Pen test : La meilleure façon de savoir si votre organisation est
vulnérable aux attaques par mot de passe est d'en lancer une vous-
même avec un test d'intrusion. Un outil de Pen testing automatisé
peut être utilisé pour exécuter rapidement des attaques de mot de
passe. Par exemple, un scénario de pulvérisation de mot de passe
peut être exécuté pour voir si votre environnement est vulnérable,
exposant quelles machines partagent des informations d'identification.
Cela vous donne le temps de changer le mot de passe avant que vous
ne soyez réellement attaqué, et devrait inciter à réévaluer la façon dont
les mots de passe sont créés et appliqués.
Multi-Factor Authentication (MFA): La MFA place des obstacles
supplémentaires sur le chemin des attaquants en exigeant plus d'un
élément de preuve pour se connecter. Les catégories de preuves
incluent la connaissance, la possession et l'inhérence. Cela inclut
quelque chose qu'un utilisateur connaît, comme un mot de passe,
quelque chose qu'un utilisateur possède, comme un téléphone ou un
jeton de sécurité, et quelque chose que seul l'utilisateur peut fournir,
comme une empreinte digitale. Alors que les éléments de sécurité plus
élevée peuvent avoir des empreintes digitales ou des scanners
oculaires, la plupart des appareils utilisent la connaissance et la
possession pour un processus d'authentification à deux facteurs. Plus il
y a d'exigences, plus un attaquant devra faire de travail pour entrer.
Surveiller l'activité : les attaquants comptent sur le fait de ne pas être
détectés. Étant donné que tant d'activités se produisent dans un
environnement informatique, une attaque par mot de passe peut
facilement passer entre les mailles du filet. La surveillance de l'activité
avec un SIEM peut signaler un nombre inhabituel de tentatives de
connexion, transmettant automatiquement le problème à l'équipe de
sécurité, lui permettant de prévenir ou de neutraliser rapidement les
risques. Cela signifie que vos équipes de sécurité et vos analystes
peuvent déterminer en temps réel s'ils doivent aller plus loin et
enquêter. De plus, de nombreuses solutions SIEM peuvent agir
automatiquement, verrouillant un utilisateur après un certain nombre
de tentatives infructueuses.
2- Injection SQL
Problème :
L’injection SQL est devenue un problème courant qui affecte les sites
Web exploitant des bases de données. Elle se produit lorsqu’un malfaiteur
exécute une requête SQL sur la base de données via les données entrantes
du client au serveur. Des commandes SQL sont insérées dans la saisie du
plan de données (par exemple, à la place du nom d’utilisateur ou du mot de
passe) afin d’exécuter des commandes SQL prédéfinies. Un exploit d’injection
SQL réussi peut lire les données sensibles de la base de données, modifier
(insérer, mettre à jour ou supprimer) les données de la base de données,
exécuter des opérations d’administration de la base de données (par exemple
la fermer), récupérer le contenu d’un fichier spécifique, et, dans certains cas,
envoyer des commandes au système d’exploitation.
Par exemple, le formulaire Web d’un site Web peut demander le nom
de compte d’un utilisateur, puis l’envoyer à la base de données afin d’extraire
les informations de compte associées à l’aide de SQL dynamique, comme
ceci :
“SELECT * FROM users WHERE account = ‘“+
userProvidedAccountNumber +”’;”
Puisque ‘1’ = ‘1’ est toujours évalué comme TRUE, la base de données
renvoie les données de tous les utilisateurs au lieu d’un seul.
La vulnérabilité à ce type d’attaque informatique est liée au fait que
SQL ne fait aucune distinction réelle entre le plan de contrôle et le plan de
données. Pour cette raison, les injections SQL fonctionnent surtout si un site
Web utilise SQL dynamique. De plus, les injections SQL sont très courantes
avec les applications PHP et ASP en raison de la prévalence des anciennes
interfaces fonctionnelles. Les applications J2EE et ASP.NET sont moins
sensibles aux injections SQL en raison de la nature des interfaces
programmatiques disponibles.
Solution :
Prévenir les vulnérabilités d'injection SQL n'est pas facile. Les
techniques de prévention spécifiques dépendent du sous-type de vulnérabilité
SQL I, du moteur de base de données SQL et du langage de programmation.
Cependant, il existe certains principes stratégiques généraux que vous devez
suivre pour assurer la sécurité de votre application Web.
Étape 1 : former et maintenir la sensibilisation
Pour assurer la sécurité de votre application Web, toutes les
personnes impliquées dans la création de l'application Web doivent
être conscientes des risques associés aux injections SQL. Vous devez
fournir une formation appropriée en matière de sécurité à tous vos
développeurs, personnel d'assurance qualité, DevOps et
administrateurs système. Vous pouvez commencer par les renvoyer à
cette page.
Étape 2 : Ne faites confiance à aucune entrée d'utilisateur
Traitez toutes les entrées utilisateur comme non fiables. Toute entrée
utilisateur utilisée dans une requête SQL présente un risque d'injection
SQL. Traitez les entrées des utilisateurs authentifiés et/ou internes de
la même manière que vous traitez les entrées publiques.
Étape 3 : Utilisez des listes blanches et non des listes noires
Ne filtrez pas les entrées des utilisateurs en fonction des listes noires.
Un attaquant intelligent trouvera presque toujours un moyen de
contourner votre liste noire. Si possible, vérifiez et filtrez les entrées
des utilisateurs en utilisant uniquement des listes blanches strictes.
Étape 4 : Adoptez les dernières technologies
Les anciennes technologies de développement Web n'ont pas de
protection SQLi. Utilisez la dernière version de l'environnement et du
langage de développement et les dernières technologies associées à
cet environnement/langage. Par exemple, en PHP, utilisez PDO au lieu
de MySQLi.
Étape 5 : Utiliser des mécanismes vérifiés
N'essayez pas de créer une protection SQLi à partir de rien. La plupart
des technologies de développement modernes peuvent vous offrir des
mécanismes de protection contre SQLi. Utilisez de tels mécanismes au
lieu d'essayer de réinventer la roue. Par exemple, utilisez des requêtes
paramétrées ou des procédures stockées.
Étape 6 : Scannez régulièrement (avec Acunetix)
Les injections SQL peuvent être introduites par vos développeurs ou
via des bibliothèques/modules/logiciels externes. Vous devez analyser
régulièrement vos applications Web à l'aide d'un scanner de
vulnérabilité Web tel qu'Acunetix. Si vous utilisez Jenkins, vous devez
installer le plug-in Acunetix pour analyser automatiquement chaque
version.
3- Attaque DoS :
Problème :
Une attaque par déni de service submerge les ressources d’un
système afin que ce dernier ne puisse pas répondre aux demandes de
service. Une attaque DDoS vise elle aussi les ressources d’un système, mais
elle est lancée à partir d’un grand nombre d’autres machines hôtes infectées
par un logiciel malveillant contrôlé par l’attaquant.
À la différence des attaques conçues pour permettre à un attaquant
d’obtenir ou de faciliter des accès, le déni de service ne procure pas
d’avantage direct aux attaquants. Le déni de service est une satisfaction en
soi pour certains pirates. Cependant, si la ressource attaquée appartient à un
concurrent, l’avantage pour l’attaquant est alors bien réel. Une attaque DoS
peut aussi avoir pour but de mettre un système hors ligne afin de pouvoir
lancer un autre type d’attaque. Un exemple courant de cette technique est le
détournement de session, que je décrirai plus loin.
• Relecture
Une attaque par rejeu se produit lorsqu’un attaquant intercepte et
enregistre d’anciens messages, puis essaie plus tard de les envoyer, se
faisant passer pour l’un des participants. Ce type d’attaque peut facilement
être contré avec un horodatage des sessions ou un nonce (nombre ou chaîne
aléatoire variant avec le temps).
Solution :
Cryptage WEP/WAP fort sur les points d'accès
Le fait d'avoir un mécanisme de cryptage fort sur les points d'accès
sans fil empêche les utilisateurs indésirables de rejoindre votre réseau
simplement en étant à proximité. Un mécanisme de cryptage faible
peut permettre à un attaquant de se frayer un chemin dans un réseau
et de lancer une attaque de l'homme du milieu. Plus la mise en œuvre
du chiffrement est forte, plus elle est sûre.
Réseau privé virtuel
Les VPN peuvent être utilisés pour créer un environnement sécurisé
pour les informations sensibles au sein d'un réseau local. Ils utilisent
un cryptage à base de clé pour créer un sous-réseau pour une
communication sécurisée. De cette façon, même si un attaquant arrive
sur un réseau partagé, il ne pourra pas déchiffrer le trafic dans le VPN.
Forcer le HTTPS
HTTPS peut être utilisé pour communiquer en toute sécurité via HTTP
à l'aide d'un échange de clés public-privé. Cela empêche un attaquant
d'avoir une quelconque utilisation des données qu'il peut renifler. Les
sites Web doivent uniquement utiliser HTTPS et ne pas fournir
d'alternatives HTTP. Les utilisateurs peuvent installer des plugins de
navigateur pour appliquer toujours l'utilisation de HTTPS sur les
demandes.
Identifiants de connexion du routeur solides
Il est essentiel de vous assurer que la connexion par défaut de votre
routeur est modifiée. Pas seulement votre mot de passe Wi-Fi, mais
les identifiants de connexion de votre routeur. Si un attaquant trouve
les identifiants de connexion de votre routeur, il peut remplacer vos
serveurs DNS par ses serveurs malveillants. Ou pire encore, infectez
votre routeur avec un logiciel malveillant.
Sécurité des endpoints
Malgré tous vos efforts, vous ou votre personnel pouvez être la proie
d'attaques MITM. Ces attaques se combinent avec des logiciels
malveillants pour obtenir un accès illimité à votre appareil ou à votre
réseau informatique. Tirez parti d'un logiciel de sécurité des terminaux
performant pour vous protéger contre ces menaces. Les meilleurs
logiciels de sécurité, tels que Kaspersky Endpoint Security, vérifient
les sites Web et les e-mails potentiellement dangereux pour vous aider
à éviter d'être victime d'une cyberattaque. Si votre appareil ou votre
réseau est infecté par des logiciels malveillants, ce logiciel de sécurité
intervient pour vous défendre.
5- Attaque XSS (Cross-Site Scripting)
Problème :
Les attaques XSS utilisent des ressources Web tierces pour exécuter
des scripts dans le navigateur Web de la victime ou dans une application
pouvant être scriptée. Plus précisément, l’attaquant injecte un JavaScript
malveillant dans la base de données d’un site Web. Lorsque la victime
demande une page du site Web, le site Web transmet la page à son
navigateur avec le script malveillant intégré au corps HTML. Le navigateur de
la victime exécute ce script, qui envoie par exemple le cookie de la victime au
serveur de l’attaquant, qui l’extrait et l’utilise pour détourner la session. Les
conséquences les plus graves se produisent lorsque XSS sert à exploiter des
vulnérabilités supplémentaires. Ces vulnérabilités peuvent non seulement
permettre à un attaquant de voler des cookies, mais aussi d’enregistrer les
frappes de touches et des captures d’écran, de découvrir et de collecter des
informations réseau et d’accéder et de contrôler à distance l’ordinateur de la
victime.
XSS peut être exploité avec VBScript, ActiveX et Flash, mais c’est
JavaScript qui est le plus largement touché, principalement en raison de son
omniprésence sur le Web.
Pour se défendre contre les attaques XSS, les développeurs peuvent
assainir les données entrées par les utilisateurs dans leurs requêtes HTTP
avant de les renvoyer. Assurez-vous que toutes les données sont validées,
filtrées ou effacées avant de renvoyer quoi que ce soit à l’utilisateur, par
exemple les valeurs des paramètres de requête lors de recherches.
Convertissez les caractères spéciaux tels que ? &, /, <, > et les espaces en
leurs équivalents codés HTML ou URL. Offrez aux utilisateurs la possibilité de
désactiver les scripts côté client.
L'impact réel d'une attaque XSS dépend généralement de la nature de
l'application, de ses fonctionnalités et de ses données, ainsi que du statut de
l'utilisateur compromis. Par exemple :
Dans une application brochureware, où tous les utilisateurs sont
anonymes et toutes les informations sont publiques, l'impact sera
souvent minime.
Dans une application contenant des données sensibles, telles que des
transactions bancaires, des e-mails ou des dossiers médicaux, l'impact
sera généralement grave.
Si l'utilisateur compromis a des privilèges élevés au sein de
l'application, l'impact sera généralement critique, permettant à
l'attaquant de prendre le contrôle total de l'application vulnérable et de
compromettre tous les utilisateurs et leurs données.
Solution :
Empêcher les scripts intersites est trivial dans certains cas, mais peut
être beaucoup plus difficile en fonction de la complexité de l'application et de
la manière dont elle gère les données contrôlables par l'utilisateur.
En général, la prévention efficace des vulnérabilités XSS implique
probablement une combinaison des mesures suivantes :