当前位置: 首页 > 科技观察

像黑客一样思考以防止出现问题

时间:2023-03-13 08:02:59 科技观察

网络攻击者如何利用受损的凭据?这个问题可以通过想象合理的攻击场景来回答。第一种情况:在Docker镜像中找到RSA私钥。安全供应商不仅剖析了网络攻击者可以做什么来获得凭证,还剖析了他们在获得初始访问权限后所做的事情,并介绍了不同的威胁场景,根据真实事件或似是而非的理论讲述黑客的攻击故事。查找泄露的TLS私钥对于这种威胁场景,将探索容器镜像中嵌入的秘密的潜在滥用;特别是TLS证书中使用的RSA私钥。在这种情况下,PoorCorp使用DockerHub公开托管他们的容器镜像。黑客扫描DockerHub的图像以查找在构建过程中添加到容器中的秘密。就在那时,他们偶然发现了PoorCorp遗留的GitLab容器镜像。黑客在图像层中发现了几个扩展名为.crt和.key的文件。当黑客下载图像并检查.key文件的内容时,他们将看到以下内容:-----BEGINRSAPRIVATEKEY-----...(有效密钥内容)......---ENDRSAPRIVATEKEY-----然后,黑客检查证书。该证书是通配符TLS证书,对PoorCorp公司域的所有子域均有效。在构建GitLab镜像时,PoorCorp添加了他们的TLS证书和私钥,以便企业的开发人员可以从内部网络外部访问GitLab。伪装成PoorCorp既然黑客有了通配符证书,他们就可以冒充PoorCorp域了。但要做到这一点,他们还需要授予PoorCorp的子域之一访问黑客控制的计算机的权限。是时候进行一些DNS篡改了。黑客有几种不同的选择。如果PoorCorp是像谷歌这样的知名公司,黑客可以将WiFiPineapple(一种使网络攻击者能够通过设置流氓无线接入点窃取用户数据的设备)带到繁忙的地方并欺骗他们的单点登录(SSO)是在强制门户中。任何连接到流氓设备的人都会看到他们的凭据被盗。不幸的是,对于黑客来说,PoorCorp不像谷歌那样常用于身份验证。相反,黑客发现了一个不同的攻击向量:子域接管。知道他们可以欺骗PoorCorp.的任何子域后,黑客立即开始检查PoorCorp.域上的所有DNS记录。很快,他们找到了指向GitHub页面的A记录(“A”代表“地址”)。PoorCorp最近从GitLab迁移到GitHub,他们将演示网站的代码放在GitHub存储库中,并用他们的GitHubPages发布。PoorCorp删除了他们的GitHubPages测试存储库,但忘记清理指向它的DNS记录。黑客开设了一个新的GitHub帐户,创建了PoorCorp的SSO的克隆,添加了泄露的TLS证书和密钥,并将克隆发布在GitHub页面上。当他们设置GitHubPages时,他们将其配置为具有过时A记录的子域。现在,攻击者控制了PoorCorp子域并拥有有效的TLS证书。使用SSO克隆,黑客向PoorCorp的几位IT管理员发送了一封鱼叉式网络钓鱼电子邮件。两位管理员都被欺骗进入有效域,网络攻击者现在在PoorCorp的网络中拥有特权凭据。从那里,网络攻击者可以在伪装成管理员的同时隐藏和寻找网络中的高价值目标。最终,黑客可以窃取PoorCorp的宝贵数据并部署勒索软件。经验教训现在已经呈现了完整的场景,让我们看看出了什么问题。首先是泄露的TLS私钥。PoorCorp将他们的通配符证书添加到他们的GitLab镜像中,但他们认为一旦发布在DockerHub上,就没有人可以从Docker镜像中窃取私钥。PoorCorp不应在构建容器时将敏感文件和硬编码环境变量添加到容器中,而应使用运行时环境变量和挂载卷将机密信息传递到容器中。GitGuardian的秘密检测CLIggshield已经用于扫描Docker镜像的命令。如果人们发现自己犯了这个错误,则需要立即撤销任何暴露的证书或凭据。PoorCorp做错的另一件事是忘记了废弃的GitHubPagesDNS记录。在GitHubPages上发布的站点将始终使用相同的IP地址:185.199.108.153185.199.109.153185.199.110.153185.199.111.153当A记录指向GitHubPages时,对该子域的任何请求都将转到GitHubrepoconfiguration的子域.由于PoorCorp放弃了其GitHubPages存储库,它为黑客打开了创建自己的域和相同子域的大门。子域接管并不是什么新鲜事,随着技术的发展,总会有新的方法来利用它们。让您的公共DNS记录保持最新始终至关重要。希望这个场景能让用户在他们自己的操作环境中进行一些调查,并激发对容器和代码安全性的兴趣。暴露的凭据是威胁行为者的一个巨大的初始访问向量。作为一名防御者,您需要了解可以破坏凭据的新方式,并且您还需要领先于攻击者并切断他们在发现泄露的秘密时可能采取的攻击途径。