上个月我花了一些时间从合作网络角度上写了一些关于数字链系统供应安全。我曾有机会在新加坡RSA安全会议上谈论这个,并且和参会人员在外包代码开发方面产生一些共鸣。
我完全理解为什么一个公司想要寻找开发人员来支持它们的开发工作。在美国他们会说有许多聪明的开发者,他们可利用的价值很少。但是这依赖于海外程序员可能会导致公司承包工作某些方面的失败。我见证了好多代码被排除生产因为没有合适的版本。这种行为总是让我意外,一些大型企业已经接受了外包提供者编写的有问题不安全的代码,或者说,他们只是在工作需要的时候接受它。一个令人沮丧的行为被专注于截止日期而不关注过程的组织驱使,如果用代码被编译它,"时间就是金钱"的道理是真的。
在印度有这样一个组织承包了一家公司来增强他们的开发团队。简单地契约,之后我们的团队开始问问题,第一个问题是发现任何类型的访问检查过之后进行签约,之后发现合约里没有提到安全问题。开始24小时的日志访问是相当无趣的。有从金奈、海得拉巴、孟买、普纳和班加罗尔的登录。没有什么不同寻常的事情,但是,《纽约时报》看起来有点特殊。第一次登录是下午6:43,最后一次登录是下午7:55。这件事让我感到十分的疑惑。
之后我就像被从穆罕默德·阿里撞击一样,每六个登录都使用相同的RSA SecurID令牌。
这是一个基于硬件令牌每六十秒生成的验证码。他们的出现似乎能够读出一个人的身份证号码,以便他们能够使用VPN连接到我们的公司网络。
我的脑袋都大了,这只是冰山一角,因为我们忽略了合同中的安全问题,还有糟糕的代码、糟糕的安全实践,没有追索权。公司进一步复合协商续约,并没有兴趣向提供者施压来提高我们的价格。挫折是显而易见的,但是随着时间的慢慢推移,在这家公司事情将变得更加有条理。
另一个公司,我曾工作与不同国家的外包代码开发,像俄罗斯。在这种情况下,外包供应商出口控制一些代码。他们不能获得所有的各种各样的代码区域法律问题。他们将不断的开放票请求访问,超过他们被允许的,比零价值的帮助台更常用,将被外包批准。于是它变成了噩梦般的打地鼠游戏。
提供者在俄罗斯的问题上远远比我们想的复杂,他们有一个版本控制软件允许他们观看代码在执行合同时的工作。这从理论上讲是合理的,问题是再次捷径,而不是访问仅限于他们合同中开放的访问的整个代码库。他们甚至有控制系统版本的根密码。令人难以置信的最终被纠正,它同时也给了我们深刻的教训。
这些事件教育这些公司将来确保将安全事项列入合同内。这些公司没有解决最基本的,也没有主动监测,承包公司也没有安全标准培训。当从供应商接受代码的时候就没有审查。如果你的组织不能够做到这些,那么你需要花时间换一个能够专门从事安全审查你代码的。
最低的报价并不总是最好的选择。当承包给第三方数字供应链是,执行比勤奋更重要。