为什么需要做日志审计告警
前两天朋友公司出事了,一台服务器半夜被挖矿,等发现时CPU已经跑满三天。查了半天才发现是某个旧后台被爆破登录,其实登录失败的日志一直在记,就是没人看。这就是典型的有日志、无告警。
网络设备、服务器、防火墙每天产生的日志成千上万条,靠人工翻不现实。真正有用的信息往往藏在大量正常记录里,得靠自动化手段揪出来。设置合理的审计告警,等于给网络装了个24小时值班的保安。
从哪几类日志下手最有效
不是所有日志都值得设告警。优先盯这几类:
登录异常:比如连续5次失败后成功登录,可能是撞库成功;非工作时间的管理员登录,也得警惕。
权限变更:用户被加进管理员组、角色权限突然提升,这种操作一旦发生必须立刻知道。
敏感操作:删除关键文件、修改网络配置、导出数据库,这类动作不管谁做的,都该留痕并触发提醒。
流量突变:某台内网主机突然对外发起大量连接,可能是中了木马在发包。
用ELK简单搭个告警流程
很多公司用ELK(Elasticsearch + Logstash + Kibana)收集日志。在Kibana里可以基于查询设阈值告警。比如检测SSH暴力破解:
{
"query": {
"bool": {
"must": [
{ "match": { "service.name": "ssh" } },
{ "match": { "event.action": "failed_login" } }
],
"filter": {
"range": { "@timestamp": { "gte": "now-5m" } }
}
}
},
"size": 0
}把这个查询放进Kibana的Alerting模块,设定5分钟内匹配到超过10条就发邮件或钉钉通知,基本就能拦住大部分扫端口撞密码的行为。
别忘了Windows事件日志
内网大量Windows主机,安全日志里的ID 4625(登录失败)、4670(权限变更)、4688(新进程启动)都很关键。可以用WEC(Windows Event Collector)把日志集中拉到Linux服务器,再交给SIEM处理。
比如监控域控上的4720(创建用户),如果有人新建了带“admin”关键字的账户,立即推送告警到手机。曾经有公司就是因为这条规则,及时发现了伪装成IT人员创建的后门账号。
告警太多怎么办
一开始设太松,手机一天响几十次,最后干脆关掉通知。合理做法是先观察一周日志,统计各类事件频率,再定阈值。
比如某接口每分钟正常请求约20次,突然飙到200可以告警;但如果直接设“超过50就报警”,可能每次促销活动都误报。另外,把告警分级:红色紧急(如root登录失败)、黄色注意(如磁盘使用超85%),不同级别走不同通道。
真正的高手不是堆一堆规则,而是挑最关键的几个,确保每次响都有价值。宁可漏一点,也不要让自己对告警麻木。