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

2023-11-02

20210223 -

0. 引言

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

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

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

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

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

1. 日志的聚类

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

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

1.2 聚类的目的

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

1.3 日志表征的方式

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

思考:日志的聚类(由蜜罐日志引出) 的相关文章

随机推荐

  • java运算符(++运算和+=运算)

    package sort public class Qperator public static void main String args int a 5 int b 10 int c a b int d a b a b System o
  • Quartus II 18.1的下载安装和注册

    前言 本文章主要教学Quartus II 18 1安装教学以及使用方法的介绍说明 一 Quartus的下载 进入Quartus官网 点击下载Windows版 选择所需要的软件版本 推荐使用18 1版本的 下载Quartus软件包和Model
  • verdi学习总结

    verdi学习总结 本篇文章关于Verdi的使用 并长期进行补充与更新 verdi简介 verdi用来查看fsdb波形进行代码的debug 使用流程 1 在tb文件中dump相应的要调试的信号 fsdbDumpvars 0 test top
  • 12V转5V2A电源模块的电路集合

    目前工作上所用到的电源模块都整理出来 以便之后的不时之需 建议在稳定的12V左右的电源下应用该模块 1 TPS54331DR 该芯片目前在TB中大概为1 1 RMB 价格也还能接收 主要的特点就是体积小 但是电路比较复杂 在放置PCB的过程
  • 【C++】模板特化

    模板特化的必要性 使用模板可以实现一些与类型无关的代码 但对于一些特殊类型的可能会得到一些错误的结果 比如 template
  • 机器人编程是用计算机编吗,机器人编程与电脑编程有何区别?官方专家为你详细解说!...

    近年来 无论是国外还是国内都掀起了一股编程热潮 许多编程课程纷纷涌现 很多家长为了孩子不输在起跑线上 报名各种机器人编程 电脑编程等课程 一些家长也许存在这样的疑问 我们想要报名学习编程 但是应该报机器人编程呢 还是电脑编程呢 1 机器人和
  • 如何捕获micropython 报错的详细信息 行数 具体错误内容等

    电脑端 可以用traceback来找 mpy没有这个模块 咋办 自己搞啊 翻WIKI 有个sys print exception函数 然后简单包装一下 完事儿 从不废话 都是干货 import io import sys class ERR
  • JAVA中StringBuffer和数组的区别

    共同点 两者都可以看作是一种容器 都可以存放其他的数据 不同点 StringBuffer最终会是一个字符串类型 数组可以存放多种类型的数据 每个数组的类型必须是一样的
  • NLP领域最近比较火的Prompt,能否借鉴到多模态领域?一文跟进最新进展

    PaperWeekly 原创 作者 杨浩 研究方向 自然语言处理 01 VL T5 论文标题 Unifying Vision and Language Tasks via Text Generation 收录会议 ICML 2021 论文链
  • 强制React组件重新渲染

    The beauty of React components is that they automagically render and update based on a change in state or props simply u
  • CGI程序的HTTP头

    在CGI程序的所有输出前面必须有一个MIME类型头 即http头 对浏览器指明接收内容的类型 比如我们用python写的cgi usr bin python print Content type text html n n print He
  • 编程语言的静态类型、动态类型、编译型以及解释型的区别

    1 静态类型和动态类型的区别 个人理解这种区别主要是类型检查 Type Check 发生的时机不同 即可以通过判断语言是在什么时候检查类型错误来判断其所属的类型 静态类型 编译时即知道每一个变量的类型 因此 若存在类型错误编译是无法通过的
  • linux基础-centos6、7、8版本对比

    文章目录 centos6 与centos7对比 sysvinit技术 VS systemd技术 网卡名称变更 centos7 与centos8对比 内核版本 网络时间同步 支持最大的文件 默认的网络数据包过滤 默认的数据库 默认版本的控制系
  • VLOOK 10.0发布!速览3:标签+注音+引用篇——开箱即用的Typora/Markdown主题包+增强插件

    经过近半年的等待和内测 特别鸣谢 铃兰 Devil 小慢哥 宝剑锋从磨砺出 等 Markdown 粉和 Typora 用户期待已久的 VLOOK 10 0 已正式发布了 VLOOK 是针对 Typora 跨平台 Markdown 编辑器 跨
  • nginx中alias、root、try_files的用法

    1 root 语法 root path 配置段 http server location if root的处理结果是 root路径 location路径 location t root www root html 请求的URI是 t a h
  • 数据库-单表查询实验

    问题 10 23 查询商品表 先按商品分类升序排列 再按商品价格降序排列 10 分 问题描述 本题目要求编写SQL语句 查询sh goods表 先按商品分类category id升序排列 对于相同分类的商品再按商品价格price降序排列 提
  • FileUtil 工具类

    package com jiayou peis report biz utils import lombok SneakyThrows import org apache commons io IOUtils import javax se
  • 实战Angular2+web api增删改查(三)

    Angular2 开发 本示例使用了Angular2 RC4版本 另外由于使用了bootstrap 所以需要html中引入对应的css及js文件 入口 import bootstrap from angular platform brows
  • 如何将Linux的NIC 名称更改为 eth0 而不是 enps33 或 enp0s25,只要几秒钟

    概述 我们使用Linux系统 网卡名称通常都是eth0 但是有一些新的linux发行版 网卡名字 enps33 或 enp0s25 peng ubuntu ifconfig ens33 Link encap Ethernet HWaddr
  • 思考:日志的聚类(由蜜罐日志引出)

    20210223 0 引言 去年中旬 研究过一段时间蜜罐的内容 也部署过几款开源的蜜罐 一些蜜罐自带了最后的展示界面 例如hfish 不过它属于粒度比较粗的 最终显示也仅仅有很少的信息 另一些蜜罐仅仅输出日志 需要自己进行数据的汇总和展示