在开发网络上保护源代码的最佳实践是什么?

5 security source

在我的公司,我们非常保护我们的源代码。我们通过建立一个开发 LAN 来满足我们的偏执,我们将它与 Internet 和公司其他网络隔离开来。在开发网络中,我们有几台安全机器(源控制服务器、构建服务器、域控制器),所有源都需要加密或保存在上锁的房间里。能够向我们的客户解释这样一个简单的安全策略对我们来说是一个竞争优势,但随着我们公司的发展,维护这个网络的成本也变得越来越高。为了应对过去一年的痛苦,我们放弃了严格的气隙政策,允许通过两因素身份验证的仅限 RDP 的 VPN 访问网络。

然而,我们的开发网络与我们公司网络的其余部分之间缺乏连接仍然严重阻碍了在网络内部工作的团队与在网络外工作的团队之间的合作。我们想考虑对我们的网络架构进行重大改革,但我们不确定什么是保护源代码的行业最佳实践。我们可能会考虑的是:

  • 将我们的开发网络连接到我们公司网络的其余部分,并允许该网络上的任意两台主机之间进行无限制的通信。还允许相对不受限制的出站连接到 Internet。
  • 允许远程员工完全通过 VPN 访问公司网络。
  • 开辟一个单独的“测试沙箱”网络,它不会保存源代码,不会被修补,并且只允许来自公司网络其余部分的入站连接。
  • 要求在假设恶意网络流量的情况下管理开发机器:需要最新的补丁级别,不允许未经身份验证的远程调试,设置强密码等。
  • 继续要求所有静态代码要么留在上锁的房间里(对于没有令人满意的加密解决方案的旧平台)要么被加密
  • 继续要求所有有权访问代码的开发人员签署适当的文件,声明他们不会从网络中删除任何代码

在您工作过的主要软件开发组织中,这会被视为令人满意的安全策略吗?软件开发组织还遵循哪些其他实践来保护其源代码?例如,入侵检测系统是源安全的常见部分吗?

“我们如何保护我们的源代码?” 问题与我们密切相关,但我们更关心网络架构,而不是员工策略或备份策略。

3di*_*nce 1

对于其中一些事情,公司政策通常比技术解决方案更有效。这并不是说技术不能在帮助执行政策方面发挥作用。

我建议你看看Fortinet 的 Fortigate。他们有一些你可以利用的东西来帮助你。他们能够隔离任何不符合您的策略(即补丁级别、A/V 等)的计算机。它还能够进行应用程序保护和数据泄露预防。因此,您只需要设置数据泄漏防护规则来阻止任何类似于代码的内容。因此,如果您的公司有一个位于文件顶部的标准标头,您可以查找该标头并阻止并报告它。如果将 FortiClient 添加到组合中,您可以锁定本地计算机上的 USB 端口,并在每个客户端上实施防火墙、A/V、数据泄漏防护和入侵防护策略。

所以谈谈你的观点。

  • 带 VLAN 的防火墙应该能够解决您的第一点。
  • Fortigate 还充当 VPN,因此这一点也非常简单。
  • 某种 VLAN 可能是您的沙箱。
  • ForitClient 与组策略和 Fortigate 相结合,您应该能够控制您需要的一切。
  • 这个比较难对付一些。但公司政策规定,不遵守这些政策将导致终止合同,这是最好的方法。然而,FortiClient 可以锁定 USB 端口,因此只要您充分锁定网络,这将为您提供所需的控制。
  • 最后一个也更多是一个政策问题。