思考:日志的聚类(由蜜罐日志引出)

2024-06-15 16:38

本文主要是介绍思考:日志的聚类(由蜜罐日志引出),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

20210223 -

0. 引言

去年中旬,研究过一段时间蜜罐的内容,也部署过几款开源的蜜罐,一些蜜罐自带了最后的展示界面,例如hfish,不过它属于粒度比较粗的,最终显示也仅仅有很少的信息;另一些蜜罐仅仅输出日志,需要自己进行数据的汇总和展示,不过这种也存在一个问题,例如cowrie,他把交互过程按照事件分类来输出日志,当时构建过程中使用了ELK的方式来进行日志展示,直接将进行输入,没有更多的中间性修改,文章发表在FreeBuf,《Cowrie蜜罐的Docker部署过程及Elasticsearch+Kibana可视化》。

蜜罐的功能,一方面能够捕获比较新的攻击样本,当时我也捕获了不少僵尸网络的样本;而另一方面也能获取到攻击的方式,例如poc到底是什么样的;在另外一篇文章中《全端口蜜罐的部署过程与数据分析》,利用无交互的方式,就能够捕获大量的扫描流量和攻击流量。

但是在关注这种蜜罐时,比较重点的任务应该是如何分析日志,当时我在分析全端口蜜罐日志的时候,就发现了这个问题,由于是一种无交互的蜜罐形似,而且部署过程中也不知道到底流量是针对哪个端口的,因为采用的是防火墙转发的方式。最后的日志是一种json形式,但是交互的信息无法直接还原,只能是利用字符串匹配初步进行匹配。

前面的说法主要是为了展现出来日志分析的重要性和难点,这篇文章打算从比较简单的角度来入手,通过聚类的方式,看看能不能更好地减少人工分析的参与。

本篇文章重点记录思考的过程,未必能够给出最终的答案

1. 日志的聚类

日志的聚类本质上属于相似度比较的过程,无论是结构化的还是非结构化的,每一条日志都是一个比较的单位,通过相似度比较发现他们是否是属于同一类。相似度比较的函数就比较多了,到底哪种方式比较适合就需要具体来尝试。

那么从这个角度来看,如何对日志进行表征是比较重要的问题,如果都是数值类型的,而且具备一定的实际意义,那么就更好了。而实际场景中,更多的是字符串类型的日志,例如http访问日志,特别是有些日志还是非结构化的,可能需要前期将关键信息提取处理进行结构化。

1.2 聚类的目的

普通机器学习中,聚类是针对无标签数据来出发的,数据没有标签,无法通过有监督的方式进行分类或者预测。在日志的聚类过程中,实际上也是为了能够找出相似的日志,发现攻击的日志。

1.3 日志表征的方式

前面也说过,对于数值型的数据,可以直接进行比较,例如使用欧氏距离;但是对于字符串的形式呢,虽然在某些场景下能够使用编辑距离这种实现,但是可用性并不强。

在目前的自然语言处理技术中,采用的技术如下:n-gram,tf-idf,word2vec等。
但是这些技术在实际的场景中能有多大的用处,本质上直接从词的角度来看,肯定能够直接或者结果,但是这种方式的实际意义有多大?也就是说是不是表征出来的信息的确能够代表处一定的意义呢?这是后续要思考的关键点。

(20210223 记录关于日志聚类的思考,感觉没有得到比较实质性的内容,主要是自己之前脑海中的一个问题,但是我感觉是有一定意义的。)

这篇关于思考:日志的聚类(由蜜罐日志引出)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1063995

相关文章

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

我在移动打工的日志

客户:给我搞一下录音 我:不会。不在服务范围。 客户:是不想吧 我:笑嘻嘻(气笑) 客户:小姑娘明明会,却欺负老人 我:笑嘻嘻 客户:那我交话费 我:手机号 客户:给我搞录音 我:不会。不懂。没搞过。 客户:那我交话费 我:手机号。这是电信的啊!!我这是中国移动!! 客户:我不管,我要充话费,充话费是你们的 我:可是这是移动!!中国移动!! 客户:我这是手机号 我:那又如何,这是移动!你是电信!!

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering)

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering) Power Iteration Clustering (PIC) 是一种基于图的聚类算法,用于在大规模数据集上进行高效的社区检测。PIC 算法的核心思想是通过迭代图的幂运算来发现数据中的潜在簇。该算法适用于处理大规模图数据,特别是在社交网络分析、推荐系统和生物信息学等领域具有广泛应用。Spa

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录 在深度学习项目中,目标检测是一项重要的任务。本文将详细介绍如何使用Detectron2进行目标检测模型的复现训练,涵盖训练数据准备、训练命令、训练日志分析、训练指标以及训练输出目录的各个文件及其作用。特别地,我们将演示在训练过程中出现中断后,如何使用 resume 功能继续训练,并将我们复现的模型与Model Zoo中的

用Pytho解决分类问题_DBSCAN聚类算法模板

一:DBSCAN聚类算法的介绍 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,DBSCAN算法的核心思想是将具有足够高密度的区域划分为簇,并能够在具有噪声的空间数据库中发现任意形状的簇。 DBSCAN算法的主要特点包括: 1. 基于密度的聚类:DBSCAN算法通过识别被低密

SSM项目使用AOP技术进行日志记录

本步骤只记录完成切面所需的必要代码 本人开发中遇到的问题: 切面一直切不进去,最后发现需要在springMVC的核心配置文件中中开启注解驱动才可以,只在spring的核心配置文件中开启是不会在web项目中生效的。 之后按照下面的代码进行配置,然后前端在访问controller层中的路径时即可观察到日志已经被正常记录到数据库,代码中有部分注释,看不懂的可以参照注释。接下来进入正题 1、导入m

多数据源的事务处理总是打印很多无用的log日志

之前做了一个项目,需要用到多数据源以及事务处理,在使用事务处理,服务器总是打印很多关于事务处理的log日志(com.atomikos.logging.Slf4jLogger),但是我们根本不会用到这些log日志,反而使得查询一些有用的log日志变得困难。那要如何屏蔽这些log日志呢? 之前的项目是提高项目打印log日志的级别,后来觉得这样治标不治本。 现在有一个更好的方法: 我使用的是log

android两种日志获取log4j

android   log4j 加载日志使用方法; 先上图: 有两种方式: 1:直接使用架包 加载(两个都要使用); 架包:android-logging-log4j-1.0.3.jar 、log4j-1.2.15.jar  (说明:也可以使用架包:log4j-1.2.17.jar)  2:对架包输入日志的二次封装使用; 1:直接使用 log4j 日志框架获取日志信息: A:配置 日志 文