Situatie
Solutie
Pasul 1: Importarea Bibliotecilor Necesare
Începeți prin a importa bibliotecile necesare. Vom folosi “datetime” pentru a gestiona timpul și “collections” pentru a stoca și prelucra datele despre încercările de autentificare.
import datetime
from collections import defaultdict
Pasul 2: Definirea Variabilelor și Funcțiilor
Definiți variabilele și funcțiile necesare pentru a monitoriza și detecta atacurile brute-force.
# Limita de încercări și perioada de timp (în secunde)
ATTEMPT_LIMIT = 5
TIME_WINDOW = 60
# Dictionar pentru a stoca încercările de autentificare
attempts = defaultdict(list)
def record_attempt(ip_address):
“””Înregistrează o încercare de autentificare pentru o adresă IP.”””
current_time = datetime.datetime.now()
attempts[ip_address].append(current_time)
cleanup_attempts(ip_address)
def cleanup_attempts(ip_address):
“””Curăță încercările mai vechi decât fereastra de timp definită.”””
current_time = datetime.datetime.now()
attempts[ip_address] = [time for time in attempts[ip_address] if (current_time – time).seconds <= TIME_WINDOW]
def is_brute_force(ip_address):
“””Verifică dacă adresa IP a depășit limita de încercări în fereastra de timp.”””
cleanup_attempts(ip_address)
if len(attempts[ip_address]) > ATTEMPT_LIMIT:
return True
return False
Pasul 3: Testarea Funcționalităților
Simulați încercările de autentificare pentru a testa sistemul de detecție a atacurilor brute-force.
# Adresa IP de test
test_ip = ‘192.168.1.1’
# Simulăm 6 încercări de autentificare în mai puțin de un minut
for _ in range(6):
record_attempt(test_ip)
if is_brute_force(test_ip):
print(f”Brute-force detected from IP: {test_ip}”)
else:
print(f”Attempts from {test_ip}: {len(attempts[test_ip])}”)
Pasul 4: Integrarea cu Sistemul de Autentificare
Integrați acest sistem de detecție cu sistemul dvs. de autentificare pentru a monitoriza încercările de autentificare reale și pentru a lua măsuri atunci când este detectat un atac brute-force.
Pasul 5: Extinderea funcționalităților
Extindeți funcționalitatea sistemului de detecție pentru a include măsuri suplimentare, cum ar fi blocarea automată a adresei IP, alertarea unui administrator sau înregistrarea încercărilor suspecte într-un fișier jurnal.
Leave A Comment?