近期一项调查显示,软件专家能够对应用安全的概念有基本了解,但是,他们却无法修复由此所引发的安全问题。
软件专家自身以及他们所提供的业务指导方面都缺乏软件安全编码的实践经验。
像Target、Home Depot以及JP Morgan Chase这样的公司都将安全漏洞视为头条新闻,在这种商业环境中,安全编码实践便成为一个大问题。如果软件专家们了解如何编写抗攻击性代码,并且高层管理人员能够将安全编码排在优先的地位,那么,就可能阻止这些安全漏洞和数据缺失的发生。
安全代码实践,即用一种无漏洞、防止黑客盗取数据的方式来编写应用程序。这并非全新的理念,早在10年前,就有应用安全专家提出了安全信息代码的话题。John Dickson是圣安东尼奥Denim Group应用安全咨询公司的一位主管,他说:“通过改变软件的构建才能真正地解决其安全问题。”
但是,专业人士却对其置若罔闻。2014年Denim Group公司的一项调查报告显示,软件专家能够对应用安全的概念有基本了解,如SQL注入,但是,他们却无法修复由此所引发的安全问题。2014年Denim Group公司的“应用安全研究报告”对600名软件开发人员、架构师和质量保证专家进行了调查。该报告从应用程序安全概念(如威胁建模和输入验证)以及对防御性编码的理解两方面对各位专家进行测试调查。
软件专家未能通过安全测试
Dickson是该报告的主要撰写人,在近期的一项会谈中,他与我分享了Denim Group公司的一些新发现:
Dickson说,大多数软件开发人员对应用安全概念都会有一定的了解,但是,他们却不必了解如何将这些概念融入到实践中。Dickson 说:“当被问及到如何编写更为安全的代码时,这些专家都回答不上来。”他说,这些专家们回答应用安全性问题时,平均只有56%的问题回答正确,“70%专家不及格。”同样,很多软件专业人士也没有受过足够多的应用安全培训。其中一个调研问题是,“你曾经接受过多长时间应用安全教育?”半数被调查者的答案是,一天以上。另外一半的被调查者的答案是,少于一天,或者是没有被培训过。
我愿意这样想,一天的应用安全培训至少比没有培训过的要好得多。但是,调查结果的实例表明,事实未必如此。在调查中,我们对那些自称接受过应用程序安全培训的专业人士这样提问:“你的公司实施过SDLC或者其他流程改进措施,从而使所培训的概念在实际运行中变得正规化吗?”33%的人的回答是“yes”,而另外三分之二的人的回答是“不了解”或者是“no”。换句话说,尽管有的企业对软件工作人员进行了应用安全培训,但是,有的企业还是“采用以前的方式方法进行现有工作。”
失败的高层管理者
假设,以上调查结果精确地反映了目前企业的应用安全培训现状,那么这种状况有点不妙。为了使软件专家跟上应用安全的发展速度,企业花费了大量的时间和金钱。然而,一旦学员回答日复一日的工作岗位上,企业却从来没有在加强培训所学概念上下任何功夫。然而,那些口头上批准应用安全培训开支的企业高管们,在实际防止安全事故发生的工作中,却没能保持对安全代码实践的支持。对于软件专家培训的相关细节我们没法说的太细致,但是,可以清楚地知道的是:他们并非要将应用安全性列为首要位置。
只要这种情况一直持续下去,软件专家们就不可能重视应用安全培训。当然,也会有较少数的软件人士愿意将时间投入到成为一名资深的应用程序安全专家上面。但是,大多数人还是认为安全编程实践仅是一系列不错的技能,而对于工作绩效来说并没有什么直接关系。
当专家们真正认识到,通过培训才能获得某些技能时,才会更多的关注到培训的重要性,开始做记录,开始提出问题。当需要使用到这些技能时,我们开始需求保证,并研究在何处能学会这些技能。我们这样做,是因为,我们工作上的成败都与这些技能有关系。
当问到,是否了解应用安全性以及是否掌握了安全代码实践时,我们的回答是,还远未达到这种水平。这种回答意味着,不仅仅是软件人员在该考核中没有及格,高官们同样也是不及格的状态。
我们如何才能扭转这种局面呢?来听听大家的看法。