Outils pour utilisateurs

Outils du site


fr:rapports:2021:11-28

2021/11/28 (Neutriton) : fastnetmon

Météo

Moment informel durant lequel on exprime en peu de mots comment on se sent et si on a une attente forte pour la réunion. Ce n'est pas un moment de discussion mais d'expression individuelle et ce n'est pas obligatoire 🙂

Heure de fin: 17h

Attente(s) forte(s)

Si l'une ou l'autre personne exprime une attente forte, merci de vous en occuper en priorité ou de la noter dans le hub ou dans un point approprié.

Ordre du jour

Definition

Qu'est-ce qu'une DOS ou une DDOS (tour de table): - type d'attaque par le réseau, via un trop grand nombre de requête qui va saturer le serveur (réseau, cpu, ram) - attaque par login / mot de passe (ex. wordpress mis à terre par ce moyen) - DDOS → premier D pour distributed → des requêtes envoyées par des machines depuis plusieurs endroits.

Denial Of Service attack (DOS)

Ce n'est pas un système d'exploitation.

C'est un effort assymétrique entre l'effort de l'attaquant (très faible) et l'effort du serveur à répondre aux requêtes de l'attaquant (très fort)

C'est pas spécifique au réseau, on peut aussi faire une attaque de type DOS sur du matériel physique.

Avoir un formulaire peut demander beaucoup de resources au système pour être traité.

Idée : ne plus permettre de répondre aux requêtes légitimes.

Pour le wordpress, envoyer le formulaire de login plein de fois empêche à d'autres utilisateurs de se connecter au wordpress.

Dans une foire, la pince qui permet d'attrapper des jouets peut être victime d'une attaque DoS : l'attaquant va dire à la pince d'aller toujours à droite, et l'utilisateur ne pourra plus l'utiliser normalement parce que la pince se retrouvera toujours à droite tôt au tard.

D'autres exemples montrent que ce n'est pas une attaque spécifique au réseau.

Si on fait une attaque sur une machine STIB (c'est possible) pour la faire cracher, on fait un DOS. Mais si on est 300 à faire crasher des bornes de la STIB, on fait une DDOS.

L'empêchement de service, c'est quelque chose qui peut être très large.

Distributed Denial Of Service attack (DDOS)

L'idée sera soit de faire crasher ou ralentir sans beaucoup d'effort, soit cela coûte quand même du temps, mais à plusieurs le coût est réparti entre les attaquants.

On fait alors appel à d'autres personnes qui font les mêmes manipulations (comme dans l'exemple de la STIB où se met à 300).

L'amplification : l'effort de l'attaquant est assymétrique à celui de l'attaqué. Incident récent avec un serveur MEMcache, l'idée c'était d'envoyer des petits paquets à memcache avec une certaine IP, et memcache allait envoyer un paquet plus gros à une autre IP. Memcache permet d'amplifier le trafic initial.

Sur 1 serveur MEMcache, DOS, sur 10 000 serveur MEMcache → DDOS.

La vraie vie

Ce qui se passe dans la vraie vie véritable.

Il faut d'abord se rendre compte de l'ampleur. EN 2016, OVH a enregistré une attaque DDOS d'1 TB. Pour Cloudflare, en 2020 → 3 TB.

Pour gérer de telles attaques, il faut avoir cette capacité en interconnexion. Dans le cas d'OVH, il leur fallait plus d'un Tbit de bande passante, 3 chez Cloudflare.

Chaque année, la quantité de bande passante nécessaire augmente.

Acheter un 1Gb de DDOS vers une IP coûte 20 $ de l'heure. C'est très facile à mettre en oeuvre : on paie, on appuie sur play. Cependant, ce ne sont pas des DDOS sophistiquées : le pattern est assez simple et on sait vite les identifier, on peut donc alors nettoyer le trafic.

Tout l'enjeu est de detecter le type de trafic pour pouvoir le filtrer, entre le trafic légitime et le trafic de l'attaquant.

Dans la vrai vie, les types de DDOS qu'on rencontre : l'IoT. C'est typiquement ce type d'objets qui peuvent faire de l'amplification.

Ensuite, certaines attaques DDOS sont plus techniques. > Dans un système DNS, un exemple où ça exploite une faille pour qu'au final ce soit le service DNS lui-même qui se DDOS.

Les DDOS, ça prend beaucoup de temps, si c'est complexe, c'est pénible à gérer. Parfois, se retirer du réseau, “faire le mort”, est la solution la moins pire.

Quand ce sont des attaques simples, c'est assez facile à détecter. Par contre, si c'est une attaque complexe, ça devient difficile à détecter… Notamment, comment détecter ce qui est légitime ? À un moment donné, on va éliminer des requêtes légitimes et tant pis.

Parfois, il faut partir du principe qu'on exclu tout ce qui n'est pas légitime.

Combien de temps dure une DDoS ? Ca dépend de l'effet et de l'effort de l'attaquant… Si le réseau absorbe, au bout d'un moment, l'attaquant va arrêté de mettre des sous

Le réseau de Neutrinet

Qu'est-ce qu'on a, qu'est-ce qu'on risque, qu'est-ce qu'on peut faire ?

On peut absorber 1 Gbit de DDOS… Au-delà, c'est cassé 😞

Parce que le port le plus gros, au niveau des équipements réseaux, qu'on a est de 1Gbit. Si on a un trafic plus grand… pas possible.
C'est pour cette raison qu'en général, lorsqu'on a un peering de 1Gbit, on va aller mettre des ports 10 Gbit pour pouvoir absorber les attaques DDoS.

Attribution

Certaines attaques DDoS sont politiques (là ça continue tant qu'on a assez de personnes pour gérer cette attaque). Certaines sont économiques (avec demande de ranson). Là, soit l'attaquant à son propre réseau de DDoS mais c'est cher… Soit il loue une infra de DDoS mais cher aussi… Donc la limite, c'est quand ça devient trop cher.

Quand les moyens sont étatiques par contre, ça peut durer longtemps…

Il y a également des DDoS dites débiles (erreur humaine ?)

L'attribution d'une DDoS est super compliquée parce qu'une IP n'est pas géolocalisable. On ne sait pas dire que telle IP est à telle endroit, et on sait encore moins dire qui utilise qu'elle IP. On peut avoir une webcam connectée aux états unis qui est manipulée par des russes.

Ce qui est compliqué, c'est de déméler le réseau de botnets qui est utilisé pour la DDoS. Les grosses attaques DDoS sont souvent géopolitiques (élections, énergie, économie, etc.)

Certains programmes utilisés vont être écrits en slaves pour faire penser que c'est les russes qui sont derrières. Pareil, on va retrouver des patterns, mais en fait ils sont réutilisé par d'autres groupes pour faire croire que.

Quand on a une DDoS, il faut néanmoins garder au moins une partie des pcap pour aller porter plainte à la Crime Unit. Si on peut le faire, c'est important de le faire parce que ça peut être utile à d'autres (reconnaissance de pattern, etc.)

Une DDoS peut être utilisée pour détourner l'attention : pendant qu'on combat la DDoS, l'attaquant récupère les infos dans la DB

Protection

Déjà, 1 chose qu'on peut donc faire pour se protéger, c'est augmenter la capacité de nos ports.

Mais il y a tout plein d'autres trucs qu'on peut faire pour se protéger \o/

Deux choix :

  • Liste numérotéeIdentifier le trafic illégitime en bordure du réseau et le bloquer - mais ça veut dire qu'on se bouffe le DDOS jusque là. Un opérateur comme OVH, Scaleway… peuvent se permettre de faire ça. On met alors de l'IA, du deep learning… ce qui semble efficace dans le moment, pour tenter de faire le tri entre le trafic légitime et illégitime. Les équipements en bordures se prennent quand même la DDoS, donc il faut avoir les épaules solides. Cette méthode va absorber la DDoS.
  • Identifier le trafic illégitime toujours en bordure du réseau en fonction de l'IP de l'attaqué, mais au lieu de le bloquer on va le mettre dans un trou : la blackhole. On va annoncer à nos peers et transitaires de blacklister l'IP attaquée. Verixi par exemple va arrêter de transmettre le trafic vers une de nos IPs. Donc, la DDOS est annulée… partout dans le monde, pas sur nos routeurs en bordure, c'est le premier routeur qui reçoit le paquet qui le jette… mais : on jette alors aussi les requêtes légitimes.

Chez Neutrinet, on n'a pas (encore) la capacité de mettre en place le point 1.

Les deux options c'est ce qu'on appelle de la mitigation DDoS, ce qui est un mot difficile à dire pour dire qu'on ne peut pas l'annuler : on accepte qu'elle soit là, et on cherche à être le moins impacté.

Edpnet se prenait dans les pics du 300 Gbit/s et certaines personnes étaient plus ou moins impactées par cette DDoS : https://issues.edpnet.be/?p=3507

Ils ont essayé de faire la technique numéro 1… mais ça n'a pas bien marché, la détection n'était pas fiable à 100%.

A la main

Une solution pour Neutrinet serait de le faire à la main. Ce n'est pas prendre les petits paquets avec nos bras et les envoyer loin loin loin.

Là, on verrait qu'on sature sur tous les ports… on regarderait alors avec tcpdump qui est attaqué. Sauf que, si on est attaqué, c'est pas évident qu'on ait accès aux machines pour un tcpdump.

Il faut se rendre physiquement sur l'infra, ce qui n'est pas non plus évident.

On peut aussi être méchant et demander à Verixi de faire sauter les sessions BGP et reporter le problème sur Gitoyen (attention à la facture plus tard…).

Salut Gitoyen on a un cadeau pour vous 😃

Donc à la main c'est possible, mais c'est contraignant. Et ça nous enferme aussi, on ne voit pas d'où vient le trafic.

Les trucs physique automagique

Il y a des équipements magiques qui se mettent dans des baies, qui coûtent très cher .. 150 000 à un millon… sans la licence. On met ses liens upstream dedans et ça va filtrer le trafic. C'est ce genre d'équipement qu'on a chez des hébergeurs, des fournisseurs d'accès, qui en général ont déjà une capacité à absorber la DDOS.

Une autre catégorie : un genre de fastnetmon, ça gère à notre place la blackhole, et l'annoncer à notre place… mais c'est aussi des équipements chers.

Service en ligne

C'est un truc un peu plus accessible. L'idée c'est que le transitaire s'occupe de nettoyer le trafic à notre place.

C'est plus nous qui nous occupons de l'équipement, c'est un service pris chez notre transitaire.

Verixi ne le fait pas, mais il existe des transitaires particuliers : au lieu que ce soit Verixi qui annonce nos IPs c'est le transitaire anti-DDoS qui va le faire.

On utilise alors Verixi comme transitaire pour y accéder (car on doit pouvoir accéder à internet), mais il ne sert qu'à transiter le trafic vers notre transitaire.

Inconvénients : - Cette solution tord la construction du réseau : aux yeux du monde, le fait que Verixi ne soit plus notre transitaire, on recentralise notre trafic auprès du même acteur - alors que le réseau est prévu pour être décentralisé Avantages: - C'est très rapide à mettre en place, cela peut être fait en quelques heures.

En terme de prix, on paie le débit normal et le débit pour absorber le DDoS. De 500€ à 5000€ en fonction des options par mois. Il y a des services qu'on paie au mois, certains qu'on ne paie pas tant qu'on n'a pas de DDOS… mais qui font payer cher lorsqu'on en a une.

Télia : ont par exemple une option qui ne peut s'activer que quand on a une DDOS. Ca s'active rapidement car tout est déjà configuré par le transitaire anti-DDoS.

Il y a aussi des options où si on désactive un lien réseau pendant la DDOS puis on le réactive quand le transitaire anti-DDoS estime que c'est fini.

Mais problème de ce genre de solution, c'est qu'ici encore c'est contraignant : il faut aller sur place pour éteindre ou réactiver les sessions BGP.

BGP FlowSpec

L'idée est de pouvoir donner des règles de filtrage à une IP, lesquelles sont propagées via BGP.

Par exemple, il est possible de dire que pour telle IP : pas de trafic par UDP sur le port 53 (DNS). Comme on peut donner une bande passante maximum pour telle IP.

Ca permet au routeur de droper des paquets en fonction des règles FlowSpec. Ainsi, lorsqu'on est capable de savoir que, par exemple, une brique ne dépasse pas 50 mbits, ou qu'une ligne DSL ne dépasse pas 200 mbps, on peut filtrer la capacité réelle qu'une IP peut avoir.

Le protocole est assez récent (env 5 ans). Tous les transitaires et peering ne le supportent pas. Verixi y travaille.

Ce qui est bien, c'est que si on a définit qu'une IP n'avait pas plus de 50 mbits, c'est le routeur de bordure qui filtre.

MAIS (c'est un grand mais) : l'implémentation sous Linux n'existe pas… C'est supporté par les routeurs (cisco, juniper) mais pas Linux. La raison, c'est que la partie qui filtre le réseau et celle qui gère le BGP sont des couches différentes dans le kernel. Des systèmes comme Bind (?) savent énoncer des règles BGP FlowSpec mais pas les appliquer.

Il faudrait donc changer le matériel pour les Edge. Mais ça reste une réponse à l'anti DDoS, parce que ça permet de filtrer des requêtes sans être trop cher.

Mais pas une piste pour le moment pour Neutrinet.

Pas évident non plus de savoir si on est sûr s'il y a une brique derrière le VPN.

[FastNetMon](https://fastnetmon.com/)

La vraie réponse pour Neutrinet !

A partir des pcap, fastnetmon peut identifier des attaques DDoS. Cette identification se fait sur base de patterns connus d'attaques DDoS. Par exemple : voir des milliers d'adresses IP différences contacter le même port avec le même body… on peut penser que c'est pas du trafic légitime. Pareil si on voit plein de SYN / ACK, c'est un signe que c'est pas très légitime.

Donc FastNetMon fait essentiellement de la détection de DDoS.

C'est bien pour se prémunir même si ce n'est pas automatique : on peut avoir des faux positifs, ça peut ne pas réagir rapidement.

C'est une solution financièrement possible pour Neutrinet, et comme pour le moment on a rien, c'est mieux que rien 🙂

Une partie de FastNetMon est open-source. La version open-source est bridée : ne gère que l'IPv4 par exemple.

Et au niveau du prix, c'est 1000$/an… Mais ! On peut se faire sponsoriser la licence, et cela serait accessible pour Neutrinet. On devrait mettre le logo de FastNetMon sur notre site web.

Cela marche via des sondes, le type de sondes qui nous intéresse c'est sFlow.

Les sondes servent à donner au logiciel FastNetMon les infos qu'on reçoit, pour qu'il puisse dire si c'est une DDoS ou pas.

Cela va générer une demande de blackhole à la planète entière, et l'IP de Neutrinet qui était attaquée ne sera plus accessible.

C'est automatique mais on peut définir des paramètres : bannir l'IP pendant 1h puis enlever le ban par exemple.

On installe la sonde sur les edges, et cette sonde va contacter le serveur FastNetMon. Le serveur FastNetMon va recevoir et analyser les pcap mais pas les garder. Cela fait juste de l'analyse au fil de l'eau. C'est le même type de protocole qu'on aura besoin dans le cadre de la CCJ.

Pourrait travailler avec des règles FlowSpec si à l'avenir on met ça en place. Alors on ne filtre plus tout le trafic mais la partie identifiée comme DDoS.

Mais il va falloir étendre FastNetMon au-delà de la bordure du réseau : pour protéger l'intérieur aussi. → si par exemple on a une tentative de DDoS dans le réseau de Neutrinet (par exemple depuis un VPN, une VM…)

On pourrait en effet se prendre des DDoS à l'intérieur de notre propre réseau.

Prochaine réunion

Prochain Neutriton : Dans le 21e siecle

Il reste le sujet du chiffrement des disques à traiter, mais cela ne sert à rien d'en discuter tant que les autres décisions (alerting, backups, fastnetmon, …) et travaux (ketupa, réseau, collecte) n'ont pas été effectuées

FIXME Lieu : Mumble ? Caldarium ? Autre ?

Réunion hub infra: dimanche 09/01/2022, à 14h

Météo de fin

Moment informel durant lequel on exprime en peu de mots comment, à titre personnel, la réunion a été vécue que ce soit positif ou négatif. Si une ou plusieurs tension est née durant la réunion, il est peut-être nécessaire d'envisager l'une ou l'autre réunion pour y remédier.

fr/rapports/2021/11-28.txt · Dernière modification: 2021/12/28 16:44 de tharyrok