我想建立一个安全的小型企业进行游戏开发,并且正在考虑最好的方法来保护内容,同时仍然允许人们进行开发。当然,由于开发需要几年时间,在此期间任何事情都可能发生,所以我想尽可能谨慎。因此,我们希望有一种既能防止入侵又能防止挤压的东西,但仍然允许我们开发我们的 UE3 游戏。以下是我们的挑战和要求:
有 5 个人,都在不同的地方,并且在我们计划放置网络基础设施的地方只有大约 35mbps 的下行和上行速度可供使用。
需要保证数据在传输过程中的安全、在服务器上的安全以及在客户端上的安全。
服务器端至少需要一个 SVN 仓库、内部网络服务器、内部邮件服务器和一个 VPN 服务器。
我们的预算是 1000 - 1500 美元,只有在绝对必要时才会预算 2000 美元
我考虑过的所有选项包括:
带有 AV 和 DPI 许可证的 Juniper SSG-5 网络安全设备。Juniper 可能支持任何类型的加密 VPN 设置。带有 5 个客户端的服务器。虚拟化(ESX/ESXi、CentOS + Xen 等)服务器和客户端的全盘加密。
第一种情况:
虚拟化一切。让每个人都登录到我们所在地服务器上托管的虚拟机。使用第二台物理机来镜像所有虚拟机/充当冗余故障转移。
优点:所有数据都以这种方式存储在服务器上,因此无法从客户端计算机窃取数据,除非他们拥有服务器的登录信息,而登录信息可以被停用以防止丢失。
缺点:虽然 Maya 可以运行,渲染也可以推送到农场,但我不认为(如果我错了请纠正我)像 UE3 这样的程序可以在那里运行,因为据我所知,它对 3D 密集型应用程序的支持很差。
第二种情况:
让每个人使用 SVN 将资产或代码上传/下载到自己的计算机。
优点:最便捷的开发方式。
缺点:数据到达客户端后,无法控制去向(互联网上任何地方?闪存驱动器或 DVD 上,然后传递给竞争对手?)。
这些选项的问题在于,第一种似乎不适合开发游戏,而第二种则非常不安全。你们会建议什么样的安全设置?为什么?
答案1
放弃吧。要点。你的愿望、现实和预算不匹配。
- 除非您建立一个真正强大的服务器场、大量带宽并使用特殊的远程桌面功能,否则您无法远程运行图形密集型的东西。
- 如果您在 5 个地点有 5 个人,那么您就无法控制内容,无论您想要什么或想什么。
您可以轻松地在人们和中心站点之间建立合适的 VPN,但除非您强制使用某种远程桌面(那么您就不需要 VPN),否则您已经失去控制。
到最后,你必须相信人们不会窃取代码或资产,否则会将他们告上法庭。
现在,您可以设置一些带有中央服务器、大量带宽的东西 - 价格约为每位开发人员 3000 美元以上(已经达到 15k)。仍然不完美,但它可能“相当有效”。遗憾的是,这完全是浪费资金,而您的预算不允许这样做。
答案2
大型偏执公司通过强制所有工作在其安全的物理边界内完成来做到这一点。一旦有了它,就可以更轻松地过滤进出该边界的所有数字通信。防御手机摄像头、USB 驱动器和 3G 网络加密狗等需要付出很多努力,但这是可以做到的。
保护远程员工也是可行的,但你确实会放弃一些通过在安全边界内完成所有工作而获得的控制权。几乎不可能阻止基于操作系统的工具或手机摄像头的屏幕抓取。图形密集型开发(例如 PC 游戏开发所需的图形密集型开发)很难甚至不可能通过远程连接进行(目前)。开发人员测试的代码必须与开发人员的测试系统共享位置,这不可避免地会将其带出你的安全边界。将安全物理边界扩展到开发人员的远程环境相当昂贵(设置具有物理安全性的远程办公室,这在某种程度上抵消了拥有远程员工的成本节约)。
因为代码必须与开发人员共享位置,即使只是编译后的代码,编译后的代码也容易泄露。如果不将所有开发人员集中到一个物理屋檐下,我看不出有什么办法可以解决这个问题。
您可以采取一些措施来最大程度地减少代码丢失的可能性:
- 要求所有编码工作都远程完成开发人员必须通过 VPN 进入代码,并且编译过程集中进行。
- 要求所有 VPN 连接都通过公司计算机完成您不希望开发人员将他们的家庭系统连接到 VPN,而只希望公司计算机连接到 VPN。实现此目的的一种方法是要求 VPN 连接使用客户端证书,并且不使证书可导出。
- 要求对托管编译代码的存储进行高清加密这会大大降低性能,但至少如果笔记本电脑被盗,编译后的代码不会到处乱窜。出于性能方面的考虑,这个选项可能不可行。
最后,请记住,繁重的安全保障会使有创造力的人(开发人员)想出创造性的办法来解决它。