背景信息
随着云原生的发展,容器使用场景越来越广泛,越来越多的企业选择容器来部署自己的应用。而针对容器的攻击事件频发,造成的破坏也日益严重。容器被入侵时,正常情况下黑客只能破坏容器自身,对其它容器和整个业务系统不容易造成整体的破坏。但是由于容器底层使用了共享操作系统内核、共享存储等技术方案,黑客有可能利用漏洞实现容器逃逸,进一步攻击主机操作系统,窃取数据、服务器受控等。因此,一旦确认容器被黑客成功入侵,需要立即处理,避免资产遭受重大损失。
容器入侵应急响应
1、登录管理控制台。在页面上方选择“区域”后,单击,选择“安全与合规 > 容器安全服务”,进入“防护列表”界面。
2、在左侧导航树中,选择“运行时安全”,进入“运行时安全”界面。
3、获取入侵程序的容器实例名称和节点名称。
根据告警通知信息,选择不同页签(“逃逸检测”、“高危系统调用”、“异常程序检测”、“文件异常检测”、“容器环境检测”),在异常事件列表中,获取入侵程序的容器实例名称和节点名称。
4、断开容器外网链接。
以弹性负载均衡(ELB)为例,配置访问控制策略,允许特定IP访问,使其它IP不允许访问容器。
a.在页面的左侧导航树中,单击,选择“网络 > 弹性负载均衡”,进入“负载均衡器”界面。
b.找到容器使用的ELB实例。
c.单击实例名称,进入详情页面,选择“监听器”页签。
d.在监听器基本信息页面,单击“设置访问控制”。
e.在弹出的“设置访问控制”弹框中,配置白名单IP地址。
● 访问策略:白名单。
● IP地址组:允许特定IP访问的IP地址组。
● 访问控制开关:开启。
f.单击“确定”。
5、中断目标容器运行。
以弹性云服务器控制台远程登录入侵节点为例,中断目标容器运行。
a.在左侧导航树中,选择“弹性云服务器”,进入“弹性云服务器”界面。
b.在需要远程登录入侵节点的操作列,单击“远程登录”,登录节点。
若无法登录到服务器,请参见无法登录到Linux云服务器怎么办进行排查。
c.执行以下命令,获取目标容器ID号。
docker ps|grep 容器实例名称
d.执行以下命令,暂停挂起目标容器。
docker pause 容器ID号
6、保留入侵痕迹。
a.执行以下命令,导出镜像。
docker save ID号 -o 镜像文件名.tar
b.(可选)执行以下命令,导出配置。
docker inspect ID号 > 配置文件名.json
7、溯源分析。
a.在其他节点上导入7.a导出的镜像,并执行以下命令。
docker load - 镜像文件名.tar
b.使用导入的镜像启动新容器。
启动执行命令:
docker run -d -it --name 容器名称 镜像ID /bin/bash
c.联系技术支持,进入容器查询系统日志、搜索恶意文件等定位入侵原因和制定应急决策。