module 1 : intro au piratage éthique et aux pentests
Comprendre le piratage éthique et les tests d'intrusion
Aperçu
Protego Security Solutions
Nous nous réunirons périodiquement au cours des prochaines semaines afin que vous puissiez vous orienter vers le travail chez Protego et développer vos compétences et vos connaissances à mesure que nous augmentons votre implication dans nos engagements clients.
Au cœur même de ce que nous faisons se trouve notre raison d'être. Vous devez comprendre pourquoi nous faisons ce que nous faisons et qui sont nos ennemis. Une fois que vous avez une base solide ici, nous pouvons passer à la compréhension de la façon dont nous accomplissons notre objectif.
Pour rappel, le terme pirate informatique éthique décrit une personne qui agit en tant qu'attaquant et évalue la posture de sécurité d'un réseau informatique dans le but de minimiser les risques. Le NIST Computer Security Resource Center (CSRC) définit un pirate informatique comme un "utilisateur non autorisé qui tente ou accède à un système d'information". Maintenant, nous savons tous que le terme pirate informatique a été utilisé de différentes manières et a de nombreuses définitions. La plupart des gens dans un domaine de la technologie informatique se considéreraient comme des pirates informatiques sur la base du simple fait qu'ils aiment bricoler. Ce n'est évidemment pas une chose malveillante. Ainsi, le facteur clé ici pour définir le piratage éthique par rapport au piratage non éthique est que ce dernier implique une intention malveillante. L'autorisation d'attaquer ou la permission de tester est cruciale et c'est ce qui vous évitera des ennuis ! Cette autorisation d'attaquer est souvent appelée "la portée" du test (ce que vous êtes autorisé et non autorisé à tester). Nous y reviendrons plus loin dans ce module.
Un chercheur en sécurité à la recherche de vulnérabilités dans des produits, des applications ou des services Web est considéré comme un hacker éthique s'il divulgue ces vulnérabilités de manière responsable aux fournisseurs ou aux propriétaires des systèmes ciblés. Cependant, le même type de "recherche" effectuée par quelqu'un qui utilise ensuite la même vulnérabilité pour obtenir un accès non autorisé à un réseau/système cible serait considéré comme un hacker non éthique. Nous pourrions même aller jusqu'à dire que quelqu'un qui trouve une vulnérabilité et la divulgue publiquement sans travailler avec un fournisseur est considéré comme un hacker non éthique – car cela pourrait conduire à la compromission des réseaux/systèmes par d'autres qui utilisent ces informations de manière malveillante.
La vérité est qu'en tant que hacker éthique, vous utilisez les mêmes outils pour trouver des vulnérabilités et exploiter des cibles que les hackers non éthiques. Cependant, en tant que hacker éthique, vous devez généralement signaler vos découvertes au fournisseur ou au client que vous aidez à rendre le réseau plus sûr. Vous devriez également essayer d'éviter d'effectuer des tests ou des exploits qui pourraient être de nature destructrice.
L'objectif d'un hacker éthique est d'analyser la posture de sécurité de l'infrastructure d'un réseau ou d'un système dans le but d'identifier et éventuellement d'exploiter les faiblesses de sécurité trouvées, puis de déterminer si une compromission est possible. Ce processus est appelé test de pénétration de sécurité ou piratage éthique.
TIP Hacking is NOT a Crime ( hackingisnotacrime.org ) est une organisation à but non lucratif qui tente de sensibiliser le public à l'utilisation péjorative du terme hacker. Historiquement, les hackers ont été décrits comme diaboliques ou illégaux. Heureusement, beaucoup de gens savent déjà que les hackers sont des individus curieux qui veulent comprendre comment les choses fonctionnent et comment les rendre plus sûres.
Pourquoi avons-nous besoin de faire des tests d'intrusion ?
Alors, pourquoi avons-nous besoin de tests d'intrusion ? Eh bien, tout d'abord, en tant que responsable de la sécurisation et de la défense d'un réseau ou système, vous voulez trouver toutes les voies possibles de compromission avant que les attaquants ne le fassent. Pendant des années, nous avons développé et mis en œuvre de nombreuses techniques de défense différentes (par exemple, antivirus, pare-feu, systèmes de prévention des intrusions [IPS], anti-malware). Nous avons déployé la méthode de défense en profondeur pour sécuriser et défendre nos réseaux. Mais comment savoir si ces défenses fonctionnent vraiment et si elles sont suffisantes pour empêcher les attaquants d'entrer ? Quelle est la valeur des données que nous protégeons et protégeons-nous les bons éléments ? Ce sont quelques-unes des questions auxquelles un test d'intrusion devrait répondre. Si vous construisez une clôture autour de votre cour dans le but d'empêcher votre chien de sortir, il pourrait suffire qu'elle fasse 1,22 mètres de haut. Cependant, si votre préoccupation n'est pas que le chien sorte mais qu'un intrus entre, alors vous avez besoin d'une clôture différente – une clôture qui devrait être beaucoup plus haute que 1,22 mètres. Selon ce que vous protégez, vous voudrez peut-être aussi du fil de rasoir sur le dessus de la clôture pour dissuader encore plus les méchants. En ce qui concerne la sécurité de l'information, nous devons faire le même type d'évaluations sur nos réseaux et systèmes. Nous devons déterminer ce que nous protégeons et si nos défenses peuvent résister aux menaces qui leur sont imposées. C'est là que les tests d'intrusion entrent en jeu. Il ne suffit pas d'implémenter un pare-feu, un IPS, un anti-malware, un VPN, un pare-feu d'application Web (WAF) et d'autres défenses de sécurité modernes. Vous devez également tester leur validité. Et vous devez le faire régulièrement. Comme vous le savez, les réseaux et les systèmes changent constamment. Cela signifie que la surface d'attaque peut également changer, et lorsque c'est le cas, vous devez envisager de réévaluer la posture de sécurité au moyen d'un test d'intrusion.
Laboratoire - Recherche sur les carrières de tests d'intrusion
Je pense qu'il est important que vous compreniez le paysage de l'emploi et les différents rôles et responsabilités que les professions de la cybersécurité incluent. Une bonne référence générale à explorer pour la description des différents rôles est l'Outil des Parcours Professionnels en Cybersécurité de la National Initiative for Cybersecurity Careers and Studies (NICCS). Cyber Career Pathways Tool. Il offre un moyen visuel de découvrir et de comparer différents rôles dans notre profession.
Dans ce laboratoire, vous atteindrez les objectifs suivants:
- Effectuer une recherche d'emploi de testeur d'intrusion
- Analyser les exigences du poste de testeur d'intrusion
- Découvrir des ressources pour faire avancer votre carrière
Explorer les méthodologies de test d'intrusion
Aperçu
Les tests d'intrusion ne se limitent pas au piratage du réseau d'un client. Une approche aléatoire entraînera des résultats aléatoires. Il est important de suivre des méthodes et des normes bien connues afin d'aborder les engagements de pentesting de manière organisée et systématique.
Vous devez comprendre les principales méthodologies et normes documentées afin de pouvoir créer des stratégies qui tirent parti de leurs forces. Documenter votre approche avec les méthodologies et les normes que vous avez utilisées fournit également une responsabilisation pour notre entreprise et aide à rendre nos résultats défendables en cas de problèmes avec nos clients.
Le processus de réalisation d'un test d'intrusion varie en fonction de nombreux facteurs. Les outils et techniques utilisés pour évaluer la posture de sécurité d'un réseau ou d'un système varient également. Les réseaux et les systèmes évalués sont souvent très complexes. Pour cette raison, il est très facile lors de l'exécution d'un test d'intrusion de sortir du champ d'application. C'est là qu'interviennent les méthodologies de test.
Pourquoi devons-nous suivre une méthodologie pour les tests d'intrusion ?
Comme nous venons de le mentionner, le glissement de la portée est l'une des raisons d'utiliser une méthodologie spécifique; cependant, il y a beaucoup d'autres raisons. Par exemple, lorsque vous effectuez un test d'intrusion pour un client, vous devez montrer que les méthodes que vous prévoyez d'utiliser pour les tests sont éprouvées. En utilisant une méthodologie connue, vous pouvez fournir la documentation d'une procédure spécialisée qui a été utilisée par de nombreuses personnes.
Considérations environnementales
Il existe bien sûr un certain nombre de types de tests d'intrusion. Souvent, ils sont combinés dans la portée globale d'un test d'intrusion; cependant, ils peuvent également être effectués en tant que tests individuels.
Voici une liste de certaines des considérations environnementales les plus courantes pour les types de tests d'intrusion aujourd’hui:
- Tests d'infrastructure réseau : Le test de l'infrastructure réseau peut signifier plusieurs choses. Pour les besoins de ce cours, nous nous concentrons sur l'évaluation de la posture de sécurité de l'infrastructure réseau réelle et sur sa capacité à se défendre contre les attaques. Cela inclut souvent les commutateurs, les routeurs, les pare-feu et les ressources de support telles que les serveurs d'authentification, d'autorisation et de comptabilité (AAA) et les IPS. Un test d'intrusion sur l'infrastructure sans fil peut parfois être inclus dans la portée d'un test d'infrastructure de réseau. Cependant, d'autres types de tests au-delà d'une évaluation de réseau câblé seraient effectués. Par exemple, un testeur de sécurité sans fil tenterait de pénétrer dans un réseau via le réseau sans fil, soit en contournant les mécanismes de sécurité, soit en brisant les méthodes cryptographiques utilisées pour sécuriser le trafic. Tester l'infrastructure sans fil aide une entreprise à identifier les faiblesses du déploiement sans fil ainsi que l'exposition. Il comprend souvent une carte thermique détaillée de la répartition du signal.
- tests basés sur l'application : Ce type de test d'intrusion se concentre sur le test des faiblesses de sécurité dans les applications d'entreprise. Ces faiblesses peuvent inclure, sans toutefois s'y limiter, des erreurs de configuration, des problèmes de validation des entrées, des problèmes d'injection et des défauts logiques. Étant donné qu'une application Web est généralement construite sur un serveur Web avec une base de données principale, la portée de test inclut normalement la base de données également. Cependant, il se concentre sur l'accès à cette base de données de support via la compromission de l'application Web. Une excellente ressource que nous mentionnons à plusieurs reprises dans ce livre est l'Open Web Application Security Project (OWASP).
- Tests d'intrusion dans le cloud : Les fournisseurs de services cloud (CSP) tels qu'Azure, Amazon Web Services (AWS) et Google Cloud Platform (GCP) n'ont d'autre choix que de prendre leurs responsabilités en matière de sécurité et de conformité très au sérieux. Par exemple, Amazon a créé le modèle de responsabilité partagée pour décrire en détail les responsabilités des clients AWS et Amazon. La responsabilité de la sécurité du cloud dépend du type de modèle cloud (logiciel en tant que service [SaaS], plate-forme en tant que service [PaaS] ou infrastructure en tant que service [IaaS]). Par exemple, avec IaaS, le client (consommateur cloud) est responsable des données, des applications, du runtime, des logiciels intermédiaires, des machines virtuelles (VM), des conteneurs et des systèmes d'exploitation dans les VM. Quel que soit le modèle utilisé, la sécurité du cloud relève à la fois de la responsabilité du client et du fournisseur de cloud. Ces détails doivent être réglés avant la signature d'un contrat de cloud computing. Ces contrats varient en fonction des exigences de sécurité du client. La reprise après sinistre, les contrats de niveau de service, l'intégrité des données et le chiffrement sont notamment pris en compte. Par exemple, le chiffrement est-il fourni de bout en bout ou uniquement chez le fournisseur de cloud ? De plus, qui gère les clés de chiffrement : le CSP ou le client ? Dans l'ensemble, vous voulez vous assurer que le CSP dispose des mêmes niveaux de sécurité (logique, physique et administrative) que vous auriez pour les services que vous contrôlez. Lorsque vous effectuez des tests d'intrusion dans le cloud, vous devez comprendre ce que vous pouvez faire et ce que vous ne pouvez pas faire. La plupart des FSC ont des directives détaillées sur la façon d'effectuer des évaluations de sécurité et des tests d'intrusion dans le cloud. Quoi qu'il en soit, il existe de nombreuses menaces potentielles lorsque les organisations passent à un modèle cloud. Par exemple, bien que vos données se trouvent dans le cloud, elles doivent résider dans un emplacement physique quelque part. Votre fournisseur de cloud doit accepter par écrit de fournir le niveau de sécurité requis pour vos clients. À titre d'exemple, le lien suivant inclut la stratégie de support client AWS pour les tests d'intrusion.
REMARQUE De nombreux testeurs d'intrusion trouvent que l'aspect physique des tests est le plus amusant parce qu'ils sont essentiellement payés pour pénétrer dans l'installation d'une cible. Ce type de test peut aider à exposer les faiblesses du périmètre physique ainsi que tous les mécanismes de sécurité en place, tels que les gardes, les barrières et les clôtures. Le résultat devrait être une évaluation des contrôles externes de sécurité physique. La majorité des compromis aujourd’hui commencent par une sorte d'attaque d'ingénierie sociale. Il peut s'agir d'un appel téléphonique, d'un e-mail, d'un site Web, d'un SMS, etc. Il est important de tester la façon dont vos employés gèrent ce type de situations. Ce type de test est souvent omis du champ d'application d'une mission de test d'intrusion, principalement parce qu'il consiste principalement à tester des personnes plutôt que la technologie. Dans la plupart des cas, la direction n'est pas d'accord avec ce type d'approche. Cependant, il est important d'avoir une vision concrète des dernières méthodes d'attaque. Le résultat d'un test d'ingénierie sociale devrait être d'évaluer le programme de sensibilisation à la sécurité afin que vous puissiez l'améliorer. Il ne devrait pas s'agir d'identifier les personnes qui échouent au test. L'un des outils dont nous parlerons plus en détail dans un module ultérieur est le Social-Engineer Toolkit (SET), créé par Dave Kennedy. C'est un excellent outil pour effectuer des campagnes de tests d'ingénierie sociale.
Les programmes de bug bounty permettent aux chercheurs en sécurité et aux testeurs d'intrusion d'obtenir une reconnaissance (et souvent une compensation monétaire) pour avoir trouvé des vulnérabilités dans les sites Web, les applications ou tout autre type de système. Des entreprises comme Microsoft, Apple et Cisco et même des institutions gouvernementales telles que le département de la Défense des États-Unis (DoD) utilisent des programmes de bug bounty pour récompenser les professionnels de la sécurité lorsqu'ils découvrent des vulnérabilités dans leurs systèmes. De nombreuses sociétés de sécurité, telles que HackerOne, Bugcrowd, Intigriti et SynAck, fournissent des plateformes aux entreprises et aux professionnels de la sécurité pour participer à des programmes de bug bounty. Ces programmes sont différents des engagements de tests d'intrusion traditionnels, mais ont un objectif similaire: trouver des vulnérabilités de sécurité pour permettre à l'organisation de les corriger avant que des attaquants malveillants ne puissent exploiter ces vulnérabilités. J'ai inclus différents conseils et ressources de bug bounty dans mon référentiel GitHub.
Lorsque vous parlez de méthodes de test d'intrusion, vous entendrez probablement les termes environnement inconnu (précédemment connu sous le nom de boîte noire), environnement connu (précédemment connu sous le nom de boîte blanche) et environnement partiellement connu (précédemment connu sous le nom de boîte grise). Ces termes sont utilisés pour décrire la perspective à partir de laquelle le test est effectué, ainsi que la quantité d'informations fournies au testeur :
Test en environnement inconnu
Dans un test d'intrusion en environnement inconnu, le testeur ne reçoit généralement qu'une quantité très limitée d'informations. Par exemple, le testeur peut ne recevoir que les noms de domaine et les adresses IP qui sont dans le champ d'application d'une cible particulière. L'idée de ce type de limitation est de faire en sorte que le testeur commence avec la perspective qu'un attaquant externe pourrait avoir. En règle générale, un attaquant détermine d'abord une cible, puis commence à recueillir des informations sur la cible, en utilisant des informations publiques, et obtient de plus en plus d'informations à utiliser dans les attaques. Le testeur n'aurait pas de connaissance préalable de l'organisation et de l'infrastructure de la cible. Un autre aspect des tests en environnement inconnu est que, parfois, le personnel de support réseau de la cible peut ne pas recevoir d'informations sur le moment exact où le test a lieu. Cela permet également à un exercice de défense d'avoir lieu, et cela élimine le problème d'une cible se préparant pour le test et ne reflétant pas fidèlement la posture de sécurité dans le monde réel.
Test en environnement connu
Dans un test d'intrusion en environnement connu, le testeur commence avec une quantité importante d'informations sur l'organisation et son infrastructure. Le testeur recevrait normalement des éléments tels que des diagrammes de réseau, des adresses IP, des configurations et un ensemble d'informations d'identification utilisateur. Si l'étendue inclut une évaluation de l'application, le testeur peut également recevoir le code source de l'application cible. L'idée de ce type de test est d'identifier autant de failles de sécurité que possible. Dans un test d'environnement inconnu, la portée peut être uniquement d'identifier un chemin d'accès dans l'organisation et de s'arrêter là. Avec les tests d'environnement connu, la portée est généralement beaucoup plus large et comprend l'audit de la configuration réseau interne et l'analyse des ordinateurs de bureau à la recherche de défauts. Le temps et l'argent sont généralement des facteurs décisifs dans la détermination du type de test d'intrusion à compléter. Si une entreprise a des préoccupations spécifiques concernant une application, un serveur ou un segment de l'infrastructure, elle peut fournir des informations sur cette cible spécifique pour réduire la portée et le temps consacré au test tout en découvrant les résultats souhaités. Avec la sophistication et les capacités des adversaires aujourd’hui, il est probable que la plupart des réseaux seront compromis à un moment donné, et une approche de boîte blanche n'est pas une mauvaise option.
Test d'environnement partiellement connu
Un test d'intrusion dans un environnement partiellement connu est en quelque sorte une approche hybride entre des tests d'environnement inconnu et connu. Avec des tests d'environnement partiellement connus, les testeurs peuvent recevoir des informations d'identification, mais pas une documentation complète de l'infrastructure réseau. Cela permettrait aux testeurs de fournir les résultats de leurs tests du point de vue d'un attaquant externe. Compte tenu du fait que la plupart des compromis commencent au client et se frayent un chemin à travers le réseau, une bonne approche serait un cadre où les testeurs commencent à l'intérieur du réseau et ont accès à une machine client. Ensuite, ils pourraient pivoter dans l'ensemble du réseau pour déterminer quel serait l'impact d'un compromis.
No comments to display
No comments to display