在入侵告警定性后, 到隔离被入侵环境这个时间段叫做快速止损的阶段。
止损手段往往简单粗暴、随意,止损更多是靠人肉操作,缺少系统化的流程&平台。目前看到很多错误的止损方式:
1.直接将被入侵的服务器 关机、重启。
2.重装系统、销毁机器。
上面的手段都会很大程度上破坏第一案发现场,很多一手的信息:内存,进程信息等等都将被销毁。对于后续的溯源完整攻击链非常不利, 后果可能导致无法完整的溯源黑客的所有行为,甚至会导致内网其他机器后门无法完全清除,导致二次入侵。
实际上比较好的止损 需要满足的几个条件:
1.快速隔离入侵机器,防止内网扩散;
2.最大限度保留入侵现场,以便溯源;
3.平台化,系统化操作,避免人肉登录服务器来操作。
Linux平台--使用iptables命令
整个过程分成止损、恢复两部分,通过iptables 脚本完成网络层隔离、恢复。
1. 止损
Bash代码:
#/bin/bash iptables-save >/root/iptables.bak ##备份系统的的 iptables文件 iptables -F iptables -A INPUT -s 10.*.*.* -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -d 10.*.*.* -p tcp --sport 22 -j ACCEPT iptables -A INPUT -j DROP iptables -A FORWARD -j DROP iptables -A OUTPUT -j DROP
说明:
A.默认关闭所有的入栈出站流量,把受影响的机器与其他机器隔离开来
B.对跳板机开放应急端口ssh 端口(实际场景可能需要添加其他端口,比如开放hids server 端口),demo里面是放通了所有内网ip,实际情况可以调整。
执行完成上述脚本,就将被入侵入侵机器与其他机器隔离从网络层隔离开来,并且放通了跳板机到被入侵的机器的ssh管理端口,方便进行后续的调查取证。
2.恢复
通过ssh 登录调查取证、清理后门 完成之后需要恢复系统的网络
执行如下命令:
#/bin/bash iptables-restore < /root/iptables.bak
Windows平台--使用ipsec方案
1.止损
Bash代码:
netsh ipsec static exportpolicy c:\ipsec.ipsec ##备份当前的ipsec规则 netsh ipsec static del all ##清空ipsec规则 ##开启3389访问,方便止损后登录操作,demo开启所有ip地址,实际情况建议根据跳板机配置 ##入站阻断除3389其他所有,tcp/udp连接,阻断高危端口 ##出站阻断所有tcp/udp连接,防止机器扫描其他内网机器 netsh ipsec static add policy name="Block Hacking" description="Block Hack To Other Computer" netsh ipsec static add filterlist name="Access" description="Accessed rules." netsh ipsec static add filterlist name="Drop" description="Block rules." netsh ipsec static add filter filterlist="Access" srcaddr=any srcport=0 dstaddr=me dstport=3389 protocol=tcp mirrored=yes description="Permit all accessed Me TCP(3389) ports." netsh ipsec static add filter filterlist="Drop" srcaddr=any srcport=0 dstaddr=me dstport=0 protocol=tcp mirrored=no description="Block all accessed Me TCP ports." netsh ipsec static add filter filterlist="Drop" srcaddr=any srcport=0 dstaddr=me dstport=0 protocol=udp mirrored=no description="Block all accessed Me UDP ports." netsh ipsec static add filteraction name="Permit" action=permit netsh ipsec static add filteraction name="Block" action=block netsh ipsec static add rule name="Access rules" policy="Block Hacking" filterlist="Access" filteraction="Permit" netsh ipsec static add rule name="Drop rules" policy="Block Hacking" filterlist="Drop" filteraction="Block" netsh ipsec static set policy name="Block Hacking" assign=y ##启动规则
2.恢复
清空当前规则,导入备份的规则。
Bash代码:
netsh ipsec static del all netsh ipsec static importpolicy c:\ipsec.ipsec
1. 止损、恢复任务平台化
有了上述的应急方案,还需要安全运维通道(可以快速下发到每一台被入侵的机器),安全运维通道可借助HIDS或者其他平台Ansible下发脚本插件,比如https://github.com/ysrc/yulong-hids,将上述的脚本封装成止损、恢复插件,确认入侵第一时间通过后台下发止损脚本。
2. 移动化
应急经常是一个突发的情况,很多时候无法第一时间登录公司网络进行操作,这时可将上述功能与微信/钉钉移动告警结合起来,将会提升止损的效率。
本文作者:karl
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/81295.html