使用机器学习算法实现url日志检测功能

admin 2024年8月5日10:44:47评论6 views字数 894阅读2分58秒阅读模式

通过阅读文献以及编写代码测试,今天实现了使用机器学习算法训练模型,并基于模型对给定的url日志进行检测是否是恶意请求。

要实现这样的一个功能,大致需要经过下面的步骤:

1、收集日志,实现nginx日志的规集

出于轻量化agent的考虑,自己编写了一个收集日志的客户端,以及一个服务端,客户端将日志记录传到服务端实现保存。

2、截取一定量的日志记录,进行人工标记

通过人工标记,将正常的请求和非正常的请求区分出来,这些经过标记的数据用于训练模型。

3、训练模型,编写机器学习的算法训练模型

使用上面获得的记录,再编写机器学习的算法代码,训练出模型文件,理论上用于训练的数据越多,训练出的模型越准确。

4、编写预测代码,实现基于模型的机器学习算法检测

有了上面的模型之后,进一步的编写预测的代码,这样就可以调用模型,使用机器学习算法对给定的url进行检测

/examples/jsp/checkbox/bandwidth/index.cgi?action=showmonth&year=<script>foo</script>&

这是一个恶意的请求,模型检测结果如下:

使用机器学习算法实现url日志检测功能

/article/126

这是一个正常的请求,模型检测结果如下:

使用机器学习算法实现url日志检测功能

这里面有2个地方可以讨论一下,一个完整的get或者post请求,攻击用的payload可以出现在request、user-agent、referer等字段中,出于完整检测考虑,在准备数据集时选取了三个字段的的全部内容,后面评估之下,只打算使用request字段的内容,至于通过http头的攻击请求就不考虑了。

另一个是对数据做标记的时候,只考虑了网站路由规则范围的属于正常请求,其余均标记为攻击请求,因此训练出来的模型不适合用于通用模型。

前面发布过3篇:

模拟攻击手动构建真实HTTP数据集

Nginx日志分析实战:揭露4种CVE-2023-1389攻击手法,加固网站安全屏障

自给自足的智慧:打造轻量级Nginx日志处理系统

到此,前面说过的打造轻量级Nginx日志系统以及基于机器学习的url日志安全检测功能均以实现。

 

原文始发于微信公众号(核点点):使用机器学习算法实现url日志检测功能

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月5日10:44:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   使用机器学习算法实现url日志检测功能https://cn-sec.com/archives/2982047.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息