2011年安全事件层出不穷,几乎可以称为“黑客年”。以前黑客通常是利用程序漏洞来造成破坏,令网站陷入尴尬的境地,但如今他们却是为了窃取 数据、IP 地址,或者通过在网站中植入木马将恶意软件安装到访客的电脑里,更有甚者转移账户、违反行业规定等等,因此应用程序的安全显得越来越重要。
安全漏洞 TOP5
据统计,10个程序中有 8 个以上在第一次测试时都不能通过 OWASP(Open Web Application Security Project,开放式 Web 应用程序安全项目)的检查,而且有一半的开发者在基础程序安全评估中都只能获得C级甚至更低的评级。
下图展示了排名前五位的安全漏洞。其中橙色表示受影响的 Web 应用的比例,XSS 最高;蓝色表示被黑客利用的比例,SQL 注入的比例最高。
编程语言中的安全漏洞
下图展示了一些流行的编程语言中比例最高的 3 种安全漏洞。其中 XSS 的威胁依然很高,而信息泄露和加密问题也不容忽视。
不同开发模式的安全漏洞
下图展示了各种开发模式(内部开发、商业项目、开源项目)所带来的安全漏洞,其中 XSS 高居榜首。
首次提交 OWASP 测试的合格率
下图展示了内部项目、商业项目、开源项目、外包项目、综合开发项目在首次提交 OWASP 测试的合格率,其中内部项目最高,外包项目最低。
Android 应用也不安全
Android 应用的安全问题主要有两类:一类是加密问题,另一类是信息泄露问题。加密问题中 61% 是缺乏熵编码的问题,这通常是由于在 Java 程序中使用统计 RNG 而不用加密 RNG 所致。而这些问题用一行代码就能修复。
修复安全问题所需时间
其中外包项目中的安全问题通常能在一周之内修复,其次是开源项目。而其他项目的修复周期相对来说比较长一些。
如何增强程序安全性?
- 及时更新软件。自己编写安全的软件或要求供应商及时修复安全问题。
- 不断学习。自学巩固程序安全基础知识,参加培训班。
- 要求供应商为其软件提供安全保证。要求供应商查看程序代码,在合同里写入安全保证条款。