0

Je crée un système de détection d'intrusion simple pour un cours de sécurité de l'information en utilisant jpcap. Une des fonctionnalités sera la détection de système d'exploitation à distance, dans laquelle je dois implémenter un algorithme qui détecte quand un hôte envoie 5 paquets en 20 secondes qui ont différentes combinaisons ACK, SYN et FIN.Algorithme de détection de combinaisons

Quelle serait une bonne méthode pour détecter ces différentes "combinaisons"? Un algorithme de force brute serait long à implémenter, mais je ne peux pas penser à une meilleure méthode. Notes: L'API de jpcap permet de savoir si le paquet est ACK, SYN et/ou FIN. Notez également qu'il n'est pas nécessaire de savoir ce que sont ACK, SYN et FIN pour comprendre le problème.

Merci!

+0

Désolé ... Qu'est-ce qu'une combinaison ACK, SYN et FIN? –

+1

Montrer un exemple, je ne peux pas comprendre le problème exact. –

+0

Les paquets sont reçus par un programme ("streamed" est peut-être un bon mot) qui ont un type d'ACK, SYN, FIN, ou toute combinaison de ceux-ci. Essentiellement la question est, comment peut-on détecter quand cinq combinaisons différentes ont eu lieu? –

Répondre

0

J'ai construit ma propre structure de données basée sur des vecteurs qui contiennent des "enregistrements" sur le type de paquet.

0

Vous devez conserver l'état sur chaque session. - en utilisant des hashtables. Gardez chaque syn, ack et fin/fin-ack. J'ai écrit et reniflé IDS opensource il y a quelques années qui fait cela; N'hésitez pas à regarder le code. Il devrait être très facile d'écrire un algorithme pour faire une détection d'os passive (google it). Mon code opensource est ici dnasystem