从海量日志中找线索,就像在超市找临期牛奶
你有没有在超市货架前蹲着翻生产日期的经历?日志分析也差不多。系统每天产生成千上万条记录,真正有用的信息可能只藏在某一行里。比如某个员工电脑突然开始频繁连接外部IP,表面看只是普通网络请求,但结合时间、频率和目标地址,可能就是数据外泄的前兆。
明确目标,别漫无目的瞎搜
想查登录异常,就盯着 authentication、login failed、access denied 这类词。如果怀疑有横向移动,重点搜 domain admin、smb connection、pass the hash 等关键词。目标越具体,效率越高。比如看到连续多条 Failed login from IP 192.168.3.105,再结合成功登录记录,基本就能锁定暴力破解行为。
善用通配符和正则表达式
很多日志工具支持模糊匹配。比如想查所有与用户登录相关的事件,可以用 login* 匹配 login、logins、logout 等变体。更复杂的场景下,正则能帮你抓出特定模式的数据:
\b(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\b
这串规则能找出日志里的所有IP地址。再比如匹配Windows事件ID中的4625(登录失败)和4624(登录成功):
EventID:\s*(462[45])
组合条件缩小范围
单个关键词容易误报,叠加条件才靠谱。比如搜索 "authentication failure" AND "from 10.0.5.*" NOT "from 10.0.5.1",可以排除已知设备的干扰。时间窗口也很关键,攻击往往集中在某个时段。把查询限定在凌晨2点到4点,可能立刻浮现出异常自动化行为。
关注上下文,别只看孤立条目
一条 User admin logged in from new location 可能只是运维出差。但如果前后夹着多条 File deletion detected 和 Registry modification,那就要警惕了。日志之间的时序关系比单条内容更重要。像SIEM这类工具能自动关联事件,但手动翻日志时,记得往前翻几页,往后拉几屏,看看前后发生了什么。
建立常用关键词清单
把高频关键词存成模板,省得每次都重打。比如针对Web服务器,这几个词几乎每次都要查:
- 404(大量出现可能是扫描)
- POST /wp-login.php(WordPress暴力登录)
- sqlmap 或 union select(SQL注入痕迹)
- ../(路径遍历尝试)
利用日志级别辅助判断
INFO太多太杂,ERROR和CRITICAL才是重点。但也不能完全忽略DEBUG,某些系统开启调试后会记录详细操作流程,对溯源特别有用。比如发现某服务突然冒出一堆 Connection timeout to 172.16.8.200:443,而这个地址不在白名单里,就得去查防火墙规则和进程列表了。