使用Visual Studio 2022提高开发人员安全性
软件开发人员越来越成为恶意软件的目标。最近的事件包括诺贝尔奖,章鱼扫描仪、和锌。为了降低在面对此类攻击时采用开源库的风险,开发人员需要一个工具链来帮助他们评估不受信任的内容。
在Visual Studio 2022中,我们一直专注于开发人员和团队的生产力。关键是IDE如何帮助开发人员评估代码的信任级别。最近引入的Visual Studio代码工作区信任,今天我们将讨论VisualStudio2022如何重新设计其信任设置功能,从VisualStudio 2022预览版3开始。
新的“信任设置”功能旨在提高对处理不熟悉代码的风险的认识,并有助于防范恶意参与者,这些恶意参与者的目标场景从打开内容(例如,存储库、解决方案、项目和/或文件)到使用Visual Studio构建和运行应用程序。
虽然您将从这些开箱即用的安全改进中受益,但我们已将为组织提供工具作为优先事项,以便根据其需求集中管理体验。
沿着记忆之路旅行
为了提供VisualStudioIDE丰富的功能体验,项目系统首先需要评估要打开的内容。此过程–基于设计时生成–帮助我们识别项目结构及其依赖关系,对于我们提供的许多优秀功能(如代码导航和智能感知)来说,这是必不可少的。
然而,从威胁评估的角度来看,构建代码等同于执行。这意味着恶意参与者可能会创建一个场景,其中简单地 开放VisualStudio中的内容可能成为危害您或您公司的攻击工具。
回到VisualStudio2002,我们引入了内容信任提示符。当您试图从以前不受信任的位置打开项目时,警告对话框会让您知道并提及打开不受信任代码的含义。
在Visual Studio 2015中,我们将信任范围扩展到项目范围外的项目,并利用“网络标记”属性作为这些项目的信任指示器。虽然当时这是一个很好的决定,但“网络标记”属性的不一致使用给依赖它的设计带来了问题。
随着开源软件的广泛采用,大多数开发人员获取和使用项目样本的方式发生了变化。虽然这使我们能够创造全新的体验,但也带来了新的安全考虑。
使用Visual Studio 2022,我们希望帮助您安全地浏览和编辑代码,无论源代码或作者是谁。为此,我们彻底检查了“信任设置”功能,并将在尝试打开以前未定义为受信任的内容(例如,解决方案、项目、文件或文件夹)时提供额外的安全层。我们的新功能包括两个主要组件:受信任的位置&限制模式.
受信任的位置
对于Visual Studio 2022预览版3,您必须手动启用“受信任位置”功能。启用后,Visual Studio将检测您是否试图打开不受信任的内容,并显示一个新对话框,警告您安全隐患:
启用该功能后,在您或您的组织(通过组策略)将其添加到“受信任位置”列表之前,在Visual Studio 2022中打开的所有内容都将被视为不可信。您可以直接从信任对话框或信任设置对话框信任文件夹位置、git存储库或git存储仓库所有者:
安全性和可用性经常不一致。每个开发人员对这种权衡都有不同的看法。因此,我们提供了多个工作流优化,以减少与信任相关的提示数量,从而帮助最大限度地减少对工作流的不必要干扰。
例如,当您打开存储库时,信任对话框将允许您在存储库或存储库所有者级别进行信任。这意味着,如果您完全信任存储库的所有者(例如,由受信任的同事或您的组织开发的存储库),那么您可以选择该选项,并且在从该所有者打开存储库时不再收到提示。作为Visual Studio登录体验的一个好处,存储库设置将随您的帐户漫游,有助于简化您的体验,无论您在何处使用Visual Studio。
我们对这些新功能感到兴奋,并正在为在下一个预览中默认启用它们做最后的润色。同时,您可以通过工具>选项>信任设置并选中“在打开内容之前需要信任决策”选项:
受限模式
对源代码做出信任决策很难,并且经常需要手动检查代码。为了在这种情况下提供帮助,我们引入了一种VisualStudio模式来浏览和编辑不受信任的代码。
虽然此模式不包括需要设计时构建的功能(例如,代码分析器、可视化设计器等),但它将允许您安全地打开和检查不受信任的代码(例如,无需承担远程代码执行的风险),并帮助您做出明智的决定,以信任内容并实现完整的visual Studio体验。
虽然限制模式在VisualStudio2022预览中尚不可用,但它很快就会出现,我们将很快分享更多信息。
企业管理
我们优先考虑通过Windows组策略功能为组织提供集中管理其体验的方法。例如,组织可以决定将Visual Studio的使用限制为仅使用预先批准的受信任存储库列表,并禁止信任和打开这些边界以外的内容。
此功能已在Visual Studio 2022预览版3中提供,我们将在以后的博客文章中详细介绍。
总结:
我们对这些新功能感到兴奋,迫不及待地想让您试用!
让我们知道您对体验的看法,您希望看到支持哪些新功能,以及我们如何进一步改进以更好地适应您的工作流程!通过发送反馈给我们开发者社区门户,或通过帮助>发送反馈Visual Studio中的功能。