本文探讨了隔离开发环境(如 Docker 容器)如何保护代码和敏感数据免受网络攻击的威胁。通过介绍 Docker 的原理、优势及最佳实践,作者强调使用这一技术可以降低开发过程中遭遇的安全风险,并提供了一系列具体建议以提升安全性。
了解隔离的开发环境,如 Docker 容器,如何保护你的代码和敏感数据免受网络威胁。保持安全,保持信息灵通!
感谢 theredguild 为此文章提供的灵感。
想象一下以下任何一个场景。
forge test.
npm install.
npm update
、forge install
或 mox install
升级它们。好吧,猜猜看?如果你没有采取适当的预防措施,你刚刚被黑了。
在这篇博客文章中,我们将探讨隔离开发环境,特别是使用 Docker 容器,如何显著降低你成为这些威胁受害者的风险。
根据 Chainalysis 的数据,私钥泄露在 2024 年是最常见的攻击方式。
私钥泄露可能以多种方式发生,但对于开发人员和安全研究人员来说,发生这种攻击最简单的方法是运行未经审查的代码。在我们以上提供的三个场景中(这三种场景在 2024 年也都发生过),它们都存在这个共同问题。
在主机上运行你的代码将使该代码访问你整台机器。
这就是问题所在。
其中一起私钥攻击是 供应链攻击,@solana/web3.js
包中注入了恶意软件。当你将你的包更新为恶意版本时,它会 扫描你整个机器以寻找潜在的私钥, 连接到区块链,然后将你的加密货币发送到另一个钱包!
这将如同简单地运行 npm update
和 npm run
,你就完成了!因此,作为开发人员和安全专家,我们可以通过在隔离的开发环境中运行我们的代码来帮助保护自己。
虽然在软件开发中不可能消除所有风险,但我们可以使用一些工具来减轻潜在问题:
在 Cyfrin,我们非常喜欢 Docker 容器,因为它们是轻量级且对开发者友好的环境,大多数开发者应该能够在不干扰他们的工作流的情况下设置它。
Docker 容器是可移植的环境,封装了应用程序的代码及其所有依赖项。这意味着你可以在受控环境中运行你的应用程序,而不影响你的主机。让我们分解一下 Docker 的工作原理:
受控访问: 你可以指定容器可以访问的资源,从而允许更安全的开发过程。你可以指定想要授予它访问的内容,包括:
你可以将 Docker 容器视为在你的机器内部的一个自包含机器。
为了帮助开发人员设置一个已经安装了大部分所需工具的项目,我们创建了 web3-dev-containers 仓库。它帮助用户设置一个隔离环境。
查看 快速入门 以设置一个基于 VSCode 的 Docker 容器(称为开发容器),这样你就可以以额外的安全层运行你的脚本!这个仓库将:
foundry
或 moccasin
库的 Docker 容器对于安全研究人员:
你应该 始终 在开发者容器中运行客户端代码!有许多攻击案例,其中客户要求审计人员审计某个代码,而他们把恶意代码放入审计仓库,黑掉了审计人员的机器。
像 Claude 和 ChatGPT 这样的 AI 在 Docker 容器方面表现得很好。为他们提供仓库文件作为上下文,并询问他们文件中发生了什么!
虽然 Docker 有助于隔离开发环境,但遵循最佳实践以最大化安全性至关重要:
尽管在隔离环境中运行应用程序显著降低了风险,但了解潜在的安全影响仍然至关重要。例如:
了解潜在的安全问题至关重要,因为没有解决方案可以做到 100% 无懈可击。
总之,最小化网络攻击风险的关键在于理解威胁和实施安全实践。通过利用 Docker 容器并遵循最佳实践,你可以创建隔离的开发环境,保护你的敏感信息,并减少成为恶意攻击受害者的可能性。
在外面的安全,牢记,虽然没有系统是完全无法渗透的,但知情的实践可以显著增强你的安全态势!
有关保护你的开发环境的更多阅读,请查看 theredguild 博客 和 web3 Dev containers 的 GitHub 仓库。
- 原文链接: cyfrin.io/blog/reduce-th...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!