本文来自微信公众号“数世咨询”,作者/nana。
职业黑客团伙和黑客国家队每年都在网络犯罪上投入更多时间、金钱和精力。恶意黑客采用种种创新技术发起全球顶级网络安全专家都见所未见的各种新型攻击。有动力有资金,恶意黑客团伙如今不仅有资源对可带来丰厚利润的大企业下手,也不放过蚊子腿儿也是肉的小公司。美国杜克大学最近的一项调查研究发现,各行各业的受访中型企业中竟然有85%都曾被成功渗透过,尽管其中很多可能都遵循了成熟的最佳实践。
恶意黑客最为关注的一个行业是计算机软件开发。由于我们日常工作和生活中几乎离不开软件,所以公司很有必要设置一系列规程来帮助确保自己的软件是安全的,并且领先恶意黑客和无法预测的威胁一步。
网络和IT运营管理软件公司SolarWinds以其Next-Generation Build System(“下一代构建系统”)辅助创建更加安全的软件开发过程,采用并行构建过程在多个相同的安全瞬时环境中开发软件。为保护整个行业不受未来威胁的侵扰,SolarWinds将开源此构建系统的组件,以便其他公司可从中获益。
Next-Generation Build System中有四个指导原则可供企业参考。结合公私合作和威胁情报共享,这几个原则可以帮助企业在风险逐年上升的情况下改善自身安全。
构建自毁系统,并使用代码构建
为保护软件开发过程,企业需要实现不会留下持久环境的系统。这一点很重要,因为长期的环境和构建系统可能含有更为严重的漏洞和过时组件,让攻击者可以更轻松地展开攻击。
企业可以通过在短期软件构建环境中开发产品来缓解这些漏洞,也就是每次构建任务完成后环境自毁。这么做可以消除攻击者在系统中建立“基地”的机会,大大增加攻击者尝试攻击的难度。
构建系统基于代码可以实现短期自毁模式,并为构建组件提供保护和版本控制。
这种开发方式需要严格控制的过程和井然有序的领导,因为企业必须分隔各个构建系统,单独管理并密切监测这些构建系统。
复现性是关键
说到软件开发,复现性是确保构建安全的关键。复现性背后的假定是:开发团队在某个位置构建软件后可以在另一个系统上或在不同时间重新构建,而构建出的结果相同。
依靠可复现的构建,开发人员可以确保自己的软件能以同样的方式运行,消除代码中的差异,识别异常,防止入侵。采用可复现构建,软件开发公司可以再现错误,从而更好地了解和修复错误,识别构建管道中任何未经授权的调整。
可复现的构建十分关键,因为它还使得软件开发能够比较源代码的最终输出,从而确保无论何时何地创建的构建都是同样的。这一点对软件开发过程的下一步,也就是并行构建而言可谓至关重要。
并行构建
加强软件开发过程完整性的另一途径是通过所谓的“并行构建”过程。想要最大限度地保证安全,就需要用到三个逻辑构建管道:开发人员、预生产/确认,以及生产。所有构建都必须满足上述特征。
开发人员管道进行正常的工程构建。大多数工程都得访问构建环境。预生产/确认构建的访问权限有限。除了执行构建,该管道也是执行质量、安全和性能测试的环节。
最后就是生产管道。此管道的访问权限极其有限。只有少数预先确定的人员有权访问。完成与预生产管道的比较之后,软件才可以从生产管道发售。这一构建模式采取了假定遭到破坏的方法,也就是说,单个违规人员无法独立破坏生产构建。
这些并行环境各自有其单独的入口点,都是独立的环境,这样一来,潜在威胁都集中在单一环境中,也就减少了漏洞。即便某个环境被攻破,攻击活动也没多大可能性复制到其他两个环境中。
追溯每个步骤
可追溯性是确保构建过程安全的最后一个关键原则。有必要通过能在软件发布之前加以验证的跟踪过程来验证每个构建步骤。这需要管道上每个项目的工程师和管理人员签字。
个中理念就是仔细审视每一步,验证代码是否匹配且正确实现,并且有可追溯的明晰历史供了解任何错误或异常。在生产发布之前加上人工验证有助于保证已采取了所有恰当的措施来确保质量和安全。
网络安全形势不断变化。新威胁和有动力、有资金的恶意黑客每天都在涌现。提高软件开发过程的安全性是挫败和缓解这些攻击者的关键部分。行业应采用上述原则,在安全方面更为开放,共享信息和最佳实践,从而改善整个行业的安全性。