Programmation d'un programme de détection d'attaque réseau

Programmation d'un programme de détection d'attaque réseau - C - Programmation

Marsh Posté le 15-03-2005 à 10:53:38    

:hello:
 
Salut tout le monde,
 
Je réalise un programme de détection et de blocage d'attaque réseau de type SYN flood en C sur linux.
Pour l'instant, mon programme détecte les attaques à partir d'une adresse fixe et d'une classe C (au cas ou l'IP est spoofé). J'utilise la librairie libpcap.
 
Pour bloquer les attaques, j'hésite à utiliser le firewall seulement voila, ce n'est pas ce qu'il y a de plus efficace d'un point de vue technique.
 
Personne ne connait une solution plus "élégante" ?
 
Par exemple, je recois un packet, si celui-ci correspond à une attaque, je le détruit, sinon, je le forward au systeme (je me substiturais en quelque sorte, au firewall).
 
Merci :)

Reply

Marsh Posté le 15-03-2005 à 10:53:38   

Reply

Marsh Posté le 15-03-2005 à 15:09:28    

up

Reply

Marsh Posté le 15-03-2005 à 15:34:20    

Citation :

Par exemple, je recois un packet, si celui-ci correspond à une attaque, je le détruit, sinon, je le forward au systeme (je me substiturais en quelque sorte, au firewall).


ben je dirais plutot "je fais un firewall". C'est quoi le probleme d'efficacite technique ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 15-03-2005 à 21:06:21    

HelloWorld a écrit :

Citation :

Par exemple, je recois un packet, si celui-ci correspond à une attaque, je le détruit, sinon, je le forward au systeme (je me substiturais en quelque sorte, au firewall).


ben je dirais plutot "je fais un firewall". C'est quoi le probleme d'efficacite technique ?


 
Ben libpcap me donne une copie du paquet en quelques sorte.
Que le packet me convienne ou pas, il sera de toute facon transmis au système.
 
Si j'avais le packet en lui meme et non une copie, je pourrais le détruire directement.

Reply

Marsh Posté le 15-03-2005 à 21:36:42    

programmer directement au niveau noyau/netfilter ? ou passer tous les paquets à un prog userspace ?

Reply

Marsh Posté le 15-03-2005 à 21:44:45    

faire une extension netfilter me semble la meilleure idée, et c'est même sûrement déjà fait

Reply

Marsh Posté le 15-03-2005 à 23:19:47    

Génial c'est ça, merci beaucoup ory :)

Reply

Marsh Posté le 16-03-2005 à 18:56:32    

En cas de syn flood tu bloques toute la classe de l'ip source ?

Reply

Marsh Posté le 17-03-2005 à 06:59:42    

Une chose avant tout.
 
Tu n'aura jamais la priorité du packet en Userland.
C a d que iptables aura toujour le packet avant la libpcap.
Ensuite la libpcap ne permet pas :
      - D'envoyer un packet
      - Obtenir une prioritée kernel sur le packet.
... A la difference de la winpcap + NDIS wrapper.
 
Si tu veux avoir une prioritée sur le packet sous linux il te faut programmer un LKM (Loadable Kernel Module). Par le LKM tu peux obtenir une priorité qu'on appel RING0. Il te faudra metriser, ensuite, les skbuff pour pouvoir faire de l'analyze de trame.  
 
Et je deconseille de toucher à netfilter dans le kernel, la priorité des skbuff est plus haute que netfilter...
 
C'est du ho-niv0 dans dev dans le ring0. Tu en as au moins pour 8 Mois si tu n'a jamais coder de LKM.
 
++

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed