浅谈安全应急响应中的快速止损

2018-11-29 8,271

定义 

在入侵告警定性后, 到隔离被入侵环境这个时间段叫做快速止损的阶段。


一 、背景

止损手段往往简单粗暴、随意,止损更多是靠人肉操作,缺少系统化的流程&平台。目前看到很多错误的止损方式:

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

Tags:
评论  (0)
快来写下你的想法吧!

karl

文章数:1 积分: 0

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号