我们如何保护我们的源代码?

我们如何保护我们的源代码?

我们的源代码是我们最宝贵的资产。我希望拥有它:

  • 由内部开发人员确保其不会扩散但他们还需要不受限制地访问代码才能正确完成工作。所以我不确定这是否可行。
  • 定期备份到安全位置,但将其上传到诸如 box.net 之类的云存储是否安全?

有什么策略建议吗?还是我太偏执了?

答案1

不幸的是,保护事物免受人类行为的侵害更多的是人的问题而不是技术问题,所以我将这个问题留给其他人来回答(人类不是我的强项 - 机器:是的,猫:有时,人类:不是!)。

如果你要将代码发送到任何外部服务,你必须确保在发送之前对其进行安全加密,或者确保你已经充分审查外部服务,最好两者都审查。运行自己的备份服务器会更安全(您可以更直接地控制),但更复杂(您必须自己做所有事情)。由于您的备份服务器可能会在您无法物理控制的托管空间中运行,因此您可能需要将数据设置在加密文件系统上启动时不会自动挂载(如果服务器需要重新启动,则让它们要求人工干预,以发送密钥) - 在服务器上拥有密钥,以便它可以自动安装加密卷,就像拥有一个昂贵的保险箱,并且在附近的便条上写有密码组合一样。

不管怎样,您都应该有离线备份和在线备份 - 即异地且未连接的光盘/磁带。这样,如果您被彻底黑客攻击并且所有核心服务器、本地备份和托管在线备份都被破坏,您仍然应该有离线备份可以回滚。

缓解黑客入侵主服务器并利用它们入侵备份服务器(几个月前发生在一个相对知名的 Web 服务上)问题的一种方法是,我建议使用一个中间服务,实时服务器和备份服务器都连接到该中间服务。这样,您可以安排实时服务器和备份服务器都无法访问彼此,中间服务器无需登录实时服务器或备份服务器。实时站点将登录中间服务器以推送最新数据,一段时间后备份服务器将登录以将其拉取到自身。这不会消除离线异地备份的建议,但它会降低您在愤怒中需要使用它们的可能性。

托管外部备份的另一个选项是:如果你在非常与另一家本地非竞争性企业保持良好关系,您或许可以托管彼此的备份。不过,您仍可能加密备份,以防万一(不是因为其他企业出现问题,尽管这种情况可能发生,而是为了弥补他们自己遭到黑客攻击或盗窃的可能性)。

另外还有一个经常被忽视的点:确保已制定测试备份的程序。您不希望在需要从中恢复某些内容的那天发现它们几周前因某种原因停止工作。有很多方法可以测试您的备份,最好的方法取决于您存储的数据的性质和大小以及存储的格式。例如,我在虚拟机中运行我的邮件服务器的副本,它是实时服务器,但外界看不到。每周三次,脚本会停止它,将最新的备份恢复到它,然后重新启动它,任何错误都会通过邮件发送给我。然后,作为我日常家务管理的一部分,我会登录到这个备份虚拟机来检查一切正常(它正在运行,存在最近的更改,旧数据的随机样本看起来也正常,......)。您仍然应该偶尔手动测试备份,但自动测试有时是天赐之物 - 它们可能会在小问题变成大问题之前将其标记出来。

很难在照看源代码时要小心谨慎。它是您的核心资产,没有它,您的业务可能一文不值,因此您需要非常小心地保护它免受外部恶意力量(包括自然力量!)的侵害。

答案2

不,你不是偏执狂。我想到了几件事

  • 你们所有开发人员都签署了保密协议吗?协议中是否明确规定源代码是公司资产?
  • 你们是否有明确限制开发人员携带源代码的政策?
  • 你们开发人员的笔记本电脑的硬盘和 USB 密钥是否加密?

  • 备份到“云”是可以的。您应该考虑自己备份并将备份存储在异地。

格雷格

答案3

您的源代码和您希望保密的其他文件(例如财务文件)之间绝对没有区别。人为因素是您认为合适的事情。文件的安全性和完整性可以通过多种方式管理。我更喜欢自己备份到磁带上。这些磁带存储在异地,以便在发生灾难时(例如建筑物再次被烧毁!)不会丢失超过一天的数据。

考虑使用“云”时,请记住,之所以这样称呼它,是因为没有明确的界限或定义。简而言之,您无法知道您的数据在任何时候在哪里,也不知道谁可以访问它。如果您强烈地感觉到您的数据需要保护,那么您需要直接控制它。

答案4

  1. 在签订的工作合同中应该有非常明确的声明,指出一切都是公司的财产,并且技术/代码不能在公司外部使用等等......你无法阻止他们破坏这一点,但如果发生了,你可以采取法律行动并获胜......

    另一件要做的事情是确保员工喜欢他们的工作,这样就能对公司产生忠诚度,从而降低他们想要利用访问代码的权限的风险。

  2. 我们在可移动磁盘上进行备份。我们有 3 个可轮换的备份磁盘:一个插入计算机进行每日备份,一个锁在办公室的防火保险箱中,一个放在家里,由系统管理员保管。这 3 个磁盘可轮换。这确保我们在办公室外始终有一个备份副本,以防发生火灾。

相关内容