autoscale: true slidenumbers: true footer: Thibault Vieux, Software Engineer @PayFit
Code: #22671
Ensemble de pratique permettant de protéger
- Les données
- Mauvais usage
- Modification sans autorisation
- Destruction
- L'accès aux données
- Limité aux personnes ayant reçu l'accès
Connais ton ennemi et connais-toi toi-même; eussiez-vous cent guerres à soutenir, cent fois vous serez victorieux. -- Sun Tzu, L’Art de la guerre
Nous sommes en guerre contre:
- Hackers
- Scammers
- Script kiddies
Le champs de bataille sont les réseaux et le prix nos données.
^ Nous allons apprendre à connaître nos ennemis, leurs motivations, leurs méthodes et leurs attaques. Nous allons également étudier nos armes défensives et nos contre-attaques.
Une sécurité efficace repose sur 3 éléments principaux:
- Confidentialité
- Intégrité
- Disponibilité
Seules les personnes autorisées peuvent avoir accès aux informations qui leur sont destinées. Tout accès indésirable doit être empêché.
- Chiffrement (ex: AES, RSA)
- Contrôle d'accès (ex: mot de passe, rbac)
- Authenticité (MFA)
Les données doivent être celles que l'on attend, et ne doivent pas être altérées de façon fortuite, illicite ou malveillante.
- Checksum (ex: SUM32, CRC, Hamming code)
^ Détection des erreurs dues à la corruption de la transmission des données.
- Hachage (ex: SHA, MD5)
^ Garantir l'intégrité du message, s'assurer que personnes n'a altéré le message en premier lieu.
L'accès aux ressources doit être permanent et sans faille durant les plages d'utilisation prévues.
- Redondance
- Scalabilité
- Firewall
D'autres aspects peuvent aussi être considérés comme des objectifs de la sécurité des SI, tels que :
- La traçabilité: Les accès et tentatives d'accès aux données sont tracés, ces traces sont conservées et exploitables. --> Datadog
- La non-répudiation: Aucun utilisateur ne doit pouvoir contester les opérations qu'il a réalisées dans le cadre de ses actions autorisées et aucun tiers ne doit pouvoir s'attribuer les actions d'un autre utilisateur. --> Certificat électronique (OpenPGP, X.509)
^ https://www.napsis.fr/actualite/reseau-modele-osi/
^ Attaque par déni de service
^ Le but est de rendre indisponible un service, d'empêcher les utilisateurs légitimes d'un service de l'utiliser.
DOS Taxonomie: Quiz n°1
[.column]
- Random Scanning
- Permutation Scanning
- Signpost Scanning
- Hitlist Scanning
[.column]
- Une partie de la liste des cibles est fournie à un ordinateur compromis.
- Tous les ordinateurs compromis partagent une permutation pseudo-aléatoire commune de l'espace d'adressage IP.
- Utilise les modèles de communication de l'ordinateur compromis pour trouver une nouvelle cible.
- Chaque ordinateur compromis sonde des adresses aléatoires.
^ 4, 2, 3, 1
^ Scanner un réseau afin de recruter des machines vulnérables sans se faire détecter
^ Classification par stratégie de scan
DOS Taxonomie: Quiz n°2
[.column]
- Subnet Spoofing
- Random Spoofing
- Fixed Spoofing
[.column]
- Génére des nombres de 32 bits et tamponne les paquets avec
- Génére des adresses aléatoires dans un espace d'adressage donné
- L'adresse usurpée est l'adresse de la cible.
^ 2, 1, 3
^ Spoofing: Usurpation d'identité, changer l'IP source
^ Classification par validité de l'IP source
DOS Taxonomie: Quiz n°3
[.column]
- Server Application
- Network Access
- Infrastructure
[.column]
- La motivation de cette attaque est un service crucial d'Internet, par exemple, un routeur central.
- L'attaque vise une application spécifique sur un serveur.
- L'attaque est utilisée pour surcharger ou faire tomber le mécanisme de communication d'un réseau.
^ 2, 3, 1
^ Classification par type de victime
[.column]
Comment ?
Via une attaque par amplification!
- Un petit nombre de paquets
- Gros impact sur les ressources
[.column]
Deux types d'attaques par amplification:
[.column]
DoS bug:
- Défaut de conception permettant à une machine de perturber un service
[.column]
DoS flood:
- Commandez un réseau de robots pour générer un grand volume de requêtes
^ DoS bug: Une requête serveur qui demande beaucoup de ressource à la base de données car les données ne sont pas mise en cache. Une gestion de la pagination trop permissive. Une requête non conforme qui fait planter le serveur à cause d'une mauvaise gestion des erreurs.
^ Couche liaison: Un gros traffic de données pour saturer les routeurs.
^ Couche transport TCP/UDP: Par exemple le serveur a besoin d'utiliser des ressources mémoires afin de garder un état des connections TCP. Ainsi l'attaquant peut envoyer plein de paquets TCP pour épuiser la mémoire du serveur.
^ Couche application: Par exemple l'attaquant peut demander au serveur de récupérer un gros volume de données, si ces demandes sont nombreuses, les ressources du serveur seront épuisées.
[.column]
[.column]
Permet de synchroniser, via un réseau informatique, l'horloge locale d'ordinateurs sur une référence d'heure.
^ Lorsqu'un ordinateur demande l'heure au serveur NTP, le volume de données envoyé par une machine au serveur est beaucoup plus faible que la réponse du serveur.
^ https://www.cloudflare.com/fr-fr/learning/ddos/ntp-amplification-ddos-attack/
Lesquelles de ces raisons expliquent pourquoi le protocole NTP basé sur le protocole UDP est particulièrement vulnérable aux attaques par amplification ?
- Une petite commande peut générer une réponse importante.
- Vulnérable à l'usurpation de l'IP source.
- Il est difficile de s'assurer que les ordinateurs ne communiquent qu'avec des serveurs NTP légitimes.
^ Vrai: Le volume de la requête provenant de notre ordinateur est plus faible que le volume de données provenant de la réponse du serveur.
^ Vrai: L'attaque fonctionne car il est possible d'usurper l'identité de la source IP afin que la réponse soit redirigé vers la machine que l'on souhaite attaquer.
^ Vrai: Il est difficile de filtrer les réponses des serveurs NTP.
2006: 0.58M open resolvers on Internet (Kaminsky-Shiffman) 2014: 28M open resolvers (openresolverproject.org)
^ https://www.cloudflare.com/fr-fr/learning/ddos/dns-amplification-ddos-attack/
^ Blaster a exploité une vulnérabilité de type dépassement de tampon qui était présente dans le service DCOM RPC de Windows XP/2000. Il se propageait rapidement vers des adresses IP générées aléatoirement. Une fois infecté, l’ordinateur s’éteignait après 60 secondes. Le ver était programmé pour commencer une attaque (quatre jours après son apparition) de type SYN flood sur le site des mises à jour Windows (windowsupdate.com), ce qui a forcé Microsoft à rediriger le site vers un autre nom de domaine.
^ https://www.cert-ist.com/public/fr/SO_detail?code=Syn_Cookies
- Les cookies SYN nécessite une version modifié de TCP.
- Les cookies SYN entraînent un ralentissement général des performances.
- Le serveur rejete les options TCP car la file d'entrée n'est plus accessible lors du SYN.
^ Faux, un SYN Cookie est un choix particulier de numéro de séquence Initial (ISN) effectué par un serveur lors d'une demande de connexion TCP.
^ Faux, ils ne sont appliqués que lors d'une attaque SYN Flood.
^ Vrai, l'état de la connection n'est pas conservé en mémoire sur le serveur.
^ L'idée est de prendre un serveur populaire utilisé par de nombreux utilisateur (ex: Baidu) et d'y injecter un script malveillant qui va s'exécuter côté client.
Le script ci-dessous crée une balise image sur la page que vous visitez 100x/seconde. Chaque visiteur du site infecté devient un participant involontaire à une attaque DDoS contre Github.
function imgFlood() {
let pic = new Image();
let TARGET = "user-images.githubusercontent.com";
let rand = Math.floor(Math.random() * 1000);
pic.src = "https://" + TARGET + "/" rand + ".jpg";
}
setInterval(imgFlood, 10);
Source: Cloudflare - An introduction to JS based DDoS
^ Les messages envoyés par le navigateur sont des requêtes HTTP valides, ce qui en fait une attaque de niveau 7.
- Les attaquants peuvent usurper l'adresse IP de leurs paquets UDP.
- L'attaque peut être atténuée avec un pare-feu.
- Les pare-feu ne peuvent pas arrêter une inondation car ils y sont vulnérables.
^ Vrai: Les attaquants peuvent usuper l'adresse IP.
^ Faux: Les pare-feu ne peuvent pas atténuée l'attaque car ils semblent tous légitimes.
^ Vrai: Même si le firewall tente de filtrer le traffic, il est lui-même sensible à l'attaque car il doit examiner un grand nombre de paquets.
^ Détournement du routage d'adresse IP
^ En février 2008, Pakistan Telecom a fait tomber par inadvertance l'ensemble du site YouTube dans le monde entier pendant deux heures alors qu'il tentait de restreindre l'accès local au site. Lorsque Pakistan Telecom a essayé de filtrer l'accès à YouTube, il a envoyé de nouvelles informations de routage via BGP à PCCW, un ISP de Hong Kong qui a propagé les fausses informations de routage sur Internet.
^ Le service Youtube a été inaccessible pendant 2 heures. Contactant dans un premier temps Pakistan Telecom, puis en définissant un masque de sous-réseau plus petit en attendant que la situation soit corrigé.
^ Le client peut générer une clé secrète partagée entre le client et le serveur et la chiffrer à l'aide de la clé publique du serveur. Lorsque le serveur reçoit la clé chiffrée, il utilise sa clé privée pour la déchiffrer et extraire la clé secrète.
^ Le déchiffrage RSA est 10x plus coûteux que le chiffrage
^ De manière similaire le client peut demander via une requête HTTP de nombreux fichiers PDF volumineux.
^ Pour ralentir l'attaquant on peut demander au client de résoudre un challenge.
^ La difficulté du puzzle peut-être ajusté en fonction de l'intensité de l'attaque que subis le serveur.
^ Une autre variante de ces puzzles consiste à utiliser des fonctions liées à la mémoire car ceux-ci s'adapte mieux aux machines bas de gamme.
Lesquelles de ces hypothèses sont vraies ?
- Les énigmes des clients doivent être difficiles à construire. C'est une indication du niveau de difficulté pour les résoudre.
- Les énigmes des clients doivent être "stateless".
- La complexité des énigmes doit augmenter avec la puissance de l'attaque.
^ Faux: Les énigmes ne doivent pas être difficile a construire par le serveur.
^ Vrai: Cela permet d'éviter que le client puisse deviner le puzzle en amont.
^ Vrai
^ Le serveur vérifie que la connection provient d'un être humain au lieu d'un bot ou un malware.
^ Cette protection se situe au niveau de la couche application
^ Présente un CAPTCHA par addresse IP source
Objectif: Identifier la source du packet
Objectif ultime: Bloquer l'attaque à la source
^ Ce problème peut paraître simple à résoudre.
^ La plupart des paquets impliqués dans une attaque DoS ont une adresse IP source usurpée ou aléatoire.
^ Pourquoi ne pas demander aux FAI de filtrer les adresses sources qui ne sont pas légitimes ?
^ Si le routeur s'attend à ce que tout le trafic provienne d'un préfixe particulier, il peut supprimer tous les paquets dont l'adresse source est différente de ce préfixe.
^ Filtrage à l'entrée - Problèmes de mise en œuvre
^ Nécessite une confiance globale car tous les FAI doivent le faire.
^ Inutile si seulement 10% des FAI ne le font pas.
^ Aucune incitation au déploiement
- Edge: Adresse IP de début et de fin
- Distance: Nombre de sauts depuis la dernière arête enregistré
L'algo suivant permet au routeur de décider comment enregistrer l'information pour chaque arête. Lorsqu'un paquet arrive, il tire à pile ou face 🪙
[.column]
Si c'est pile
- Il inscrit son adresse dans l'adresse de départ
- Il écrit 0 dans le champ distance
[.column]
Si c'est face
- Si la distance est de 0, il écrit son adresse IP dans le champ de l'adresse de fin
- Il incrémente le champ distance.
^ R1 reçoit un paquet depuis la source ou un autre routeur.
^ Le paquet contient un espace pour écrire le début, la fin et la distance.
^ Pile: Le routeur R1 inscrit son adresse dans l'adresse de départ et défini la distance à 0.
^ Face: Le routeur R2 inscrit son adresse dans l'adresse de fin car la distance est de 0, puis il incrémente le champ distance.
^ Face: Le routeur R3 incrémente le champ distance et ne touche pas à l'adresse de fin car la distance est supérieure à 0.
^ Pour le routeur R3, la distance pour aller a R1 est de 2.
Reconstruction du chemin:
- Extraire l'information des paquets de l'attaquant
- Construire un graphe orienté
- Chaque tuple (début, fin, distance) fourni une arête du graphe
- Une formule mathématique permet ensuite de déterminer le nombre de paquets nécessaire pour reconstruire le graphe en fonction de la distance de l'attaquant
Lesquelles de ces hypothèses concernant le Edge Sampling sont vraies ?
- Il permet d'identifier plusieurs attaquants
- Il est difficile pour les victimes de reconstruire un chemin vers l'attaquant
- Nécessite de l'espace dans l'en-tête du paquet IP.
^ Vrai: En reconstruisant le graphe on peux récupérer plusieurs sources et donc plusieurs attaquants.
^ Faux
^ Vrai
^ L'attaquant usurpe l'adresse IP de la victime et envoie des requêtes DNS à de nombreux serveurs DNS. Les réponses sont ensuite envoyées à l'adresse IP de la victime.
^ Il existe d'autres attaques par réflexion qui utilise des serveurs web et des serveurs P2P tel que Gnutella.
^ Une attaque par réflecteur est généralement contrôlé par une personne contrôlant de nombreux robots qui vont envoyer des requêtes sur de nombreux serveurs. Cela aura pour résultat d'inonder la victime sous un gros volume de données.
^ Un système de traçage permettra de remonter les paquets d'attaque jusqu'aux réflecteurs, mais comme ces derniers n'effectuent aucun marquage et ne conservent aucun état, il n'y a aucune possibilité de remonter jusqu'aux bots.
L'autodéfense contre les attaques par réflecteur doit incorporer :
- Filtrage - filtrer le trafic DNS aussi près que possible de la victime.
- Redondance des serveurs - les serveurs doivent être situés dans plusieurs réseaux et pays.
- Limitation du trafic - le trafic provenant d'un serveur DNS doit être limité à des seuils raisonnables.
^ Faux: Le filtrage doit se faire au plus proche de l'attaquant, càd le plus loin possible de la victime.
^ Vrai: Cela permet de répartir la charge de l'attaque sur plusieurs serveurs.
^ Vrai: Dans l'idéal, les résolveurs DNS ne devraient fournir leurs services qu'à des appareils qui proviennent d'un domaine de confiance.
^ Quelques idées novatrices pour se défendre contre les DoS.
^ Il y a plusieurs exemple qui se basent sur un système de capabilités.
^ Au lieu de pouvoir envoyer n'importe quoi à n'importe qui et n'importe quand, les clients doivent d'abord obtenir la "permission" d'envoyer des données au serveur; le serveur fournit en retour des jetons (capabilités) aux clients dont il accepte le trafic. Les clients incluent ensuite ces jetons dans leurs paquets.
^ Similaire au standard JSON Web Token qui permet l'échange sécurisé de jetons entre plusieurs parties. Cette sécurité de l’échange se traduit par la vérification de l’intégrité des données à l’aide d’une signature numérique (HMAC/RSA).
^ Cela permet d'avoir des points de vérification répartis sur le réseau afin de vérifier que le trafic est légitime. Les capacités peuvent être révoquées si la source est malveillante aux niveaux des routeurs de façon à être au plus proche de l'attaquant.
^ Dans cette leçon, nous allons examiner la cybercriminalité, son économie et certaines des motivations des acteurs. À la fin de cette leçon, vous devriez avoir une bien meilleure compréhension de la frontière entre un commerce légitime et la cybercriminalité sur Internet.
^ Les développeurs découvrent des bugs pouvant être exploités afin de compromettre la sécurité de machines, ils les vendent pour faire du profit. Black Hat Hacker.
^ Il y a ensuite les bot masters qui vont créer et exploiter un réseau composé d'ordinateurs compromis.
^ Ils achètent des exploits, les transforment en malware (logiciels malveillants) qui vont permettre d'injecter une charge (payload) sur les machines vulnérables afin de les contrôler à distance.
^ Ils peuvent gagner de l'argent en louant le réseau de robots à d'autres acteurs malveillants (DDoS).
^ L'une des utilités d'un botnet est d'envoyer du spam.
^ Le bot master peut louer son réseau botnet à un spammeur, qui enverra à son tour du spam vers d'autres acteurs malveillants.
^ Les phishers sont un type de mauvais acteurs qui peuvent utiliser l'aide des spammeurs. Ils créent de faux sites afin de voler des informations telles que des comptes bancaires, des numéros de cartes de crédit, etc...
^ Ils peuvent demander aux spammeurs de rediriger du trafic vers le site malveillant en incluant l'URL dans l'email avec un message qui donne envie de cliquer dessus.
^ De même, les contrefacteurs utilisent des spams pour vendre leurs produits contrefaits.
^ Un mauvais acteur dans le cyberespace doit envisager la possibilité que ses activités, en particulier ses sites web, soient détectées et fermées par les forces de l'ordre.
^ Il doit donc trouver des fournisseurs de serveurs "bulletproof". Ces fournisseurs opèrent généralement dans des zones de non-droit et ils côutent chers.
^ La majorité des mauvais acteurs sont là pour l'argent.
^ Ils volent vos comptes bancaires et vos cartes de crédit pour ensuite vider votre compte en passant par des services de blanchiment d'argent.
^ Le crowdturfing tire son nom d'une combinaison de crowdsourcing et d'astroturfing.
^ Consiste à amener un grand nombre de personnes à faire un petit geste pour atteindre un objectif, tandis que l’astroturf désigne des techniques de propagande manuelles utilisées à des fins publicitaires ou politique. Par exemple, le fait d'acheter des avis positif pour vendre un article bidon.
^ L'idée est que les acteurs malveillants forment un écosystème interconnecté parce que leurs activités se soutiennent mutuellement.
^ Les points d'entrée pour les acteurs malveillants sont les forums et les messageries chiffrés tel que Telegram. Ils s'en servent essentiellement pour se faire de la publicité.
^ Il est évident que les forces de l'ordre surveillent et peuvent fermer ces sites. Cependant, de nouveaux forums peuvent toujours apparaître et combler le vide.
^ Ces forums constituent également des sources de données précieuses pour les chercheurs.
^ Par exemple, les chercheurs peuvent étudier les données pour connaître les nouvelles tendances et détecter les attaques en cours.
^ Les forums sont remplis d'acheteurs, de vendeurs et d'escrocs.
^ Il y a des transactions honnêtes mais aussi des arnaques des acheteurs.
^ Ces forums sont réglementés par des administrateurs dans la limite de ce qu'ils peuvent gérer.
^ La plupart des messages sur les forums ne sont que des publicités.
^ Par exemple, on peut annoncer qu'on a volé des comptes bancaires ou une liste d'adresses électroniques.
^ On peut proposer d'échanger un numéros de carte de crédit volés contre l'accès à une machine Linux piratée.
^ Nombre de ces annonces contiennent des preuves, par exemple, en fournissant un échantillon des informations volées.
^ Le forum n'est généralement utile que pour faire de la publicité. La prise de décision réelle se fait généralement par le biais d'une messagerie privée.
^ Par le passé, le fait de comprommetre des systèmes informatiques et en tirer profits étaient généralement le fait d'une même bande criminelle.
^ Aujourd'hui, les malfaiteurs sont spécialisés et remplissent différentes fonctions.
^ Par exemple, il existe des développeurs qui mettent au point des kits d'exploitation et les vendent à d'autres malfaiteurs.
^ Ces derniers sont chargés d'utiliser ces kits d'exploitation pour compromettre des ordinateurs. Par exemple, ils peuvent envoyer du spam avec un malware en pièce jointe. Une fois que l'utilisateur ouvre la pièce jointe, son ordinateur est compromis.
^ Ces ordinateurs compromis sont ensuite vendus sur le marché noir afin que d'autres malfaiteurs puissent les utiliser pour lancer des activités malveillantes et frauduleuses.
^ Et les mauvais acteurs sont ici payés selon le modèle du paiement à l'installation.
^ Discutons plus en détail des exploits-as-a-service, et en particulier du modèle de paiement par installation.
^ L'un des moyens de distribuer des logiciels malveillants, est ce que l'on appelle le "drive-by-download". En gros, un site web est compromis de manière à ce qu'un malware soit intégré dans ses scripts.
^ Ensuite lorsqu'un ordinateur client visite le site, le malware est installé son ordinateur.
^ Ce modèle de distribution des logiciels malveillants comporte deux éléments.
^ Le premier élément est que le malfaiteur a besoin du kit d'exploitation, car il permettra d'installer le logiciel malveillant sur les ordinateurs des victimes.
^ Le malfaiteur peut soit le déployer le kit lui-même sur un serveur, soit louer l'accès à un serveur qui héberge déjà le kit.
^ Le deuxième élément de ce modèle de distribution de logiciels malveillants est que le malfaiteur doit faire en sorte que les ordinateurs concernés visitent le serveur d'exploitation afin que le logiciel malveillant s'intalle sur ces ordinateurs.
^ Le moyen le plus courant d'y parvenir est d'utiliser le spam ou le phishing pour attirer le trafic vers le serveur d'exploitation.
^ Le Traffic-PPI simplifie ce processus de diffusion des logiciels malveillants.
^ Il combine essentiellement les deux éléments en un seul service.
^ Aujourd'hui le paiement par installation est le moyen le plus populaire qui est utilisé pour diffuser les logiciels malveillants.
Associez chaque terme à une description :
[.column]
- Deep web
- Dark web
- Surface web
[.column]
-
Il est facilement accessible et consultable à l'aide de moteurs de recherche standard.
-
Il n'est pas indexé par les moteurs de recherche standard.
-
Il est la partie "cachée" d'internet et nécessite un logiciel spécifique tel que TOR.
^ 2, 3, 1
^ Lorsque nous pensons à internet, nous faisons généralement référence au web de surface. Le web de surface est en fait une toute petite partie de l'Internet.
^ Prenons un exemple de traffic pay per install.
^ Il y a 3 acteurs: les victimes, les développeurs d'exploits, et les clients (ou attaquants) qui utilisent les exploits pour distribuer les logiciels malveillants.
^ Si on regarde le flux de trafic, on remarque que le paiement provient les clients qui achètent ou louent les exploits aux développeurs d'exploits.
^ Le logiciel malveillant circule des attaquants vers la victime.
^ Le montant du paiement dépend du volume d'installation du malware.
Accordez chaque terme à sa définition :
[.column]
- Doorway pages (pages satellite)
- Crypters
- Blackhat Search Engine Optimizer
- Trojan Download Manager
[.column]
- Un programme qui cache les codes malveillants aux logiciels anti-virus.
- Un logiciel qui permet à un attaquant de mettre à jour ou d'installer des logiciels malveillants sur l'ordinateur d'une victime.
- Il augmente le trafic vers le site de l'attaquant en manipulant les moteurs de recherche.
- Une page Web qui répertorie de nombreux mots clés, dans l'espoir d'augmenter son classement sur les moteurs de recherche. Un script sur la page redirige vers la page de l'attaquant.
^ 4, 1, 3, 2 ^ Trojan = Cheval de Troie
^ Nous venons d'étudier comment les logiciels malveillants peuvent être distribués et installés sur les ordinateurs des victimes. Ces ordinateurs infectés sont des précieuses ressources.
^ Ils ont une adresse IP unique, de la bande passante et des cycles CPU que l'on peut utiliser. De plus ils sont généralement bien réparti au travers d'Internet.
^ L'objectif de l'attaquant est de contrôler et d'utiliser ces machines, pour cela, il va transformer les machines infectés en un réseau de robots (botnet).
^ Le bot master aura ensuite besoin d'une infrastructure pour contrôler les bots.
^ Il peut par exemple demander au robot de mettre à jour son malware ou envoyer des commandes aux robots pour qu'ils lancent des activités synchronisées.
^ Le réseau de robots peut être loué à d'autres malfaiteurs pour lancer leurs activités, comme l'envoi de spams.
^ Une fois en place, le botnet devient une plateforme permettant de lancer un grand nombre d'activités malveillantes et frauduleuses.
^ La clé du succès d'un botnet réside dans un système de commande et de contrôle efficace et robuste. Ce n'est pas quelque chose de facile à mettre en place.
^ Par exemple un système contrôle centralisé tel que IRC permettrai de contrôler les bots à distances avec une simple commande.
^ Cependant, ce type de contrôle de commande n'est pas très robuste. Même s'il est très efficace, l'attaquant n'a qu'un seul canal de commande qui peut facilement être désactivé.
^ Une structure de contrôle de commande plus robuste consiste à utiliser un réseau P2P.
^ Ici, le botmaster peut se connecter à un certain nombre de bots dans ce réseau P2P pour envoyer ses commandes et mettre à jour le malware.
^ L'inconvénient est que le botmaster n'a pas une communication directe avec le botnet. Il ne pourra pas savoir combien de bots reçoivent ses commandes et quand.
^ Aujourd'hui, l'approche la plus populaire pour le C&C est que tous les bots se connectent à un site web.
^ Le Botmaster peut rendre son système robuste en mappant le site web sur différentes adresses IP de façon à ce qu'il se déplace sur plusieurs serveurs.
^ En fait, dans Fast Flux DNS, le Botmaster peut changer le mappage DNS IP du site web toutes les dix secondes.
^ Cela peut déjouer la détection ou le blocage, basés sur les adresses IP.
^ Mais comme le nom de domaine n'est pas modifié, ce domaine peut toujours être détecté comme étant utilisé pour le C&C du botnet.
^ Et les FAI peuvent bloquer l'accès à ce domaine.
^ Au lieu d'utiliser des domaines fixes qui peuvent être détectés et bloqués. Les botmaster utilisent maintenant la génération de domaines aléatoires.
^ Chaque jour, un bot génère un grand nombre de noms de domaine au hasard.
^ Le botmaster dispose du même ensemble de domaines aléatoires, car les noms de domaines sont générés à l'aide du même algorithme et secret seed.
^ Le botmaster n'enregistre que quelques-uns de ces domaines aléatoires. Bien que chaque bot génère de nombreux noms de domaines aléatoires, et les recherche tous, seuls quelques-uns d'entre eux se connecteront réellement aux sites web.
^ Cette approche de commande et de contrôle est très robuste, car elle est difficile à détecter. Les noms de domaines de C&C étant aléatoire, changent réguliérement et ils ne sont utilisés que pour période très courte.
^ Dans ce chapitre, nous allons aborder la première ligne de défense du réseau.
^ Les outils et techniques de base pour faire des tests de pénétration et évaluer la sécurité d'un réseau.
^ Nous aborderons également l'un des outils les plus puissants des hackers, vous.
^ L'ingénierie sociale est une méthode rapide et peu risquée pour accéder à des données.
^ Les tests de pénétration sont utilisés pour évaluer la sécurité d'un réseau. Cela comprend les procédures, opérations et technologies de votre organisation.
^ Avec les tests de pénérations vous allez pouvoir déterminer si votre réseau est bien sécurisé et découvrir des vulnérabilités.
^ En exploitant ces vulnérabilités, vous allez pouvoir démontrer la probabilité que ces menaces se concrétisent et les dommages probables associés à ces menaces.
^ La portée des tests de pénétration ne se limite pas aux opérations techniques, elle peut également inclure l'ingénierie sociale et l'accès physique à votre organisation.
^ L'échelle du test inclut l'ensemble du réseau. Par exemple, le test peut inclure vos appareils mobiles, ou votre ordinateur portable.
^ Les tests de pénétration comprennent plusieurs étapes:
^ 1. Trouver les informations générales de votre réseau.
^ 2. Trouver des informations plus détaillées sur votre réseau, comme les services qui y sont disponibles.
^ 3. Trouver des informations plus ciblées, comme le compte utilisateur.
^ 4. Trouve des vulnérabilités associées aux services du réseau, puis exploite ces vulnérabilités pour accéder au réseau.
^ 5. L'objectif est d'obtenir l'accès d'un super utilisateur.
^ 6. Le chapardage. Essayer de voler des informations sur le réseau.
^ 7. Le brouillage des pistes. Cacher les preuves de l'intrusion afin que les administrateurs de sécurité ne puissent pas facilement découvrir que le réseau a été attaqué.
^ 8. Création de portes dérobées. Créer un accès facile pour de futures activités malveillantes sur le réseau.
^ Les dernières étapes peuvent être répétées, par exemple pour passer d'un réseau à une autre.
^ Dans cette étape, l'attaquant, ou le testeur, effectue une reconnaissance et collecte des informations. Les informations réseau importantes comprennent les adresses IP du réseau, l'espace de noms et la topologie.
^ Ces informations sont essentielles pour planifier les prochaines étapes des tests ou des attaques. Par exemple, vous aurez besoin des adresses IP pour décider comment scanner le réseau.
^ Nous allons énumérer ici les différentes techniques et les outils correspondants pour le footprinting.
^ Par exemple, vous pouvez utiliser Google pour trouver les informations sur l'entreprise, et utiliser Whois pour trouver les informations sur les noms de domaine des serveurs de noms et des plages IP.
^ Une fois que vous avez obtenu les informations générales telles que les plages d'adresses IP d'un réseau, vous pouvez maintenant obtenir des informations plus détaillées sur le réseau en effectuant une analyse.
^ Vous pouvez savoir quelle machine est en marche et quels ports sont ouverts.
^ De même, sur les serveurs, quels sont les services en cours d'exécution.
^ Vous pouvez même découvrir les versions et les configurations de ces services pour ensuite rechercher les vulnérabilités correspondantes sur le Web.
^ Par exemple, pour une version particulière d'un serveur web Apache, vous pouvez rechercher si une vulnérabilité existe.
^ Les pistes les plus prometteuses sont généralement associées à services qui sont toujours en marche, comme les services web.
^ Vous voulez éviter de vous faire détecter, donc vous voulez donc réduire la fréquence et le volume de vos analyses.
^ Voici les différentes techniques et outils d'analyse.
^ Comme vous pouvez le voir, Nmap est l'un des outils les plus populaires. Il permet de découvrir quelles sont les machines sur un réseau, les ports ouverts et même déterminer le système d'exploitation.
^ Vous pouvez également effectuer des attaques ou des tests plus ciblés en déterminant quels sont les comptes d'utilisateurs mal protégés.
^ Ceci est plus ciblé et intrusif que le scan.
^ Par exemple, vous pouvez utiliser ces outils pour énumérer les comptes d'utilisateurs.
^ Et utiliser ces autres outils pour lister les services de partage de fichier.
^ Une fois que vous avez obtenu les informations pertinentes sur les services réseau et les comptes d'utilisateur, vous pouvez maintenant exploiter et accéder au réseau.
^ En général, il existe des outils et scripts associés aux vulnérabilités connues que vous pouvez adapter à vos besoins.
^ En revanche, si la vulnérabilité est nouvelle ou s'il n'existe pas d'outil ou de script, vous devez développer vous-même l'exploit. En général, il s'agit d'un processus manuel qui peut être assez difficile.
^ Voici quelques exemples de techniques et d'outils permettant d'obtenir un accès.
^ Par exemple, vous pouvez utiliser des outils pour capturer et craquer un mot de passe. Il existe également des outils qui permettent d'exploiter les vulnérabilités de services les plus connus.
^ L'étape suivante est l'escalade de privilège.
^ Le but est d'obtenir un accès de super utilisateur afin de pouvoir prendre le contrôle total du système.
^ Là encore, vous pouvez capturer et craquer les mots de passe des super utilisateurs.
^ Il existe des outils qui exploiteront les vulnérabilités des services ayant des privilèges afin de vous aider à obtenir un accès root.
^ Une fois que vous obtenu l'accès au système. Vous allez pouvoir voler des informations précieuses. Ces informations peuvent vous permettre d'aller encore plus loin dans l'attaque.
^ Par exemple, vous pourriez avoir accès à la base de données et récupérer les mot de passes non encryptés des utilisateurs.
^ Il est important de couvrir ses traces, afin que l'attaque ne puisse pas être détectée et arrêtée facilement.
^ Par exemple, vous pouvez utiliser ces outils pour modifier ou même effacer les journaux du système, et vous pouvez utiliser un rootkit pour cacher votre logiciel malveillant.
^ La première fois que l'on accède à un réseau par le biais d'un exploit est toujours difficile.
^ Et comme vous voulez que l'accès ultérieur soit facile et paraisse normal, vous allez créer des portes dérobées.
^ Il existe de nombreuses techniques et outils.
^ Par exemple, vous pouvez créer de faux comptes d'utilisateur ou ajouter des services d'accès à distance.
^ Vous pouvez également programmer vos activités à une certaine heures.
Quels événements doivent déclencher un test de pénétration ?
- Une infrastructure est ajoutée ou modifiée
- Des applications sont ajoutées ou modifiées
- Changement de la politique d'utilisation de l'utilisateur final
- Installation de correctifs de sécurité
^ Tous ces événements devraient déclencher un test de pénétration. Les tests de pénérations doivent également être effectués sur de manière régulière.
https://github.com/melkir/hacking-workshop
^ Discutons du HTTPS et de la manière dont il est intégré au navigateur Web.
Le protocole de transfert hypertexte sécurisé (HTTPS) est la version sécurisée de HTTP.
Il s'agit du protocole principal utilisé pour envoyer des données entre un navigateur web et un site web.
Source: Cloudflare - What is HTTPS?
Le traffic HTTPS est chiffré afin d'augmenter la sécurité du transfert de données. Ce chiffrement est particulièrement important lorsque les utilisateurs transmettent des données sensibles.
- Connexion à un compte bancaire
- Connexion à un service de messagerie électronique
- Connexion à une compagnie d'assurance maladie.
^ Tous les sites web, en particulier ceux qui nécessitent des informations de connexion, doivent utiliser HTTPS.
Ce type de système de sécurité utilise deux clés différentes pour chiffer les communications entre deux parties :
-
La clé privée - cette clé est contrôlée par le propriétaire d'un site web et maintenue privée. Cette clé réside sur un serveur web. Elle est utilisée pour déchiffrer les informations chiffrées par la clé publique.
-
La clé publique - cette clé est disponible pour tous ceux qui souhaitent interagir avec le serveur de manière sécurisée. Les informations chiffrées par la clé publique ne peuvent être déchiffrées que par la clé privée.
^ Les données sont chiffrées grâce à la cryptographie asymétrique et ainsi envoyées de manière sécurisée.
^ Les communications qui ont lieu en HTTP se font en texte brut, elles sont donc accessibles à toute personne disposant des outils appropriés (Man-In-The-Middle).
^ Une personne ayant accès au même réseau Wi-Fi (ex: Wi-Fi public), sera capable de "renifler" les paquets qui transitent sur le réseau avec un outil tel que WireShark.
[.column]
HTTPS élimine également la possibilité pour des tiers non modérés, d'injecter du contenu sur une page web.
Par exemple, sans chiffrement, il est possible pour un FAI d'injecter une publicité dans une pages web sans l'approbation du propriétaire du site.
[.column]
^ Les bénéfices issus des annonces publicitaires et le contrôle qualité de ces annonces ne sont en aucun cas partagés avec le propriétaire du site.
^ Mars 2021 | France: 94% des pages sont chargées via HTTPS
^ https://transparencyreport.google.com/https/overview
Quels sont les éléments qui peuvent être chiffrées par HTTPS ?
- URL de la requête
- Paramètres de la requête
- En-têtes
- Cookies
- Adresses des hôtes
- Numéros de port
- La quantité de données transférées
- La durée de la session
^ Vrai, Vrai, Vrai, Vrai
^ Les adresses et n° de port sont utilisées pour diriger le trafic.
^ La quantité de données transférées et la durée de la session peuvent être déterminées en observant le trafic.
Techniquement parlant, HTTPS n'est pas un protocole distinct de HTTP. Il utilise simplement le chiffrement TLS/SSL sur le protocole HTTP.
HTTPS repose sur la transmission de certificats TLS/SSL, qui vérifient qu'un fournisseur particulier est bien celui qu'il prétend être.
^ Lorsqu'un utilisateur se connecte à une page web, la page web envoie son certificat SSL qui contient la clé publique nécessaire pour démarrer la session sécurisée.
-
Afin de garantir un degré élevé de confidentialité, le SSL chiffre les données transmises sur le Web. Cela signifie que quiconque tente d'intercepter ces données ne verra qu'un mélange confus de caractères quasiment impossible à déchiffrer.
-
Le SSL lance un processus d'authentification appelé handshake entre deux dispositifs de communication pour s'assurer que les deux appareils sont vraiment ceux qu'ils prétendent être.
-
Le SSL signe également numériquement les données afin d'assurer l'intégrité des données, en vérifiant que les données ne sont pas falsifiées avant d'atteindre leur destinataire prévu.
^ La non-répudiation: Aucun tiers ne doit pouvoir s'attribuer les actions d'un autre utilisateur.
De nombreux hébergeurs de sites web et d'autres services proposent des certificats TLS/SSL contre rémunération. Ces certificats seront souvent partagés entre de nombreux clients.
Des certificats plus chers sont disponibles et peuvent être enregistrés individuellement sur des propriétés web particulières.
[.column]
[.column]
^ 1: Alice génère deux clefs. La clef publique (verte) qu'elle envoie à Bob et la clef privée (rouge) qu'elle conserve précieusement sans la divulguer à quiconque.
^ 2: Bob chiffre le message avec la clef publique d'Alice et envoie le texte chiffré.
^ 3: Alice déchiffre le message grâce à sa clef privée.
^ Un problème essentiel de la cryptographie asymétrique est de savoir comment Alice peut obtenir la clé publique de Bob.
^ La norme est d'utiliser un certificat émis par une autorité de certification, que nous appelons l'AC.
^ Tout d'abord, chaque entité doit installer la clé publique du l'AC.
^ Ensuite, Bob peut demander à l'autorité de certification de générer un certificat pour sa clé publique.
^ L'autorité de certification garde pour elle la clé privée de signature.
^ L'autorité de certification signe la clé publique de Bob à l'aide de sa clé privée de signature et la signature est intégrée au certificat.
^ Bob peut donc maintenant présenter le certificat à Alice.
^ Et comme Alice a la clé publique de l'autorité de certification, elle peut vérifier que la signature a été construite correctement.
^ Ce qui signifie que la clé publique de Bob a été certifiée par l'autorité de certification.
^ Voici un exemple de certificat de clé publique. Passons en revue quelques informations importantes.
^ Premièrement, il y a un numéro de série unique.
^ Deuxièmement, il y a une période de validité.
^ Enfin, il y a une clé publique et une signature produites par l'autorité de certification.
^ Voici un exemple d'informations de certificat qu'un utilisateur voit sur son ordinateur.
^ Il indique que le certificat concerne la clé publique de mail.google.com.
^ Un certificat est destiné à une entité ou à un sujet identifié par le nom commun.
^ Qu'est-ce qu'un nom commun ? Un nom commun peut être un nom explicite, par exemple cc.gatech.edu.
^ Il peut aussi être un wildcard, par exemple *.gatech.edu.
^ Si un caractère générique est utilisé, il ne peut être que le composant le plus à gauche, et il ne correspond pas au point.
^ Par exemple : *.a.com correspond à x.a.com mais pas à y.x.a.com.
^ Il existe un grand nombre d'autorités de certification, et un navigateur accepte généralement les certificats de 60 autorités de certification de premier niveau et de 1200 autorités de certification intermédiaires.
^ Le but de la poignée de main est d'authentifier le serveur et, de manière optimale, le navigateur.
^ Plus important encore, à la fin, les deux entités auront une clé secrète partagée qui pourra être utilisée pour chiffrer le trafic HTTP.
^ Le client envoie un message hello au serveur et la réponse du serveur comprend un certificat de clé publique.
^ Le navigateur vérifie le certificat auprès de l'AC, afin d'authentifié le serveur avec sa clé publique.
^ Avec la PK d'un serveur, le navigateur et le serveur effectue un échange de clés sécurisé (Diffie-Hellman) afin d'éviter les attaques de type "man-in-the-middle".
^ Le résultat est qu'ils ont établis une clé secrète partagée et qu'ils peuvent maintenant utiliser cette clé secrète partagée pour chiffrer les données HTTP.
^ HTTPS est indiqué dans l'interface graphique du navigateur.
^ L'objectif est de permettre à l'utilisateur de savoir d'où vient une page.
^ Il indique également aux utilisateurs que le contenu de la page est protégé, càd qu'un attaquant du réseau ne pourra pas voir ou modifier la page.
^ En réalité, il existe plusieurs problèmes de sécurité.
^ Lorsque l'icône de verrouillage est affichée sur le navigateur, cela signifie que tous les éléments de la page sont récupérés en utilisant HTTPS.
^ Mais pour que le navigateur accepte cette connexion HTTPS, cela signifie que le navigateur a fait confiance au certificat et vérifié que le certificat est valide.
^ De plus, l'URL du domaine correspond au CommonName ou au SubjectAlternativeName du certificat.
^ Par exemple, le certificat de google.com peut simplement fournir une liste de noms alternatifs.
- La mise en cache du navigateur ne fonctionne pas correctement.
- Vous devez acheter un certificat SSL
- HTTPS utilise beaucoup de ressources serveur
- Problèmes de mise en cache par proxy - la mise en cache publique ne peut pas avoir lieu.
- HTTPS introduit des latences notables
^ Faux
^ Vrai
^ Faux
^ Vrai
^ Faux
^ Discutons de plusieurs problèmes de sécurité avec HTTPS et l'icône de verrouillage.
^ Cela inclut le passage de HTTP à HTTPS.
^ Les faux certificats.
^ Tout d'abord, discutons de la mise à niveau de HTTP à HTTPS.
^ Il existe une méthode d'attaque appelée "SSL stripped".
^ Elle empêche le navigateur d'effectuer la mise à niveau de HTTP vers HTTPS.
^ Avec la suppression de SSL, le navigateur n'affiche aucune erreur de certificat SSL et l'utilisateur n'a aucune idée de l'existence d'une telle attaque.
^ Cette attaque est également connue sous le nom d'attaque "HTTP downgrading".
^ La connexion établie entre le navigateur de l'utilisateur victime et le serveur web est déclassée de HTTPS à HTTP.
^ La connexion entre l'attaquant et la banque est sécurisée tandis que la connexion entre l'attaquant et le client est non sécurisée.
^ Pour cela l'attaquant a accès à la page de connexion et peut modifier la réponse du serveur de HTTPS en HTTP, puis transmettre la page de connexion en HTTP au client.
^ À partir de ce moment, toutes les requêtes de l'utilisateur sont envoyées en clair, et l'attaquant peut accéder aux données et collecter les informations d'identification.
^ Alors que le serveur pense avoir utilisé une connexion sécurisée, cette connexion n'est en fait qu'entre le serveur web de la banque et l'attaquant.
^ D'autre part, le navigateur de l'utilisateur utilise la connexion HTTP non sécurisée, pensant que c'est ce que le serveur web de la banque veut qu'il utilise.
^ La solution à l'attaque "SSL stripped" est d'utiliser HSTS, qui signifie Strict Transport Security.
^ Elle indique au navigateur web de toujours utiliser HTTPS, même pour pour les sous-domaines.
^ Il existe également une extension sur Chrome nommé HTTPS Everywhere.
^ Lorsqu'un navigateur Web visite un site Web pour la première fois, le site Web peut indiquer au navigateur de toujours utiliser le protocole HTTPS.
^ En d'autres termes, pour toute visite ultérieure, toutes les connexions doivent se faire en HTTPS, et les connexions HTTP seront rejetées.
^ Un navigateur web peut également avoir une liste préchargée de sites web HSTS.
^ Avant même que le navigateur web ne visite un site figurant sur cette liste, il sait qu'il doit utiliser HTTPS.
^ Le drapeau HSTS, activé par un site web peut être effacé lorsque l'utilisateur sélectionne "Effacer les données privées".
^ Les certificats falsifiés constituent un autre problème de sécurité grave.
^ Par exemple, si une autorité de certification est piratée, l'attaquant peut émettre des certificats falsifiés.
^ Par exemple, pour Gmail, une fois qu'un certificat falsifié est émis, l'attaquant peut créer un faux site Web et s'appeler Gmail.
^ Plusieurs pays ont été surpris à émettre des certificats non autorisés, par exemple pour Google, afin que les FAI de ces pays puissent jouer les intermédiaires entre un utilisateur et le véritable serveur Google.
^ L'exemple suivant illustre bien ce phénomène.
^ Supposons qu'un utilisateur veuille se connecter à une banque.
^ Il y a un attaquant au milieu avec un faux certificat, il se fait donc passer pour la banque.
^ L'utilisateur peut penser qu'il est connecté à la banque puisque le certificat le dit.
^ Cependant le certificat étant faux, l'utilisateur est en fait connecté au méchant.
^ Cela montre qu'avec un certificat douteux, un attaquant peut jouer à l'homme du milieu, même dans une connexion HTTPS.
^ L'attaquant joue le rôle du serveur de la banque pour l'utilisateur et de l'utilisateur pour le serveur de la banque.
^ Et les deux côtés des connexions sont en HTTPS.
^ Une approche pour traiter les certificats falsifiés consiste à utiliser l'épinglage dynamique des clés publiques.
^ Cela signifie qu'un site Web déclare les AC qui peuvent signer son certificat.
^ Lorsqu'un navigateur visite un site Web pour la première fois, ce dernier lui indique la liste des autorités de certification autorisées.
^ Ensuite, lors des visites suivantes, le navigateur rejettera tout certificat émis par d'autres AC.
^ De manière très similaire, il existe une extension d'épinglage de clé publique pour HTTP ou HPKP.
^ Cette fonctionnalité indique à un navigateur web la liste des clés appropriées à associer au site web.
^ Et elle peut empêcher les attaques de type "man-in-the-middle" avec de faux certificats.
^ Lorsque le navigateur visite un site Web pour la première fois, il envoie une liste de hachages de clés publiques.
^ Lors des visites suivantes, le navigateur s'attend à ce que le serveur utilise une ou plusieurs de ces clés publiques dans ses certificats.
^ Un autre problème lié à la falsification des certificats consiste à rendre les autorités de certification transparentes.
^ En d'autres termes, les AC doivent publier dans un registre public tous les certificats qu'elles ont émis et un navigateur n'acceptera un certificat que s'il est publié dans un registre public.
^ Des entreprises comme Google peuvent constamment scanner les journaux publics afin de rechercher des certificats invalides ou falsifiés.