http://www.infoq.com/cn/news/2010/02/cwe-sans-top25
CWE/SANS发布的2010年度25个最危险的编程错误,是一个传播最为广泛而且会导致严重软件缺陷的关键编程错误列表。这些错误通 常易于发现并被利 用。之所以危险,是因为它们会频繁地被攻击者利用,来完全接管软件、偷取数据,甚至阻碍软件的运行。
这个错误列表是SANS研究中心、MITRE和许多来自美国和欧洲的顶级软件安全专家共同协作的结果。它参考的经验包括:SANS的 20个攻击导向 、MITRE的普遍缺陷列表( Common Weakness Enumeration )。 MITRE在美国国土安全部网络安全 部门的支持下维护着CWE网站,对这25个最危险的编程错误提供了详细的说明,以及对如何减轻和避免错误给出了权威的指导。CWE站点包括了超过800个 的编程错误、设计错误以及架构错误,这些错误可能导致软件安全上的缺陷而被攻击者利用。
根据CWE站点的信息:
这 个列表可以作为教育程序员的工具,通过识别和避免非常普遍的错误,在软件发行之前防止各式各样一直折磨软件行业的软件不安全因素。软件客户可以通过同样的 列表来要求更加安全的软件。研究软件安全的人们可以把研究的重点放在这25个范围更小但更重要的软件安全缺陷子集上。最后,软件经理和CIO们可以使用这 个列表来衡量软件产品安全化工作的进度。
2010年度的这个列表是对2009年列表的重要提高,今年的25个错误是根 据来自超过20家不同的组织的数据进行了优先级划分 ,而且引入了重点 的分类方法,来允许开发者和其他用户选择自己最关心的25个错误中的一部分。另外,新的列表还添加了一套最有效的“Monster Mitigations ”,来帮助开发者减少或者消除所有25个错误,以及CWE记录的其他800个 不安全因素。
下面是排在前五名的编程安全错误:
- 没有保护Web页面结构 (XSS,跨站点脚本攻击)
- SQL命令中特殊元素的不合理处理(SQL侵入)
- 未检查输入大小的缓存拷贝(经典的缓存 溢出)
- 跨站点请求伪造(CSRF)
- 错误的访问控制(授权)