第55篇:日志分析神器Splunk的介绍与使用|大数据分析|智能运维|业务分析

84636a08d0d12e2a09fd1a57f9c3b231.png

 Part1 前言 

大家好,我是ABC_123。我曾经花费时间搭建各种Web服务器、数据库环境去研究分析日志,使用的工具从使用系统自带命令去分析日志,到自动化的360星图,再到后期的Logparser、ELK(ElastiSearch、Kibana、Logstash)等等。到最后我发现还是Splunk这款商业版工具用起来更顺手一些,我个人认为这款软件比ELK要好用得多,只不过ELK免费开源可以包装成产品,所以受到大家追捧,反之Splunk价格昂贵,推广就很受限制。把Splunk用好了足以应付现有的各种日志分析场景,堪称一款神器。

Splunk这款商业工具是美国人写的(ELK也是美国人做的),于2004年开始研发更新,可以将设备和软件产生的日志数据、性能数据、网络数据包等数据进行采集,然后进行索引、调查、监控、可视化等,当然也可以使用它辅助蓝队日志分析工作,很多用户也用它来做产品营销分析,新版的Splunk还可以结合先前的数据对未来一段时间内的客户访问量进行预测。

欢迎关注我的公众号"ABC123安全研究实验室",99%原创,不发水文,不发广告

 Part2 Splunk使用介绍 

  • Splunk的搜索语法

接下来简单介绍一下Splunk的搜索语法:

支持布尔运算符(AND/OR/NOT),必须是大写

status=200 NOT action=purchase

status=200 action!=purchase

500 select 查找包含"500"和"select"字样的所有事件

500 sel* 查找包含"500"和"sel"开头单词的所有事件

status=500 使用=返回准确结果

head n   //返回前n个
tail n   //返回后n个
top   //显示字段最常见/出现次数最多的值
rare //显示字段出现次数最少的值
limit //限制查询,如:limit 5,限制结果的前5条
rename xx as zz //为xx字段设置别名为zz,多个之间用 ,隔开
fields //保留或删除搜索结果中的字段。fiels – xx 删除xx字段,保留则不需要 – 符号

stats count()   括号中可以插入字段,主要对事件进行计数
stats dc()  distinct count,去重之后对唯一值进行统计
stats values()  去重复后列出括号中的字段内容
stats avg()  求平均值

如下图所示,这张图是从很老的一个ppt中改的,可以很直观看到Splunk的界面及使用方法。

6f0d63fe808e8a8007d20dde21c6ff90.png

以下是Splunk的仪表板界面的示例,在这个界面中,蓝队分析人员可以将各种日志分析的分析图表汇总在一起,展示出来非常直观漂亮

3ee7f5bb708d4770fbba1cbcbc078f49.png

  • 导入日志文件

Splunk导入日志文件的方法有很多,我比较习惯用以下方式导入日志,具体操作如下:设置-->数据输入--> 文件和目录-->新本地文件和目录

5a500e2cb2cd2292226384bd922a31b5.png

然后点击“文件或目录”旁边的“浏览”按钮,选择一个本机的一个文件夹,比如说c:\log111

94f702b435ca541b2e554594e8d0820e.png

后续只要把需要分析的日志文件,放到此文件夹中,Splunk会自动进行导入。

e9d7ddecb9842913d7aa01d8ba33f1a2.png

在上述文件夹中放置好日志文件之后,打开Splunk的主界面,中间有一排绿色的柱状图,显示了每个时间段的Web访问次数,这里需要重点关注的是柱状图中突然出现的很高的柱状部分,极有可能是攻击者进行频繁操作的时间段

如果需要对指定的日志文件进行日志分析,则只需要输入以下命令即可:source="C:\\log1111\\45_secure.txt"

2301b1c502fe40028990eaaf8eeec201.png

  • 分析SQL注入脱数据行为

使用如下语句,可以快速检索SQL注入攻击行为,为了减少误报,可以配合使用AND语句拼接IISCode!=404,排除响应码为404的搜索结果。如下图所示,结合柱状图可以知道,SQL注入攻击主要集中在柱状图所示的一个小时左右的时间段内,推测攻击者发现了sql注入漏洞,并实施了攻击。这里仅用了一个select关键字,因为攻击者想要使用sql注入漏洞去脱数据的话,select关键字几乎是必用的

index=_* OR index=* sourcetype="SQL_Injectionex" select AND iisCode!=404

cd3c6eac56d9413bef3b11e36b96bd93.png

  • 分析XSS攻击行为

使用如下语句,可以快速分析XSS攻击行为,通过逻辑运算符AND筛选响应码为200的日志结果,Splunk可以支持<>等标签字符的分析,使用的时候需要把关键词加上双引号

index=_* OR index=* sourcetype="SQL_Injectionex" "<script>" OR "alert" OR "confirm" AND iisCode=200

结合Splunk的柱状图可以知道,XSS攻击行为集中在如柱状图所示的1个小时时间段内。

874c55ca0e3f894cd511bc6b4c68c711.png

  • 网站缓慢响应原因分析

客户当时发现内网的一个Web服务器每到下午13点开始就访问特别卡,通过Splunk的日志分析结果发现,大约有一个小时左右的峰值访问(如图示中的1 hour),而且访问的url几乎都是/shop/rexsearch.asp路径,猜想是频繁访问搜索功能,造成了服务器负载过重。

9999d5d0d66005680ebcbc3134067b75.png

接下来对/shop/rexsearchp.asp访问次数进行统计,发现是2万2418次POST请求,只有2次GET请求。

f8212593818d1e5c4ed76d04376f68d3.png

这个案例后续有时间再给大家详细讲一讲,最后发现是内网的一个漏洞扫描器造成的,每到下午13点,就会自动对此Web服务器进行漏洞扫描,扫描器对search页面的频繁探测,造成了服务器负载过重

  • 分析SSH密码爆破事件

如下图所示,为了分析SSH口令枚举事件,直接在搜索框中填入“authentication”关键字,Splunk分析完毕后给出了一个柱状图,每个柱状图代表1分钟内的SSH口令攻击次数。根据Splunk的柱状图并适当调整时间轴长度,可以直观看到,该日志中暴力破解SSH密码行为主要集中在12点21分12点22分这一分钟内,攻击者进行了总共5万1158次密码枚举操作。

524168309025e6c2d32c62800fa29556.png

  • table表格展示命令

通过table命令,可以将Splunk的检索结果整理成表格格式,而且可以自定义表格每一列字段的标题,更可贵的是Splunk的搜索语句支持中文,可以设置中文标题

source="C:\\log1111\\45_secure.txt" authentication|rename rhost as 攻击源IP | stats count as "源IP攻击次数" by 攻击源IP | table 攻击源IP 源IP攻击次数 | sort - 源IP攻击次数

cf4c1fc97a13814ce1512599eaed08f2.png

如下图所示,可以直接对搜索结果进行保存,也可以把恶意IP直接导出来,非常方便。

19a8231761db5491f1badd421d8cff7c.png

  • 提取ip地址字段

接下来我们需要统计一下攻击者使用了哪些源IP地址,因此我们要从日志中把源IP地址作为一个字段提取出来,Splunk很方便地给我们提供了提取字段的功能,看接下来的操作:

首先点击“提取新字段”按钮,选中一行日志作为样本进行字段的分析与提取。

0756d4a95ac4332a2cfde051ffbf7d8e.png

接下来点击“下一步”,选中“正则表达式”按钮。

97406d9e02881b6eaa8e70606b5b06ec.png

接下来来到“选择字段”功能下,用鼠标左边拖拉选中一个ip地址,Splunk会为我们自动生成正则表达式,这里给该字段起名字叫做secureIP

89fe2c93018adf336d20481c1d2cf418.png

添加完成之后,发现Splunk自动给我们做好了正则表达式语句,可以根据需要进行修改。

d51e9820ffb590726710b8062ed347f2.png

接下来输入查询语句 "authentication"| top secureRhost | sort - secureRhost,可以直观看到哪些ip地址爆破次数最高。这里需要注意管道字符|的用法,左侧输出,右侧输入。

06f373c86a5414227c952059df182d03.png

接下来以图表形式展示ip地址的分布,输入命令 "authentication"| iplocation secureRhost | geostats count by secureRhost globallimit=0 ,可以看到,攻击者很有可能动用了僵尸网络或者是代理池在一分钟左右的时间里,进行了6万多次的账号枚举操作

cdf93fdb5354750978973971dffff9a2.png

  • iplocation命令的使用

输入该命令可以自动增加City、Country、Region、lat、lon等字段,将日志中的IP地址对应的国家、地区、经纬度等信息进行展示,非常方便。

source="C:\\log1111\\45_secure.txt" authentication |stats count by rhost | iplocation rhost | search Country!="China"

e0ba4718e5f982d0a98fc96d56fd75a0.png

  • 仪表板的图示展示功能

通过Splunk可以将各种分析图表汇总到“仪表板”上进行展示,以下是我做的一个展示,将3个分析图表汇总到一个界面中,具体使用方法后续再讲。

fbb3dbadfe213608518b3b5b2c5bcb94.png

 Part3 总结 

1.  Splunk功能非常繁杂,一篇文章很难把Splunk讲清楚,后续ABC_123还会继续分享Splunk这款日志分析神器的使用方法,也会出一个视频教程,敬请期待。

2.  关注公众号回复“2022”,即可得到“2022年ABC123公众号年刊”的PDF电子书下载地址

f9f19b3068c2ab341a597d9ff08b52d2.png

公众号专注于网络安全技术分享,包括APT事件分析、红队攻防、蓝队分析、渗透测试、代码审计等,每周一篇,99%原创,敬请关注。

Contact me: 0day123abc#gmail.com(replace # with @)

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Splunk是一种高扩充性且通用的数据引擎。它可以帮助企业收集、编入索引并智能化地分析由网络、应用程序以及移动设备等产生的机器数据,并最终帮助企业决策者做出准确的判断。本书集合了各种实用方法,目的是给读者提供指导和实用知识,以便读者掌握Splunk Enterprise 6的各种功能,从数据中提取出强大而有价值的运维智能。 《Splunk智能运维实战》共10章,第1章介绍将数据导入Splunk的基本方法;第2章介绍使用Splunk搜索数据的基本方法;第3章介绍如何创建仪表盘和数据的可视化图表;第4章介绍如何创建并修改Splunk应用程序;第5章介绍如何使用Splunk的数据模型和透视功能;第6章介绍Splunk中的一些高级搜索命令,将学习如何创建事务、编写次级搜索、理解并发性、利用字段关联等;第7章介绍如何增加和丰富Splunk中的数据,详细讲解Splunk查找和工作流程功能的使用;第8章介绍Splunk的警报功能;第9章介绍Splunk中的更多数据汇总方法:汇总索引和报表加速;第10章介绍如何自定义Splunk应用程序并使用Splunk SDK和API的高级特性来处理Splunk内的数据。 目录 译者序 前言 第1章 游戏时间——导入数据 1 1.1 简介 1 1.2 索引文件和目录 2 1.3 从网络端口获取数据 7 1.4 使用脚本输入 10 1.5 使用模块输入 12 1.6 使用通用转发器收集数据 16 1.7 为本书加载样本数据 19 1.8 定义字段提取内容 22 1.9 定义事件类型和标签 24 1.10 小结 26 第2章 深入数据——搜索和报表 27 2.1 简介 27 2.2 使原始事件数据具备可读性 30 2.3 找出最常访问的网页 32 2.4 找出最常使用的Web浏览器 34 2.5 找出浏览量来源最多的网站 37 2.6 制作网页响应代码的图表 38 2.7 显示网页响应时间的统计数据 40 2.8 列出浏览次数最多的产品 43 2.9 制作应用程序使用性能的图表 45 2.10 制作应用程序内存使用情况的图表 47 2.11 计算数据库连接的总数 48 2.12 小结 50 第3章 仪表盘和可视化——让数据闪光 51 3.1 简介 51 3.2 创建智能运维仪表盘 53 3.3 使用饼图展示最常访问的网页 55 3.4 显示唯一访客数量 59 3.5 使用计量器显示错误的数量 63 3.6 制作每一主机不同请求方法数量的图表 66 3.7 制作请求方法、浏览量和响应时间的时间图 67 3.8 使用散点图根据大小和响应时间标识离散的请求 70 3.9 制作面积图显示应用程序的性能统计数据 73 3.10 使用条形图按类别显示平均花销 75 3.11 制作折线图显示项目浏览量和购买量随时间的变化 77 3.12 小结 78 第4章 创建智能运维应用程序 80 4.1 简介 80 4.2 创建智能运维应用程序 81 4.3 添加仪表盘和报表 84 4.4 更高效地组织仪表盘 89 4.5 动态钻取活动报表 92 4.6 创建表单搜索Web活动 97 4.7 将网页活动报表链接至表单 101 4.8 显示访客地理分布图 105 4.9 计划仪表盘的PDF交付 109 4.10 小结 112 第5章 智能拓展——数据模型和透视 113 5.1?简介 113 5.2?为Web访问日志创建数据模型 115 5.3?为应用程序日志创建数据模型 121 5.4 加速数据模型 126 5.5 透视总交易量 129 5.6 根据地理位置透视购买量 134 5.7 透视响应最慢的网页 139 5.8 用透视图显示最多的错误代码 144 5.9 小结 145 第6章 深入挖掘——高级搜索 146 6.1 简介 146 6.2 计算网站平均会话时间 147 6.3 计算多层Web请求的平均执行时间 152 6.4 显示最大并发结账 157 6.5 分析Web请求之间的关系 161 6.6 预测网站流量大小 164 6.7 寻找数量反常的Web请求 168 6.8 识别潜在的会话欺骗 172 6.9 小结 175 第7章 丰富数据——查找和工作流程 176 7.1 简介 176 7.2 查询产品编码描述 177 7.3 标记可疑IP地址 183 7.4 创建会话状态表 187 7.5 在IP地址中添加主机名 190 7.6 为给定的IP地址搜索ARIN 192 7.7 为给定错误触发谷歌搜索 196 7.8 为应用程序错误创建凭证 200 7.9 从外部数据库查询库存 204 7.10 小结 211 第8章 抢先一步——创建警报 212 8.1 简介 212 8.2 警告异常网页响应时间 214 8.3 警告实时结账过程中的错误 218 8.4 警告异常用户行为 225 8.5 警告失败并触发脚本响应 229 8.6 警告预计销售量超出库存量 232 8.7 小结 238 第9章 加速智能数据汇总 239 9.1 简介 239 9.2 计算每小时会话及完成交易的数量 241 9.3 按城市回填购买数量 247 9.4 按时间顺序显示并发会话最大数量 254 9.5 小结 259 第10章 更进一步——自定义、Web框架、REST API和SDK 260 10.1 简介 260 10.2 自定义应用程序的导航 261 10.3 添加网络点击量的力导向图 265 10.4 添加产品购买量的日历热图 273 10.5 远程查询Splunk的REST API以获取唯一页面浏览量 278 10.6 创建Python应用程序返回唯一IP地址 280 10.7 创建自定义搜索命令来格式化产品名称 284 10.8 小结 288
Splunk是一款强大的日志管理和分析工具。它能够处理大量的数据,并提供实时索引和搜索功能,使用户能够轻松地发现和解决问题。 Splunk介绍文档详细介绍Splunk的功能和优势。首先,它强调了Splunk的实时索引和搜索功能。这意味着Splunk可以快速索引和搜索大量的日志数据,以找出问题的根本原因。用户只需简单地输入关键词,Splunk就能够立即从日志中找到与之相关的信息。 除了实时搜索,Splunk还提供了高级的数据分析功能。用户可以通过使用Splunk的查询语言进行复杂的数据分析和可视化。无论是统计数据、趋势图表还是其他形式的可视化展示,Splunk都能够满足用户的需求。 文档还介绍Splunk的高可拓展性和灵活性。Splunk可以轻松地处理从小型企业到大型组织的不同规模的数据。它支持各种类型的数据源,包括日志文件、传感器数据、数据库等。用户可以自定义数据的格式和字段,以适应不同的用途和需求。 此外,文档还提到Splunk的安全功能。Splunk提供了安全的访问控制机制,以保护敏感的数据免受未经授权的访问。它还可以监控和检测潜在的安全威胁,并生成相应的报告。 总之,Splunk是一款功能强大且灵活易用的日志管理和分析工具。它可以帮助用户快速发现和解决问题,并提供了高级的数据分析和可视化功能。无论是小型企业还是大型组织,Splunk都能够满足其日志管理和分析的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

希潭实验室

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值