AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 63537
Accepted
gAMBOOKa
gAMBOOKa
Asked: 2009-09-09 15:08:43 +0800 CST2009-09-09 15:08:43 +0800 CST 2009-09-09 15:08:43 +0800 CST

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

  • 772

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

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

有什么策略推荐吗?还是我偏执?

security
  • 6 6 个回答
  • 1269 Views

6 个回答

  • Voted
  1. Best Answer
    David Spillett
    2009-09-09T15:55:06+08:002009-09-09T15:55:06+08:00

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

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

    无论哪种方式,您都应该有离线备份和在线备份 - 即磁盘/磁带在异地但未连接。这样,如果你被彻底黑了,你的所有核心服务器、本地备份和托管的在线备份都被破坏了,你应该仍然有离线备份可以回滚。

    缓解黑客侵入您的主服务器并使用它们侵入您的备份服务器的问题的一种方法(几个月前发生在一个相对高调的 Web 服务上)我建议拥有一个实时和备份的中间服务服务器连接到。这样,您就可以安排实时服务器或备份服务器都不能相互访问,并且中间服务器不需要登录实时服务器或备份服务器。实时站点将登录到中间服务器以推送最新数据,并在备份服务器登录后一段时间将其拉到自己。这并没有消除对离线异地备份的建议,尽管它减少了您需要在愤怒中使用它们的机会。

    托管外部备份的一个额外选项:如果您与另一家本地非竞争企业的关系非常好,您也许可以托管彼此的备份。不过,您可能仍然会为真正的偏执狂加密您的备份(不是以防其他业务出现问题,尽管这可能会发生,但要掩盖他们自己被黑客入侵或被盗的可能性)。

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

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

    • 7
  2. uSlackr
    2009-09-09T16:10:48+08:002009-09-09T16:10:48+08:00

    不,你不是偏执狂。我发生了几件事

    • 你们所有的开发人员都签署了保密协议吗?它是否说明源代码是公司资产?
    • 您是否有明确限制开发人员兜售源代码的政策?
    • 开发人员笔记本电脑的硬盘驱动器和 USB 密钥是否加密?

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

    \\格雷格

    • 3
  3. John Gardeniers
    2009-09-09T16:44:01+08:002009-09-09T16:44:01+08:00

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

    在考虑使用“云”时,请记住它之所以被称为是因为没有硬边或定义。很简单,您无法知道您的数据在任何时间点在哪里,或者谁可以访问它。如果您强烈认为您的数据需要受到保护,那么您需要直接控制它。

    • 3
  4. KFro
    2009-09-09T15:58:37+08:002009-09-09T15:58:37+08:00

    只是想法:

    首先,使用版本控制系统。至少以这种方式保存文件历史记录。如果文件发生问题,您可以随时恢复更改。

    其次,我可能会考虑使用git或bazaar之类的 DVCS 。使用 DVCS 允许开发人员可以分支完整存储库的工作流。他们可以在自己的分支中签出文件、提交文件、标记、合并等,与其他人无关。然后在只有网守可以访问的安全服务器上保留主干存储库。开发人员可以合并来自主干的更改,但只有少数人有权提交到主干。网守也可以是自动化服务,例如 PQM,或其他一些补丁管理工具。

    第三,备份可能是一个棘手的问题。诸如“您想要存储物理备份吗?”之类的内容。“要镜像服务器吗?” “你的仓库有多大?” “我需要多少安全性?” 我认为我无法为您回答其中的一些问题,但您在制定备份计划时应考虑到这些问题。

    不,你不是偏执狂……这些是每个软件公司都应该处理的事情……它是你的知识产权,你需要保护它。

    • 2
  5. awe
    2009-09-10T23:13:57+08:002009-09-10T23:13:57+08:00
    1. 在雇佣时签订的工作合同中应该非常清楚地声明一切都是公司的财产,并且技术/代码不能在公司以外使用等......你不能阻止他们打破这一点,但如果它发生这种情况,您可以采取法律行动并赢得...

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

    2. 我们在可移动磁盘上进行备份。我们有 3 个可旋转的备份磁盘:一个插入计算机进行日常备份,一个锁定在办公室的防火保险箱中,另一个与系统管理员一起在家中。3 个圆盘旋转。这样可以确保我们在办公室外始终有一份备份副本,以防发生火灾。

    • 2
  6. Walter
    2009-09-09T16:01:24+08:002009-09-09T16:01:24+08:00

    第一个是政治/社会问题(除非您愿意搜查他们进出建筑物,以防止大多数出站流量,否则任何电子锁定都是虚假的安全门面装饰)。

    其次,在本地加密文件(在您的一端),然后将加密副本发送到您的存储提供商。我喜欢 Jungle Disk 的想法,您可以在其中创建并保留您的 Amazon S3 帐户,然后使用 Jungle Disk 软件将文件复制到 Amazon。您将拥有您的加密密钥。对于企业网站,您可以自己复制 Jungle Disk 的功能,然后完全控制。

    • 1

相关问题

  • OpenSSH 漏洞 [重复]

  • 选择什么安全套件?

  • 安全地授予对 SQL 2005 复制监视器的访问权限以创建快照

  • SSH 服务器零日漏洞利用 - 保护自己的建议

  • 如何将安全组添加到正在运行的 EC2 实例?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve