网络结构是这样,云服务器上装了 Docker,服务器的防火墙是云服务商提供的,容器内的服务需要访问云服务商提供的云数据库。
从 Docker 容器内访问宿主机并不通过云服务商的防火墙,所以如果容器被渗透后,很容易向宿主机横向移动。
有没有什么方案能缓解容器被渗透后向宿主机横向移动?比如用 iptables DROP 从容器到 10.0.0.0/8 、172.16.0.0/12 、192.168.0.0/16 的数据包可行吗?或者有什么更好的方案吗?
暂时只考虑从内网上横向移动,不考虑容器被渗透后,攻击者利用 Docker 漏洞搞容器逃逸的情况。
1
NoahNye 2021-06-04 00:02:39 +08:00 via iPhone
可以使用 macvlan 进行隔离
|
2
namaketa 2021-06-04 00:16:18 +08:00
因为 docker 本身权限隔离一直做不好,容器逃逸明显比横向移动更致命
横向移动本身也是一个说大不大说小不小的问题,不怕麻烦 iptables 默认 drop,nat 全写成静态指定端口一对一映射 |
3
kennylam777 2021-06-04 00:33:23 +08:00
k8s 的話就是 PodSecurityPolicy 能解決的問題,自建 docker 結構就自己造輪子吧
|