▣
Audit de sécurité — Bastion Security
Audit / Pentest / Analyse de risques
Audit de sécurité de bout en bout de deux domaines, réalisé en binôme sur un périmètre autorisé dans le cadre du titre Expert en informatique et SI : cadrage, reconnaissance, tests d’intrusion, analyse de risques et restitution.
Stack & outils
Kali Linux
Nmap
Amass
theHarvester
Gobuster
Nikto
Hydra
WhatWeb
Shodan
SSL Labs
CVSS v3.1
EBIOS RM
Mes interventions
- Démarche inspirée du guide d’audit de l’ANSSI et du framework PTES : cadrage, collecte d’informations, analyse, évaluation des risques et restitution
- Reconnaissance passive et active : DNS, sous-domaines (Amass, theHarvester), ports et services (Nmap), TLS noté A+ sur SSL Labs
- Pentest en boîte grise : chemins sensibles (Gobuster), scan web (Nikto), résistance au brute force SSH (Hydra), vérification du WAF
- Cotation des vulnérabilités en CVSS v3.1 (sous-domaines sensibles exposés : 7,5) et cartographie des risques inspirée des ateliers EBIOS RM
- Plan de remédiation priorisé, axes de PSSI tenant compte du RGPD et de NIS2, indicateurs de suivi (KPI)
Sécurité · OWASP
-
A02
Mauvaise configuration de sécurité : Analyse des ports exposés, des en-têtes HTTP et de la CSP, avec recommandations de durcissement
-
A04
Défaillances cryptographiques : Analyse de la configuration TLS, notée A+ sur SSL Labs
Enjeu : Évaluer l’exposition réelle d’un site et prioriser les actions de durcissement.
▣
API REST sécurisée
Python / FastAPI / MariaDB
API REST développée en équipe de 4 dans le cadre du titre Expert en informatique et SI, avec une attention particulière portée à la sécurité.
Stack & outils
Python
FastAPI
MariaDB
SQLAlchemy
OAuth2
JWT
Argon2
Cryptography (AES)
Pytest
Swagger
Mes interventions
- Architecture en couches : routeurs, services et repositories
- Authentification OAuth2 (OAuth2PasswordBearer) avec jeton JWT et contrôle d’accès par rôles (RBAC), gestion des erreurs 401 et 403
- Mots de passe hachés avec Argon2, données sensibles des clients chiffrées en AES avec la bibliothèque Cryptography
- Validation du contrat d’interface avec des schémas Pydantic : types, formats et champs obligatoires contrôlés, protections contre l’injection
- Limitation du nombre de requêtes (rate limiting) et taille maximale des requêtes
- Tests Pytest unitaires et d’intégration, documentation Swagger
Tests
-
Unitaires
Tests Pytest de la logique des services
-
Intégration
Tests Pytest des routes de l’API, de la requête jusqu’à la base de données
Sécurité · OWASP
-
A01
Contrôle d’accès défaillant : Contrôle d’accès par rôles (RBAC) sur chaque route, réponses 401 et 403 distinctes
-
A04
Défaillances cryptographiques : Chiffrement AES des coordonnées clients et autres données sensibles (Cryptography)
-
A05
Injection : Validation du contrat d’interface avec Pydantic et contrôles anti-injection sur les données reçues
-
A07
Défaillances d’authentification : Authentification OAuth2 avec jetons JWT, mots de passe hachés avec Argon2
-
API4
Consommation de ressources non restreinte : Limitation du nombre de requêtes (rate limiting) et taille maximale des requêtes
Enjeu : Appliquer les bonnes pratiques de sécurité dès la conception d’une API.
▣
Analyse post-incident Linux
Forensic / Linux / Bash / Python
Investigation d’une tentative d’intrusion sur un serveur Linux, réalisée en binôme, de l’analyse des journaux jusqu’à la mise en place de contre-mesures.
Stack & outils
Kali Linux
Bash
Python
journalctl
Fail2Ban
Hydra
SHA-256
Mes interventions
- Analyse des journaux SSH et reconstitution de la chronologie : point d’entrée, comptes ciblés, fréquence des tentatives
- Simulation d’une attaque par force brute avec Hydra pour valider la détection
- Scripts de supervision en Python et en Bash, durcissement SSH et blocage automatique avec Fail2Ban
- Chaîne de preuves horodatée et vérifiée par empreintes SHA-256
- Procédure de gestion des incidents : détection, qualification, confinement, investigation, remédiation et retour d’expérience
Sécurité · OWASP
-
A07
Défaillances d’authentification : Blocage automatique des attaques par force brute SSH avec Fail2Ban
-
A08
Intégrité des logiciels et des données : Chaîne de preuves horodatée et vérifiée par empreintes SHA-256
-
A09
Journalisation et alerte : Analyse des journaux SSH et scripts de supervision en Python et Bash
Enjeu : Comprendre un incident, le documenter de façon fiable et empêcher qu’il se reproduise.
▣
TP de pentest et de forensic
Pentest / Exploitation de CVE / Forensic / Réseau
Travaux pratiques offensifs et défensifs du titre Expert en informatique et SI, chacun conclu par un rendu écrit.
Stack & outils
Kali Linux
Debian
VirtualBox
Metasploit
Nmap
Wireshark
Volatility
Docker
HackTheBox
Mes interventions
- Laboratoires montés en machines virtuelles (Kali Linux attaquante, Debian cible) sous VirtualBox, en réseau ponté
- Pentest de machines HackTheBox : énumération, exploitation de services FTP et Telnet non chiffrés, rapport de pentest
- Exploitation de la porte dérobée de vsftpd 2.3.4 avec Metasploit puis manuellement, après lecture du code C vulnérable
- Forensic : analyse d’un dump mémoire avec Volatility, des registres Windows et des en-têtes d’e-mails
- IA et cybersécurité : détection d’intrusion supervisée et non supervisée sur le jeu de données NSL-KDD
Sécurité · OWASP
-
A03
Chaîne d’approvisionnement logicielle : Exploitation d’une porte dérobée insérée dans un logiciel distribué (vsftpd 2.3.4)
-
A04
Défaillances cryptographiques : Accès obtenus grâce à des services non chiffrés (FTP, Telnet)
Enjeu : Comprendre les techniques des attaquants pour mieux concevoir et défendre les applications.
▣
Sécurité réseau — attaques et contre-mesures
Réseau / Wireshark / Homme du milieu / Laboratoire
Travaux pratiques réseau du titre Expert en informatique et SI : comprendre chaque protocole, reproduire les attaques qui le visent, puis proposer les protections adaptées.
Stack & outils
Wireshark
Kali Linux
Debian 12
VirtualBox
arpspoof
Ettercap
dnsspoof
BIND9
hping3
iftop
hashcat
Docker
Mes interventions
- Laboratoire de deux machines virtuelles en réseau ponté : Kali Linux attaquante, Debian 12 victime
- Pour chaque attaque : reproduction, observation dans Wireshark, puis contre-mesure
- Contre-mesures proposées : entrées ARP statiques, Dynamic ARP Inspection et DHCP snooping, IDS/IPS (Snort, Suricata), arpwatch, chiffrement (VPN, HTTPS, HSTS, SFTP)
- Adressage IP et découpage en sous-réseaux (CIDR)
Tests
-
Analyse de trafic
Wireshark sur une capture de près de 130 000 paquets : filtres d’affichage, ICMP, ARP, DNS, DHCP (DORA), FTP, HTTP et TLS
-
Protocoles en clair
Identifiants FTP et HTTP lus dans la capture, fichier reconstitué à partir du trafic FTP
-
ARP poisoning
arpspoof : la table ARP de la victime pointe vers l’attaquant, qui intercepte tout son trafic
-
DHCP spoofing
Ettercap : faux serveur DHCP qui impose sa passerelle et son DNS à la victime
-
DNS spoofing
Serveur DNS BIND9 monté pour l’exercice, puis dnsspoof combiné à arpspoof pour rediriger le domaine vers un Nginx sous Docker
-
Déni de service
Inondation ICMP avec hping3, mesurée avec iftop et Wireshark
-
Exfiltration
Données cachées dans la charge utile des paquets ICMP, puis transfert d’un fichier entier par ICMP
-
Mots de passe
Hachages MD5 et SHA cassés avec hashcat et la liste rockyou ; comparaison avec un mot de passe robuste
Sécurité · OWASP
-
A04
Défaillances cryptographiques : Démonstration de l’interception d’identifiants en FTP et HTTP, recommandation de SFTP, HTTPS et HSTS
Enjeu : Savoir reconnaître une attaque réseau dans le trafic pour pouvoir la détecter et la bloquer.
▣
Digiliberté — réservation de véhicules et covoiturage
C# / ASP.NET Core / Angular / Projet fil rouge CDA
Projet fil rouge du titre Concepteur Développeur d’Applications, mené en équipe de 3 : une plateforme de réservation de véhicules et de covoiturage.
Stack & outils
C#
ASP.NET Core
Entity Framework Core
ASP.NET Identity
MSTest
Angular
Angular Material
JWT
UML
Scrum
Mes interventions
- Analyse et conception UML : cas d’utilisation et modèle de données
- API REST en C# / ASP.NET Core, architecture en couches (modèles, repositories, services, DTO), Entity Framework Core et ASP.NET Identity : 118 de mes commits sur 424
- Front-end Angular avec Angular Material, espace d’administration et authentification JWT : 40 commits sur 152
- Organisation en Scrum avec un tableau Kanban
Enjeu : Mener un projet complet, du cahier des charges à l’application.
Le Nouveau Monde
PHP / MVC / MySQL / Projet fil rouge DWWM
Projet fil rouge du titre Développeur Web et Web Mobile : le site d’une association, développé en PHP natif avec une architecture MVC.
Stack & outils
PHP
MVC
MySQL
JavaScript
CSS
Mes interventions
- Architecture MVC écrite à la main : contrôleurs, modèles et vues
- Inscription et connexion avec vérification des mots de passe, formulaire de contact
- Base de données MySQL et mise en page responsive
Enjeu : Comprendre les fondations d’une application web avant d’utiliser un framework.
▣
Stage LabSud — gestion des membres
PHP / Keycloak / API Dolibarr / Stage DWWM
Stage du titre Développeur Web et Web Mobile au fablab LabSud de Montpellier : une application de gestion des comptes et des droits des membres.
Stack & outils
PHP
Keycloak
Dolibarr
cURL
Bootstrap
Postman
Mes interventions
- Intégration de l’authentification unique (SSO) avec Keycloak
- Échanges avec l’API de l’ERP Dolibarr en PHP (cURL), testés avec Postman
- Conception : cas d’utilisation, diagrammes de séquence, MCD / MLD et maquettes
Tests
-
API
Requêtes vers l’API REST de Dolibarr testées avec Postman avant leur intégration en PHP
Sécurité · OWASP
-
A07
Défaillances d’authentification : Authentification unique (SSO) des membres avec Keycloak
Enjeu : Centraliser l’accès des membres du fablab avec une authentification unique.
▣
TP React — gestionnaire de tâches
React / Vite / Express / MongoDB / Formation ENI
Série de 7 travaux pratiques de la formation Développeur Front End (ENI, 2023) qui construisent pas à pas une application de gestion de tâches connectée à une API.
Stack & outils
React
Vite
JavaScript
Context API
Tailwind CSS
Node.js
Express
MongoDB
Mongoose
Swagger
Mes interventions
- Composants réutilisables alimentés par les props (TaskItem, TaskList) et formulaire d’ajout géré avec useState
- État partagé avec le Context React, page de détail et filtre des tâches terminées ou en cours
- Persistance via une API Express et MongoDB (Mongoose) documentée avec Swagger, appelée depuis React
- Interface stylée avec Tailwind CSS
Enjeu : Acquérir les fondamentaux de React : composants, état, contexte et appels d’API.