1.简要概述Splunk平台的核心是SPL,即SplunkSearchProcessingLanguage。它提供了非常强大的能力,可以通过简单的SPL语句来描述安全分析场景。这里,我们以Linux安全日志分析为例,构建一个安全场景。2、安全日志我们先来了解一下Linux安全日志中常见的登录日志。以下两条登录记录为例:#LoginfailureThuFeb08202200:15:04www2sshd[1100]:Failedpasswordforrootfrom142.162.221.28port4585ssh2#SuccessfulloginThuFeb08202200:15:05mailsv1sshd[74181]:Acceptedpasswordfornsharpefrom10.2.10.163port4245ssh2通过对比,我们可以发现几个关键信息,比如登录动作(成功/失败)、用户名、ip地址等,可以通过编辑正则表达式提取关键字段进行搜索和分析。新增字段提取:3.安全分析场景3.1用户暴力破解场景描述:如果用户账号在短时间内尝试大量错误密码,则可视为用户暴力破解攻击。安全策略:单个账号,5分钟内超过20次登录失败sourcetype="secure*"action=Failed|bucket_timespan=5m|按用户统计计数,ip|searchcount>203.2爆破前10名用户名/ip地址场景描述:获取暴力破解使用的密码本,或者暴力破解的源IP地址。爆破用户名TOP10sourcetype="secure*""failedpassword"|按用户统计|排序10-count爆破IP地址TOP10sourcetype="secure*"AND"failedpassword"|按ip计算的统计数据|排序10-count3。3用户异地登录场景描述:如果用户在短时间内多次异地登录,可以认定为异常账号。安全策略:一天内登录超过3个城市,将被视为异地登录异常。sourcetype="secure*"action="Accepted"|bin_timespan=1d|iplocationip|statsvalues(ip)asipvalues(City)asCitydc(City)assrc_countbyuser|searchsrc_count>33.4账号共享场景说明:登录多个账号同一个ip,查找共享账号的用户。安全策略:1天内同ip登录10个以上sourcetype="secure*"action="Accepted"|bin_time跨度=1d|通过ip统计计数(用户)|将计数(用户)重命名为User_count|searchUser_count>103.5异常登录时间场景描述:定义服务器正常登录时间,如果登录时间超出正常时间范围,可以提示告警。安全策略:0:00-8:00,成功登录的账号。sourcetype="secure*"action="Accepted"date_hour<8|table_time,ip,user3.6异常IP登录场景说明:定义正常服务器登录地址,如果在正常IP地址之外登录,可以提示告警。安全策略:查找登录成功的用户列表,排除堡垒机登录ip,获取非法登录行为。sourcetype="secure*"action="Accepted"ANDip!="10.1.*"|statscountbyip,user3.7整体用户登录情况场景描述:整体用户登录趋势应该呈现规律性的变化。如果哪天出现了异常,就要排查问题的原因。安全策略:查看每天登录成功/失败的次数。有了对比作为参考,我们很容易从数据趋势中看出异常情况。sourcetype=secure-*“密码”|timechartper_day(eval(action="Accepted"))assuccess,per_day(eval(action="Failed"ORaction="failed"))asFailed
