在开发过程中保护源代码免遭盗窃

时间:2010-10-29 20:10:05

标签: security encryption tfs code-access-security source-code-protection

有没有办法在开发过程中保护我的代码,这样如果开发人员离开我的公司,他们就无法访问我项目中的文件?

这对于TFS来说尤其重要,其中项目在本地下载,缓存并可供脱机使用。理想情况下,如果代码没有有效的Active Directory用户ID,则代码将无法读取。

即使这个想法不可能,我也想了解你能想到的任何实际威慑......

7 个答案:

答案 0 :(得分:7)

假设他们可以阅读代码并在他们在那里进行编译,那么你可以做很多事情(除非你禁止使用USB记忆棒,CR编写者,扫描他们所有的电子邮件等等,即便如此他们也会找到一种方法击败那个)。

在雇佣合同中加以覆盖,明确表示如果代码出现,将会采取法律行动。

(我曾经在过去的生活中遇到过这种情况 - 一位员工确实带着他的代码。我们知道由于他在做这件事时犯了错误,我们发了一封来自我们的工作人员的信,指出了后果他向其他人透露代码。它似乎有效)

答案 1 :(得分:7)

您必须向开发人员提供某种形式的信任。如果你不相信他们不要随身携带源代码,你怎么能相信他们不要在你的系统中建立后门等?

此外,如果他们要处理代码,他们将需要访问它,如果他们可以访问它,他们几乎可以肯定地复制它。你可以尝试限制它,但是你试图提前考虑一群只需要找到你犯的错误的人。此外,公然不信任你的开发人员无论如何都不会帮助你。

您的代码中是否包含实际的商业机密?如果是这样,您可能想重新考虑一下。如果没有,那么在其他人占有的情况下会造成多大的伤害?他们不能合法地使用它,离开的开发人员通常也能写出类似的东西。

为此,您需要法律保护,而非技术保护。

答案 2 :(得分:3)

如果您害怕整个代码丢失(而不是员工复制粘贴部分代码)......

使用你的源代码管理系统(你有一个,对吗?),你可能有一些钩子,这样当用户获得代码时,它的一部分是专用于该用户的二进制文件,是必要的使代码正确编译并正确运行...如果你推到极致,这将意味着拥有合适的硬件系统(TPM,硬件密钥......等)。

所以,在你处理了保罗所建议的所有文书工作之后,如果代码泄漏到任何地方,你可以追踪谁有过错(并且知道这可能会阻止任何人实际上甚至尝试)

答案 3 :(得分:1)

考虑所有因素......否(特别是如果项目是如您所述在本地存储的话)。如果开发人员可以访问源代码,他们就有能力窃取源代码。 IANAL,但为了阻止这类事情,你需要律师起草non-disclosure agreement (NDA)并让你的开发人员签名。

来自维基百科,NDA是:

  

至少两方之间的法律合同,其中概述了当事人希望为某些目的彼此共享但希望限制第三方访问的机密材料,知识或信息。这是双方同意不披露协议所涵盖信息的合同。

答案 4 :(得分:1)

这真的不是一个加密问题。但是有一个答案。

1)您应该限制开发人员,只允许他们访问完成工作所需的源代码。这是“最小权限访问”的安全主体。如果需要,将库的二进制文件或可执行文件存储在源代码管理中。

2)强制所有开发者签署保密合同。你可以起诉的高级开发人员。对于即时辩护,印度的这份合同比在印第安纳州进行辩护要困难得多。

答案 5 :(得分:0)

如果您的应用程序干净地构建到组件/模块/插件中,您可以在一定程度上降低代码被盗的风险。开发人员只能获得对其工作的组件的代码访问权限,并为该应用程序的其余部分编译代码。当然,我认为只需要整个应用程序窃取应用程序,而不仅仅是少数几个组件。

另一方面,您会惊讶于代码本身并不总是像您想的那样有价值。如果代码中没有可以直接转售的敏感IP,那么您的开发人员是否会重新编译并与您自己的应用程序进行直接对话?

答案 6 :(得分:0)

有一些方法可以保护整个开发环境,以便程序员可以保留或记录他们正在处理的内容。请访问www.chaperon-secure.net,了解从安全开发环境到存储库源代码库的可能解决方案。