[{"content":"Épreuve pratique (ECF) du Titre Professionnel Technicien Supérieur Systèmes et Réseaux (TSSR, RNCP niveau 5), janvier 2026.\nUne entreprise fictive, sept missions, et une preuve horodatée pour chaque étape. Le sujet # L\u0026rsquo;épreuve met en scène un studio de design fictif, CreativeFusion Studios. Ses problèmes sont très courants : un mot de passe par application, des demandes de support perdues entre mails et appels, et tous les services sur un même réseau à plat. Ma mission était d\u0026rsquo;y remédier, puis de prouver chaque étape par des captures horodatées.\nLa copie d\u0026rsquo;examen n\u0026rsquo;est pas publiée. Toutes les captures de cette page en sont issues, et chaque commande ou fichier de configuration est retranscrit depuis ces captures, sans rien ajouter. Quand j\u0026rsquo;ai corrigé quelque chose après coup, je le signale.\n# Mission Outils 1 Créer le domaine de l\u0026rsquo;entreprise Windows Server 2022, AD DS, DNS 2 Une étendue DHCP par service DHCP Windows 3 Un serveur de ticketing pour le support Debian 13, Apache, PHP-FPM 8.4, MariaDB, GLPI 11 4 Se connecter à GLPI avec son compte de domaine LDAP, compte de service AD 5 Segmenter le réseau, router entre VLAN Cisco Packet Tracer, 2960 + 2901 6 Sauvegarder les configs du switch et du routeur IOS copy running-config ftp: 7 Empêcher les IP fixes saisies par les utilisateurs GPO, script PowerShell au démarrage Les machines et le réseau # La RFC 1178 recommande de nommer les machines d\u0026rsquo;après un thème plutôt que leur rôle. J\u0026rsquo;ai choisi la mythologie nordique : pour quelqu\u0026rsquo;un qui met le cap au nord, ça s\u0026rsquo;imposait.\nHôte Rôle OS IP MIDGARD Contrôleur de domaine, DNS, DHCP Windows Server 2022 10.0.60.1 (fixe) YGGDRASIL Serveur GLPI (sans interface graphique) Debian 13 10.0.60.2 (fixe) THOR Poste de test joint au domaine Windows 10 DHCP Missions 1 à 4 et 7 sur machines virtuelles VMware, missions 5 et 6 dans Cisco Packet Tracer.\nSix services, un VLAN et un /24 chacun. La passerelle est toujours la dernière adresse utilisable (.254), et chaque étendue distribue MIDGARD comme serveur DNS.\nVLAN Service Réseau Passerelle 10 RH 10.0.10.0/24 10.0.10.254 20 Comptabilité 10.0.20.0/24 10.0.20.254 30 Informatique 10.0.30.0/24 10.0.30.254 40 Direction 10.0.40.0/24 10.0.40.254 50 Design 10.0.50.0/24 10.0.50.254 60 Serveurs 10.0.60.0/24 10.0.60.254 flowchart LR R[\"Router0 · Cisco 2901Gi0/0.10 … Gi0/0.60passerelles .254 + ip helper\"] S[\"Switch0 · Cisco 2960\"] R ---|\"trunk 802.1QGi0/0 ↔ Fa0/1\"| S S ---|\"Fa0/2 · VLAN 50\"| D[\"PC0 · Design\"] S ---|\"Fa0/3 · VLAN 40\"| DG[\"PC1 · Direction\"] S ---|\"Fa0/4 · VLAN 30\"| I[\"PC2 · Informatique\"] S ---|\"Fa0/5 · VLAN 20\"| C[\"PC3 · Comptabilité\"] S ---|\"Fa0/6 · VLAN 10\"| H[\"PC4 · RH\"] S ---|\"Fa0/7 · VLAN 60\"| M[\"MIDGARD · 10.0.60.1DHCP + FTP\"] 1 · Domaine Active Directory # Le besoin. Un point unique pour gérer comptes et accès : un nouveau domaine, CreativeFusion-Studios.eu, sur Windows Server 2022, avec un nom de serveur conforme à la RFC 1178.\nCe que j\u0026rsquo;ai fait\nInstallé Windows Server 2022 et renommé le serveur MIDGARD. Configuré une adresse fixe : 10.0.60.1/24, passerelle 10.0.60.254. Ajouté le rôle AD DS, puis promu le serveur contrôleur de domaine d\u0026rsquo;une nouvelle forêt, CreativeFusion-Studios.eu, avec le DNS intégré. Organisé l\u0026rsquo;annuaire avant de créer quoi que ce soit, en suivant l\u0026rsquo;organigramme : CreativeFusion-Studios.eu ├── 00_GROUPES ├── 01_ADMIN │ └── Comptes_techniques ← Sync_GLPI, compte de service de GLPI (mission 4) ├── 02_COMPTABILITE ├── 03_DESIGN_ANIMATION │ ├── PERSONNEL │ └── POSTES ← THOR est ici, cible de la GPO (mission 7) ├── 04_DIRECTION │ ├── PERSONNEL │ └── POSTES ├── 05_INFORMATIQUE │ ├── PERSONNEL │ └── POSTES ├── 06_RH │ ├── PERSONNEL │ └── POSTES └── 07_SERVEURS Séparer les personnes (PERSONNEL) et les ordinateurs (POSTES) dans chaque service sert plus tard : une GPO destinée aux ordinateurs se lie à une OU POSTES sans toucher aux comptes utilisateurs.\nLa vérification. nslookup midgard résout midgard.CreativeFusion-Studios.eu en 10.0.60.1. Le client Windows 10 THOR a rejoint le domaine, et le compte administrateur du domaine y ouvre une session.\n2 · Étendues DHCP # Le besoin. Chaque service a son réseau et son étendue DHCP. La passerelle est la dernière adresse utilisable de chaque réseau, le serveur AD garde une adresse fixe, et chaque étendue distribue le serveur AD/DNS comme DNS.\nCe que j\u0026rsquo;ai fait. Ajouté le rôle DHCP sur MIDGARD, terminé sa configuration post-installation, puis créé six étendues :\nÉtendue Réseau Routeur (option 003) DNS (option 006) Etendue_RH 10.0.10.0/24 10.0.10.254 10.0.60.1 Etendue_Comptabilité 10.0.20.0/24 10.0.20.254 10.0.60.1 Etendue_Informatique 10.0.30.0/24 10.0.30.254 10.0.60.1 Etendue_Direction_Générale 10.0.40.0/24 10.0.40.254 10.0.60.1 Etendue_Design_Animation 10.0.50.0/24 10.0.50.254 10.0.60.1 Etendue_Serveurs 10.0.60.0/24 10.0.60.254 10.0.60.1 Exemple de plage, pour la comptabilité : 10.0.20.1 → 10.0.20.253. Le .254 reste hors plage puisqu\u0026rsquo;il appartient à la passerelle.\nLa vérification. Sur THOR, ipconfig /all montre un bail obtenu auprès de MIDGARD, avec la bonne passerelle et le bon DNS. THOR est dans le réseau serveurs, son bail vient donc de Etendue_Serveurs. Les postes des autres services n\u0026rsquo;atteignent le serveur que via un relais DHCP entre VLAN : c\u0026rsquo;est l\u0026rsquo;objet de la mission 5.\n3 · Serveur de ticketing GLPI # Le besoin. Les demandes de support arrivent par mail et par téléphone : rien n\u0026rsquo;est suivi, et aucune métrique sur les temps de résolution. L\u0026rsquo;entreprise a choisi GLPI, sur un serveur Debian sans interface graphique, dans le réseau serveurs.\nLe serveur. Debian 13 « trixie » (le sujet demandait Debian 12, mais la 13 était la version stable du moment), nom d\u0026rsquo;hôte YGGDRASIL, adresse fixe 10.0.60.2/24.\nLa pile web — commandes telles que tapées, dans l\u0026rsquo;ordre :\nsudo apt update \u0026amp;\u0026amp; sudo apt upgrade -y sudo apt install apache2 -y sudo apt install php -y sudo apt-get install php-fpm mariadb-server sudo apt-get install php-{curl,gd,intl,mysql,zip,bcmath,mbstring,xml,bz2} sudo apt install php-ldap # nécessaire ensuite pour l\u0026#39;authentification AD La base de données. Un compte dédié, limité à la base GLPI, plutôt que root :\nsudo mariadb-secure-installation # root passé en authentification unix_socket sudo mysql -u root -p CREATE DATABASE db1_glpi; GRANT ALL PRIVILEGES ON db1_glpi.* TO glpi_adm@localhost IDENTIFIED BY \u0026#39;********\u0026#39;; FLUSH PRIVILEGES; GLPI 11.0.4. Le sujet demandait la 10.0.10 minimum. J\u0026rsquo;ai pris la version courante, compatible avec le PHP 8.4 fourni par Debian 13.\ncd /tmp wget https://github.com/glpi-project/glpi/releases/download/11.0.4/glpi-11.0.4.tgz sudo tar -xzvf glpi-11.0.4.tgz -C /var/www/ Configuration, données et journaux hors de la racine web. Par défaut, ils sont sous /var/www/glpi. Les déplacer garantit qu\u0026rsquo;une erreur de configuration ne pourra jamais les exposer en HTTP.\nsudo chown www-data /var/www/glpi/ -R sudo mkdir /etc/glpi sudo chown www-data /etc/glpi/ sudo mv /var/www/glpi/config /etc/glpi sudo mkdir /var/lib/glpi sudo chown www-data /var/lib/glpi/ sudo mv /var/www/glpi/files/ /var/lib/glpi sudo mkdir /var/log/glpi sudo chown www-data /var/log/glpi Puis on indique à GLPI où chercher :\n\u0026lt;?php // /var/www/glpi/inc/downstream.php define(\u0026#39;GLPI_CONFIG_DIR\u0026#39;, \u0026#39;/etc/glpi/\u0026#39;); if (file_exists(GLPI_CONFIG_DIR . \u0026#39;/local_define.php\u0026#39;)) { require_once GLPI_CONFIG_DIR . \u0026#39;/local_define.php\u0026#39;; } \u0026lt;?php // /etc/glpi/local_define.php define(\u0026#39;GLPI_VAR_DIR\u0026#39;, \u0026#39;/var/lib/glpi/files\u0026#39;); define(\u0026#39;GLPI_LOG_DIR\u0026#39;, \u0026#39;/var/log/glpi\u0026#39;); Apache + PHP-FPM. Un hôte virtuel dédié, dont la racine est uniquement /var/www/glpi/public :\n/etc/apache2/sites-available/support-creative-fusion-studios.eu.conf \u0026lt;VirtualHost *:80\u0026gt; ServerName support-creative-fusion-studios.eu DocumentRoot /var/www/glpi/public \u0026lt;Directory /var/www/glpi/public\u0026gt; Require all granted RewriteEngine On #ensure authorization headers are passed to PHP. #Some apache configurations may filter them and break usage of API, CalDAV... RewriteCond %{HTTP:Authorization} ^(.+)$ RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] #redirect all request to GLPI router, unless file exists. RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [QSA,L] \u0026lt;/Directory\u0026gt; \u0026lt;FilesMatch \\.php$\u0026gt; SetHandler \u0026#34;proxy:unix:/run/php/php8.4-fpm.sock|fcgi://localhost/\u0026#34; \u0026lt;/FilesMatch\u0026gt; \u0026lt;/VirtualHost\u0026gt; sudo a2ensite support-creative-fusion-studios.eu.conf sudo a2dissite 000-default.conf sudo a2enmod proxy_fcgi setenvif sudo a2enconf php8.4-fpm sudo systemctl restart apache2 Durcissement des sessions PHP, dans /etc/php/8.4/fpm/php.ini :\nsession.cookie_httponly = on ; cookie illisible par JavaScript (limite le vol de session par XSS) session.cookie_samesite = Lax ; cookie non envoyé sur les requêtes intersites (protection CSRF) L\u0026rsquo;installeur web, lancé depuis un navigateur du réseau (http://10.0.60.2), puis :\nsudo rm /var/www/glpi/install/install.php Dernière étape : changement du mot de passe du compte super-admin par défaut glpi.\nLa vérification. systemctl status apache2 → active (running) après chaque modification, ip a → 10.0.60.2/24, et le tableau de bord GLPI accessible depuis le réseau.\nLe bandeau orange, c\u0026rsquo;est GLPI qui signale que les autres comptes par défaut (post-only, tech, normal) avaient encore leur mot de passe d\u0026rsquo;origine. Voir ce que je durcirais. 4 · Authentification GLPI sur l\u0026rsquo;Active Directory # Le besoin. Les utilisateurs se connectent à GLPI avec leur compte de domaine, et non avec un mot de passe GLPI à part.\nCe que j\u0026rsquo;ai fait. Un compte de service dans l\u0026rsquo;AD, Sync_GLPI, dans 01_ADMIN/Comptes_techniques. GLPI s\u0026rsquo;en sert uniquement pour lire l\u0026rsquo;annuaire : aucun identifiant administrateur n\u0026rsquo;est stocké sur le serveur GLPI. Puis un nouvel annuaire LDAP dans GLPI (Configuration → Authentification → Annuaire LDAP) :\nChamp Valeur Serveur / port 10.0.60.1 / 389 Filtre de connexion (\u0026amp;(objectCategory=person)(objectClass=user)) BaseDN DC=creativefusion-studios,DC=eu Compte de bind CN=Sync_GLPI,OU=Comptes_techniques,OU=01_ADMIN,DC=creativefusion-studios,DC=eu Champ de l\u0026rsquo;identifiant samaccountname Champ de synchronisation objectguid objectguid plutôt que l\u0026rsquo;identifiant : si un utilisateur est renommé dans l\u0026rsquo;AD, GLPI reconnaît toujours la même personne.\nLa vérification. Le test intégré à GLPI : connexion TCP, BaseDN, bind et recherche réussis (8 entrées trouvées).\nJ\u0026rsquo;ai ensuite créé des utilisateurs de test dans l\u0026rsquo;AD, ouvert une session sur THOR pour définir leur mot de passe, puis je me suis connecté à GLPI avec la source Active Directory. Les utilisateurs AD apparaissent alors dans la liste des utilisateurs GLPI.\n5 · Segmentation en VLAN et routage inter-VLAN # Le besoin. Segmenter le réseau par service, tout en permettant à chaque poste d\u0026rsquo;obtenir son adresse du serveur DHCP et de pinguer toutes les autres machines. Il faut donc router entre les VLAN.\nRéalisé dans Cisco Packet Tracer, à partir de la topologie fournie par le sujet : un switch 2960, un routeur 2901, un PC par service et le serveur.\nLe switch. Les VLAN 10 à 60, nommés d\u0026rsquo;après les services, un port d\u0026rsquo;accès par VLAN (Fa0/2 → Fa0/7), et Fa0/1 en trunk 802.1Q vers le routeur, limité aux VLAN 10 à 60.\nLe routeur. Un « router-on-a-stick » : un seul lien physique, une sous-interface par VLAN, chacune étant la passerelle (.254) de son réseau.\ninterface gigabitEthernet 0/0.10 encapsulation dot1Q 10 ip address 10.0.10.254 255.255.255.0 Le DHCP entre VLAN. Une requête DHCP est un broadcast, et un broadcast ne traverse pas un routeur. Sur chaque sous-interface cliente, ip helper-address 10.0.60.1 transforme le broadcast en unicast vers le serveur. Le VLAN 60 n\u0026rsquo;en a pas besoin : le serveur y est déjà.\nLe serveur (MIDGARD dans Packet Tracer). Adresse fixe 10.0.60.1, passerelle 10.0.60.254, un pool DHCP par VLAN client (début .1, passerelle .254, DNS 10.0.60.1). Tous les PC en DHCP.\nSwitch0 — liste complète des commandes enable configure terminal vlan 10 name RH exit vlan 20 name COMPTABILITE exit vlan 30 name INFORMATIQUE exit vlan 40 name DIRECTION exit vlan 50 name DESIGN exit vlan 60 name SERVEURS exit interface fa0/2 switchport mode access switchport access vlan 50 exit interface fa0/3 switchport mode access switchport access vlan 40 exit interface fa0/4 switchport mode access switchport access vlan 30 exit interface fa0/5 switchport mode access switchport access vlan 20 exit interface fa0/6 switchport mode access switchport access vlan 10 interface fa0/7 switchport mode access switchport access vlan 60 exit interface fa0/1 switchport mode trunk switchport trunk allowed vlan 10,20,30,40,50,60 no shutdown exit Router0 — liste complète des commandes enable configure terminal interface gigabitEthernet 0/0 no shutdown exit interface gigabitEthernet 0/0.10 encapsulation dot1Q 10 ip address 10.0.10.254 255.255.255.0 ip helper-address 10.0.60.1 exit interface gigabitEthernet 0/0.20 encapsulation dot1Q 20 ip address 10.0.20.254 255.255.255.0 ip helper-address 10.0.60.1 exit interface gigabitEthernet 0/0.30 encapsulation dot1Q 30 ip address 10.0.30.254 255.255.255.0 ip helper-address 10.0.60.1 exit interface gigabitEthernet 0/0.40 encapsulation dot1Q 40 ip address 10.0.40.254 255.255.255.0 ip helper-address 10.0.60.1 exit interface gigabitEthernet 0/0.50 encapsulation dot1Q 50 ip address 10.0.50.254 255.255.255.0 ip helper-address 10.0.60.1 exit interface gigabitEthernet 0/0.60 encapsulation dot1Q 60 ip address 10.0.60.254 255.255.255.0 exit Regroupé par sous-interface pour la lisibilité : pendant l\u0026rsquo;examen, les helper-address ont été ajoutées dans un second temps.\nVérification — show vlan brief / show ip interface brief Switch#show vlan brief VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------ 1 default active Fa0/1, Fa0/8, Fa0/9, Fa0/10 … 10 RH active Fa0/6 20 COMPTABILITE active Fa0/5 30 INFORMATIQUE active Fa0/4 40 DIRECTION active Fa0/3 50 DESIGN active Fa0/2 60 SERVEURS active Fa0/7 Router#show ip interface brief Interface IP-Address OK? Method Status Protocol GigabitEthernet0/0 unassigned YES unset up up GigabitEthernet0/0.10 10.0.10.254 YES manual up up GigabitEthernet0/0.20 10.0.20.254 YES manual up up GigabitEthernet0/0.30 10.0.30.254 YES manual up up GigabitEthernet0/0.40 10.0.40.254 YES manual up up GigabitEthernet0/0.50 10.0.50.254 YES manual up up GigabitEthernet0/0.60 10.0.60.254 YES manual up up La vérification. Depuis chaque PC, un ping vers chaque réseau (ping -n 1, pour tout faire tenir sur une capture). Depuis PC4 (RH), le TTL raconte l\u0026rsquo;histoire : 128 pour l\u0026rsquo;adresse de son propre VLAN, 127 partout ailleurs, soit un saut par le routeur.\n6 · Sauvegarde des configurations sur FTP # Le besoin. Tester la sauvegarde des configurations du switch et du routeur sur le serveur FTP, avec le compte admin / Cisco fourni par le sujet.\nLe routeur. Ma première tentative passait les identifiants dans l\u0026rsquo;URL :\nRouter#copy running-config ftp://admin:Cisco@10.0.60.1/router_backup.cfg % Invalid input detected at \u0026#39;^\u0026#39; marker. L\u0026rsquo;IOS de Packet Tracer n\u0026rsquo;accepte pas cette syntaxe : il faut d\u0026rsquo;abord déclarer les identifiants dans la configuration.\nRouter(config)#ip ftp username admin Router(config)#ip ftp password Cisco Router#copy running-config ftp: Address or name of remote host []? 10.0.60.1 Destination filename [Router-confg]? router_backup.cfg [OK - 1367 bytes] Le switch. Mêmes commandes, mais la première copie a échoué :\n%Error opening ftp://.../switch_backup.cfg (Timed out) Un switch de niveau 2 n\u0026rsquo;a pas d\u0026rsquo;adresse IP par défaut : il ne pouvait tout simplement pas joindre le serveur FTP. La solution : une interface de management dans le VLAN serveurs et une passerelle par défaut.\ninterface vlan 60 ip address 10.0.60.2 255.255.255.0 no shutdown ip default-gateway 10.0.60.254 Ensuite : [OK - 1592 bytes].\nLa vérification. Les deux fichiers sont présents sur le serveur FTP.\n7 · GPO qui force le DHCP au démarrage # Le besoin. Un ticket récurrent : des utilisateurs ne peuvent pas se connecter avec leur compte de domaine, parce que certains ont saisi une IP fixe. Le sujet demande une GPO qui exécute un script PowerShell au démarrage de l\u0026rsquo;ordinateur pour remettre la carte réseau en DHCP.\nCe que j\u0026rsquo;ai fait\nUn groupe de sécurité, G_DHCP_POSTES, avec THOR comme membre. Le script, stocké dans SYSVOL pour que tous les ordinateurs du domaine puissent le lire (\\\\CreativeFusion-Studios.eu\\SYSVOL\\CreativeFusion-Studios.eu\\scripts\\) : # force_dhcp.ps1 — pour chaque carte active : DHCP activé, DNS manuels supprimés Get-NetAdapter | Where-Object {$_.Status -eq \u0026#34;Up\u0026#34;} | ForEach-Object { Set-NetIPInterface -InterfaceIndex $_.InterfaceIndex -Dhcp Enabled Set-DnsClientServerAddress -InterfaceIndex $_.InterfaceIndex -ResetServerAddresses } :: force_dhcp.bat — lanceur @echo off powershell.exe -NoProfile -ExecutionPolicy Bypass -File \u0026#34;\\\\CreativeFusion-Studios.eu\\SYSVOL\\CreativeFusion-Studios.eu\\scripts\\force_dhcp.ps1\u0026#34; exit /b 0 La GPO GPO_FORCE_DHCP_STARTUP, liée à 03_DESIGN_ANIMATION/POSTES, où se trouve THOR : Configuration ordinateur → Stratégies → Paramètres Windows → Scripts → Démarrage → le lanceur .bat ; filtrage de sécurité sur G_DHCP_POSTES au lieu de Utilisateurs authentifiés ; Toujours attendre le réseau lors du démarrage de l\u0026rsquo;ordinateur et de l\u0026rsquo;ouverture de session → Activé, pour que le script ne s\u0026rsquo;exécute pas avant que le réseau soit prêt. La vérification. Sur THOR, gpupdate /force, puis gpresult /r /scope computer en administrateur : GPO_FORCE_DHCP_STARTUP figure parmi les stratégies appliquées, et THOR est bien membre de G_DHCP_POSTES.\nCorrigé après coup. En relisant mes captures pour cette page, j\u0026rsquo;ai trouvé deux fautes de frappe dans la ligne DNS du script écrit pendant l\u0026rsquo;examen : - InterfaceIndex (avec une espace) et -ResetServerAdresses. Le script ci-dessus est la version corrigée. gpresult prouve que la GPO a été appliquée, pas que chaque ligne a réussi : la ligne DHCP était correcte, la ligne DNS aurait échoué. Avec le recul # L\u0026rsquo;examen demandait que ça fonctionne. Avec un regard sécurité, voici ce que je ferais autrement.\nMes erreurs, gardées volontairement\nUne faute de frappe dans le script de la GPO : la GPO s\u0026rsquo;appliquait, mais une ligne aurait échoué. Leçon retenue : un script se teste à la main sur un poste avant qu\u0026rsquo;une GPO ne le pousse sur tous les autres. Un mauvais masque sur une sous-interface du routeur (255.255.255.255), refusé par l\u0026rsquo;IOS : Bad mask /32 for address 10.0.40.254. Un rappel : lire la sortie de la console plutôt qu\u0026rsquo;enchaîner les commandes à l\u0026rsquo;aveugle. Une sauvegarde du switch en échec, faute d\u0026rsquo;IP de management. Évident une fois compris : un équipement de niveau 2 a besoin d\u0026rsquo;une adresse pour parler à qui que ce soit. Ce que je durcirais sur un réseau de production\nPoint À l\u0026rsquo;examen En production LDAP entre GLPI et l\u0026rsquo;AD port 389, non chiffré LDAPS (636) ou StartTLS, pour que le mot de passe du compte de service ne circule jamais en clair Comptes GLPI par défaut post-only, tech, normal encore avec leur mot de passe d\u0026rsquo;origine les modifier ou les désactiver dès l\u0026rsquo;installation GLPI en HTTP http://10.0.60.2 HTTPS avec un certificat d\u0026rsquo;une AC interne Sauvegardes de configuration FTP avec identifiants en clair, imposé par le sujet SCP/SFTP, un compte dédié, des sauvegardes versionnées Lanceur du script -ExecutionPolicy Bypass un script signé et une stratégie AllSigned Nom du domaine AD CreativeFusion-Studios.eu, un TLD public, imposé par le sujet un sous-domaine que l\u0026rsquo;entreprise possède réellement (ex. ad.example.com), pour éviter les conflits DNS avec Internet Traiter le symptôme une GPO remet le DHCP à chaque démarrage retirer aussi aux utilisateurs standard le droit de modifier les paramètres réseau Technologies # Windows Server 2022 · Active Directory · DNS · DHCP · GPO · PowerShell · Debian 13 · Apache · PHP-FPM · MariaDB · GLPI 11 · LDAP · Cisco IOS · Packet Tracer\nFichiers de configuration sur GitHub ","date":"14 janvier 2026","externalUrl":null,"permalink":"/fr/projects/tssr-infrastructure/","section":"Projets","summary":"L’épreuve pratique de mon titre systèmes et réseaux : un domaine Windows, GLPI authentifié sur Active Directory, du routage inter-VLAN et une GPO de démarrage.","title":"Infrastructure TSSR — Active Directory, GLPI et VLAN","type":"projects"},{"content":"Une agence de voyages piratée en pleine saison. Un partenaire qui menace de partir. Un seul admin pour tout reconstruire.\nNorrøn Voyages est une entreprise fictive, créée pour servir de scénario au lab.\nL\u0026rsquo;entreprise # Norrøn Voyages est une agence de voyages française créée en 2012. Ses 15 salariés organisent des voyages d\u0026rsquo;aventure en petits groupes vers l\u0026rsquo;Islande, les îles Féroé et la Norvège : randonnée, trek, aurores boréales.\nHélène Marchand, la fondatrice, est une ancienne guide de randonnée. Pragmatique et pas technicienne, elle veut des résultats concrets et comprendre les enjeux. Bjarni, le guide-coordinateur, travaille depuis Reykjavik et doit accéder aux outils internes à distance. Les commerciaux se déplacent beaucoup et utilisent le site et les outils de réservation en mobilité. L\u0026rsquo;agence manipule des données sensibles : identités des voyageurs, copies de passeports, informations médicales pour les treks, paiements. Des données soumises au RGPD.\nLe point de départ # Comme dans beaucoup de petites entreprises, l\u0026rsquo;informatique de l\u0026rsquo;agence s\u0026rsquo;est construite sans plan :\nun vieux serveur unique qui fait tout ; un réseau à plat : tous les postes et serveurs peuvent se joindre ; des mots de passe partagés entre collègues ; un site WordPress modifié directement en production, avec des extensions rarement mises à jour. L\u0026rsquo;incident # Au printemps dernier, en pleine saison de réservations, le site WordPress a été défiguré via une extension non mise à jour. Il est resté hors ligne plusieurs jours.\nCe n\u0026rsquo;était pas un coup de malchance : c\u0026rsquo;était la conséquence logique de l\u0026rsquo;organisation ci-dessus. Sur un réseau à plat, sans mises à jour et avec des mots de passe partagés, une seule faille suffit.\nLe déclencheur # Le principal partenaire norvégien de l\u0026rsquo;agence, soumis à la directive NIS2, exige désormais des garanties de sécurité de ses fournisseurs. Sans elles, le contrat ne sera pas renouvelé.\nMon rôle # Hélène recrute un administrateur systèmes DevOps : moi. Seul technicien, rattaché directement à elle. La mission : reconstruire l\u0026rsquo;infrastructure proprement, l\u0026rsquo;automatiser, puis être capable de la défendre.\nProchain article : le plan.\n","date":"11 octobre 2026","externalUrl":null,"permalink":"/fr/heading-north-lab/scenario/","section":"Heading North Lab","summary":"Une agence de voyages piratée en pleine saison, un partenaire soumis à NIS2, un seul admin pour tout reconstruire. Voici l’entreprise fictive derrière le lab.","title":"Le scénario : Norrøn Voyages","type":"heading-north-lab"},{"content":"Projet de la formation Développeur Web d\u0026rsquo;OpenClassrooms, 2022.\nUne API où l\u0026rsquo;essentiel du travail ne se voit pas : l\u0026rsquo;authentification, les contrôles d\u0026rsquo;accès et la protection des données.\nLe projet # Piquante est une application où les utilisateurs publient des sauces piquantes et les notent avec des « j\u0026rsquo;aime » ou « je n\u0026rsquo;aime pas ». Le front-end Angular était fourni par OpenClassrooms. Ma mission : construire l\u0026rsquo;API qui le fait fonctionner, avec une attention particulière à la sécurité.\nCe que j\u0026rsquo;ai réalisé # une API REST complète : création, lecture, modification et suppression des sauces, gestion des likes et dislikes ; l\u0026rsquo;inscription et la connexion des utilisateurs, avec un jeton JWT pour chaque requête authentifiée ; un contrôle de propriété : seul l\u0026rsquo;auteur d\u0026rsquo;une sauce peut la modifier ou la supprimer, et l\u0026rsquo;identifiant de l\u0026rsquo;utilisateur est pris dans le jeton, jamais dans la requête du client ; l\u0026rsquo;envoi d\u0026rsquo;images avec multer. La sécurité # mots de passe hachés avec bcrypt, et politique de mot de passe imposée (longueur, majuscules, chiffres, symboles) ; adresses e-mail pseudonymisées avec un HMAC avant d\u0026rsquo;être stockées : la base ne contient pas les adresses en clair ; en-têtes HTTP durcis avec helmet, nettoyage des entrées contre le XSS, limitation du nombre de requêtes par adresse IP ; tous les secrets (base de données, clés de signature) dans des variables d\u0026rsquo;environnement, jamais dans le code. Technologies # Node.js · Express · MongoDB · Mongoose · JWT · bcrypt · crypto-js · helmet · express-rate-limit · multer · dotenv\nPourquoi il compte aujourd\u0026rsquo;hui # C\u0026rsquo;est le projet de ma formation développeur le plus proche de mon orientation actuelle vers le DevSecOps : penser d\u0026rsquo;abord à ce qu\u0026rsquo;un attaquant pourrait faire, puis le rendre difficile.\nPas de démo en ligne : une API a besoin d\u0026rsquo;un serveur et d\u0026rsquo;une base de données, ce que GitHub Pages ne fournit pas.\nCode sur GitHub ","date":"26 novembre 2022","externalUrl":null,"permalink":"/fr/projects/piquante/","section":"Projets","summary":"Le seul projet back-end de ma formation de développeur, et le plus proche de ce que je fais aujourd’hui : une API Node.js où l’essentiel du travail porte sur la sécurité.","title":"Piquante — une API sécurisée","type":"projects"},{"content":"Dans l\u0026rsquo;article précédent, Norrøn Voyages perdait son site à cause d\u0026rsquo;une extension pas à jour, sur un réseau à plat aux mots de passe partagés. Avant de toucher à quoi que ce soit, voici où je veux aller, et dans quel ordre.\nLa cible # La cible est un réseau segmenté : chaque zone est un VLAN distinct, et tout flux entre deux zones passe par le pare-feu pfSense. Tout est bloqué par défaut ; chaque flux est ouvert explicitement, pour une raison précise.\nAdministration : les interfaces d\u0026rsquo;administration de Proxmox et de pfSense ne sont accessibles que depuis cette zone ; Serveurs / DMZ : le site WordPress et sa base de données, seule partie exposée à Internet ; Utilisateurs : les postes des salariés, qui accèdent au site comme n\u0026rsquo;importe quel visiteur ; VPN : Bjarni et les commerciaux passent par Internet ; leur tunnel chiffré aboutit sur pfSense, qui ne les laisse atteindre que les services dont ils ont réellement besoin ; Supervision / SIEM : dans son propre VLAN. Les logs de toutes les zones y arrivent en sens unique, pour qu\u0026rsquo;un attaquant qui compromet un serveur ne puisse pas atteindre le SIEM pour effacer ses traces ; Lab offensif : une machine d\u0026rsquo;attaque isolée pour la dernière phase. Elle pourra atteindre la DMZ pendant les tests de la phase 12, jamais les zones Administration ou Utilisateurs. C\u0026rsquo;est un plan, pas quelque chose de déjà construit. Il évoluera au fil de la construction, et chaque changement sera expliqué.\nLes 13 phases # # Phase Le besoin de Norrøn Voyages 0 Le plan Savoir où l\u0026rsquo;on va avant de toucher à quoi que ce soit 1 Architecture Auditer l\u0026rsquo;existant : le réseau à plat 2 Proxmox, VM, réseau Reconstruire sur des bases saines 3 Sécurisation Plus jamais l\u0026rsquo;incident du printemps 4 Accès distant Bjarni doit travailler depuis Reykjavik en sécurité 5 WordPress Réinstaller le site proprement 6 Git / GitHub Fini les modifications en direct sur la production 7 Jenkins Mettre à jour le site sans coupure 8 Docker Un environnement identique du test à la production 9 Kubernetes Tenir le pic de réservations de janvier 10 Terraform / Ansible Plan de reprise : tout reconstruire vite 11 Supervision Savoir qu\u0026rsquo;il y a un problème avant les clients 12 Blue Team Prouver au partenaire NIS2 qu\u0026rsquo;on détecte les attaques La dernière phase boucle la boucle : j\u0026rsquo;attaquerai l\u0026rsquo;infrastructure que j\u0026rsquo;ai moi-même construite et sécurisée, et je montrerai ce que ma détection repère.\nComment je vais le documenter # Chaque phase suit la même structure : le besoin de l\u0026rsquo;entreprise → ce que j\u0026rsquo;ai mis en place → ce qui a coincé ou ce que j\u0026rsquo;ai appris → la prochaine étape. Erreurs comprises : elles font partie de l\u0026rsquo;apprentissage, et ce sont souvent les plus utiles.\nProchaine étape : la phase 1, l\u0026rsquo;audit du réseau à plat.\n","date":"11 octobre 2026","externalUrl":null,"permalink":"/fr/heading-north-lab/phase-00-plan/","section":"Heading North Lab","summary":"D’un réseau à plat à une infrastructure segmentée où chaque flux passe par un pare-feu : l’architecture cible et les 13 phases pour l’atteindre.","title":"Phase 0 — Le plan","type":"heading-north-lab"},{"content":"Projet de la formation Développeur Web d\u0026rsquo;OpenClassrooms, 2022.\nUne application de location de logements, découpée en composants réutilisables.\nLe projet # Kasa est une plateforme de location de logements entre particuliers. C\u0026rsquo;est le dernier projet de la formation : développer le front-end en React à partir d\u0026rsquo;une maquette, avec une page par logement générée à partir des données.\nCe que j\u0026rsquo;ai réalisé # une page d\u0026rsquo;accueil qui affiche les logements à partir d\u0026rsquo;un fichier de données JSON ; une fiche par logement, construite à partir de son identifiant dans l\u0026rsquo;adresse, avec redirection vers la page 404 si le logement n\u0026rsquo;existe pas ; des composants réutilisables : carrousel de photos, accordéons pour la description et les équipements, note en étoiles, étiquettes ; une page « À propos » et une page d\u0026rsquo;erreur 404 ; la navigation entre les pages avec React Router. Technologies # React 18 · React Router 6 · JSX · CSS · Create React App\nVoir le site Code sur GitHub ","date":"26 novembre 2022","externalUrl":null,"permalink":"/fr/projects/kasa/","section":"Projets","summary":"Le dernier projet de ma formation de développeur : une application React de location de logements, construite à partir de composants réutilisables.","title":"Kasa — une application React","type":"projects"},{"content":"Projet de la formation Développeur Web d\u0026rsquo;OpenClassrooms, 2022.\nUn site de vente de canapés, rendu dynamique en JavaScript sans aucun framework.\nLe projet # Kanap vend des canapés en ligne. Les pages HTML et CSS étaient fournies, ainsi qu\u0026rsquo;une API Express. Ma mission : écrire tout le JavaScript qui relie les deux.\nCe que j\u0026rsquo;ai réalisé # le catalogue, chargé depuis l\u0026rsquo;API avec fetch et inséré dans la page ; une fiche produit générée à partir de l\u0026rsquo;identifiant passé dans l\u0026rsquo;adresse, avec le choix de la couleur et de la quantité ; un panier enregistré dans le localStorage : fusion des articles identiques, modification des quantités, suppression, calcul du total ; la validation du formulaire de commande avec des expressions régulières ; l\u0026rsquo;envoi de la commande à l\u0026rsquo;API, puis la page de confirmation avec le numéro de commande. La démo en ligne # À l\u0026rsquo;origine, le site interrogeait l\u0026rsquo;API Express en local. Pour le publier sur GitHub Pages, qui n\u0026rsquo;héberge que des fichiers statiques, j\u0026rsquo;ai adapté une version de démonstration : le catalogue est lu dans un fichier JSON, et la commande est simulée (le numéro est généré dans le navigateur, rien n\u0026rsquo;est envoyé). Le code d\u0026rsquo;origine, back-end compris, est inchangé dans le dépôt.\nTechnologies # JavaScript · DOM · Fetch API · localStorage · expressions régulières · HTML · CSS\nVoir le site Code sur GitHub ","date":"30 septembre 2022","externalUrl":null,"permalink":"/fr/projects/kanap/","section":"Projets","summary":"Rendre dynamique un site e-commerce en JavaScript pur : catalogue chargé depuis une API, panier, validation du formulaire et commande.","title":"Kanap — un site e-commerce en JavaScript","type":"projects"},{"content":"Projet de la formation Développeur Web d\u0026rsquo;OpenClassrooms, 2022.\nPas de nouveau site ici : reprendre un site existant, trouver ce qui ne va pas, et le corriger.\nLe projet # La Panthère est une agence de web design lyonnaise dont le site était mal référencé, lent et peu accessible. La mission : auditer le site, puis l\u0026rsquo;optimiser en matière de référencement, de performance et d\u0026rsquo;accessibilité.\nCe que j\u0026rsquo;ai corrigé # Référencement : balise title et méta-description réécrites, structure des titres remise dans l\u0026rsquo;ordre, langue de la page déclarée, et retrait de listes de liens vers des annuaires, une technique de référencement abusive dite « black hat » ; Performance : images allégées et redimensionnées, CSS et JavaScript minifiés, scripts chargés en fin de page, polices chargées plus efficacement, bibliothèques hébergées avec le site plutôt que sur un CDN ; Accessibilité : textes alternatifs des images réécrits, libellés ARIA sur les liens des réseaux sociaux, contrastes corrigés (dont du texte blanc sur fond blanc), balises sémantiques ; validation du code HTML et CSS avec les outils du W3C. Technologies # HTML · CSS · Bootstrap · SEO · performance web · accessibilité (WCAG)\nVoir le site Code sur GitHub ","date":"11 août 2022","externalUrl":null,"permalink":"/fr/projects/la-panthere/","section":"Projets","summary":"Reprendre le site d’une agence web et le corriger : référencement, poids des pages, accessibilité, et retrait de techniques de référencement abusives.","title":"La Panthère — optimiser un site existant","type":"projects"},{"content":"Projet de la formation Développeur Web d\u0026rsquo;OpenClassrooms, 2022.\nUne maquette intégrée en partant du mobile, avec des animations en CSS pur, sans JavaScript.\nLe projet # Ohmyfood permet de réserver à l\u0026rsquo;avance le menu d\u0026rsquo;un restaurant gastronomique. La mission : intégrer la maquette de la page d\u0026rsquo;accueil et des quatre pages de restaurants, d\u0026rsquo;abord pour mobile, puis pour les écrans plus larges.\nCe que j\u0026rsquo;ai réalisé # une intégration mobile first, adaptée ensuite aux tablettes et aux ordinateurs ; un code CSS organisé avec Sass : variables pour les couleurs, fichiers séparés par composant et par page ; des animations en CSS, sans JavaScript : écran de chargement, apparition progressive des plats, effets au survol des boutons et des cartes ; la validation du code avec les outils du W3C. Technologies # HTML · CSS · Sass · animations CSS (keyframes) · responsive design\nVoir le site Code sur GitHub ","date":"28 juin 2022","externalUrl":null,"permalink":"/fr/projects/ohmyfood/","section":"Projets","summary":"Intégrer une maquette en partant du mobile, avec Sass et des animations en CSS pur : chargement, apparition des plats, effets au survol.","title":"Ohmyfood — intégration mobile first et animations CSS","type":"projects"},{"content":"Exercice d\u0026rsquo;entraînement, 2022.\nReproduire une page d\u0026rsquo;accueil en HTML et CSS, pour s\u0026rsquo;entraîner à la mise en page.\nL\u0026rsquo;exercice # Le but était de reproduire la page d\u0026rsquo;accueil d\u0026rsquo;une école de jeux vidéo, pour s\u0026rsquo;entraîner à la mise en page : barre de navigation, bandeau d\u0026rsquo;en-tête, sections d\u0026rsquo;icônes et blocs de contenu.\nCe que j\u0026rsquo;ai pratiqué # la mise en page avec Flexbox et CSS Grid ; l\u0026rsquo;adaptation aux différentes tailles d\u0026rsquo;écran avec les media queries ; les transitions CSS au survol. Technologies # HTML · CSS · Flexbox · Grid · responsive design\nVoir le site Code sur GitHub ","date":"30 novembre 2022","externalUrl":null,"permalink":"/fr/projects/gaming-campus/","section":"Projets","summary":"Un exercice d’entraînement : reproduire en HTML et CSS la page d’accueil d’une école, avec Flexbox, Grid et une mise en page responsive.","title":"Gaming Campus — exercice d'intégration","type":"projects"},{"content":"Exercice d\u0026rsquo;entraînement, 2023.\nUn mini-jeu en une trentaine de lignes de JavaScript : éclater des bulles avant qu\u0026rsquo;elles disparaissent.\nL\u0026rsquo;exercice # Des bulles de taille et de trajectoire aléatoires montent à l\u0026rsquo;écran. Chaque clic sur une bulle l\u0026rsquo;éclate et augmente le score.\nCe que j\u0026rsquo;ai pratiqué # la création d\u0026rsquo;éléments à la volée dans le DOM, à intervalles réguliers ; les événements : un clic éclate la bulle et met à jour le compteur ; le nettoyage : chaque bulle est retirée de la page au bout de quelques secondes ; une animation CSS dont la direction est réglée depuis JavaScript par une variable CSS. Technologies # JavaScript · DOM · événements · animations CSS · variables CSS\nVoir le site Code sur GitHub ","date":"9 janvier 2023","externalUrl":null,"permalink":"/fr/projects/bubble-game/","section":"Projets","summary":"Un exercice court en JavaScript : créer des éléments à la volée, gérer les clics et animer les bulles en CSS.","title":"Bubble Game — un mini-jeu en JavaScript","type":"projects"},{"content":"Technicien supérieur systèmes et réseaux (TSSR) avec un passé de développeur web, je termine un Bachelor DevOps. Je construis Heading North Lab en public : reconstruire, automatiser et sécuriser l\u0026rsquo;infrastructure d\u0026rsquo;une entreprise fictive sur mon propre serveur Proxmox, une phase après l\u0026rsquo;autre.\nDécouvrir Heading North Lab → ","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/","section":"Accueil","summary":"","title":"Accueil","type":"page"},{"content":"Pas besoin du mot de passe Wi-Fi. Il suffit d\u0026rsquo;être à portée radio.\nCe qui s\u0026rsquo;est passé # Le 16 octobre 2026, à la conférence Hexacon, le chercheur Quentin Kaiser a présenté une faille dans WPS Monitor, l\u0026rsquo;ancien composant de Broadcom qui gère le WPS, ce bouton qui permet de connecter un appareil au Wi-Fi sans taper le mot de passe.\nCe composant ne vérifie pas correctement la taille des messages WPS qu\u0026rsquo;il reçoit et réassemble. Un attaquant à portée du Wi-Fi, sans connaître le mot de passe et sans passer par l\u0026rsquo;appairage WPS, peut provoquer une corruption de mémoire. Le chercheur a démontré une fuite de mémoire contrôlée et l\u0026rsquo;exécution de code sur l\u0026rsquo;appareil. Les conséquences exactes dépendent du modèle et de son micrologiciel.\nLa liste des produits concernés, non exhaustive, cite des équipements de nombreuses marques : ARRIS, Arcadyan, Askey, Cisco, Comtrend, Huawei, Netgear, Nokia, TP-Link, ZTE, Zyxel… Pour certains modèles, la vulnérabilité est confirmée ; pour d\u0026rsquo;autres, elle reste à vérifier selon le micrologiciel.\nPourquoi c\u0026rsquo;est important # Broadcom n\u0026rsquo;a pas attribué de CVE. L\u0026rsquo;entreprise explique avoir remplacé ce composant en 2018 et considère les produits concernés comme obsolètes ou hors de sa période de support. Désactiver le WPS ne suffit pas toujours. Selon le chercheur, l\u0026rsquo;option des réglages peut laisser le composant vulnérable actif. Certains appareils n\u0026rsquo;auront jamais de correctif. Les produits les plus anciens, basés sur le système eCos, n\u0026rsquo;ont parfois aucune voie de mise à jour. Ce qu\u0026rsquo;il faut en retenir # Un réglage n\u0026rsquo;est pas un correctif. Décocher une option ne garantit pas que le code vulnérable a disparu. Le matériel réseau a une date de péremption. Un équipement qui ne reçoit plus de mises à jour reste vulnérable à vie : il se remplace. La box fournie par l\u0026rsquo;opérateur fait partie du réseau. C\u0026rsquo;est à l\u0026rsquo;opérateur ou au fabricant de fournir la mise à jour, mais c\u0026rsquo;est à l\u0026rsquo;utilisateur de la demander. La portée radio est une surface d\u0026rsquo;attaque. Le Wi-Fi déborde des murs : une faille exploitable sans mot de passe s\u0026rsquo;attaque depuis le trottoir. Sources # Broadcom WPS — Quentin Kaiser, présentation à Hexacon 2026 (16/10/2026) Weekly Security Intelligence Briefing, semaine du 19/10/2026 — Tech Jacks Solutions ","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/tech-watch/broadcom-wps/","section":"Veille","summary":"Une faille dans le vieux module WPS de Broadcom touche des box et routeurs de nombreuses marques. Elle s’exploite à portée radio, sans le mot de passe Wi-Fi. Pas de CVE, et pas de correctif pour certains modèles anciens.","title":"Box et routeurs : une faille Wi-Fi que certains modèles ne corrigeront jamais","type":"tech-watch"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/tags/cloud/","section":"Tags","summary":"","title":"Cloud","type":"tags"},{"content":"Deux failles, deux attaquants différents, un même réflexe : effacer les journaux de l\u0026rsquo;appareil piraté.\nCe qui s\u0026rsquo;est passé # Ivanti Connect Secure. Le 13 octobre 2026, Volexity a révélé une chaîne de trois failles inconnues sur ce boîtier VPN. L\u0026rsquo;appareil attaqué était à jour au moment des faits. L\u0026rsquo;attaquant a obtenu les droits les plus élevés (root), récupéré des identifiants et des clés de récupération BitLocker, puis modifié les journaux pour effacer les traces de son passage. L\u0026rsquo;outil de vérification d\u0026rsquo;intégrité fourni par Ivanti ne détecte pas cette attaque, car le code n\u0026rsquo;est modifié qu\u0026rsquo;en mémoire.\nBeyondTrust Remote Support. Le 15 octobre 2026, Mandiant a décrit l\u0026rsquo;exploitation d\u0026rsquo;une faille de cet outil d\u0026rsquo;assistance à distance depuis fin août. L\u0026rsquo;attaquant a installé un web shell, récupéré des identifiants stockés, et supprimé les journaux de l\u0026rsquo;appareil tout au long de l\u0026rsquo;intrusion.\nPourquoi c\u0026rsquo;est important # Ces équipements sont exposés à Internet et ont une position privilégiée dans le réseau. Une fois l\u0026rsquo;attaquant à l\u0026rsquo;intérieur avec les droits les plus élevés, tout ce qui est stocké sur l\u0026rsquo;appareil est à sa portée, journaux compris.\nMandiant recommande donc d\u0026rsquo;envoyer les journaux de l\u0026rsquo;appareil en continu vers un système de collecte externe (SIEM), et de garder aussi ceux des équipements autour : pare-feu, proxy. Et il note qu\u0026rsquo;une interruption dans les journaux transmis est en soi un indice fort de manipulation.\nCe qu\u0026rsquo;il faut en retenir # Un journal stocké uniquement sur l\u0026rsquo;appareil compromis ne prouve plus rien. Il doit partir ailleurs, au fil de l\u0026rsquo;eau, avant que l\u0026rsquo;attaquant arrive. Le silence est un signal. Une source qui cesse soudain d\u0026rsquo;envoyer ses journaux mérite une alerte, pas un haussement d\u0026rsquo;épaules. « À jour » ne veut pas dire « sûr ». Le boîtier Ivanti était à jour : seules des traces conservées ailleurs permettent de reconstituer ce qui s\u0026rsquo;est passé. Croiser les sources. Les journaux du pare-feu ou du proxy devant l\u0026rsquo;appareil gardent une trace que l\u0026rsquo;attaquant ne peut pas modifier depuis l\u0026rsquo;appareil. Sources # Ivanti Connect Secure zero-day actively exploited — CyberScoop (13/10/2026) Attackers chained three Ivanti zero-days to gain root on fully patched VPN appliances — Help Net Security (14/10/2026) ARMORY CASTLE exploits BeyondTrust — Mandiant / Google Threat Intelligence (15/10/2026) ","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/tech-watch/wiped-appliance-logs/","section":"Veille","summary":"Ivanti Connect Secure et BeyondTrust Remote Support : deux failles, deux attaquants, et dans les deux cas des journaux effacés ou modifiés sur l’appareil piraté. Des journaux qui restent sur l’équipement ne prouvent plus rien.","title":"Deux attaques, un même réflexe : effacer les journaux","type":"tech-watch"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/tags/devops/","section":"Tags","summary":"","title":"DevOps","type":"tags"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/tags/end-of-life/","section":"Tags","summary":"","title":"End of Life","type":"tags"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/tags/fin-de-support/","section":"Tags","summary":"","title":"Fin De Support","type":"tags"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/tags/fournisseurs/","section":"Tags","summary":"","title":"Fournisseurs","type":"tags"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/tags/journaux/","section":"Tags","summary":"","title":"Journaux","type":"tags"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/tags/logging/","section":"Tags","summary":"","title":"Logging","type":"tags"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/tags/microsoft-365/","section":"Tags","summary":"","title":"Microsoft 365","type":"tags"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/tags/mises-%C3%A0-jour/","section":"Tags","summary":"","title":"Mises À Jour","type":"tags"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/tags/monitoring/","section":"Tags","summary":"","title":"Monitoring","type":"tags"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/tags/networking/","section":"Tags","summary":"","title":"Networking","type":"tags"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/tags/nextcloud/","section":"Tags","summary":"","title":"Nextcloud","type":"tags"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/tags/patching/","section":"Tags","summary":"","title":"Patching","type":"tags"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/tags/r%C3%A9seau/","section":"Tags","summary":"","title":"Réseau","type":"tags"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/tags/supervision/","section":"Tags","summary":"","title":"Supervision","type":"tags"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/tags/tech-watch/","section":"Tags","summary":"","title":"Tech Watch","type":"tags"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/tags/third-parties/","section":"Tags","summary":"","title":"Third Parties","type":"tags"},{"content":"Une application optionnelle, présentée comme destinée aux tests, a suffi pour prendre la main sur des serveurs Nextcloud.\nCe qui s\u0026rsquo;est passé # Nextcloud propose une application, « Collabora Online - Built-in CODE Server » (richdocumentscode), qui télécharge et fait tourner une suite bureautique en ligne directement sur le serveur Nextcloud. Sa fiche la présente comme destinée aux tests locaux, à un usage personnel ou aux petites équipes.\nJusqu\u0026rsquo;à la version 26.4.302, un script de cette application insérait une partie de l\u0026rsquo;adresse demandée dans une commande système. Résultat : une simple requête, sans compte, pouvait exécuter des commandes sur le serveur (CVE-2026-110447). L\u0026rsquo;attaque ne fonctionnait qu\u0026rsquo;à un moment précis : quand le serveur de documents intégré était arrêté, par exemple après un redémarrage, une mise à jour ou un plantage.\nLes premières attaques apparaissent dans les journaux le 10 septembre 2026. Les attaquants ont déposé des web shells en PHP dans le dossier de l\u0026rsquo;application. Le correctif, la version 26.4.303, est sorti le 11 septembre.\nPourquoi c\u0026rsquo;est important # Deux détails rendent ce cas instructif :\nDésactiver l\u0026rsquo;application ne suffisait pas. Ses fichiers restaient sur le serveur et accessibles. L\u0026rsquo;éditeur est clair : il faut la mettre à jour ou la supprimer. L\u0026rsquo;exploitation a commencé la veille du correctif. Un serveur mis à jour ensuite n\u0026rsquo;est plus vulnérable, mais un web shell déposé avant reste en place. Ce qu\u0026rsquo;il faut en retenir # Chaque extension installée fait partie de la surface d\u0026rsquo;attaque, même optionnelle, même rarement utilisée. Ce qui ne sert pas se supprime. Un composant « pour les tests » n\u0026rsquo;a rien à faire en production. Désactiver n\u0026rsquo;est pas supprimer. Tant que le code est sur le disque, il peut être appelé. Mettre à jour ne nettoie pas. Après une faille exploitée, il faut aussi chercher les traces : ici, des fichiers shx*.php dans le dossier de l\u0026rsquo;application et des requêtes suspectes dans les journaux depuis le 10 septembre. Sources # Hackers Backdoor Nextcloud Servers Through Critical Flaw in Collabora\u0026rsquo;s Built-in CODE App — The Hacker News (14/10/2026) Avis de sécurité GHSA-g3vx-3m76-fghh — Collabora Online (GitHub) Vulnerability in Nextcloud app allowed attackers to plant web shells — SC Media ","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/tech-watch/nextcloud-built-in-code/","section":"Veille","summary":"Une application Nextcloud présentée comme destinée aux tests permettait d’exécuter des commandes sur le serveur sans s’identifier. Des attaquants y ont déposé des web shells, et la désactiver ne suffisait pas.","title":"Une application « pour les tests » a ouvert des serveurs Nextcloud","type":"tech-watch"},{"content":"Les attaquants n\u0026rsquo;ont pas volé un seul mot de passe utilisateur. Ils se sont connectés en tant qu\u0026rsquo;application de sauvegarde.\nCe qui s\u0026rsquo;est passé # ConnectWise Cloud Backup (anciennement SkyKick) sauvegarde les données Microsoft 365 de ses clients : messagerie, OneDrive, SharePoint, Teams. Pour cela, chaque client a autorisé l\u0026rsquo;application à accéder à son environnement.\nLe 15 octobre 2026, entre 6 h 13 et 8 h 34 UTC, des attaquants ont utilisé un identifiant de l\u0026rsquo;application, volé chez l\u0026rsquo;éditeur, pour se connecter en tant qu\u0026rsquo;application chez ses clients, depuis une seule adresse IP et de façon automatisée. Au 16 octobre, Huntress confirmait des connexions non autorisées dans 162 environnements. Selon une mise à jour, l\u0026rsquo;adresse a tenté de se connecter à près de 1 000 environnements, avec succès dans plus de 300.\nDans une cinquantaine d\u0026rsquo;environnements surveillés par Huntress, des applications ConnectWise se sont attribué des rôles d\u0026rsquo;administration, surtout Exchange. Dans au moins un cas, l\u0026rsquo;une d\u0026rsquo;elles s\u0026rsquo;est donné le rôle d\u0026rsquo;administrateur global, puis a ajouté de nouveaux secrets à deux autres applications : de quoi revenir plus tard.\nConnectWise a coupé l\u0026rsquo;accès au service le 17 octobre. L\u0026rsquo;éditeur dit n\u0026rsquo;avoir, à ce stade, aucun indice que les données sauvegardées aient été compromises.\nPourquoi c\u0026rsquo;est important # Une connexion « en tant qu\u0026rsquo;application » n\u0026rsquo;implique aucun utilisateur. Il n\u0026rsquo;y a donc ni mot de passe à saisir ni double authentification à valider. Les protections pensées pour les comptes ne s\u0026rsquo;appliquent pas.\nOr une application de sauvegarde a, par nature, accès à presque tout. Elle concentre les droits de lecture de toute l\u0026rsquo;organisation. Microsoft parle d\u0026rsquo;une attaque active de la chaîne d\u0026rsquo;approvisionnement.\nCe qu\u0026rsquo;il faut en retenir # Une application tierce est une identité à part entière, souvent avec plus de droits que n\u0026rsquo;importe quel salarié. Il faut savoir lesquelles ont accès à quoi, et retirer celles qui ne servent plus. La double authentification protège les comptes, pas les applications. Les connexions et les changements de rôle des applications doivent être surveillés comme ceux des administrateurs. Désactiver plutôt que supprimer. Huntress recommande de désactiver l\u0026rsquo;application concernée sans la supprimer, pour garder l\u0026rsquo;historique, puis de vérifier tous les secrets ajoutés aux applications depuis le 13 octobre. La sécurité d\u0026rsquo;un fournisseur fait partie de la sienne. C\u0026rsquo;est précisément ce que demandent des réglementations comme NIS2. Sources # ConnectWise (SkyKick) Vendor Credentials Abused in M365 Attacks — Huntress (16/10/2026) Hackers breach Microsoft 365 tenants via ConnectWise supply chain attack — BleepingComputer (17/10/2026) ConnectWise Cloud Backup Compromise in Microsoft 365: What Happened and What to Do Now — Security Boulevard ","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/tech-watch/connectwise-cloud-backup/","section":"Veille","summary":"Les attaquants n’ont piraté aucun compte : ils se sont connectés en tant que l’application de sauvegarde ConnectWise, déjà autorisée chez ses clients. La double authentification des utilisateurs n’entrait pas en jeu.","title":"Une application de sauvegarde a ouvert 162 environnements Microsoft 365","type":"tech-watch"},{"content":"Chaque semaine, une actualité cybersécurité, DevOps ou réseau, parfois développement web, vérifiée et sourcée, avec trois questions : que s\u0026rsquo;est-il passé, pourquoi c\u0026rsquo;est important, et ce qu\u0026rsquo;il faut en retenir en pratique.\n","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/tech-watch/","section":"Veille","summary":"","title":"Veille","type":"tech-watch"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/tags/vpn/","section":"Tags","summary":"","title":"VPN","type":"tags"},{"content":"","date":"20 octobre 2026","externalUrl":null,"permalink":"/fr/tags/wi-fi/","section":"Tags","summary":"","title":"Wi-Fi","type":"tags"},{"content":"","date":"16 octobre 2026","externalUrl":null,"permalink":"/fr/tags/friday-fun-fact/","section":"Tags","summary":"","title":"Friday Fun Fact","type":"tags"},{"content":"Chaque vendredi, une anecdote vraie et sourcée sur la cybersécurité, le DevOps, les réseaux ou le développement web : un incident célèbre, l\u0026rsquo;origine d\u0026rsquo;un terme, une erreur historique. Avec, quand c\u0026rsquo;est possible, ce qu\u0026rsquo;on peut en retenir aujourd\u0026rsquo;hui.\n","date":"16 octobre 2026","externalUrl":null,"permalink":"/fr/fun-facts/","section":"Friday Fun Facts","summary":"","title":"Friday Fun Facts","type":"fun-facts"},{"content":"","date":"16 octobre 2026","externalUrl":null,"permalink":"/fr/tags/histoire/","section":"Tags","summary":"","title":"Histoire","type":"tags"},{"content":"","date":"16 octobre 2026","externalUrl":null,"permalink":"/tags/history/","section":"Tags","summary":"","title":"History","type":"tags"},{"content":"Chaque fois que vous connectez vos écouteurs, vous faites appel à un roi danois mort il y a plus de mille ans.\nUn roi à la dent bleue # Harald Gormsson règne sur le Danemark au Xe siècle. On retient de lui qu\u0026rsquo;il a unifié les Danois et, selon la tradition, placé aussi la Norvège sous son autorité. Son surnom, Blåtand en danois, « dent bleue », s\u0026rsquo;expliquerait par une dent morte devenue bleu foncé ou grise.\nUn nom de code autour d\u0026rsquo;une bière # Au milieu des années 1990, Intel, Ericsson et Nokia commencent à travailler ensemble sur un standard radio à courte portée, pour relier téléphones et ordinateurs sans câble. Il faut un nom au projet.\nFin 1997, après un séminaire sur le sans-fil à Toronto, Jim Kardach, ingénieur chez Intel, va boire quelques bières avec Sven Mattisson, ingénieur suédois chez Ericsson. La conversation dérive sur les Vikings : Mattisson lui raconte l\u0026rsquo;histoire scandinave à travers Orm le Rouge (The Long Ships), un roman viking de l\u0026rsquo;écrivain suédois Frans G. Bengtsson. Kardach propose « Bluetooth » comme nom de code. Comme il l\u0026rsquo;expliquera plus tard, Harald était célèbre pour avoir uni la Scandinavie, « tout comme nous voulions unir l\u0026rsquo;industrie du PC et celle du téléphone mobile ».\nLe provisoire qui est resté # Le nom ne devait tenir que le temps que le marketing trouve mieux. Deux candidats étaient en lice :\nPAN (Personal Area Networking), le favori, mais le terme renvoyait déjà des dizaines de milliers de résultats en ligne : impossible de se démarquer. RadioWire, mais la recherche de marque n\u0026rsquo;a pas pu être terminée avant le lancement. Faute d\u0026rsquo;autre option prête à temps, c\u0026rsquo;est le nom provisoire qui est parti. Il s\u0026rsquo;était déjà répandu dans toute l\u0026rsquo;industrie. Il n\u0026rsquo;a jamais été remplacé.\nLe logo est une signature # Le logo Bluetooth n\u0026rsquo;est pas une forme abstraite. C\u0026rsquo;est une rune liée : deux runes du futhark récent fusionnées en un seul symbole, ᚼ (Hagall, H) et ᛒ (Bjarkan, B). Les initiales de Harald à la dent bleue.\nCe que tout admin reconnaîtra # Rien n\u0026rsquo;est plus permanent qu\u0026rsquo;une solution temporaire. Un serveur de test, un contournement rapide, un nom « en attendant de trouver mieux » : si ça marche, ça reste. Le Bluetooth en est simplement l\u0026rsquo;exemple le plus célèbre, et sans doute le seul avec un roi viking à la clé.\nSources # Origin of the Bluetooth name — Bluetooth SIG Bluetooth — Wikipédia (EN) Harald Bluetooth — Wikipédia (EN) How a Viking king inspired one of our best-known modern technologies — The Local (2021) Illustration : les deux runes sont présentées séparément. Le logo Bluetooth lui-même est une marque déposée du Bluetooth SIG.\n","date":"16 octobre 2026","externalUrl":null,"permalink":"/fr/fun-facts/the-viking-behind-bluetooth/","section":"Friday Fun Facts","summary":"Le Bluetooth ne devait être qu’un nom de code provisoire, emprunté à un roi viking. Il n’a jamais été remplacé.","title":"Le Viking derrière le Bluetooth","type":"fun-facts"},{"content":"","date":"16 octobre 2026","externalUrl":null,"permalink":"/fr/tags/sans-fil/","section":"Tags","summary":"","title":"Sans Fil","type":"tags"},{"content":"","date":"16 octobre 2026","externalUrl":null,"permalink":"/tags/wireless/","section":"Tags","summary":"","title":"Wireless","type":"tags"},{"content":"Supprimer un mot de passe de GitHub ne le désactive pas. 543 699 identifiants le prouvent.\nCe qui s\u0026rsquo;est passé # Le 29 septembre 2026, Truffle Security a publié une étude fondée sur The Stack v3, un jeu de données de code GitHub public collecté pour entraîner des IA : 224 millions de dépôts et 58 milliards de fichiers, récupérés jusqu\u0026rsquo;en août 2025.\nLes chercheurs y ont trouvé 1 103 438 identifiants exposés. Fin juillet 2026, ils ont testé chacun auprès du service qui l\u0026rsquo;avait émis : 543 699 fonctionnaient encore.\nQuelques chiffres marquants :\nle plus ancien identifiant encore valide est une clé AWS publiée en 2009, active depuis 16 ans ; en médiane, un identifiant était public depuis 784 jours ; près de 200 000 identifiants encore valides ont été publiés après que GitHub a activé par défaut le blocage des secrets (push protection), en février 2024. Pourquoi c\u0026rsquo;est important # Le résultat le plus intéressant n\u0026rsquo;est pas le volume, c\u0026rsquo;est la cause. La survie d\u0026rsquo;un secret dépend de sa révocation, pas de sa détection :\nles jetons que leur fournisseur révoque automatiquement (GitHub, npm) sont quasiment tous morts : seuls 260 jetons GitHub et un unique jeton npm fonctionnaient encore ; les chaînes de connexion aux bases de données (MongoDB, Postgres, MySQL), que personne ne révoque automatiquement, sont presque toutes encore actives. Le blocage des secrets a réduit environ de moitié la fréquence à laquelle les secrets concernés arrivent dans du code public. Mais, comme l\u0026rsquo;écrivent les chercheurs, il « n\u0026rsquo;a rien changé à ce qui arrive à un identifiant une fois qu\u0026rsquo;il est publié ». Et environ la moitié des identifiants encore valides sont de types que ce blocage ne couvre pas par défaut.\nCe qu\u0026rsquo;il faut en retenir # Un secret publié est compromis, même si le commit est supprimé une minute après. On le change d\u0026rsquo;abord, on nettoie l\u0026rsquo;historique ensuite. Bloquer les fuites futures ne règle pas celles du passé. Il faut scanner tout l\u0026rsquo;historique de ses dépôts, en particulier ce qui a été publié avant février 2024. Préférer des identifiants à durée de vie courte. La plupart des secrets exposés auraient expiré sans dommage s\u0026rsquo;ils avaient eu une date d\u0026rsquo;expiration. Vérifier ses fournisseurs. Le service utilisé révoque-t-il automatiquement les clés exposées ? Sinon, la détection seule laisse la clé fonctionner. Pour Norrøn Voyages, l\u0026rsquo;entreprise fictive de mon lab, ce sera une règle dès la phase 6 : aucun secret dans Git, et tout secret qui s\u0026rsquo;y retrouve est changé immédiatement.\nSources # GitHub Repos Exposed 543,699 Credentials. Nobody Revoked Them. — Truffle Security (29/09/2026) 500,000 Active Credentials Left Exposed on GitHub — SecurityWeek (01/10/2026) ","date":"11 octobre 2026","externalUrl":null,"permalink":"/fr/tech-watch/github-secrets-not-revoked/","section":"Veille","summary":"Sur 1,1 million d’identifiants exposés dans des dépôts GitHub publics, 543 699 fonctionnaient encore en juillet 2026. Le problème n’est pas la fuite, c’est l’absence de révocation.","title":"543 699 secrets GitHub fonctionnent encore. Personne ne les a révoqués.","type":"tech-watch"},{"content":"","date":"11 octobre 2026","externalUrl":null,"permalink":"/fr/tags/architecture/","section":"Tags","summary":"","title":"Architecture","type":"tags"},{"content":"","date":"11 octobre 2026","externalUrl":null,"permalink":"/fr/tags/devsecops/","section":"Tags","summary":"","title":"DevSecOps","type":"tags"},{"content":"","date":"11 octobre 2026","externalUrl":null,"permalink":"/fr/tags/gestion-des-secrets/","section":"Tags","summary":"","title":"Gestion Des Secrets","type":"tags"},{"content":"","date":"11 octobre 2026","externalUrl":null,"permalink":"/fr/tags/github/","section":"Tags","summary":"","title":"GitHub","type":"tags"},{"content":"Heading North Lab, c\u0026rsquo;est le volet pratique de ma reconversion. Plutôt que d\u0026rsquo;accumuler des exercices isolés, je construis une seule infrastructure sur mon propre serveur Proxmox, et je la fais grandir au rythme de ma formation DevOps : virtualisation, segmentation réseau, durcissement, CI/CD, conteneurs, infrastructure as code, supervision, et enfin détection.\nPourquoi un lab au long cours plutôt que des tutoriels séparés ?\nTout est lié. Chaque phase s\u0026rsquo;appuie sur les précédentes, comme dans une vraie entreprise : ce que je mets en place en phase 2 doit tenir jusqu\u0026rsquo;à la phase 12. Chaque choix a une raison. Le lab suit les besoins d\u0026rsquo;une entreprise fictive : chaque décision technique répond à un problème concret. Les erreurs en font partie. Je documente ce qui a marché, ce qui a cassé et ce que j\u0026rsquo;en ai appris. Les articles ci-dessous sont dans l\u0026rsquo;ordre : commencez par le premier et suivez le projet pas à pas.\n","date":"11 octobre 2026","externalUrl":null,"permalink":"/fr/heading-north-lab/","section":"Heading North Lab","summary":"","title":"Heading North Lab","type":"heading-north-lab"},{"content":"","date":"11 octobre 2026","externalUrl":null,"permalink":"/fr/tags/heading-north-lab/","section":"Tags","summary":"","title":"Heading North Lab","type":"tags"},{"content":"","date":"11 octobre 2026","externalUrl":null,"permalink":"/fr/tags/phase-0/","section":"Tags","summary":"","title":"Phase 0","type":"tags"},{"content":"","date":"11 octobre 2026","externalUrl":null,"permalink":"/tags/scenario/","section":"Tags","summary":"","title":"Scenario","type":"tags"},{"content":"","date":"11 octobre 2026","externalUrl":null,"permalink":"/fr/tags/sc%C3%A9nario/","section":"Tags","summary":"","title":"Scénario","type":"tags"},{"content":"","date":"11 octobre 2026","externalUrl":null,"permalink":"/tags/secrets-management/","section":"Tags","summary":"","title":"Secrets Management","type":"tags"},{"content":"","date":"9 octobre 2026","externalUrl":null,"permalink":"/fr/tags/cybers%C3%A9curit%C3%A9/","section":"Tags","summary":"","title":"Cybersécurité","type":"tags"},{"content":"","date":"9 octobre 2026","externalUrl":null,"permalink":"/tags/cybersecurity/","section":"Tags","summary":"","title":"Cybersecurity","type":"tags"},{"content":"","date":"9 octobre 2026","externalUrl":null,"permalink":"/fr/tags/honeypot/","section":"Tags","summary":"","title":"Honeypot","type":"tags"},{"content":"75 centimes. C\u0026rsquo;est tout ce qui manquait sur une facture informatique. Et c\u0026rsquo;est ce qui a fait tomber un réseau d\u0026rsquo;espionnage.\nUne erreur d\u0026rsquo;arrondi qui n\u0026rsquo;en était pas une # En 1986, Cliff Stoll est un astronome devenu administrateur système au Lawrence Berkeley Laboratory, en Californie. Les chercheurs y paient le temps machine qu\u0026rsquo;ils utilisent, et son responsable lui demande d\u0026rsquo;expliquer un écart de 75 centimes dans la comptabilité.\nLa plupart des gens y auraient vu une erreur d\u0026rsquo;arrondi. Stoll, lui, creuse. Il remonte jusqu\u0026rsquo;à un utilisateur inconnu qui a consommé neuf secondes de calcul sans payer. Pire : l\u0026rsquo;intrus a obtenu les droits root sur le système.\nDix mois de traque # Plutôt que de simplement bloquer l\u0026rsquo;intrus, Stoll et ses collègues choisissent de l\u0026rsquo;observer. Pendant près de dix mois, Stoll suit chacune de ses connexions, consigne tout dans un carnet de bord, et découvre que le laboratoire n\u0026rsquo;est qu\u0026rsquo;un point de passage : l\u0026rsquo;intrus s\u0026rsquo;en sert pour atteindre des systèmes militaires américains.\nLe piège # Stoll remarque que l\u0026rsquo;intrus s\u0026rsquo;intéresse au programme de défense antimissile « Star Wars » (SDI). Il crée donc un faux compte « SDInet », rempli de documents à l\u0026rsquo;air important mais sans valeur. L\u0026rsquo;appât fonctionne : l\u0026rsquo;intrus reste connecté assez longtemps pour que la connexion soit tracée à travers les réseaux internationaux. On le présente souvent comme l\u0026rsquo;un des premiers usages documentés d\u0026rsquo;un honeypot.\nLa piste mène en Allemagne de l\u0026rsquo;Ouest, jusqu\u0026rsquo;à Markus Hess, qui revendait le fruit de ses intrusions au KGB. Il est reconnu coupable d\u0026rsquo;espionnage en 1990.\nCe qu\u0026rsquo;on en retient # Une attaque se cache rarement dans une grosse alerte évidente. Elle se cache dans la petite anomalie que personne ne prend le temps d\u0026rsquo;expliquer. L\u0026rsquo;enquête de Stoll montre aussi la valeur de deux réflexes indispensables aujourd\u0026rsquo;hui :\nConserver et lire ses logs. Sans les relevés de facturation, il n\u0026rsquo;y aurait eu aucun écart à remarquer. Tout documenter. Le carnet de Stoll a permis de comprendre les méthodes de l\u0026rsquo;attaquant, puis de prouver les faits. Sources # Clifford Stoll, The Cuckoo\u0026rsquo;s Egg (1989) Clifford Stoll, « Stalking the Wily Hacker », Communications of the ACM (1988) Markus Hess — Wikipedia The Cuckoo\u0026rsquo;s Egg — Wikipedia How a Berkeley eccentric beat the Russians — California Magazine Illustration : reconstitution fictive d\u0026rsquo;un relevé comptable, pas un document original de 1986.\n","date":"9 octobre 2026","externalUrl":null,"permalink":"/fr/fun-facts/the-75-cent-hacker/","section":"Friday Fun Facts","summary":"En 1986, un écart de 75 centimes dans la facturation d’un laboratoire mène un astronome devenu administrateur système jusqu’à un pirate qui vendait des secrets au KGB.","title":"Le hacker à 75 centimes","type":"fun-facts"},{"content":"","date":"14 janvier 2026","externalUrl":null,"permalink":"/fr/tags/active-directory/","section":"Tags","summary":"","title":"Active Directory","type":"tags"},{"content":"","date":"14 janvier 2026","externalUrl":null,"permalink":"/fr/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","date":"14 janvier 2026","externalUrl":null,"permalink":"/fr/tags/cisco/","section":"Tags","summary":"","title":"Cisco","type":"tags"},{"content":"","date":"14 janvier 2026","externalUrl":null,"permalink":"/fr/tags/glpi/","section":"Tags","summary":"","title":"GLPI","type":"tags"},{"content":"","date":"14 janvier 2026","externalUrl":null,"permalink":"/fr/tags/gpo/","section":"Tags","summary":"","title":"GPO","type":"tags"},{"content":"Mon parcours passe par plusieurs métiers : le développement web, puis les systèmes et réseaux, et aujourd\u0026rsquo;hui le DevOps, avec le cap sur le DevSecOps. Cette page rassemble les projets réalisés à chaque étape.\nPour chaque projet, vous trouverez :\nson domaine, indiqué par une étiquette ; son contexte : projet de formation, exercice d\u0026rsquo;entraînement ou projet personnel ; ce que j\u0026rsquo;ai réellement réalisé, et les technologies utilisées ; le lien vers le code, et vers la démo en ligne quand le projet s\u0026rsquo;y prête. Certains projets datent de quelques années. Je les présente tels quels : ils montrent d\u0026rsquo;où je viens.\nLe projet au long cours, lui, a sa propre rubrique : Heading North Lab.\n","date":"14 janvier 2026","externalUrl":null,"permalink":"/fr/projects/","section":"Projets","summary":"","title":"Projets","type":"projects"},{"content":"","date":"14 janvier 2026","externalUrl":null,"permalink":"/fr/categories/syst%C3%A8mes-et-r%C3%A9seaux/","section":"Categories","summary":"","title":"Systèmes Et Réseaux","type":"categories"},{"content":"","date":"14 janvier 2026","externalUrl":null,"permalink":"/categories/systems-and-networks/","section":"Categories","summary":"","title":"Systems and Networks","type":"categories"},{"content":"","date":"14 janvier 2026","externalUrl":null,"permalink":"/fr/tags/tssr/","section":"Tags","summary":"","title":"TSSR","type":"tags"},{"content":"","date":"9 janvier 2023","externalUrl":null,"permalink":"/fr/categories/d%C3%A9veloppement-web/","section":"Categories","summary":"","title":"Développement web","type":"categories"},{"content":"","date":"9 janvier 2023","externalUrl":null,"permalink":"/fr/tags/exercice/","section":"Tags","summary":"","title":"Exercice","type":"tags"},{"content":"","date":"9 janvier 2023","externalUrl":null,"permalink":"/tags/exercise/","section":"Tags","summary":"","title":"Exercise","type":"tags"},{"content":"","date":"9 janvier 2023","externalUrl":null,"permalink":"/fr/tags/javascript/","section":"Tags","summary":"","title":"JavaScript","type":"tags"},{"content":"","date":"9 janvier 2023","externalUrl":null,"permalink":"/categories/web-development/","section":"Categories","summary":"","title":"Web development","type":"categories"},{"content":"","date":"30 novembre 2022","externalUrl":null,"permalink":"/fr/tags/css/","section":"Tags","summary":"","title":"CSS","type":"tags"},{"content":"","date":"26 novembre 2022","externalUrl":null,"permalink":"/fr/tags/node.js/","section":"Tags","summary":"","title":"Node.js","type":"tags"},{"content":"","date":"26 novembre 2022","externalUrl":null,"permalink":"/fr/tags/openclassrooms/","section":"Tags","summary":"","title":"OpenClassrooms","type":"tags"},{"content":"","date":"26 novembre 2022","externalUrl":null,"permalink":"/fr/tags/react/","section":"Tags","summary":"","title":"React","type":"tags"},{"content":"","date":"26 novembre 2022","externalUrl":null,"permalink":"/fr/tags/s%C3%A9curit%C3%A9/","section":"Tags","summary":"","title":"Sécurité","type":"tags"},{"content":"","date":"26 novembre 2022","externalUrl":null,"permalink":"/tags/security/","section":"Tags","summary":"","title":"Security","type":"tags"},{"content":"","date":"11 août 2022","externalUrl":null,"permalink":"/fr/tags/accessibilit%C3%A9/","section":"Tags","summary":"","title":"Accessibilité","type":"tags"},{"content":"","date":"11 août 2022","externalUrl":null,"permalink":"/tags/accessibility/","section":"Tags","summary":"","title":"Accessibility","type":"tags"},{"content":"","date":"11 août 2022","externalUrl":null,"permalink":"/fr/tags/seo/","section":"Tags","summary":"","title":"SEO","type":"tags"},{"content":"","date":"28 juin 2022","externalUrl":null,"permalink":"/fr/tags/sass/","section":"Tags","summary":"","title":"Sass","type":"tags"},{"content":"","externalUrl":null,"permalink":"/fr/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"Le meilleur moyen de me joindre est LinkedIn. Vous pouvez aussi suivre l\u0026rsquo;avancement du lab sur GitHub.\n","externalUrl":null,"permalink":"/fr/contact/","section":"Accueil","summary":"","title":"Contact","type":"page"},{"content":" Profil # Technicien supérieur systèmes et réseaux, je viens du développement web et je me forme aujourd\u0026rsquo;hui au DevOps, avec un cap clair : le DevSecOps.\nC\u0026rsquo;est pendant ma formation de développeur que j\u0026rsquo;ai découvert la cybersécurité. Elle est devenue à la fois le fil conducteur de ma reconversion et une passion, que je pratique régulièrement sur des plateformes d\u0026rsquo;entraînement comme TryHackMe et qui m\u0026rsquo;a mené jusqu\u0026rsquo;à l\u0026rsquo;eJPT. Le TSSR m\u0026rsquo;a ensuite donné des bases solides en systèmes et réseaux ; le Bachelor DevOps m\u0026rsquo;apprend à automatiser, à industrialiser, et à intégrer la sécurité dès la conception.\nDe mon parcours professionnel, je garde un réflexe précieux dans ce métier : appliquer des procédures strictes, sans exception, y compris en situation perturbée. C\u0026rsquo;est exactement ce qu\u0026rsquo;exigent une mise en production, une gestion d\u0026rsquo;incident ou une politique de sécurité.\nJe construis aujourd\u0026rsquo;hui Heading North Lab, une infrastructure complète sur mon propre serveur Proxmox, documentée en public étape par étape. Objectif à moyen terme : travailler dans les pays nordiques.\nFormations et certifications # Bachelor Administrateur Système DevOps (titre RNCP niveau 6, Bac+3) — Studi — en cours Titre professionnel TSSR — Technicien Supérieur Systèmes et Réseaux (RNCP niveau 5, Bac+2) — Studi — formation d\u0026rsquo;octobre 2025 à août 2026 Claude Academy : AI Fluency — Framework and Foundations — Anthropic — octobre 2026 (vérifier) eJPT v2 — eLearnSecurity Junior Penetration Tester — INE — août 2025, valide jusqu\u0026rsquo;en août 2028 (vérifier) Jr Penetration Tester — TryHackMe — octobre 2023 Google Cybersecurity Professional Certificate — Google — août 2023, environ 170 heures (vérifier) Titre professionnel Développeur Intégrateur Web (RNCP niveau 5, Bac+2) — OpenClassrooms — février 2023 Parcours Cisco Network Technician et Cybersecurity Analyst — Cisco Networking Academy Compétences techniques # Systèmes et virtualisation : Linux (Ubuntu), Windows Server, Active Directory, DNS, DHCP, Proxmox, Hyper-V Réseau et sécurité : pfSense, segmentation en VLAN, règles de pare-feu, fondamentaux du test d\u0026rsquo;intrusion DevOps : Git, GitHub, GitHub Actions (CI/CD), Hugo — Docker, Kubernetes, Terraform et Ansible en cours d\u0026rsquo;apprentissage dans le cadre du Bachelor Développement : HTML, CSS, JavaScript, Python Projets # Heading North Lab — reconstruire, automatiser et sécuriser l\u0026rsquo;infrastructure d\u0026rsquo;une entreprise fictive sur un serveur Proxmox, en 13 phases documentées. Ce site — site statique bilingue (Hugo), versionné sur GitHub et déployé automatiquement par un pipeline GitHub Actions. Expérience professionnelle # Agent du Service Commercial Train (contrôleur) — SNCF\nTER Hauts-de-France — depuis 2022 OUIGO — 2013 à 2022 Paris Austerlitz — 2010 à 2013 Application rigoureuse des procédures de sûreté et de sécurité, gestion des situations perturbées et des conflits à bord, opérations de contrôle, relation client au quotidien.\nAgent immobilier — diverses agences — 1998 à 2010\nChef de secours incendie et sauvetage — Service national — 1996 à 1998\nFormation initiale # Baccalauréat STT (comptabilité et gestion) — Lycée Ribot, Saint-Omer — 1994 BEP Comptabilité — Lycée Monsigny, Saint-Omer — 1992 Langues # Français : langue maternelle Anglais : B2 Norvégien (bokmål) : en apprentissage Islandais : en apprentissage ","externalUrl":null,"permalink":"/fr/cv/","section":"Accueil","summary":"","title":"CV","type":"page"},{"content":"","externalUrl":null,"permalink":"/fr/series/","section":"Series","summary":"","title":"Series","type":"series"}]