从日志里找问题,就像查监控抓小偷
公司内网突然变慢,员工抱怨打不开网页,IT 小李打开防火墙日志一看,发现某台电脑在凌晨三点疯狂往外发数据包。这就好比小区监控发现半夜有辆车频繁出入,大概率有问题。网络端点日志就是设备的“行车记录仪”,记录着每一次连接、每一次访问、每一次异常。
常见的日志来源有哪些
终端电脑上的 Windows 事件日志、Linux 系统的 syslog、防病毒软件记录、EDR(终端检测与响应)工具采集的行为日志,都是分析对象。比如某台电脑中了挖矿病毒,CPU 占用飙到 100%,这时候看任务管理器只能看到结果,而看 EDR 日志才能知道是哪个进程偷偷启动的。
路由器、交换机、防火墙这些网络设备也会生成日志,配合终端日志一起看,能还原完整攻击路径。像某次内网横向移动攻击,就是通过对比防火墙的异常外联记录和主机的登录日志,锁定了被爆破的账号。
怎么高效筛选关键信息
原始日志动辄上万行,直接翻等于大海捞针。得学会用过滤条件缩小范围。比如只看“事件级别 = 错误”或“事件ID = 4625”(Windows 登录失败)。在 SIEM 平台里写查询语句也很常见:
event.level: error AND host.os.name: *Windows* AND message:*failed*这条语句会找出所有 Windows 主机上的错误级失败消息,适合排查批量登录异常。
关注这几类典型行为模式
短时间内大量 DNS 请求某个冷门域名,可能是恶意软件在做 C2 通信。查看日志时可以按 source.ip 和 query.domain 聚合统计,排个序,排前面的就是嫌疑对象。
另一个常见场景是权限提升。Linux 系统中普通用户突然执行了 sudo su -,并且之后连续运行多个敏感命令,这种行为在 auditd 日志中有明确记录。设置告警规则后,一旦触发就能及时响应。
还有时间戳对不齐的问题也常遇到。某次排查发现一台主机日志显示攻击发生在上午 9 点,但 NTP 服务器日志却是 9:07,差了七分钟。后来发现是客户端时间没同步,差点误导调查方向。所以分析前先确认各设备时间源一致,别让“表不准”耽误事。
用脚本辅助处理重复任务
手动翻几百个日志文件太累,写个 Python 脚本批量提取关键字段更省事。比如把所有 .log 文件里的 IP 地址抽出来去重:
import re
with open('endpoint.log', 'r') as f:
logs = f.read()
ips = re.findall(r'\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b', logs)
unique_ips = list(set(ips))
print(unique_ips)这种小工具跑一遍,几分钟就能出结果,比人工快得多。
建立基线才能识别异常
没有正常的样子,就不知道什么是异常。平时就得收集各终端的常规行为数据:谁每天开机、什么时候访问服务器、平均流量多少。有了基线,某天发现某台设备凌晨两点连数据库,自然就会引起注意。
就像小区保安熟悉每户人家作息,哪天看见陌生面孔来回转悠,马上就会警惕。日志分析也是这个道理,知道“平常什么样”,才抓得住“今天不对劲”。