雇用我的第一位员工时如何保护我的代码免受“内部”威胁?

信息安全 内部威胁
2021-08-26 12:08:02

我辞掉了工作,开始了自己的 SaaS 产品。我现在正在寻找雇用我的第一位员工(另一位开发人员)。

我将采取适当的法律预防措施来保护我的知识产权,但我想知道我可以采取哪些其他合理的措施来进一步保护我的代码/数据。我最不想发生的事情是发生在特斯拉身上的事情,有人将源代码转储到 iCloud 上,然后跑给了竞争对手。

我知道要阻止这 100% 的发生实际上是不可能的,我需要确保我雇佣有素质的人并提供有意义的薪酬并签署适当的法律文件。除此之外,我还能做些什么来保护自己免受内部威胁?我把我一生的积蓄都倾注在这上面,我会因为失去我在 2 年编码中花费的大部分时间而感到沮丧。

到目前为止,这是我的想法:

  • 为他们购买一台工作笔记本电脑
  • 加密硬盘驱动器(如使用 Bitlocker)
  • 禁用所有 USB 端口
  • 创建一个没有安装权限且仅安装 IDE(例如 Visual Studio)的非管理员/受限用户帐户。除了用于应用程序开发的 iOS 部分的 Mac 之外,我使用 Windows 10 进行大多数开发。
  • 安装某种员工记录软件。
  • 禁用对文件托管网站的访问。
  • 当某个文件夹被上传或复制到某处时,以某种方式检测并停止?
  • 以某种方式使 git 存储库只能从该机器访问。
  • 安装某种远程管理系统?Azure Active Directory 之类的?

这对企业来说一定是一个常见问题,但我一定是在寻找错误的东西,因为我似乎无法在任何地方找到关于这个问题的指南。

4个回答

在大多数情况下,这不是技术问题,而是人为问题。因此,虽然技术可以发挥作用,但它也有局限性。

如果员工将在家监督工作,则更加困难。如果您要监控他/她的活动,您不想违反适用的隐私法。

显然,计算机必须得到保护,但其他环境也很重要。如果你有一个公司局域网,应该有足够的保护,比如 IDS/防火墙。但是如果没有人关注日志和警报,这些设备通常是无用的。

由于您提到了 Visual Studio,因此开发人员可能需要至少是本地管理员才能在最佳条件下工作。如果您削弱他们的环境,他们可能会受到诱惑,甚至被迫寻找解决方法并破坏您想要避免的安全措施。

恐怕我们都必须信任他人并承担风险。你越多地监控你的员工,你就越让他们明白你不信任他们,让他们觉得不值得信任。在某些时候,监视工作会适得其反,因为您使他们感到沮丧和失去动力。他们可能会变得不那么有生产力,不那么忠诚。

安全培训也可能是有益的。员工可能诚实并善意行事,但容易受到社会工程学的影响,并在不知不觉中危及公司及其资产。天真可能与恶意意图一样危险。我会说许多开发人员缺乏网络安全意识。

也许您应该对您的公司进行渗透测试并从中学习。因此,您的安全状况将得到改善,您将能够更好地抵御攻击。

员工通常是最薄弱的环节,但您还应该考虑黑客和不道德竞争对手的威胁。换句话说,不要过分关注您的员工,而是为您的公司开发 360° 安全方法。

物理安全也很重要。如果硬盘驱动器被加密并且具有强密码,那么丢失的笔记本电脑应该没什么大不了的。但是你的备份应该在一个安全的地方。考虑入室盗窃的风险。

是的,备份非常重要确保你有一个可靠的备份计划,不时进行测试。准备灾难恢复计划如果你的办公室用你所有的电脑设备烧毁会发生什么?您需要保护您的源代码,但还需要为业务连续性做好计划。提示:保险。

如果您有宝贵的知识产权,您可以考虑申请专利同样,这是律师的工作。

也许你可以找到保险来承担风险。问题是是否值得为低风险付出代价。

我也会提供公司的股份或部分股权然后,您的员工就没有足够的动力去流氓和破坏您的企业。

总结一下:可能的风险太多了,我觉得你太强调内部威胁了。你更有可能被黑客入侵,而不是因为行为不端而解雇某人。您的员工必须是您的盟友并被视为盟友 - 而不是潜在的敌人。

不要这样做:

创建一个没有安装权限且仅安装 IDE(例如 Visual Studio)的非管理员/受限用户帐户。

禁用对文件托管网站的访问。

安装某种远程管理系统?Azure Active Directory 之类的?

很多开发人员,包括我自己,都不会在这台机器上为你工作,除非你愿意真正让它值得他们花时间。它不会提供什么安全性,但工作起来会非常令人沮丧。

这是一个简单的经验法则:

恶意开发人员将能够侵入他们正在开发的产品使用的任何东西(数据、源代码、网络)。他们还会入侵您给他们的笔记本电脑。因此,在这种情况下保护和保护您的 IP不是技术问题,而是组织问题。

我需要确保我雇佣有素质的人,提供有意义的薪酬,并签署适当的法律文件。

这是你的答案。

我最不想发生的事情是发生在特斯拉身上的事情,有人将源代码转储到 iCloud 上,然后跑给了竞争对手。

在那之后,特斯拉失败了,再也没有听说过?还是半条命泄漏后的阀门?

或者,实际上,仅仅是源代码并没有那么有价值。与其他项目集成通常很痛苦,所以除非有人要完全克隆业务(这是非常明显的并且可以通过法律行动来处理),否则拥有您的源代码副本并没有您想象的那么有用。

重要的是要保护凭据客户数据保护实时服务器、对它们的访问以及任何 AWS 或类似帐户。在 AWS 上被黑客入侵比源代码泄漏更可能破坏业务。即使意外未能控制 AWS 上的成本也可能会毁了您。泄露客户数据会使您面临 GDPR 责任。

两因素身份验证可能是一个明智的基准。当你得到它时,它可以与 Active Directory 集成(我不推荐它低于 10 名员工)。

对于特别敏感的系统,将“测试”、“暂存”和“生产”区域分开,只有您(或经过批准的员工)可以访问“生产”,并且只有生产拥有真实的客户数据,这是一个好主意。

首先,我建议您估计您将要开发的软件的真正价值。它真的是你将拥有的最有价值的资产吗?如果有人获得源代码,你会花多少钱?

想想 Facebook 或 Linkedin。他们不是他们领域的第一批人。而且他们的软件并不是最有价值的资产(是的,他们开发并后来开源了 Bootstrap、React、Kafka、Samza 等等)。

在估计有人获得代码的风险和成本之后,估计你可以投入多少资金来保护它。

这里只是需要考虑的几点:

  1. 一项任务是了解从计算机发送到互联网的确切内容。大多数网站使用 HTTPS。你不能解密它。一种选择可能是强制所有连接使用您的 VPN,强制安装您的 CA 证书并实现中间人。另一种选择可能是在计算机上使用一些间谍软件。
  2. 另一项任务是对发送到 Internet 的数据进行分类。如果使用了某种加密或混淆,则很难防止它发生。
  3. 技术实现可能非常复杂。开发人员要执行其日常工作,可能需要多个信使、多个浏览器、电子邮件。你需要控制一切。
  4. 即使你有这样的工具,仍然可以用最重要的类、配置文件等的内容制作屏幕图片。

通过互联网连接防止泄漏可能非常昂贵,只有少数公司能负担得起。

考虑到这一点,禁用 USB 并没有多大帮助。禁用 USB 的主要优点可能是防止笔记本电脑通过 USB 被恶意代码感染。

加密不需要任何成本并且是有意义的。如果开发人员忠诚并且不分发您的代码,那么在笔记本电脑被盗或丢失的情况下,加密可以提供帮助。