分而治之

对于当前大量企业在系统安全上面对的困境,其重要原因是软件在其开发的时候没有进行安全相关实践,从而引入的各种安全问题,比如业务分析的时候,架构设计的时候,编写代码的时候等。针对这些安全问题,应该如何有效的发现和消除它们,关键在于整个软件开发生命周期内都应使用各种正确和合理的安全实践。

现代软件开发一般包括项目计划与评估,需求获取与分析,架构设计,编码实现,验证测试,问题修复,软件交付等步骤。为了阻止和减少安全问题出现在产品系统中,需要在软件开发中实施相应的安全实践,从而缩短安全问题的反馈周期,增加其反馈途径,从而更早和更快的发现和解决安全问题。

但是由于现在的主流安全实践还是靠安全专家手工进行,导致成本非常高,所以很多企业都没有办法进行全方位的安全保障。而BSI主要是通过开发团队中已有的角色来实施安全实践,并利用大量的自动化安全扫描和安全测试技术来快速发现安全问题,从而做到真正意义上的全方位安全开发。以前一章中P2P的项目为例,来看看企业应当如何实施BSI。

图2-1

通过以上的安全开发流程,可以基本保证这个P2P产品系统没有常见安全问题,极大的降低被黑客攻击的危险。

对于短迭代开发,BSI同样也是适用的,只需要在迭代开发中加入相应的安全实践就可以了,如下图:

图2-2

通过在软件开发中增加各种安全实践,从而增多安全问题的反馈渠道,缩短安全问题的反馈周期,使得安全问题可以快速反馈,持续改进。