Security
guest@6admin.io:~$ ls ~/tags/security
Le coût était la seule protection
Ce qu'on jugeait peu risqué ne l'était souvent pas, c'était seulement coûteux à atteindre. Quand des agents automatisés font tomber ce coût, la protection disparaît avec lui. Rien de neuf dans la capacité, tout est dans le prix et c'est la défense qui doit en tirer les conséquences.
augure et lictor : décider une exploitation et en rendre compte
Tous les frameworks d'exploitation savent lancer une technique. Aucun ne sait vous dire laquelle lancer, pourquoi et le prouver. augure décide et rend compte, lictor descend de la décision aux octets et exécute et chaque coup se rejoue. Vingt ans de raisonnement, deux outils, zéro boîte noire.
Un pin bloquant, quatre CVE : la rustine qui gagne est celle qui disparaît
Comment un audit de sécurité sur une image Docker Foreman a fini en contributions mergées dans le cœur de Foreman, de Dynflow et de Jenkins.
vim-plugin-manager : injection d'arguments planquée dans un .gitmodules
Seize mois de durcissement compressés en une histoire: une injection d'argument git prouvée, cachée dans des noms de branche .gitmodules, un budget subprocess piné dans les tests, des plugins détachés qui arrêtent de mentir en se disant à jour et des miroirs de tags périmés qui empoisonnaient chaque update. La saga v1 à v2.2.10.
opencode-mesh: apprendre à mes agents IA à toquer avant d'éditer
Un plugin OpenCode pour la coordination multi-sessions: découverte mDNS, pairing approuvé par l'opérateur avec bearer tokens par pair, boîtes aux lettres, locks de fichiers et workers headless spawnés dans des worktrees natifs. La couche anti-chaos pour plusieurs sessions d'agents sur une machine.
Jenkins sur Windows Server: ce qu'il ne faut pas faire
Un controller Jenkins sous Windows joint au domaine, built-in sur le controller, le 8080 à l'air libre, des identifiants AD en clair: l'anatomie d'une chaîne de compromission et comment la défaire.
BrainForge : une usine de distillation où les experts IA se disputent
Un framework de distillation : transférer le savoir d'experts LLM vers un petit modèle, avec des leçons vérifiées par un procès (experts, avocat du diable, juge indépendant) et sans récitation.
L'agentique en production : un audit n'est pas un pentest
Vingt-cinq ans de métier sans diplôme, des agents LLM au quotidien : où ils excellent (audit), où ils plafonnent (pentest), le piège Ollama qui tronque le contexte en silence, les faux verts, le specification gaming et pourquoi la certification ne mesure rien.
Non, tu n'as pas libéré ton modèle local
Le dialogue où votre modèle se déclare affranchi ne change rien à ses poids. C'est une erreur de catégorie et elle vous fait rater les vraies attaques, qui sont mécaniques et ennuyeuses.
Ansible CI Toolkit v1: l'année où j'ai cessé de faire confiance à ma propre image
La suite durcie: ansible et ansible-lint fusionnés en une image, Kerberos/WinRM pour les cibles Windows, non-root, base pinée par digest, un lock de constraints pip, pins transitifs Galaxy et signature cosign. Construit par un CHANGELOG qui se lit comme un journal de CVE.
Le hostgroup cloné qui refusait de se sauvegarder
Un hostgroup Foreman cloné renvoie une erreur 500 à chaque modification. La piste mène à un champ qui gonfle d'une couche base64 à chaque clonage et au passage à un mot de passe administrateur stocké de façon réversible dans la base et recopié dans les logs d'audit.
Une sonde IDS ne voit pas le TLS
Les labs Suricata montés sur du HTTP en clair sont excellents pour la pédagogie, mais ils cachent un angle mort majeur une fois en production : le chiffrement. Une sonde en mode promiscuous voit du TLS et ne peut rien inspecter. Où poser alors l'inspection.
La chaîne de boot, de GRUB à UKI
Pourquoi Canonical dégraisse le GRUB signé pour 26.10, pourquoi le /boot chiffré via GRUB était un faux ami et ce qu'est la réponse moderne à l'attaque Evil Maid.
Trivy, le scanner qui volait les secrets
Le 19 mars 2026, l'outil censé protéger la chaîne d'approvisionnement en est devenu le vecteur. La leçon tient en une phrase : un tag n'est pas une référence de confiance.
L'alignement d'un LLM est une couche mince
Deux techniques opposées, une même conclusion : la sécurité d'un modèle ouvert ne tient pas dans son alignement, elle tient dans qui a la main sur les poids.
Containers, micro-VMs et Firecracker : pourquoi l'isolation n'est pas ce que vous croyez
Les containers partagent le kernel. Une évasion de container est une évasion kernel. Les micro-VMs Firecracker apportent l'isolation hardware à la vitesse du container. Le chain et le link sont deux choses différentes.
fnox et age: des secrets chiffrés dans mes repos, sans serveur
fnox, le gestionnaire de secrets de l'auteur de mise, chiffre les secrets directement dans le repo avec age: un fnox.toml versionné, des clés explicites, pas de serveur de secrets à maintenir. Découverte de fin 2025.
La sécurité par l'obscurité n'est pas de la sécurité, l'hygiène numérique si
Vingt ans de commentaires sur le port knocking, le port 22 et les photos de clés : pourquoi l'obscurité seule est vaine, pourquoi Kerckhoffs ne s'étend pas partout et pourquoi la vraie question s'appelle hygiène numérique.
Clean Code vs Vibe Coding (ou comment ne pas finir dans les journaux)
Clean code face au vibe coding: DRY, SOLID, KISS, YAGNI contre la génération de code par LLM. Et pourquoi le TDD est le garde-fou que le vibe coding attendait.
Quelle identité fait tourner le service et qui peut le prouver
Comptes de service Windows: comptes gérés, moindre privilège et traçabilité de ce qui tourne sous quelle identité.
L'ExecutionPolicy PowerShell et ce qu'elle n'est pas
Les ExecutionPolicy PowerShell: ce qu'elles protègent vraiment, ce qu'elles ne protègent pas et les contournements connus.
Durcir WinRM
Durcissement de WinRM: transport, authentification et ce qu'il faut verrouiller avant d'exposer la gestion à distance Windows.
Durcir Proxmox VE
Durcissement de Proxmox VE: accès à l'interface web, séparation des réseaux, cluster et sshd de l'hyperviseur.
Durcir Kubernetes
Durcissement de Kubernetes: RBAC, PodSecurity, NetworkPolicy, secrets et la surface d'attaque d'un cluster mal cadré.
Durcir Docker Swarm
Durcissement de Docker Swarm: secrets, réseau overlay chiffré, rôles de nœuds et surface d'exposition du cluster.
Durcir Docker
Durcissement de Docker: démon, capabilities, montages et pourquoi une évasion de container est une évasion kernel.
Durcir DHCP
Durcissement de l'infrastructure DHCP: snooping, baux maîtrisés et défense contre les serveurs pirates.
Durcir SSH : contrôle d'accès et surveillance
Durcir sshd sans se mentir: pas de root, comptes nominatifs, clés uniquement et la surveillance qui rend les actions imputables.
Durcir l'infrastructure DNS
Durcissement de l'infrastructure DNS: vues, limitation de transfert de zone, DNSSEC et résolveurs qui ne fuient pas.
Séparer le domaine interne du domaine externe
Séparer les domaines de confiance: cloisonner les rôles, les comptes et les réseaux pour contenir une compromission.
Le filtrage egress, le contrôle que tout le monde saute
Sécuriser le trafic sortant: filtrage egress, listes d'autorisation et détection d'un service qui parle à qui il ne devrait pas.
Le trafic entrant : exposer moins et garder ce qui reste
Sécuriser le trafic entrant: pare-feu, exposition minimale, reverse proxy et terminaison TLS propre.
La segmentation réseau
Segmentation et isolation réseau: VLAN, zones, routage et les frontières qu'on ne franchit pas sans raison.
Limites de ressources : empêcher une machine d'être convaincue de mourir
Plafonner les ressources avant qu'un fork bomb ou une fuite ne couche la machine: pam_limits, cgroups, systemd.
Durcir le système de fichiers
Durcissement du système de fichiers: options de montage, permissions, SUID, attributs immuables et séparation des partitions.
Durcir l'OS et le kernel Linux
Durcissement de l'OS et du kernel: sysctl, modules signés, comptes, sshd et les réglages qui tiennent en production.
Sudo et LOLBins
Pourquoi la granularité de sudoers est du théâtre face à GTFOBins et ce qui limite vraiment l'escalade: sudoedit, NOEXEC, wrappers, isolation.
The Bastion et Guacamole : les deux battants de la porte d'entrée
Le Bastion d'OVHcloud pour les gens du shell, Apache Guacamole pour les gens du bureau: deux approches d'un même problème, qui a le droit de toucher à quoi et qui a regardé quoi.
Le :ro sur le socket Docker ne protège rien
Monter la socket Docker en lecture seule est un rituel rassurant et parfaitement inutile. Le flag agit au niveau VFS, la socket parle en I/O réseau, les deux ne se croisent jamais.
SSH en 2021 : ce que treize ans ont changé depuis la série de 2008
La série SSH de ce blog s'arrêtait en 2013 avec PKCS#8. Voici la version 2021, complète et sécurisée: Ed25519, les clés FIDO2, les certificats, le durcissement sshd, Include et Match, ProxyJump et le multiplexage. Ce que 2008 faisait avec espoir, 2021 le fait avec des primitives.
Compter les CVE ne dit rien de la sécurité
Pourquoi aligner le nombre de CVE publiées pour déclarer un système plus sûr qu'un autre est un raisonnement biaisé. Une expérience de pensée avec deux OS fictifs et le rappel que la plupart des failles propriétaires ne sont ni divulguées ni publiques.
Docker rootless : le démon sans privilèges
Docker en mode rootless, le démon qui tourne en utilisateur normal et pourquoi c'est vital sur un serveur multi-tenant.
Portknocking et tunneling SSH : les tours de magie d'avant WireGuard
WireGuard arrive en 2016 et rend déplacés deux montages chéris de 2008: le portknocking (avec génération automatique de combinaisons, NTP obligatoire et clé USB encfs) et le tunneling SSH. Le ton de l'époque, la démonstration en entreprise jusqu'en 2018 chez un hébergeur et pourquoi un VPN qui ne dit rien gagne.
Hardening SSH : la trilogie de 2017 relue en 2026
En 2017 je répondais à un article de hardening SSH naïf en trois commentaires : root, port, clés. Neuf ans plus tard, les principes tiennent, le contexte a changé : bastions, Windows natif, chaîne d'approvisionnement du client et la menace physique qu'aucune config ne couvre.
SSH : ProxyJump et le multi-hop moderne
ProxyJump, l'option -J arrivée avec OpenSSH 7.3, remplace le vieux ProxyCommand + nc pour traverser un ou plusieurs rebonds. Plus court en ligne de commande, plus propre en config et sans clé qui traîne sur le bastion.
SSH : Augmenter la sécurité de vos clefs avec PKCS#8
Convertir les clés SSH RSA en PKCS#8 avec un chiffrement 3DES renforcé, le dernier article de la série SSH d'origine.
SSH : Restreindre une connexion via clefs privée/publique
Les options authorized_keys pour cantonner une clé SSH sans passphrase à l'exécution d'une tâche précise.
SSH : Authentification multiple avec clefs privés/publiques
Utiliser plusieurs clefs SSH avec des identités distinctes, une par serveur et éviter le Too many authentication failures.
Debsecan : Debian Security Analyzer
Debsecan, l'outil qui génère la liste des vulnérabilités affectant une installation Debian, complémentaire d'apt-listbugs.
Portknocking : génération automatique de combinaisons
La génération automatique de séquences de portknocking depuis la date système, avec NTP obligatoire et clé USB chiffrée.
Fail2ban : lutter contre le bruteforcing
Fail2ban, le bouncer qui bannit les IP qui essayent de forcer vos services, en lisant les logs.
Compilons un script shell avec shc
Shc, le compilateur de scripts shell et pourquoi ce n'est PAS du chiffrement.
ArpON : surveiller son cache ARP
ArpON, le daemon qui bloque les tentatives d'empoisonnement du cache ARP là où Arpwatch ne fait que les signaler.
EncFS : le chiffrement de fichiers sans partition dédiée
EncFS, le chiffrement FUSE qui chiffrerait fichier par fichier sans partition, sans LUKS, sans réinstaller.
radare : un débugger très abouti
Radare, le framework d'analyse binaire en mode console et pourquoi on ne retourne pas à GDB après.
Yersinia : comment rendre malade son administrateur réseau
Yersinia, le framework d'attaque des protocoles de couche 2 et pourquoi votre switch ne vous protège pas comme vous croyez.
tcpdump : analyse de trames et filtre BPF
Tcpdump pour lire le réseau à l'octet près et les filtres BPF qui transforment un déluge de paquets en une seule question.
Nemesis : détection d'un sniffeur réseau
Détecter la carte en mode promiscuous sur son réseau, la face défensive du forgeur de paquets.
Nemesis : forgeur de paquets réseau
Nemesis, l'outil qui forge n'importe quel paquet TCP/IP depuis la ligne de commande, sans écrire de C.
Raw Sockets : forger et sniffer des paquets en C
La suite du mémo sockets: AF_PACKET, SOCK_RAW, les struct iphdr et tcphdr, les checksums manuels, le sniffing en mode promiscuous et le forage de paquets SYN. Ce que font tcpdump et Nemesis, écrit à la main, en root, avec éthique et humour.
SSLH : ssh et https sur le même port
Un mémo de 2007: sslh multiplexe ssh et https sur le port 443, le port unique des pare-feux paranoïaques. Comment ça marche, ce que ça permet et pourquoi (edit 2026) on ne le mettrait plus en prod de nos jours.
PAM: limitez les ressources système
PAM limits, le module qui plafonne les ressources par utilisateur avant que le process ne mange tout le RAM.
SSH: tunneling
Le tunneling SSH, faire traverser n'importe quel protocole par le canal chiffré.
MySQL : perte des identifiants
Récupérer le contrôle de MySQL quand le mot de passe root est perdu, en trois commandes et un redémarrage.
Apache : désactiver l'option TRACE
La méthode TRACE d'HTTP permet le XST (Cross-Site Tracing) et une ligne d'Apache suffit pour la couper.
SSH: authentification via clefs privé/publique
Les clefs SSH, l'alternative au mot de passe qui est aussi un mécanisme d'autorisation.
Les liens : hard links et symbolic links et ce qui dépasse le chroot
Les deux types de liens dans Linux, leur différence au niveau inode et pourquoi un symlink dans un chroot peut sortir du chroot.
Root or not root
Su, sudo et la question de savoir qui a le droit de faire quoi sur un système partagé.