IMA5 2020/2021 P3
Sommaire
- 1 Présentation générale
- 2 Travail réalisé
- 2.1 Prise en main des utilitaires de la compétition
- 2.2 Familiarisation des failles de sécurité
- 2.2.1 Root Me
- 2.2.2 TryHackMe
- 2.2.2.1 Injection
- 2.2.2.2 Broken Authentication
- 2.2.2.3 Sensitive Data Exposure
- 2.2.2.4 XML External Entity
- 2.2.2.5 Broken Access Control
- 2.2.2.6 Security Misconfiguration
- 2.2.2.7 Cross-site Scripting
- 2.2.2.8 Insecure Deserialization
- 2.2.2.9 Components with Known Vulnerabilities
- 2.2.2.10 Insufficent Logging & Monitoring
- 2.2.3 Challenge DGSE - Brigitte Friang
- 2.2.4 Challenge DGA - DG'Hack
- 2.2.5 Installation de Security Onion en salle E306
- 2.2.6 Cours Sécurité des réseaux informatiques
- 2.3 Documents Rendus
Présentation générale
Description
Dans le cadre de notre Projet de Fin d'Etudes nous nous préparons pour les olympiades nationales des métiers en Cybersécurité.
Ce projet nous demandera de développer des compétences en sécurisation d'équipements réseaux, sécurisation d'environnement Linux (principalement CentOS), Windows. La deuxième partie de l'épreuve consiste à utiliser des méthodes Forensics et reverse engineering pour analyser des malwares ou des dumps de disques dur. La troisième partie est une attaque d'un environnement Windows et Linux où l'objectif est l'élévation de privilèges afin de devenir administrateur du réseau. La quatrième et dernière partie consiste à une cyberdéfense en temps réel, il s'agira de bloquer des attaques grâce à Palo Alto (une solution de pare-feu).
Ce projet est encadré par M. Thomas VANTROYS
Organisation du projet
Dans un premier temps nous avons choisi de nous familiariser avec tous les exercices fournis par l'expert métier (le guide de préparation est disponible sur le wiki) et nous ferons donc des fiches récapitulant les commandes à exécuter pour chaque exercice. L'objectif étant d'être capable de réaliser ces tâches le plus rapidement possible.
Au cours de ce projet nous installerons en salle E306 un Network Service Monitoring afin de surveiller l’activité des utilisateurs et de détecter d’éventuelles failles ou diffusion de malwares. Il faudra donc installer un port forwarding vers la machine pour intercepter toute l’activité du réseau et mettre en place des outils de monitoring comme Kibana pour visualiser cette activité et qualifier les menaces potentielles. Nous serons amené à réaliser un guide d’utilisation de ces outils afin de permettre la prise en main de cette solution après notre installation.
Travail réalisé
Prise en main des utilitaires de la compétition
Dans le cadre de la compétition, l'expert métier national Damien NAVILLIAT nous a transmis des exercices à réaliser pour s'assurer d'un niveau décent. Ces exercices (que vous pouvez retrouver dans le guide de préparation au bas du wiki) nous demande de savoir utiliser des utilitaires tels que certtool, OpenVPN, OpenSSL etc.
Nous avons donc réalisé chacun de ces exercices et fait des fiches qui nous permettront de nous entraîner et de réviser rapidement une solution.
Pour des raisons de lisibilité ces fiches seront uploadés par la suite sur ce wiki sous format pdf.
Cette étape a constitué la première grande partie de ce projet. La suite consistera à s'entraîner sur le sujet officiel de l'épreuve (disponible en bas de page également).
Familiarisation des failles de sécurité
Root Me
Sur la plateforme Root Me (https://www.root-me.org) nous avons à disposition des challenges et des images de machines à compromettre. Cela nous permet de nous familiariser avec des failles précises pour les challenges et de nous confronter à des situations "réelles" sur des machines à distance.
Nous avons réalisé 99 challenges (au 06/11/2020) sur ce site et 4 compromissions de machines.
TryHackMe
De la même manière le site TryHackMe met à disposition des rooms permettant de s'entraîner et de découvrir des frameworks, des méthodes et des failles à étudier.
Nous avons notamment travaillé sur le top 10 des failles OWASP (Open Web Application Security Project) qui sont des standards à maîtriser pour la compétition :
Injection
Les failles d'injections sont relativement communes dans les applications aujourd'hui. Ces défauts apparaissent lorsque le serveur traitent les inputs de l'utilisateur comme des commandes. De cette manière l'attaquant peut lancer des requêtes SQL par exemple. Ces failles peuvent êtres critiques car on peut récupérer les informations dans la base de données mais également la supprimer.
Broken Authentication
Cette faille consiste à casser ou à contourner le système de gestion de l'authentification et de la session. Cela passe par des attaques par bruteforce des utilisateurs et des mots de passes ou même des cookies de sessions qui permettent au serveur d'identifier l'utilisateur.
Sensitive Data Exposure
Les données utilisées par les applications doivent être impérativement chiffrées car un attaquant peut encore une fois récupérer les tables de la base de données et avoir accès à tous les utilisateurs, les mots de passes, les cartes de crédits etc. en clair.
XML External Entity
Permet d'exploiter les fonctionnalités d'XML pour interagir avec le back-end pour récupérer des fichiers. On peut réaliser des attaques par Déni de Service ou faire des SSRF (Server-Side Request Forgery) pour envoyer des requêtes à des applications à partir du serveur.
Broken Access Control
Si l'application est mal configuré on peut essayer d'accéder à des informations sensibles sur l'utilisation. Si un utilisateur arrive à accéder à une page de gestion du site la sécurité de l'application est compromise.
Security Misconfiguration
Les mauvaises configurations de sécurité apparaissent également souvent, si les permissions ne sont pas configurés, si les mots de passe des applications sont encore celles par défaut etc. Un attaquant n'a que quelques recherches à faire pour gagner l'accès à ces applications.
Cross-site Scripting
Aussi appelé XSS est une injection de code javascript, Flash, CSS etc. qui permet d'interagir avec le serveur. L'exploitation peut passer par exemple par l'upload d'un payload sur le serveur et la mise en place d'un reverse shell.
Insecure Deserialization
Il s'agit de remplacer des données exécuté par une application, ce qui permet d'envoyer un payload ou d'agir sur le système d'information. Ces failles sont assez difficiles à mettre en place car la méthode est propre à chaque application et l'attaquant doit donc faire beaucoup de recherches sur l'application avant de la mettre en place.
Components with Known Vulnerabilities
Beaucoup d'application aujourd'hui utilisent des versions de logiciels pas à jour. Il existe énormément de ressources (metasploit, exploit-db, les CVE) mettant en évidence les failles de logiciels avec leurs versions.
D'où l'importance de toujours faire les mises à jour de sécurité le plus rapidement possible.
Insufficent Logging & Monitoring
Toute action des utilisateurs devrait être enregistrée afin de pouvoir tracé les actions et estimer les risques de l'application.
Challenge DGSE - Brigitte Friang
Le 24 Octobre la DGSE (Direction Générale de la Sécurité Extérieure) à mis en ligne un CTF en partenariat avec l'ESIEE mettant à disposition de tous des challenges d'un niveau lycéen à expert.
https://www.defense.gouv.fr/dgse/tout-le-site/operation-brigitte-friang-prets-pour-relever-le-defi
La première partie du challenge était assez facile à réaliser : un directory traversal, une traduction en morse, l'analyse d'un schéma électronique, décrypter un message codé en AES 256 ECB etc.
La deuxième partie nous amène sur une plateforme de CTF avec des épreuves d'un tout autre niveau dans divers domaines.
Challenge DGA - DG'Hack
A partir du 12 novembre
Installation de Security Onion en salle E306
A
Cours Sécurité des réseaux informatiques
Nous avons suivi le cours Sécurité des réseaux informatiques sur la plateforme France Université Numérique. C'est un cours qui s'étend sur 5 semaines, accessible en ligne, et mettant à disposition des vidéos de cours, des TPs, ainsi que des QCM, un bureau d'étude et une évaluation finale.
C'est un cours très complet qui revient sur les couches liaison, réseau, transport et application. Il détaille les spécificités de ces couches, les protocoles utilisés ainsi que les failles possible à chaque niveau. Les TP à disposition permettent de mettre en œuvre ces attaques pour se placer du côté de l'attaquant. Le cours revient aussi sur les notions de filtrage, les différentes solutions possibles : proxy, firewall etc. Il aborde le côté cryptographique avec TLS, les méthodes symétriques et asymétriques de chiffrement, l'utilisation dans les normes de réseau wifi : WEP, WPA2, WPA-PSK, WPA-Enterprise et WPA3.
Nous avons suivi ce cours jusqu'à la fin et participé à l'évaluation finale avec une note de 15/16.
Documents Rendus
Guide_de_préparation_métier_cybersécurité_-_Lyon_2020.pdf
Fichier regroupant les différents protocoles de sécurisation de linux