Aller au contenu

Filtrage en sortie

Filtrage en sortie (en anglais egress filtering) : filtrage des connexions qu'une machine ouvre vers l'extérieur, qui limite ce qu'un programme compromis peut envoyer ou télécharger.

Une politique d'entrée stricte n'empêche pas un programme compromis d'exfiltrer des données ni de télécharger la suite de son attaque. Sous Linux, ce filtrage se fait au crochet output de Netfilter. Sur sig-outils, la chaîne de sortie nftables passe en policy drop et n'autorise que les besoins connus : DHCP, DNS (53), NTP (123/udp), la base sig-db (5432), HTTPS pour l'Object Storage et les dépôts APT (443), le service de métadonnées Scaleway (169.254.42.42, port 80), après avoir accepté les flux established et related.

Avant de passer en drop, on laisse tourner une semaine une version qui accepte tout en journalisant ce qu'elle refuserait : c'est là qu'apparaît le besoin oublié. Le filtrage reste imparfait : le port 443 ne se restreint pas par adresse quand les adresses du service changent sans préavis (il faudrait un mandataire sortant qui filtre par nom), et le DNS peut servir de canal d'exfiltration. Il ferme pourtant les canaux les plus simples (SSH ou SMTP sortants, ports non standard, rebond vers les autres machines du réseau privé), et compte parmi les mesures de sécurité du traitement au sens du RGPD. Dans Kubernetes, le même principe s'exprime par des NetworkPolicies de type Egress.

Dans les cours

Voir aussi