探索中国CIO人才现状 | 第四季调研报告
Heartbleed事故后:软件政策何去何从?
2014-09-24  来源:techtarget

首席信息安全官(CISO)的工作正受到密切关注,面对持续的挑战,他们必须最大限度地利用安全举措来确保企业资产得到充分保护,其工作的重点在于严格控制用户对关键数据和资源的访问。但对于管理这些数据(包括加密、身份验证和权限检查使用的代码)访问的软件,却很少得到这种相应水平的关注。

面对资源限制,企业越来越多地使用开源库和第三方组件来开发复杂的应用。为什么重写已经存在的功能呢?因为很少有企业会像检查内部创建的软件一样严格检查这些代码。

由已经离职的老员工维护的应用和数据库,以及通过合并和收购获取的软件系统,都会带来安全隐患。有些IT团队可能会假定这些代码是安全的,因为别人已经完成了检查缺陷和漏洞的工作。而OpenSSL加密软件库中的Heartbleed漏洞让我们明白,单纯地依赖别人来正确部署和提供安全性可能让企业和客户数据处于风险之中。

对于使用开源和第三方软件涉及的风险,安全管理人员该发挥怎样的作用呢?根据《高管的观点:(ISC)2全球信息安全工作力CXO报告》(The View From the Top: (ISC)2 Global Information Security Work-force CXO Report)显示,在2013年接受采访的1634名安全高管列出的威胁问题中,应用漏洞名列榜首,同时它也是最少受关注的问题。只有7%的受访者花了很多时间在软件安全上。

和企业移动和BYOD要求一样,软件安全政策合规低得令人沮丧。修订安全政策对决定着企业的赔偿责任和漏洞问题的开发做法会有什么影响?

尽早且经常发布

首席信息安全官面临的困境是:确保软件项目内使用的代码的安全性,同时不会惹怒企业业主以及开发团队,要知道,当预算紧张又需要按时交付应用和更新时,开发团队通常承受着巨大压力。对于不安全的软件,随着威胁逐渐超过其带来的优势,安全人员需要重新评估使用开源软件和第三方组件涉及的风险,并研究如何能最好地管理它们。

开源软件的安全性和质量(这是企业选择使用这些库和组件的两个原因)取决于每个项目的开发人员团队的规模是否足以大得让人能够发现缺陷和漏洞。这即是所谓的林纳斯定律——“足够多的眼睛,就可让所有问题浮现”,该概念根据linus Torvalds的名字命名,他是linux的创造者,也是自我修正、社区驱动的软件开发模式的早期支持者。然而,这一理念在现在的威胁环境存在的问题是,发现和利用漏洞的金钱奖励要高于发现、发布和修复开源软件漏洞的奖励。

开源安全举措也有金钱奖励,微软和Facebook赞助的Bug Bounty会对“提交在主要开源软件(例如PHP、Perl和Apache httpd)中发现的漏洞,用以打造更安全的互联网的黑客”进行奖励。

约翰霍普金斯大学的计算机科学教授Matthew Green以及由社区资助的对trueCrpt磁盘加密工具进行审查工作的另一些人,提出了一个漏洞赏金计划,作为该安全审计工作的一部分。由于不知名的“安全漏洞”,这个开源加密项目在5月份突然被其开发者关闭。

有关美国国家安全局的监视活动的新闻已经导致很多国家(包括中国和其他民族国家)质疑开源项目以及有美国公司故意将漏洞引入到主流安全协议和功能中,以为NSA提供后门程序。RSA(EMC公司的安全分支)、微软和trueCrpt都是面临审查的公司。

企业开发团队在构建应用时,可以轻松地使用100或以上不同的开源库、框架和工具,以及从互联网复制代码片段。2014年Sonatype开源开发调查发现,90%的典型应用是由开源组件组装,其中很多包含已知的安全漏洞。漏洞组件引入至新应用的问题已经非常严重,这已经出现在OWASP的Web应用漏洞前10名的榜单上了。

糟糕的政策 存在漏洞的软件

研究表明,只有少数企业部署或强制执行了关于使用第三方代码的政策。Sonatype调查发现,在3353名受访者中,75%表示其企业有关于代码和组件使用的政策,但只有68%的受访者(管理人员、架构师和开发人员)遵守这些政策。事实上,77%的受访者表示其企业从未禁止开源组件,即使有31%是开源软件的受害者或者可能遭泄露事故。

显然,负责管理企业软件安全状态的信息安全主管需要重新审视政策、程序,以及管理代码和组件使用的指导方针,以确保其安全程序对开源代码的使用拥有足够的控制。软件开发生命周期应该建立起“将安全做法实际引入到开发过程中”的框架。

根据Cigital公司首席技术官Gary McGraw表示,软件安全组(SSG)应该监管应用安全,SSG属于安全部门,并作为孤岛式安全团队和开发团队之间的中介。SSG的主管应该由董事会来委任,以确保安全代码被视为企业的重要组成部分;它是企业管理流程中的必要费用之一,且等同于其他业务驱动因素。Cigital的成熟模型中构建安全(BSIMM)调查使用了67个真正软件安全举措的数据,这些数据来自于美国银行、EM、富达、汇丰银行、微软、McAfee、Salesforce和Zynga等,该调查发现,具有成熟软件开发操作的企业通常有高级管理人员来管理软件安全,以及SSG来管理开发程序。(在Creative Commons Shared Attribution 3.0 License下可查看BSIMM-V项目的数据和相关文件)

开发团队应该在最开始就参与制定软件安全政策的工作,否则遵守程度会很低。SSG和开发团队领导者需要商定代码和组件选择的具体参数,包括业务用例、支持论坛和文档的质量、可接受许可证,最重要的是代码质量。

让开发人员负责代码和组件选择过程,可以让他们的声誉面临压力,这意味着他们可能需要为代码的未来问题承担责任。这种水平的参与度可以帮助开发团队意识到,速度和花哨的功能并不是最重要的编码因素,还应该考虑开源组件以及与内部代码和软件组成的依存关系。SSG以及开发团队可以根据整体企业风险来确保每个代码选择或组件,以确定所需的安全审查范围。

上一页 1 2下一页