CWE/SANS 发布 2010 年 25 个最危险的编程错误

  • 张凯峰

2010 年 2 月 17 日

话题:Java安全架构语言 & 开发

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 个 不安全因素。

下面是排在前五名的编程安全错误:

  1. 没有保护 Web 页面结构 (XSS,跨站点脚本攻击)
  2. SQL 命令中特殊元素的不合理处理(SQL 侵入)
  3. 未检查输入大小的缓存拷贝(经典的缓存 溢出)
  4. 跨站点请求伪造(CSRF)
  5. 错误的访问控制(授权)
Java安全架构语言 & 开发