威斯尼斯人(wns2299cn·China认证)官网-Make Life Better

强化域安全:Suricata的主动防御策略

2024-10-15 来源:威斯尼斯人wns2299cn


 

在深入探索域加固策略的过程中,我们面临了一个棘手的挑战:dcsync攻击。传统的防火墙端口阻断方法并未能提供令人满意的防护。然而,一个意外的发现为我们带来了希望——Suricata的内联入侵防御系统(IPS)功能。经过一系列测试,我们惊喜地发现Suricata不仅能够完美应对dcsync攻击,还能有效防御其他高级网络威胁,即便是那些传统防火墙难以招架的情形。以下是我们如何利用Suricata构建一个更为坚固的网络安全防线的详细过程。

 

一、Windows安装Suricata及Npcap

 

Windows 版Suricata 要实现IPS功能需要安装WinDivert ,这边直接用的是Suricata已经编译好二级制安装包,这个安装包已经将WinDivert集成进去了,下载地址:

https://www.openinfosecfoundation.org/download/windows/Suricata-6.0.0-beta1-1-64bit.msi


在安装Windows Suricata之前需要先安装WinPcap包,不过这个项目目前已经停止维护了,可以用npcap来替代,下载地址:

https://npcap.com/dist/npcap-1.79.exe


1.安装Npcap

 

安装下载后的Npcap安装包,如果电脑带有无线网卡,记得勾选“support raw 802.11 traffic(and monitor mode) for wireless adapters”。需要注意的是,如果电脑已经安装过winpcap软件,在安装Npcap时会弹窗提示卸载Winpcap,此时需要关闭wireshark或是其它相关的软件。

 

图片 1.png 图片 2.png

图片 3.png

图片 4.png


2.安装Suricata

 

 图片 5.png

图片 6.png

图片 7.png

 

3.使用Suricata

 

3.1 注册Suricata服务

 

安装成功后,启动方式和Linux的一样。在Windows环境下启动Suricata必须使用管理员权限,否则会报“[ERRCODE: SC_ERR_SVC(162)] - Can't open SCM: 5”。

 

# 172.18.66.3这个IP地址是我Windows域控的IP地址

 

# --service-install  将启动命令注册为服务,方便后面的自启动

 

# net start suricata 启动suricata

 

# net stop suricata  停止suricata

 

# sc delete suricata 删除suricata

 

suricata.exe -c suricata.yaml -s signatures.rules -i 172.18.66.3 --service-install


图片 8.png       

3.2 创建域控规则文件

 

配置Suricata规则文件为自定义规则文件,因为场景是使用Suricata作为IPS加固域控服务器,所以规则只针对于域控。将自定义myself.rules放在规则文件夹中:

 图片 9.png

 

3.3 启动Suricata服务

 

使用net start suricata 命令启动suricata服务:


图片 10.png

 

二、实际使用——解决dcsync攻击

 

在探索dcsync攻击的检测方法时,我们首先需要了解其背后的技术原理。Dcsync攻击利用了Windows的DRS(目录复制服务),该服务通过MS-DRSR(目录复制远程协议),一个基于dcerpc的协议,进行域控制器之间的目录数据复制。这个协议可以通过其UUID e3514235-4b06-11d1-ab04-00c04fc2dcd2 进行识别。

 

通常,MS-DRSR协议的流量仅在域控制器之间出现,用于复制和管理活动目录数据。因此,检测dcsync攻击的关键在于监控网络流量,识别并排除域控制器之间的正常MS-DRSR通信后,任何异常的MS-DRSR流量都可能指示着潜在的dcsync攻击行为。通过这种方法,我们可以更准确地识别并防御这类攻击。

 

Suricata 规则如下:

 

alert dcerpc any any -> any any (msg: "DCShadow"; flow: established; dce_iface: e3514235-4b06-11d1-ab04-00c04fc2dcd2; dce_opnum: 5; sid: 7000776; rev: 1;)

 

在实际情况下需要在Suricata的yml文件中配置域控服务器变量,然后在规则中进行排除,这里为了演示方便,直接源目的都设置为any。

 

在mimikatz中执行以下命令:

 

lsadump::dcsync /domain:contoso.com /user:administrator /csv /all

 

Suricata 告警:

 

 图片 11.png

 

规则测试没有问题,现在需要将规则由alert模式转变为drop模式

 

drop tcp any any -> any any (msg: "DCShadow"; dce_iface: e3514235-4b06-11d1-ab04-00c04fc2dcd2; sid: 7000776; rev: 1;)

 

现在开启Suricata IPS/inline 模式,进行阻断,启动命令为:

 

suricata -c suricata.yaml -s signatures.rules --windivert true


图片 12.png


之后在mimikatz中使用相同命令,发现dcsync已经失败:


图片 13.png


告警文件中也出现相应告警:

 

图片 14.png

 

三、总结

 

面对新的域控制器高危漏洞,如果补丁更新尚未及时发布,我们可以采取一种有效的临时防护措施。通过配置Suricata的高级检测规则,我们可以对可疑的网络流量进行实时监控和阻断,从而为域控制器提供即时保护。然而,这种策略的成功关键在于规则的精确性,确保它们能够准确识别并拦截潜在的恶意流量,同时避免对正常通信造成干扰。因此,我们必须精心设计和测试这些规则,以确保它们在提供必要的安全防护的同时,也维护网络环境的稳定性和效率。

 


ISO9001

质量管理体系认证

ISO14001

环境管理体系认证

ISO27001

信息安全管理体系认证

ISO20000

信息技术服务管理体系认证

信息系统

安全运维服务资质