CWE

常见的弱点枚举

一个由社区开发的软件&硬件缺陷类型的列表

新CWE吗?点击这里!
CWE最重要的硬件的弱点
CWE最危险的弱点
>CWE前25名> 2010 CWE / SANS:集中配置文件
ID

2010 CWE / SANS:集中配置文件

项目的优先级总体排名前25位的列表只是,一般。排名,甚至选择哪些项目应该包括,可以相差很大取决于上下文。理想情况下,每个组织可以决定如何排名的弱点根据自己的标准,而不是依赖于一个通用的列表。

本文档提供了几个“重点概要”用自己的标准选择和排名,这可能是更有用的比一般的列表。

处于:缺点,没有2010年的前25位

前25名中选择使用投票过程中,参与者评估候选人的名单41的弱点。从这个列表,最终排名前25位的选择是基于普遍性和重要性,评估的参与者。

这使得16“尖端”不足从候选人名单中没有进入最后的前25位。这可能是由于一个或多个下列原因:

*不够普遍

*不够重要

*没有足够的选票(暗示有限流行/重要性)

*太新的(或太老)充分相关的在当前环境下

排名 分数 CWE条目
[26] 136年 cwe - 749:暴露危险的方法或函数
2点前25位,可能在上升。
[27] 129年 cwe - 307:不当限制过度认证尝试
等表亲可能挤压了前25名失踪的身份验证。
[28] 125年 cwe - 212:不当跨境删除敏感数据
重要的隐私是一个主要问题。
[29] 124年 cwe - 330:使用不够随机值
不总是安全相关的,但如果仍然危险。
[30] 120年 CWE-59:不当链接之前决议文件访问(“链接后”)
爆发在2008年CVE的统计数据表明,这些如果仍然可以普遍集中关注他们。
[31]
(领带)
120年 cwe - 134:不受控制的格式字符串
通常很容易可发现的,由于编译器和代码执行的可能性减少变化,如删除支持“% n”序列。
[32] 119年 cwe - 476:空指针废弃
通常导致拒绝服务在C / c++,但对于某些Linux内核和其他环境,可利用的代码执行。
[33]
(领带)
119年 cwe - 681:不正确的数值类型之间的转换
可能会在未来几年的增长,特别是在转换从32位到64位架构。
[34] 118年 cwe - 426:不受信任的搜索路径
流行是不确定的。
[35] 116年 cwe - 454:外部信任变量的初始化或数据存储
高患病率在PHP环境中启用了register_globals,或者程序员不熟悉逆向工程的有效性,或输入的许多方面可以修改。
[36] 114年 cwe - 416:使用后自由
有可能在未来几年在上升。
[37]
(领带)
114年 cwe - 772:失踪后释放资源的有效寿命
重要的防止拒绝服务是至关重要的。
[38] 106年 cwe - 799:不当控制的互动频率
重要的防止拒绝服务是至关重要的。也是一个蛮力攻击安全特性的关键组件。
[39] One hundred. cwe - 456:失踪的初始化
不总是安全相关的;同时,容易与现代编译器和代码扫描可发现的和可以解决的。
[40] 91年 cwe - 672:操作后过期或释放资源
有时明显由编译器,但可能会增加在未来几年。
[41] 77年 cwe - 804那些密码:验证码
不是很普遍,因为验证码不是很普遍的使用,和重要性一般小于其他加密和认证等安全特性。

教育的重点

此概要排名很重要的弱点在学校或大学从教育的角度看语境。它关注CWE条目,毕业的学生应该知道,包括历史上重要的弱点。有一个强调更高级别的根源,措施之一,最初新生问题难以理解。

比分是来自患病率(“上一页”)(“小淘气”)的重要性,强调(Emp)。

三个因素被用来进行评分和排名:

*重点(关键(致命一击),高、中(地中海),低)

*重要性(关键(致命一击),高、中(地中海),低)

*患病率(广泛(宽),高,常见的(通讯),有限公司(有限公司))

对于每一个弱点,重要性和流行都是1和4之间分配值(相当于4的最高评级,即。“关键”或“普遍”。)强调评级被分配的值0,2,4,6,6是相当于“至关重要的”。

疲软的分数然后计算使用公式:(重要性x患病率)+重点

评级的重点包括学生理解困难等因素,弱点的一般适用性更广泛的概念,在教会的编程语言,和相关课程或大纲。

所有41项从最初的候选人名单。

排名 分数 上一页 小鬼 Emph CWE条目
[1] 22 暴击 暴击 cwe - 79:中和不当输入在Web页面生成(“跨站点脚本编制”)
没有结束。变异有许多攻击模式,许多注射点(有些微妙的),和可能的后果。学生必须了解网络技术漏洞百出的名义功能不惜任何代价。
[2] 20. 暴击 cwe - 120:没有检查大小的缓冲区拷贝输入(经典的缓冲区溢出)
基本概念。触摸也不当终止字符串、栈、堆、减灾技术(金丝雀,地址空间布局随机化等…)。
[3] 16 暴击 cwe - 798:使用硬编码的凭证
简单但很重要的概念与灾难性后果,不幸的是广泛的历史。
[4] 14 地中海 cwe - 285:不适当的访问控制(授权)
简单概念原则上但是许多微妙之处。
[5]
(领带)
14 暴击 地中海 cwe - 362:竞争条件
学生学习的关键概念,但不是太难以理解的文件系统。依赖于操作系统类教使用信号量,使用事务和数据库类。
[6]
(领带)
14 暴击 地中海 cwe - 807:依赖不可信的输入在一个安全的决定
容易理解,但在历史上经常重复的错误。信任的概念至关重要。
[7] 13 CWE-22:不当限制限制目录的路径名(“路径遍历”)
好时机教学白名单。触摸url编码和字符编码在一般情况下,多个编码,黑名单失败,规范化的概念。
[8]
(领带)
13 cwe - 78:不当中和特殊元素中使用一个操作系统命令(OS命令注入)
涉及到代码注入作为一个基本的概念,数据和代码分离。涉及系统调用,执行调用,API模棱两可,环境中毒。操作系统注入需要较少的背景、基础设施和准备演示比其他injection-related SQL注入等弱点。
[9]
(领带)
13 cwe - 89:不当中和特殊元素中使用一个SQL命令(SQL注入)
它需要时间来解释它是如何工作的,最强的防御。
[10]
(领带)
13 cwe - 754:不适当的检查不寻常或异常情况
学生很少教如何妥善处理错误和异常,并适当地评分。这个把手伸进安全的心态寻找边界情况和异常情况,所以对这个问题应该导致更多仔细的编程和开发人员更有价值。
[11]
(领带)
13 cwe - 805:缓冲区访问与不正确的长度值
有很多方法可以得到这个错误…
[12] 11 地中海 cwe - 327:使用损坏或危险的密码算法
重要的概念,加密是很难做到的。“不要使用你自己的”。强调通过破碎的例子使用,和正确的算法和图书馆,应该足够了。
[13]
(领带)
11 地中海 (尖)cwe - 330:使用不够随机值
强调通过破碎的例子使用,和正确的算法和图书馆,应该足够了。涉及加密、竞争条件、网络游戏、测试(起毛)
[14] 10 通讯 (尖)CWE-59:不当链接之前决议文件访问(“链接后”)
涉及随机性,文件系统(特别是inode),文件句柄和文件名,竞态条件,提升特权(最小特权的想法)
[15]
(领带)
10 地中海 cwe - 190:整数溢出或概括
大量的微妙之处。
[16]
(领带)
10 地中海 地中海 cwe - 209通过一个错误消息:信息风险
概念很容易理解
[17] 8 地中海 cwe - 98:不当控制包括/需要声明在PHP程序的文件名(PHP文件包含)
容易理解的原则。特定于语言的问题,所以较低的教育价值。但是,它是一个错误,学生经常会“广泛”是保证如果CWE相关。
[18]
(领带)
8 通讯 地中海 cwe - 129:数组索引不正确验证
信任问题。
[19]
(领带)
8 通讯 地中海 cwe - 131:不正确的缓冲区大小的计算
触摸的概念宽字符,字符编码,不同宽度的字符,内存对齐。
[20]
(领带)
8 地中海 地中海 (尖)cwe - 134:不受控制的格式字符串
[21]
(领带)
8 地中海 地中海 (尖)cwe - 212:不当跨境删除敏感数据
细微的缺陷和先进的主题。涉及删除未使用的缓冲区和分配的内存空间。
[22]
(领带)
8 地中海 地中海 cwe - 352:跨站点请求伪造(CSRF)
攻击是容易理解的,但难以预防,与几个方面做错了。
[23]
(领带)
8 地中海 地中海 (尖)cwe - 454:外部信任变量的初始化或数据存储
典型的菜鸟的错误,特别是在HTML表单或JavaScript代码(认为JS代码运行在客户端不是外部初始化值)。概念,很容易理解。涉及到信任
[24]
(领带)
8 地中海 地中海 (尖)cwe - 681:不正确的数值类型之间的转换
[25]
(领带)
8 地中海 地中海 cwe - 770:没有限制或节流的资源分配
涉及不对称攻击,对匿名用户的资源分配,意想不到的DoS(例如,SYN洪水),责任,信任
[26] 6 地中海 (Top25)cwe - 311:失踪的敏感数据的加密
简单的概念
[27]
(领带)
6 通讯 地中海 地中海 cwe - 426:不受信任的搜索路径
涉及到环境变量,中毒,“。”的路径,url(像CWE-22:“路径遍历”在这方面)
[28]
(领带)
6 地中海 cwe - 476:空指针废弃
概念很容易理解
[29]
(领带)
6 地中海 (Top25)cwe - 494:下载的代码没有完整性检查
微不足道的概念学习,原则上。
[30]
(领带)
6 通讯 地中海 地中海 cwe - 749:暴露危险的方法或函数
简单的概念,但可能熊强调是什么让一个危险的方法。
[31]
(领带)
6 地中海 cwe - 772:失踪后释放资源的有效寿命
简单的概念
[32]
(领带)
6 地中海 cwe - 799:不当控制的互动频率
概念很容易理解
[33] 4 通讯 地中海 cwe - 307:不当限制过度认证尝试
简单的概念
[34]
(领带)
4 通讯 地中海 cwe - 416:使用后自由
容易理解;可能会分散人们的注意力错误呢
[35]
(领带)
4 通讯 地中海 cwe - 456:失踪的初始化
[36]
(领带)
4 通讯 地中海 (Top25)cwe - 732:关键资源的不正确的权限分配
特定的问题,简单的概念。
[37] 3 有限公司 (Top25)cwe - 306:失踪的关键函数的身份验证
简单的概念。
[38]
(领带)
3 有限公司 (Top25)cwe - 434:无限制上传文件与危险的类型
概念是微不足道的。正确它是困难的,但适用范围非常有限。
[39]
(领带)
3 (Top25)cwe - 601:URL重定向不可信的网站(“开放重定向”)
[40] 2 通讯 cwe - 672:操作后过期或释放资源
概念是微不足道的。通常一个分心的错误。
[41]
(领带)
2 通讯 cwe - 804那些密码:验证码
无关紧要的概念;应用程序是有限的。

弱点的语言

这个配置文件指定哪些弱点出现在哪些编程语言。发现大多数缺点都是独立于语言的,尽管他们可能在一种语言更普遍。

对于每种语言,可能的评级:

*高-这个弱点经常出现在语言中编写的软件,这通常是一个安全问题,而不是“一个错误”。

*温和(Mod)——这个弱点有时出现在软件编写的语言,但当它发生时,它通常是一个安全问题。

*有限公司(有限公司)——这个弱点(1)很少出现在语言编写的软件,但通常是一个安全问题时;或(2)可以经常出现,但很少是一个安全问题。

一些细胞会留空,如果问题是特定于语言的。

这些项目由CWE ID排序。

C / c++ Java PHP Perl CWE条目
国防部 CWE-22:不当限制限制目录的路径名(“路径遍历”)
在沙箱环境中独立于语言的,但普遍减少。
国防部 cwe - 78:不当中和特殊元素中使用一个操作系统命令(OS命令注入)
国防部 cwe - 79:中和不当输入在Web页面生成(“跨站点脚本编制”)
cwe - 89:不当中和特殊元素中使用一个SQL命令(SQL注入)
cwe - 98:不当控制包括/需要声明在PHP程序的文件名(PHP文件包含)
技术上这类问题可能发生在大多数解释语言,但它似乎是在PHP中最普遍。
有限公司 有限公司 有限公司 cwe - 120:没有检查大小的缓冲区拷贝输入(经典的缓冲区溢出)
口译员与本机代码,通常使用C / c++,可能受到缓冲区溢出,可以从更高层次的语言结构,否则出现“安全”。
有限公司 有限公司 有限公司 cwe - 129:数组索引不正确验证
技术上这可以发生在许多不同的语言,但它通常变得安全相关的C / c++程序。
有限公司 有限公司 有限公司 cwe - 131:不正确的缓冲区大小的计算
积极进取的简单的缓冲区溢出是消除。口译员与本机代码,通常使用C / c++,可能受到缓冲区溢出,可以从更高层次的语言结构,否则出现“安全”。
有限公司 有限公司 有限公司 cwe - 190:整数溢出或概括
技术上这可以发生在许多不同的语言,但它通常变得安全相关的C / c++程序。
国防部 国防部 cwe - 209通过一个错误消息:信息风险
独立于语言的,但经常在网络环境中,发生在语言自动执行外部错误报告的情况。
cwe - 285:不适当的访问控制(授权)
国防部 国防部 国防部 国防部 cwe - 306:失踪的关键函数的身份验证
在网络环境中普遍存在。
cwe - 311:失踪的敏感数据的加密
国防部 国防部 cwe - 327:使用损坏或危险的密码算法
有些语言没有内置的加密或完善的图书馆,让开发人员构建或整合自己的。
cwe - 352:跨站点请求伪造(CSRF)
基于网络的问题,就是语言。
国防部 有限公司 cwe - 362:竞争条件
潜在的问题在任何语言,支持线程或与操作系统交互系统资源。
有限公司 国防部 有限公司 cwe - 434:无限制上传文件与危险的类型
有限公司 国防部 国防部 有限公司 cwe - 494:下载的代码没有完整性检查
通常适用于移动代码,虽然可能出现在任何软件,管理自己的升级。
国防部 国防部 国防部 国防部 cwe - 601:URL重定向不可信的网站(“开放重定向”)
基于网络的问题,就是语言。许多web应用程序不使用重定向功能。
cwe - 732:关键资源的不正确的权限分配
有限公司 cwe - 754:不适当的检查不寻常或异常情况
更普遍的语言异常处理部队检查发生的地方。
国防部 国防部 cwe - 770:没有限制或节流的资源分配
内置的环境资源管理问题。
国防部 国防部 国防部 国防部 cwe - 798:使用硬编码的凭证
cwe - 805:缓冲区访问与不正确的长度值
口译员和本地接口,通常使用C / c++,可能溢出从否则——“安全”的代码。
cwe - 807:依赖不可信的输入在一个安全的决定
在web应用程序独立于语言的,但非常普遍。

弱点通常固定在设计或实现

这个概要文件列表的弱点通常是固定在设计或实现。

当缺陷发生在体系结构或设计阶段,理想的解决方案可能是控制的程序员,问题可能是昂贵的修复。

在实现阶段的弱点是可以解决的,轻微的局部代码更改可能是可行的,但是大量的弱点可能出现在整个代码。长期战略可以实现特定的设计级别的变化,使其更加难以引入这些弱点,和/或使他们更容易检测时发生。

列:

*设计(缩写为“德”)

*实现(缩写为“Impl”)

这些条目按CWE ID排序。

Des Impl CWE条目
X CWE-22:不当限制限制目录的路径名(“路径遍历”)
X cwe - 78:不当中和特殊元素中使用一个操作系统命令(OS命令注入)
通常实现,但有时这是一个设计级别的问题,当软件接受整个命令从外部控制输入。
X cwe - 79:中和不当输入在Web页面生成(“跨站点脚本编制”)
许多XSS漏洞可以固定在本地代码。然而,由于高患病率和XSS的复杂性,设计级别变化可能是合适的,比如利用图书馆意识到编码的上下文。
X cwe - 89:不当中和特殊元素中使用一个SQL命令(SQL注入)
虽然个别问题可以在本地固定,更广泛的设计级别变化可能是合适的,比如使用参数化查询。
X cwe - 98:不当控制包括/需要声明在PHP程序的文件名(PHP文件包含)
而当地修复通常是可能的,应用程序的设计可能故意包括文件从远程站点,在这种情况下,设计的变化将是必要的。
X cwe - 120:没有检查大小的缓冲区拷贝输入(经典的缓冲区溢出)
X cwe - 129:数组索引不正确验证
通常发生在实现,但有时这是一个反映设计问题的一种算法。
X cwe - 131:不正确的缓冲区大小的计算
X cwe - 190:整数溢出或概括
这些通常可以解决的使用本地化代码更改,但采用库可能更合适。
X cwe - 209通过一个错误消息:信息风险
有时发生在要求/规范或操作。
X cwe - 285:不适当的访问控制(授权)
意外遗漏的细粒度授权可能发生即使设计或规范要求。
X cwe - 306:失踪的关键函数的身份验证
X cwe - 311:失踪的敏感数据的加密
有时发生在操作。
X cwe - 327:使用损坏或危险的密码算法
X cwe - 352:跨站点请求伪造(CSRF)
在实现期间可能发生如果CSRF的解决方案是可用的和活跃的使用,但程序员不小心忽略了applcation解决方案的特定形式,即使解决方案应用于其他形式。
X cwe - 362:竞争条件
有时发生在实现如果假设下的程序员使用非原子操作原子,或引入了一个错误在同步。
X cwe - 434:无限制上传文件与危险的类型
实现级事件是可能的。
X cwe - 494:下载的代码没有完整性检查
X cwe - 601:URL重定向不可信的网站(“开放重定向”)
X cwe - 732:关键资源的不正确的权限分配
可能是设计、实现、或安装/配置取决于特定的软件。
X cwe - 754:不适当的检查不寻常或异常情况
X cwe - 770:没有限制或节流的资源分配
X cwe - 798:使用硬编码的凭证
也可能发生在安装/配置。
X cwe - 805:缓冲区访问与不正确的长度值
X cwe - 807:依赖不可信的输入在一个安全的决定
实现级事件是可能的。

自动与手动分析

这个概要文件突出弱点可以使用自动和手动检测分析。目前,很少有公共权威的信息关于这些方法的有效性及其效用。有许多相互竞争的观点,即使在专家。因此,这些评级应该只被视为指导方针,而不是规则。每个方法的有效性取决于环境,成本/时间/劳动因素,分析师的专业知识,和其他因素可能不同的组织。

自动化技术是由计算机和包括,但不限于:源代码分析器,二进制代码分析器,fuzz,数据安全分析程序,web应用程序扫描和动态代码分析。手工技术是由人类分析师,包括,但不限于:渗透测试,建筑评论,和手工代码审查。人们一般都认为,一个混合的技术是最有用的,通过利用每个技术的优势以最具成本效益的方式。

是否自动或手工,白盒技术对源代码进行分析或架构,虽然黑盒技术执行软件和观察其外部行为和工件。

自动化的方法通常是更有效的寻找实现级问题比设计级别问题。自动化静态代码分析可以提供广泛的代码覆盖率,和自动动态分析可以执行大量的攻击在很短的时间。然而,这些方法可能需要你开发自定义检测规则,构建应用程序与一个特殊的编译器,和/或提供任何必要的凭据登录到目标软件。他们可能很难认识到自定义的例程和关键业务逻辑上的缺陷,或者他们可能不会过滤或de-prioritize某些结果不相关的执行环境。

手动方法通常更有效的寻找设计级别问题,业务逻辑上的缺陷,认识到自定义的例程,并提供通用的反馈关于软件的总体态势。然而,手工方法可能是劳动密集型的,和他们需要精通分析师产生有效的结果。不同的分析师可能不会产生一致的和可重复的结果。对于可以通过自动化方法的弱点,手工方法可能实现不相同数量的代码覆盖率不劳动的重要投资。

混合方法通常采用结合手动和自动分析。人们一般都认为,混合方法是最有用的,因为他们利用每个技术的优势。混合分析可以实现代码覆盖率之间的合理平衡,劳动成本/时间,假阳性和假阴性率。混合方法中未涉及这个概要文件。

列标签如下:

*自动世行-自动化白盒

* Auto-BB -自动化的黑盒

* Man-WB -手动白盒

* Man-BB -手工黑盒

对于每一个技术和软弱,技术的有效性与弱点分类如下。注意:这些评级假设使用的最佳工具,分析和方法。考虑有限的财务成本,劳动,或时间。见上文总结的一些挑战。

*高——众所周知,易于理解的优点和局限性;有合理的假阳性或假阴性率,尤其是在比较其他方法;有很好的覆盖对其他方法;可能不需要大量劳动力来实现有用的结果。

*温和(Mod)——适用于多种情况,但可能受假阳性或假阴性率高,可能相差很大;可能需要进行大量的培训/定制;可能需要大量的劳动、时间或专业知识,获得有用的结果。

*有限公司(有限公司)——适用于有限的情况下,不信;假阳性或假阴性率高,或产生大量不相关的结果;可能需要大量的培训/定制;或者给有限的可见性问题的根源。

这些弱点被CWE ID排序。

自动世行 Auto-BB Man-WB Man-BB CWE条目
国防部 有限公司 CWE-22:不当限制限制目录的路径名(“路径遍历”)
自动化技术可以找到路径遍历的弱点存在的地区,但可能需要调优/定制,如过滤path-traversal问题仅仅是利用软件的管理员,从而有可能有效。手动白盒技术可以提供足够的代码覆盖率和减少误报,如果所有的文件访问都可以在有限的时间内评估约束。
国防部 国防部 cwe - 78:不当中和特殊元素中使用一个操作系统命令(OS命令注入)
黑盒方法可能会阻碍如果有有限的控制操作系统命令的内容。对于跨多个操作系统移植的代码,自动世行对操作系统可能会受到假设上下文。
国防部 国防部 国防部 国防部 cwe - 79:中和不当输入在Web页面生成(“跨站点脚本编制”)
存在一些分歧,但是自动化的方法是否有足够的保险,因为web应用程序通常过程大量的输入和可以涉及复杂的多个进程或组件之间的交互。
国防部 国防部 cwe - 89:不当中和特殊元素中使用一个SQL命令(SQL注入)
Auto-BB可能无法产生足够的测试用例或检测问题的证据。Auto-BB或自动世行方法可能不识别SQL注入当多个进程之间存在复杂的交互或组件。
国防部 国防部 cwe - 98:不当控制包括/需要声明在PHP程序的文件名(PHP文件包含)
黑盒方法可能不是有效的找到这个弱点的非平凡的实例。
国防部 国防部 国防部 cwe - 120:没有检查大小的缓冲区拷贝输入(经典的缓冲区溢出)
自动世行可能需要调优,以确保所有源和汇正确识别。Auto-BB可能采用一些成功如果起毛和所有接口是众所周知的事情。Man-WB和Man-BB也许不能实现预期的代码覆盖在有限时间约束。
国防部 国防部 国防部 cwe - 129:数组索引不正确验证
代码覆盖率非常重要,因为许多操作使用一个数组索引。黑盒方法可能不会获得所需的代码覆盖率,和一个成功的测试可能不会产生任何明显的副作用。
有限公司 国防部 有限公司 cwe - 131:不正确的缓冲区大小的计算
黑盒方法可能无法诊断这个特定的弱点。代码覆盖率对手册的方法可能是一个问题。
有限公司 国防部 有限公司 cwe - 190:整数溢出或概括
黑盒方法可能无法诊断这个特定的弱点,虽然有些起毛(Auto-BB)技术可能关注integer-boundary问题。
有限公司 有限公司 国防部 cwe - 209通过一个错误消息:信息风险
某些习语可能被自动检测到,如暴露的堆栈跟踪或路径名,但这个弱点通常要求使用手动分析特定于域的解释。
有限公司 有限公司 国防部 cwe - 285:不适当的访问控制(授权)
自动化技术检测通用的保护,或识别许多或所有可能的接口,不需要授权,但手动分析需要确定缺乏授权违反业务逻辑。手册努力可能不会在有限时间内达到所需的代码覆盖约束。
有限公司 国防部 国防部 cwe - 306:失踪的关键函数的身份验证
需要特定于域的理解需要身份验证的功能。黑盒方法可能无法检测所有暴露的功能。
有限公司 有限公司 cwe - 311:失踪的敏感数据的加密
需要特定领域的理解数据是敏感的,所以手动方法是必要的。然而,手动努力可能不会在有限时间内达到所需的代码覆盖约束。黑盒分析可能产生的工件(例如,存储数据或未加密网络传输),需要手动评估。
国防部 有限公司 有限公司 cwe - 327:使用损坏或危险的密码算法
自动化的方法可能需要培训认识到图书馆的使用过时的算法。手动方法将需要认识到自定义过时的算法的实现或执行密码分析的专有的或非标准的算法;在后一种情况下,可能需要加密技术。
有限公司 有限公司 国防部 cwe - 352:跨站点请求伪造(CSRF)
CSRF通常需要特定领域知识区分合法的行为,因此需要手动工作。自动化技术可以检测某些anti-CSRF习语的缺席,但这可能需要定制的调优。Auto-BB可能仍然依赖手工审核为有效的结果。手册努力可能不会在有限时间内达到所需的代码覆盖约束。
国防部 有限公司 国防部 有限公司 cwe - 362:竞争条件
常见的习语在白盒分析检测,如time-of-check-time-of-use (TOCTOU)文件访问检查。黑盒方法可以识别潜在的竞态条件通过多个并发连接等方法,虽然竞争条件非常狭窄的时间窗口不会被检测到。
国防部 国防部 国防部 国防部 cwe - 434:无限制上传文件与危险的类型
存在一些分歧,但是关于这些技术的有效性。
有限公司 有限公司 国防部 cwe - 494:下载的代码没有完整性检查
通常需要了解目的的行为。自动化的方法可能是有用的检测常见的习语的使用完整性检查。
国防部 国防部 cwe - 601:URL重定向不可信的网站(“开放重定向”)
Auto-BB工具,每个输入可以现货供应url位置标题修改,但是测试用例覆盖率是一个因素,和自定义重定向可能不能被检测到。自动世行工具可能无法确定输入是否影响一个URL的开始,这对减少假阳性是很重要的。
国防部 国防部 国防部 国防部 cwe - 732:关键资源的不正确的权限分配
许可弱点等常见的系统资源文件或注册表键使用自动检测技术,但是很多应用程序有自己的自定义权限方案特定领域资源,需要人工分析。手册努力可能不会在有限时间内达到所需的代码覆盖约束。
国防部 国防部 国防部 cwe - 754:不适当的检查不寻常或异常情况
黑盒方法不一定力适当的不寻常的条件,尤其是那些可能是特定于域的。手册努力可能不会在有限时间内达到所需的代码覆盖约束。
国防部 国防部 cwe - 770:没有限制或节流的资源分配
自动化起毛或洪水攻击可能暴露某些类型的这个弱点——例如,不受控制的分配系统资源(如文件和CPU——但这可能仍然需要手工的解释结果。手册努力可能不会在有限时间内达到所需的代码覆盖约束,但会更适合检测业务级别的情况下。
国防部 有限公司 有限公司 cwe - 798:使用硬编码的凭证
证书存储在配置文件中使用黑盒可发现的方法,但是使用硬编码的走马上任的身份验证凭证程序通常涉及一个帐户之外的代码是不可见的。自动化白盒技术已发表检测硬编码为传入的身份验证凭证,但是有一些专家分歧关于它们的有效性。
国防部 国防部 有限公司 cwe - 805:缓冲区访问与不正确的长度值
Auto-BB起毛等技术可能会发现这个问题的证据。手册努力可能不会在有限时间内达到所需的代码覆盖约束。
有限公司 有限公司 国防部 cwe - 807:依赖不可信的输入在一个安全的决定
自动化的方法可能无法区分允许输入和那些用于安全功能。

为开发人员和软件安全实践

这个概要文件的开发人员已经开始安全集成到他们的开发生命周期,可能有一些成功的清除他们的软件的一些最常见的弱点。

弱点排名构造使用“流行”和“重要性”作为评估由原票的主要软件供应商参与排名前25位的努力:红色帽子,甲骨文、微软、EMC,赛门铁克,苹果。

排名 分数 GenRank CWE条目
[1] 80年 3 cwe - 120:没有检查大小的缓冲区拷贝输入(经典的缓冲区溢出)
[2] 66年 1 cwe - 79:中和不当输入在Web页面生成(“跨站点脚本编制”)
[3] 59 2 cwe - 89:不当中和特殊元素中使用一个SQL命令(SQL注入)
[4] 53 4 cwe - 352:跨站点请求伪造(CSRF)
[5] 51 5 cwe - 285:不适当的访问控制(授权)
[6] 48 18 cwe - 131:不正确的缓冲区大小的计算
一般前25相比大幅上升。
[7] 47 9 cwe - 78:不当中和特殊元素中使用一个操作系统命令(OS命令注入)
[8] 46 17 cwe - 190:整数溢出或概括
一般前25相比大幅上升。
[9] 45 12 cwe - 805:缓冲区访问与不正确的长度值
[10] 44 15 cwe - 129:数组索引不正确验证
一般前25相比大幅上升。
[11] 40 11 cwe - 798:使用硬编码的凭证
[12] 38 6 cwe - 807:依赖不可信的输入在一个安全的决定
一般前25相比大幅下降。
[13] 37 8 cwe - 434:无限制上传文件与危险的类型
一般前25相比大幅下降。
[14] 36 10 cwe - 311:失踪的敏感数据的加密
[15]
(领带)
36 24 cwe - 327:使用损坏或危险的密码算法
一般前25相比大幅上升。
[16] 35 7 CWE-22:不当限制限制目录的路径名(“路径遍历”)
一般前25相比大幅下降。
[17] 33 20. cwe - 494:下载的代码没有完整性检查
[18] 32 26 (尖)cwe - 749:暴露危险的方法或函数
不是一般的前25位。
[19] 29日 25 cwe - 362:竞争条件
一般前25相比大幅上升。
[20]
(领带)
29日 23 cwe - 601:URL重定向不可信的网站(“开放重定向”)
[21] 28 17 cwe - 209通过一个错误消息:信息风险
[22] 27 28 (尖)cwe - 212:不当跨境删除敏感数据
不是一般的前25位。
[23]
(领带)
27 22 cwe - 732:关键资源的不正确的权限分配
[24] 26 36 (尖)cwe - 416:使用后自由
不是一般的前25位。
[25] 25 29日 (尖)cwe - 330:使用不够随机值
不是一般的前25位。
[26]
(领带)
25 37 cwe - 772:失踪后释放资源的有效寿命
急剧上升——不是一般前25名。
[27] 24 27 cwe - 307:不当限制过度认证尝试
[28]
(领带)
24 32 cwe - 476:空指针废弃
[29]
(领带)
24 33 cwe - 681:不正确的数值类型之间的转换
[30]
(领带)
24 13 (Top25)cwe - 754:不适当的检查不寻常或异常情况
急剧下降——在前25名。
[31]
(领带)
24 21 (Top25)cwe - 770:没有限制或节流的资源分配
急剧下降——在前25名。
[32] 22 30. CWE-59:不当链接之前决议文件访问(“链接后”)
[33]
(领带)
22 31日 cwe - 134:不受控制的格式字符串
[34]
(领带)
22 19 (Top25)cwe - 306:失踪的关键函数的身份验证
急剧下降——在前25名。
[35] 21 40 cwe - 672:操作后过期或释放资源
[36] 19 35 cwe - 454:外部信任变量的初始化或数据存储
[37]
(领带)
19 39 cwe - 456:失踪的初始化
[38]
(领带)
19 38 cwe - 799:不当控制的互动频率
[39] 18 34 cwe - 426:不受信任的搜索路径
[40] 15 41 cwe - 804那些密码:验证码
[41] 7 15 (Top25)cwe - 98:不当控制包括/需要声明在PHP程序的文件名(PHP文件包含)
急剧下降——在前25名。选民们在他们的组织很少使用PHP。

笔记

前五项也在前五槽的前25名;唯一的区别是前三的顺序的改变的地方。

注意更微妙的缓冲错误大幅上涨相比一般列表:cwe - 190, cwe - 131和cwe - 129。这可能反映了更大比例的C / c++应用程序使用的参与供应商。

似乎有可能增加缓冲区之间的冲突错误而CSRF XSS, SQL注入仍然名列前茅。这些弱点并不特定于网络语言,事实上,SQL注入的问题是一个广泛的软件不仅仅是基于web的应用程序。XSS的排名和CSRF可能是由于他们的流行,甚至非web软件可能基于web组件,比如管理界面。此外,大量的基于网络的软件是使用C或c++编写的。

对缺乏安全特性的情况下,一般有下降,例如缺少加密(cwe - 311)和失踪身份验证(cwe - 306),以及依赖不可信的输入(cwe - 807)在一个安全的决定。同时,使用损坏或危险的加密(cwe - 327)急剧上升。也许有越来越采用的加密,但是实现并不总是正确的。

相比一般的列表,暴露危险的方法或函数的相对较高的排名(cwe - 749)和使用后免费(cwe - 416)可能反映了一般CVE漏洞研究的趋势,这近年来增加这两个弱点。

排名的重要性,对于软件的客户

此概要行列的弱点主要是基于其重要性,确定从基地投票数据用于创建列表。患病率是包含在分数,但它有很多不如重要性权重。

这两个因素是:

*重要性(重要,高、中、低)

*患病率(广泛,高,常见,有限)

对于每一个投票,重要性和流行都是1和4之间分配值(相当于4的最高评级,即。“关键”或“普遍”。)

个人sub-score弱点然后使用公式计算:

(重要性*重要性)+流行

为每个弱点小分都加在一起最后得分。

排名 分数 CWE条目
[1] 676年 cwe - 89:不当中和特殊元素中使用一个SQL命令(SQL注入)
[2] 582年 cwe - 120:没有检查大小的缓冲区拷贝输入(经典的缓冲区溢出)
[3] 535年 cwe - 79:中和不当输入在Web页面生成(“跨站点脚本编制”)
[4] 525年 cwe - 78:不当中和特殊元素中使用一个操作系统命令(OS命令注入)
[5] 378年 cwe - 434:无限制上传文件与危险的类型
[6] 364年 cwe - 352:跨站点请求伪造(CSRF)
[7] 350年 cwe - 98:不当控制包括/需要声明在PHP程序的文件名(PHP文件包含)
[8] 336年 CWE-22:不当限制限制目录的路径名(“路径遍历”)
[9] 324年 cwe - 285:不适当的访问控制(授权)
[10] 322年 cwe - 807:依赖不可信的输入在一个安全的决定
[11] 304年 cwe - 798:使用硬编码的凭证
[12] 300年 cwe - 311:失踪的敏感数据的加密
[13] 281年 cwe - 805:缓冲区访问与不正确的长度值
[14] 277年 cwe - 306:失踪的关键函数的身份验证
[15] 271年 cwe - 129:数组索引不正确验证
[16] 267年 cwe - 131:不正确的缓冲区大小的计算
[17] 261年 cwe - 494:下载的代码没有完整性检查
[18] 244年 (尖)cwe - 749:暴露危险的方法或函数
不是一般的前25位。
[19] 241年 cwe - 190:整数溢出或概括
[20] 225年 cwe - 362:竞争条件
[21] 224年 (尖)cwe - 134:不受控制的格式字符串
不是一般的前25位。
[22]
(领带)
224年 cwe - 732:关键资源的不正确的权限分配
[23] 223年 (尖)cwe - 454:外部信任变量的初始化或数据存储
不是一般的前25位。
[24] 215年 (尖)cwe - 212:不当跨境删除敏感数据
不是一般的前25位。
[25]
(领带)
215年 cwe - 327:使用损坏或危险的密码算法
[26] 204年 (Top25)cwe - 770:没有限制或节流的资源分配
前25名。
[27] 203年 (Top25)cwe - 754:不适当的检查不寻常或异常情况
前25名。
[28] 199年 (Top25)cwe - 209通过一个错误消息:信息风险
前25名。
[29] 196年 cwe - 426:不受信任的搜索路径
[30] 194年 cwe - 330:使用不够随机值
[31]
(领带)
194年 (Top25)cwe - 601:URL重定向不可信的网站(“开放重定向”)
前25名。
[32]
(领带)
194年 cwe - 681:不正确的数值类型之间的转换
[33] 192年 cwe - 476:空指针废弃
[34] 189年 CWE-59:不当链接之前决议文件访问(“链接后”)
[35] 184年 cwe - 416:使用后自由
[36] 180年 cwe - 307:不当限制过度认证尝试
[37] 166年 cwe - 456:失踪的初始化
[38] 159年 cwe - 772:失踪后释放资源的有效寿命
[39] 150年 cwe - 799:不当控制的互动频率
[40] 148年 cwe - 672:操作后过期或释放资源
[41] 127年 cwe - 804那些密码:验证码

弱点由技术的影响

这个概要文件列表根据他们的技术弱点的影响,即。,攻击者可以实现利用每个弱点。

注意,熟练的攻击者可以结合多个成一个单一的弱点,攻击更严重比它的任何部分。例如,一个小信息泄漏(cwe - 209)可能允许攻击者确定管理员帐户的电子邮件地址,然后使用CSRF攻击(cwe - 352)利用管理员的权限上传文件与一个危险的扩展(cwe - 434),允许代码执行。

因为攻击树模型很难在评选名单之列,这样的平面结构的技术影响每个弱点只以隔离。

关键:

*命令执行代码,代码或可能发生的

*信息——敏感信息或数据可以被偷

* priv——访问高权限帐户

*旁路,旁路安全保护机制

* DoS(拒绝服务

代码 信息 我感到 绕过 DoS CWE条目
有时 经常 有时 很少 有时 CWE-22:不当限制限制目录的路径名(“路径遍历”)
有时 经常 有时 很少 有时 CWE-59:不当链接之前决议文件访问(“链接后”)
经常 有时 有时 很少 有时 cwe - 78:不当中和特殊元素中使用一个操作系统命令(OS命令注入)
经常 经常 有时 有时 很少 cwe - 79:中和不当输入在Web页面生成(“跨站点脚本编制”)
经常 经常 有时 经常 有时 cwe - 89:不当中和特殊元素中使用一个SQL命令(SQL注入)
经常 经常 有时 很少 很少 cwe - 98:不当控制包括/需要声明在PHP程序的文件名(PHP文件包含)
经常 很少 有时 很少 经常 cwe - 120:没有检查大小的缓冲区拷贝输入(经典的缓冲区溢出)
经常 有时 有时 很少 经常 cwe - 129:数组索引不正确验证
经常 有时 有时 很少 经常 cwe - 131:不正确的缓冲区大小的计算
经常 有时 有时 很少 经常 cwe - 134:不受控制的格式字符串
有时 很少 很少 很少 有时 cwe - 190:整数溢出或概括
很少 经常 有时 有时 很少 cwe - 209通过一个错误消息:信息风险
很少 经常 很少 很少 很少 cwe - 212:不当跨境删除敏感数据
很少 经常 经常 经常 经常 cwe - 285:不适当的访问控制(授权)
有时 有时 经常 经常 有时 cwe - 306:失踪的关键函数的身份验证
很少 很少 经常 经常 经常 cwe - 307:不当限制过度认证尝试
有时 经常 有时 有时 有时 cwe - 311:失踪的敏感数据的加密
很少 经常 有时 经常 有时 cwe - 327:使用损坏或危险的密码算法
很少 有时 有时 经常 很少 cwe - 330:使用不够随机值
很少 有时 经常 经常 有时 cwe - 352:跨站点请求伪造(CSRF)
有时 有时 经常 有时 经常 cwe - 362:竞争条件
有时 很少 有时 很少 经常 cwe - 416:使用后自由
经常 很少 经常 有时 很少 cwe - 426:不受信任的搜索路径
经常 有时 有时 很少 很少 cwe - 434:无限制上传文件与危险的类型
有时 有时 有时 经常 很少 cwe - 454:外部信任变量的初始化或数据存储
有时 很少 有时 有时 有时 cwe - 456:失踪的初始化
有时 有时 很少 很少 经常 cwe - 476:空指针废弃
经常 有时 经常 经常 有时 cwe - 494:下载的代码没有完整性检查
有时 很少 很少 经常 有时 cwe - 601:URL重定向不可信的网站(“开放重定向”)
有时 有时 有时 很少 经常 cwe - 672:操作后过期或释放资源
有时 很少 有时 很少 有时 cwe - 681:不正确的数值类型之间的转换
有时 经常 有时 有时 有时 cwe - 732:关键资源的不正确的权限分配
经常 有时 经常 很少 有时 cwe - 749:暴露危险的方法或函数
有时 有时 有时 有时 经常 cwe - 754:不适当的检查不寻常或异常情况
很少 有时 很少 很少 经常 cwe - 770:没有限制或节流的资源分配
很少 很少 很少 有时 经常 cwe - 772:失踪后释放资源的有效寿命
很少 有时 经常 经常 有时 cwe - 798:使用硬编码的凭证
很少 很少 有时 有时 经常 cwe - 799:不当控制的互动频率
很少 有时 很少 经常 经常 cwe - 804那些密码:验证码
经常 经常 有时 很少 经常 cwe - 805:缓冲区访问与不正确的长度值
有时 有时 经常 经常 有时 cwe - 807:依赖不可信的输入在一个安全的决定
页面最后更新:2018年3月30日