Security 在开发过程中保护源代码不被窃取

Security 在开发过程中保护源代码不被窃取,security,encryption,tfs,code-access-security,source-code-protection,Security,Encryption,Tfs,Code Access Security,Source Code Protection,有没有办法在开发过程中保护我的代码,这样如果开发人员离开我的公司,他们就无法访问我项目中的文件 对于本地下载、缓存项目并可供脱机使用的TFS,这一点尤为重要。理想情况下,如果没有有效的Active Directory用户ID,代码将无法读取 即使这个想法是不可能的,我还是想知道你能想到的任何实际的威慑手段……所有考虑过的事情。。。否(特别是如果项目如您所述存储在本地)。如果开发人员可以访问源代码,他们就有能力窃取源代码。但为了阻止这类事情,你需要一名律师起草一份协议,让你的开发者签署 维基百科上

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

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


即使这个想法是不可能的,我还是想知道你能想到的任何实际的威慑手段……

所有考虑过的事情。。。否(特别是如果项目如您所述存储在本地)。如果开发人员可以访问源代码,他们就有能力窃取源代码。但为了阻止这类事情,你需要一名律师起草一份协议,让你的开发者签署

维基百科上的保密协议是:

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


假设他们可以在那里阅读并编译代码,那么你就无能为力了(除非你禁止使用U盘、CR书写器、扫描他们所有的电子邮件等等,即使这样,他们也会找到一种方法来解决这个问题)

在雇佣合同中说明这一点,并明确指出,如果出现该准则,将采取法律行动


(我在过去的生活中也遇到过这种情况——一名员工确实随身携带了代码。我们知道是因为他在操作时犯了一个错误,因此我们从外行那里发了一封信,指出他将代码泄露给其他任何人的后果。这似乎起到了作用)

如果应用程序干净地内置在组件/模块/插件中,则可以在一定程度上降低代码被盗的风险。开发人员将只获得对他们所处理的组件的代码访问权限,并为应用程序的其余部分编译代码。当然,我假设只值得窃取整个应用程序,而不仅仅是少数几个组件


另一方面,您可能会惊讶地发现代码本身并不总是像您想的那样有价值。如果代码中没有可直接转售的敏感IP,那么您的开发人员是否只需重新编译并与您一起使用他们自己的应用程序?

您必须向开发人员提供某种形式的信任。如果你不能相信他们不带源代码,你怎么能相信他们不在你的系统中构建后门之类的东西呢

此外,如果他们要编写代码,他们将需要访问它,如果他们能够访问它,他们几乎可以肯定地复制它。你可以试着去限制它,但你要想得比一群只需要找出你犯的一个错误的人早。此外,公开不信任你的开发人员也不会对你有任何帮助

您的代码中是否包含实际的商业秘密?如果是这样的话,你可能想重新考虑一下。如果不是的话,它会对别人造成多大的伤害?他们不能合法地使用它,而离开的开发者通常也可以编写类似的东西


为此,您需要的是法律保护,而不是技术保护。

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

使用您的源代码管理系统(您有一个,对吗?),您可能会有一些钩子,以便当用户获得代码时,其中的一部分是一个二进制文件,仅用于该用户,并且是代码正确编译和正确运行所必需的。。。如果你走到了极端,那就意味着拥有正确的硬件系统(TPM、硬件钥匙等)


因此,在你按照Paul的建议处理完所有的文书工作后,例如,如果代码泄漏到任何地方,你可以追踪谁出了错(知道这可能会阻止任何人去尝试)

有一些方法可以保护您的整个开发环境,这样程序员就可以保存或带走他们正在进行的工作的纪念品。请访问www.chaperon-secure.net,了解从安全开发环境到Vault源代码存储库的可能解决方案

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

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


2) 强制所有开发商签署保密合同。你可以起诉的高级开发人员。因为在印度捍卫这份合同比在印第安纳州捍卫要困难得多

StackOverflow对自我推销非常敏感。我建议在你的个人资料中明确你与那家公司的关系,并在你提供的任何回答中包括一份披露声明,其中包括产品说明。+1关于不披露(他是一个新人,希望能学到)@Kev-除了关闭它之外,你还投了反对票吗?我有-4代表,因为这一点。我是否因为收盘和否决票而失去了代表票?我没有否决票。当问题因OT而结束时,你会受到-1的打击。重复的虽然我完全同意雇佣开发人员本质上要求你给予他们一定程度的信任,但我不能不指出的是,防止后门不是严格意义上的信任,而是代码审查。除此之外,我完全同意。