feat: adding other TCP scan rules

This commit is contained in:
2024-11-19 22:15:30 -05:00
parent 3e75cb8927
commit 09abb7e20f
7 changed files with 139 additions and 5 deletions

View File

@ -0,0 +1,28 @@
from datetime import datetime
import time
def rule(packet, tcp_packets, db):
"""Règle XMAS Scan:
Un XMAS Scan va envoyer des requêtes TCP avec le flag Fin, Push, Urg
Si le port est ouvert alors le serveur répondra pas
Sinon le port est fermé et le serveur répondra: Reset ACK
"""
if (rule.cooldown + rule.time_window > time.time()):
return
# Vérification si nécessaire de récupérer les variables depuis la config
if (rule.seuil == 0 and rule.time_window == 0):
rule.time_window = db.get_key("xmasscan_time", 180)
rule.seuil = db.get_key("xmasscan_count", 5)
if tcp_packets.count_packet_of_type(["FPU", "RA"], rule.time_window, True) + tcp_packets.count_packet_of_type(["FPU"], rule.time_window, True) >= rule.seuil:
db.send_alert(datetime.now(), 5, None, "XMAS scan", packet['IP'].src, packet['IP'].dst, proto="TCP", reason="Détection de nombreux patterns de Fin Push Urg -> rien et Fin Push Urg->Reset ACK", act="Alerte")
print(f"Alerte, seuil dépassés, risque de XMAS Scan")
rule.cooldown = time.time()
# Variables statiques
rule.cooldown = 0
rule.time_window = 0
rule.seuil = 0