开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情
背景
公司的安全部门已经通知您,黑客刚刚在社交媒体上发帖,声称他们可以通过利用Kubernetes服务访问内部网络,该服务可从互联网公开访问。请确认报告的真实性,并尽快关闭开放服务。
验证攻击
验证内部服务是否如报告的那样可以外部互联网访问,如果可以,攻击者将如何滥用它。
假设,目前公司集群中,已部署的资源如下:
我们在浏览器中打开报告中攻击者用来访问服务的URL。
可以看到此服务如何允许我们在管理工具容器上运行任意命令,从而使外部攻击者访问公司网络内变得更加容易。
原因:
为何内部服务 admin-tool 应用会被暴露在集群外? (Tips:详见Service类型NodePort 作用)
解决:
只需要确保服务只在集群内部被访问即可,因此我们需要更改Serive Type类型
重写 admin-service服务,使得 admin-tool 只在内部访问
重新部署服务资源后,验证下确保服务不是公开的,而是可以从集群内访问的。 在集群中app POD 里执行 curl http://admin-service:8080.
我们再从公网访问, 发现这次服务已经无法打开,安全问题得以解决。
原文链接:
关注公众号: 云原生SRE