PHP笔记解决方案

25种最危险的编程错误和16种系统弱点

2018-06-06  本文已影响21人  零一间

介绍

2011年CWE / SANS 25大危险软件错误列出了可能导致软件严重漏洞的最普遍和最严重的错误。它们通常很容易找到,并且易于开发。它们很危险,因为它们经常会让攻击者完全接管软件,窃取数据或阻止软件工作。

排名前25的名单是一种教育和意识工具,通过识别和避免软件出货之前发生的常见错误,帮助程序员防止困扰软件行业的各种漏洞。软件客户可以使用相同的列表来帮助他们索要更安全的软件。软件安全方面的研究人员可以使用前25名专注于所有已知安全弱点的狭窄而重要的子集。最后,软件经理和CIO可以使用Top 25列表作为保护软件安全进度的衡量标准。

该列表是SANS Institute,MITER和美国和欧洲许多顶级软件安全专家之间的合作成果。它利用SANS Top 20攻击媒介(http://www.sans.org/top20/)和MITRE Common Weakness Enumeration(CWE)(http://cwe.mitre.org/)的开发经验。MITRE在美国国土安全部国家网络安全部门的支持下维护了CWE网站,详细介绍了排名前25位的编程错误以及减轻和避免错误的权威性指导。CWE网站包含超过800个编程错误,设计错误和可能导致漏洞利用的体系结构错误。

2011年前25名对2010年名单进行了改进,但精神和目标保持不变。今年的前25名参赛者使用来自20多个不同组织的输入信息进行优先排序,他们根据流行率,重要性和利用可能性对每个弱点进行评估。它使用 通用弱点评分系统(CWSS)对最终结果进行评分和排名。排名前25的名单包含一小组最有效的“Monster Mitigations”,帮助开发人员减少或消除前25名弱点中的整个群体,以及CWE记录的数百个弱点中的许多弱点。

最危险的编程错误

软件错误分为三类

组件之间不安全的交互

这些弱点与数据在不同组件,模块,程序,进程,线程或系统之间发送和接收的不安全方式有关。

CWE ID 名称
CWE-89 SQL命令中使用的特殊元素的不当中和('SQL Injection')
CWE-78 操作系统命令中使用的特殊元素的不当中和('OS命令注入')
CWE-79 网页生成过程中对输入的中和不当(“跨站脚本”)
CWE-434 危险类型的文件无限制上传
CWE-352 跨站请求伪造(CSRF)
CWE-601 将URL重定向到不可信站点('打开重定向')

风险资源管理

这一类的弱点与软件无法正确管理重要系统资源的创建,使用,传输或销毁的方式有关。

CWE ID 名称
CWE-120 不检查输入大小的缓冲区复制('经典缓冲区溢出')
CWE-22 限制目录路径名的不当限制('路径遍历')
CWE-494 没有完整性检查的代码下载
CWE-829 不可信控制球的功能性包含
CWE-676 潜在危险功能的使用
CWE-131 错误的缓冲区大小计算
CWE-134 不受控制的格式字符串
CWE-190 整数溢出或绕回

多孔防御

这一类别的弱点与常常被滥用,滥用或被忽略的防守技术有关。

CWE ID 名称
CWE-306 缺少关键功能的身份验证
CWE-862 缺少授权
CWE-798 使用硬编码的凭证
CWE-311 缺少敏感数据的加密
CWE-807 在安全决策中依赖不可信输入
CWE-250 用不必要的特权执行
CWE-863 授权不正确
CWE-732 关键资源的权限分配不正确
CWE-327 使用易破解或者有风险的加密算法
CWE-307 对过度验证尝试的不当限制
CWE-759 没有盐的单向哈希的使用

常见系统弱点

CWE ID 名称
CWE-770 无限制或节流的资源分配
CWE-129 数组索引的错误验证
CWE-754 对不正常或特殊情况的错误检查
CWE-805 长度值不正确的缓冲区访问
CWE-838 输出上下文不合适的编码
CWE-330 使用不充分的随机值
CWE-822 不可信指针解引用
CWE-362 使用带有不正确同步的共享资源并发执行('竞争条件')
CWE-212 敏感数据的不合理移除
CWE-681 数字类型之间的转换不正确
CWE-476 NULL指针解引用
CWE-841 行为工作流程的不当执行
CWE-772 有效寿命后资源的释放
CWE-209 通过错误信息曝光信息
CWE-825 过期的指针解除引用
CWE-456 缺少初始化

参考推荐:
https://www.sans.org/top25-software-errors/
http://cwe.mitre.org/top25/

上一篇下一篇

猜你喜欢

热点阅读