0

Ich erstelle ein einfaches Intrusion Detection System für einen Information Security Kurs mit jpcap.Algorithmus zum Erkennen von Kombinationen

Eine der Funktionen wird die Remote-Betriebssystemerkennung sein, in der ich einen Algorithmus implementieren muss, der erkennt, wenn ein Host innerhalb von 20 Sekunden 5 Pakete sendet, die verschiedene ACK-, SYN- und FIN-Kombinationen haben.

Was wäre eine gute Methode, um diese verschiedenen "Kombinationen" zu erkennen? Ein Brute-Force-Algorithmus wäre zeitaufwändig zu implementieren, aber ich kann mir keine bessere Methode vorstellen.

Hinweise: Die API von jpcap ermöglicht es zu erkennen, ob das Paket ACK, SYN und/oder FIN ist. Beachten Sie auch, dass Sie nicht wissen müssen, was ACK, SYN und FIN sind, um das Problem zu verstehen.

Danke!

+0

Sorry ... Was ist eine ACK, SYN und FIN-Kombination? –

+1

Zeigen Sie ein Beispiel, ich kann das genaue Problem nicht verstehen. –

+0

Pakete werden von einem Programm empfangen ("streamed" ist vielleicht ein gutes Wort), das einen Typ von ACK, SYN, FIN oder eine Kombination davon hat. Im Wesentlichen ist die Frage, wie kann man feststellen, wenn fünf verschiedene Kombinationen aufgetreten sind? –

Antwort

0

Ich baute meine eigene Datenstruktur basierend auf Vektoren, die "Aufzeichnungen" über die Art des Pakets halten.

0

Sie müssen den Status bei jeder Sitzung beibehalten. - Verwenden von Hashtabellen. Halte jedes Syn, Ack und Fin/Fin-Ack. Ich schrieb und opensource IDS Schnüffler vor ein paar Jahren, die dies tut; Sehen Sie sich den Code an. Es sollte sehr einfach sein, einen Algorithmus zu schreiben, um passive OS-Erkennung durchzuführen (google it). Mein Opensource-Code ist hier dnasystem

Verwandte Themen