安全专家们早已达成一项共识,即每家企业都应该将普及安全编程知识、检查软件成品漏洞以及将安全考量纳入设计思路作为项目开发工作的起点。
然而这一“真理”却在RSA大会上受到质疑——Adobe公司高级产品安全主管Brad Arkin与SilverSky公司(一家云安全供应商)产品、策略及服务部门执行副总裁John Viega就这一问题展开了热烈讨论。Viega的意见重点在于:像Adobe及微软这样的大型企业有能力承担安全开发流程带来的成长提升,但规模较小的公司则不可能经得起这类大笔开支。
“我亲眼见到许许多多企业在了解到安全开发的成本之后感到震惊称‘这是在开玩笑吗?这么搞生意就不用做了——我得拿出90%的时间搞安全软件,而直接回报却完全是零。’”Viega解释道。
本轮讨论多次出现尴尬局面——由于双方的争论焦点在于安全开发实践到底到底是否拥有积极意义,因此Viega对安全编程的反对表现得像个纯粹的邪恶代言人。
尽管如此,两位软件安全专家仍然在很多方面达成了共识。Viega是一位著作等身的安全编程导师,其作品包括《美丽的安全》与《安全编程指南》等。Arkin则帮助Adobe公司创建了一套安全生产开发规程,其中包括威胁评估、开发人员培训、反复测试以及事件响应等步骤。Arkin指出,所有软件开发人员都应当遵从类似的规划,以保证软件能够带来理想的投资回报。
“前期投资非常关键,”他表示。“只有建立起优秀的流程基础,我们才有机会获得理想的安全结果。”
两位安全专家(基本上)一致认为企业能够通过下面五个步骤令软件安全性得到改善。
1. 如果情况棘手,下力气开发出通用代码。
尽管代码重复使用几乎成为软件开发的行业惯例,但在安全功能方面编写代码就更显得至关重要。安全功能必须得到严格保障;通过专注于影响效果,开发团队能够通过一次努力开发出足以应付多种情况的安全代码,Arkin指出。
“一旦安全方面出现棘手状况,我们就要下力气解决难题并将其作为核心方案——把事情一次性做好,然后将成果推广到所有代码基础当中,”Arkin解释道。“这样的话,我们就不必为高危代码段一次又一次劳心伤神了。”
2. 一次性搞定代码检查,免除后顾之忧。
代码审计过程代价高昂,频繁的审计活动也必然拉高开发成本。相反,企业应该先亲自对代码开展一番分析,然后在开发者提交新代码时专注于对新内容的处理。
除此之外,某些专注于首先进行动态(即‘黑盒’)测试、再进行静态代码分析工作的企业也能找到其它投资回报方式,Viega建议称。
“对于软件即服务供应商而言,代码检查可能并不是那么重要,因为我们的软件都牢牢掌握在可靠人士手中,”他指出。“事实上大家应该把精力放在模拟恶意活动的黑盒测试身上。”
3. 在开发过程中引入安全思维。
Adobe公司在开发Reader 10时向其中加入了多项安全功能——例如沙箱机制、地址空间布局随机化(简称ASLR)以及数据执行保护(简称DEP)——这就使得该版本更加稳固、不易被攻破。Adobe公司在接下来的三十多个月都没有发现该版本受到外部攻破,Arkin指出。
“恶意人士都知道要拿下这道屏障非常困难,恶意活动的组织成本也被牢固的机制拉高了,”他补充道。
企业应该采取类似的行动方针指导开发工作,并从设计层面考虑软件安全功能、让软件破解变得更加困难。
4. 培训开发人员,但是……
企业应该强制要求开发人员进入安全编程培训班提升自身,但Arkin与Viega对于需要进行培训的具体人员有所争执。微软与Adobe两家公司都会为开发人员提供编程安全培训,但Viega对这一点表示反对,他认为将所有员工一股脑投入培训既浪费资金又影响正常生产。在他看来,只有那些对编程安全有兴趣的员工才是进一步学习深造的重点对象。
“大家只应该把钱花在那些乐于进行安全知识学习的员工身上,”他认为。“因为现实情况在于,只有这些人能真正在安全领域做出成绩。”
5. 条例并不能帮什么大忙。
在Viega尝试证明管理机制在软件开发当中的重要地位时,Arkin立即提出了激烈的反对。条例给软件开发工作带来的影响——例如支付卡行业标准等——并不能带来任何可以量化的积极提升,Arkin表示。
“PCI法规存在的意义就是用来被破坏的,”他开玩笑称。
在他看来,规章制度根本不会带来任何好结果。
“任何一条试图将软件开发推向法律高度的法规都是在胡闹,从起草、制定到印刷,全是在浪费时间,”Arkin抛出激烈言论。
相反,他认为企业和客户更需要的实际是软件安全性的切实提升。软件合同中所包含的安全要求已经开始引发开发者的关注,并成为促进安全开发实践的有力推手。
原文链接:http://www.darkreading.com/vulnerability-management/167901026/security/attacks-breaches/240150135/secure-development-must-do-or-money-pit.html