splunk
使用在
search & reporting
中:搜索
index=*
,且时间为all time
可以看到所有已提取的日志:在左侧
sourcetype
中看到两种来源web_logs
:与CCTV网络服务器的网络连接事件cctv_logs
:有关CCTV应用程序的访问日志检查闭路电视记录:
index=* sourcetype=cctv_logs
发现两个问题
- 日志没有正确解析
time
不对,没有根据实际时间来排序由于提供的日志是从自定义日志源生成的,splunk无法正确解析,所以必须先提取出相关日志并调整时间戳
提取字段
Extract New Fields
中:选第一个示例-选正则表达
只需要在事例日志中选中,splunk会自动生成正则来提取:
在下面可以看到日志的提取情况,但不难发现有的日志未被成功提取:
那么在原来的基础上改一下正则表达式即可:
1
^(?P<timestamp>\d+\-\d+\-\d+\s+\d+:\d+:\d+)\s+(?P<Event>(Login\s\w+|\w+))\s+(?P<user_id>\d+)?\s?(?P<UserName>\w+)\s+.*?(?P<Session_id>\w+)$
保存后
Explore the fields I just created in Search
看到
index=_* OR index=* sourcetype="cctv_logs"
下的结果:查看结果
查看每个用户的事件数量
1
index=cctv_feed | stats count(Event) by UserName
可以很简单的通过做到
Visualization
可视化事件计数摘要
1
index=cctv_feed | stats count by Event
查看日志中捕获的活动
罕见事件搜索
1
index=cctv_feed | rare Event
看到执行了几次删除录音和登录失败:
特定事件检索
先检查登录失败:
1
index=cctv_feed *failed* | table _time UserName Event Session_id
看到四个用户的登陆失败,但注意到所用的
session_id
相同很自然的去搜这个
session_id
的事件1
index=cctv_feed *rij5uu4gt204q0d3eb7jj86okt* | table _time UserName Event Session_id
可以看到其执行了两次删除录像的操作
而通过
index=cctv_feed *Delete*
发现录像删除仅有这两次操作
于此锁定到该
session_id
网络日志
将拿到的信息和网络日志关联起来:
1
index=web_logs *rij5uu4gt204q0d3eb7jj86okt*
找到与会话id关联的
ip
:切过去看看和这个
ip
有关的信息:1
index=web_logs clientip="10.11.105.33"
在
status
中找到session_id
,发现还有两个再回到
cctv_logs
中1
index=cctv_feed *lsr1743nkskt3r722momvhjcs3*
拿到攻击者
id
1 | Extract all the events from the cctv_feed logs. How many logs were captured associated with the successful login? |