首先,我想说的是,仅仅因为一家公司很大并不意味着他们的安全性会更好。
话虽如此,我会提到在大量财富 500 强公司中做过安全工作,包括许多大多数人熟悉的知名品牌,我会说目前 60-70% 的公司不这样做就像你认为他们应该做的那样。有些甚至允许全球数百家第三方公司完全访问他们的代码库,但不一定要写入代码库。
少数人将多个私有 Github 存储库用于单独的项目,启用双因素身份验证,并严格控制他们授予访问权限的对象,并在任何人离开时快速撤销访问权限。
其他一些人对保护事物非常认真,所以他们在内部做所有事情,并使用许多其他公司看起来像是过度安全控制和员工监控的东西。这些公司使用数据丢失防护 (DLP) 工具等解决方案来监视代码外泄、内部 VPN 访问高度强化的环境,仅用于开发,具有大量传统的安全控制和监控,并且在某些情况下,对所有数据包进行全包捕获存储代码的环境中的流量。但截至 2015 年,这种情况仍然非常罕见。
我可能感兴趣并且一直觉得不寻常的事情是,金融业,尤其是银行,安全性比人们想象的要差得多,而制药业比其他行业要好得多,包括许多国防承包商。有些行业的安全性绝对可怕。我之所以提到这一点,是因为还有其他动力在起作用:不仅仅是大公司与小公司之间的关系,其中很大一部分与组织文化有关。
为了回答您的问题,我要指出的是,做出这些决定的是整个企业,而不是安全团队。如果安全团队负责一切,甚至知道所有正在进行的项目,那么事情可能不会像今天这样。
也就是说,您应该记住,大多数大型企业都是公开交易的,出于多种原因,他们往往更关心短期利润、满足季度数据以及与其他大型竞争对手争夺市场份额,而不是安全风险,即使风险可能会有效地破坏他们的业务。因此,在阅读以下答案时请记住这一点。
如果源代码被盗:
大多数人不会在意,这对他们的品牌或销售几乎没有影响。请记住,代码本身在许多情况下并不是存储公司产品价值的东西。如果其他人获得了 Windows 10 源代码的副本,他们就无法突然创建一家销售 Windows 10 克隆操作系统并能够支持它的公司。代码本身只是出售的解决方案的一部分。
产品是否会因此而面临更大的风险?是的,一点没错。
外部修改:是的,但这更难做,也更容易捕捉。也就是说,由于大多数公司都没有认真监控这一点,因此这种情况很可能发生在许多大公司身上,特别是如果后门访问他们的软件对其他民族国家具有重要价值的话。这可能比人们意识到的更频繁地发生。
内部攻击者:根据攻击者的聪明程度,这甚至可能永远不会被注意到,或者可能看起来像是一个不起眼的编程错误。除了背景检查和行为监控之外,没有什么可以防止这种情况发生,但希望一些源代码分析工具能够捕捉到这一点并迫使团队纠正它。这是一种特别难以防御的攻击,也是一些公司不将工作外包给其他国家并对其开发人员进行全面背景调查的原因。静态源代码分析工具越来越好,但在他们能检测到的和能做的之间总是会有差距。
简而言之,漏洞总是会在修复之前出现,因此处理大多数安全问题就像与时间赛跑一样。安全工具帮助您在时间上进行权衡,但您永远不会拥有“完美”的安全性,并且接近它可能会在时间方面变得非常昂贵(减慢开发人员的速度或在其他地方需要更多的工时)。
同样,仅仅因为一家公司很大并不意味着他们有很好的安全性。我见过一些小公司的安全性比他们的大竞争对手好得多,我认为这种情况将越来越多,因为想要更认真地对待他们的安全性的小公司不必进行大规模的组织变革,而大公司会由于过渡成本,他们被迫坚持他们过去的做事方式。
更重要的是,我认为对于一家新公司(任何规模,尤其是较小的公司)来说,将安全性大量集成到其核心文化中会更容易,而不必像老公司那样改变他们当前/遗留的文化。现在甚至可能有机会通过创建一个非常安全的版本来从不太安全的产品中夺走市场份额。同样,我认为您的问题很重要,原因完全不同:安全性仍处于起步阶段,因此我们需要在代码管理等有很大改进空间的领域提供更好的解决方案。