搭建Windows环境下的搭建的入入侵检测系统 上周帮朋友处理一台被勒索病毒加密的服务器,数据全没了,境下备份也晚了三天。侵检他问我:Windows上到底有没有靠谱的测系入侵检测?我直接告诉他,别指望装个杀毒软件就高枕无忧。搭建的入真正的境下检测,得靠你自己搭一套能“看见”异常的侵检系统。 先说最务实的测系方案:用Windows自带的事件日志配合Sysmon。Sysmon是搭建的入微软官方工具,装好后会在系统日志里记录进程创建、境下网络连接、侵检文件变更等细粒度行为。测系比如,搭建的入某进程突然访问外网IP,境下或者powershell.exe执行了可疑脚本,侵检这些都会被记下来。我见过太多攻击者用powershell下载恶意载荷,而普通杀软根本不管——因为脚本本身不落地,杀软无从查起。Sysmon能把这个行为暴露出来。 光有日志不够,你得有东西去“读”它。推荐用ELK(Elasticsearch, Logstash, Kibana)或更轻量的Graylog。我习惯用ELK,虽然部署麻烦点,但胜在灵活。把Windows事件日志和Sysmon日志都转发到Logstash,过滤掉正常操作,只保留高价值事件。比如,事件ID 4688(进程创建)配合命令行参数,你能看到谁在什么时候执行了什么命令。有一次我通过日志发现,某台机器凌晨3点有用户用管理员权限运行了cscript.exe,指向一个临时目录下的vbs文件——这明显是入侵痕迹。 规则引擎是核心。别指望默认规则能抓住所有攻击。你需要自己写检测规则。举个例子,正常业务不会频繁访问admin$共享,也不会在短时间内尝试多次RDP登录。用KQL(Kusto Query Language)或Sigma规则,把这些异常行为变成告警。Sigma规则是个好东西,它能把检测逻辑写成通用格式,然后转换成不同平台的查询语句。我一般把规则分成两类:一是“已知坏”——匹配已知恶意IP、哈希、命令;二是“未知怪”——偏离基线行为,比如某用户平时只访问三个文件夹,突然开始遍历整个磁盘。 部署时有个坑:Windows防火墙默认会拦掉Sysmon的日志转发端口。你得提前放行,或者用WinRM走HTTPS。另一个坑是日志量爆炸。默认Event Log只保留20MB,根本不够用。在组策略里把“应用程序和服务日志”的大小调到至少1GB,并设置按天滚动覆盖。别心疼磁盘,几百GB的日志换来一次成功溯源,值。 再说点个人观察:很多中小企业搭完IDS就扔一边,一周后告警堆积成山,全是误报。你得花时间调规则。最开始只开最关键的几条,比如“新进程通过WMI执行”“本地账户枚举”“注册表Run键修改”。跑两周,把正常业务产生的噪音过滤掉,再逐步增加规则。我见过一个案例,运维人员把“任意用户创建计划任务”设为告警,结果每五分钟报一次——因为备份软件就在干这事。误报比漏报更让人头疼,因为它会让你对告警麻木。 最后提个轻量级替代方案:如果你不想折腾ELK,用微软自带的PowerShell脚本定期抓取事件日志并比对规则,也能应急。但说实话,那只能算“事后审计”,不是实时检测。真正的入侵检测需要持续监控和快速响应。Windows不像Linux那样有现成的OSSEC或AIDE,你得自己拼装。但拼装的过程,恰恰能让你更清楚系统里到底发生了什么。别怕麻烦——被勒索病毒找上门那才叫真麻烦。 |