我整理了CWE/SANS TOP25 2022年的这25类缺陷,分类适合的开发语言,其实主要是C/C++语言的缺陷相对于Java、PHP、Python、C#等更高级的语言的不同,所以分为适合C/C++语言和其它语言。但是大家不要纠结,例如SQL难道C/C++语言程序没有吗? 答案肯定是有,但是相对出现较少,而且C、C++语言程序大家关心的更多是运行时缺陷,而不是安全漏洞,因为C/C++语言应用的场景大多是在嵌入式环境下,驱动硬件设备等,物理隔绝的情况比较多,更多关心的程序本身的是否导致异常,而不是被外界攻击。
|-----------|-----------------------------------------------------------------------------------------|----------------------|
| CWE编号 | 名称 | 适合语言(1是C、2是所有语言) |
| CWE-787 | 越界写入(Out-of-bounds Writes) | 1 |
| CWE-79 | 跨站脚本(Cross-site Scripting) | 2 |
| CWE-125 | 越界读取(Out-of-bounds Read) | 1 |
| CWE-20 | 不正确的输入验证(Improper Input Validation) | 2 |
| CWE-78 | OS命令注入('OS Command Injection') | 1、2 |
| CWE-89 | SQL注入('SQL Injection') | 2 |
| CWE-416 | 使用已释放的内存(Use After Free) | 1 |
| CWE-22 | 路径遍历('Path Traversal') | 2 |
| CWE-352 | 跨站请求伪造(CSRF)(Cross-Site Request Forgery) | 2 |
| CWE-434 | 不受限制上传危险类型文件(Unrestricted Upload of File with Dangerous Type) | 2 |
| CWE-306 | 关键功能认证机制缺失(Missing Authentication for Critical Function) | 2 |
| CWE-190 | 整数溢出或环绕(Integer Overflow or Wraparound) | 1 |
| CWE-502 | 不可信数据反序列化(Deserialization of Untrusted Data) | 2 |
| CWE-287 | 不正确的认证(Improper Authentication) | 2 |
| CWE-476 | 空指针解引用(NULL Pointer Dereference) | 1、2 |
| CWE-798 | 使用硬编码凭证(Use of Hard-coded Credentials) | 1、2 |
| CWE-119 | 对内存缓冲区内的操作限制不当(Improper Restriction of Operations within the Bounds of a Memory Buffer) | 1 |
| CWE-862 | 授权机制缺失(Missing Authorization) | 2 |
| CWE-276 | 默认权限不正确(Incorrect Default Permissions) | 2 |
| CWE-200 | 信息暴露给未授权行为者(Exposure of Sensitive Information to an Unauthorized Actor) | 2 |
| CWE-522 | 凭证保护不足(Insufficiently Protected Credentials) | 2 |
| CWE-732 | 关键资源的权限分配错误(Incorrect Permission Assignment for Critical Resource) | 2 |
| CWE-611 | XML外部实体引用限制不当(XXE)(Improper Restriction of XML External Entity Reference) | 2 |
| CWE-918 | 服务端请求伪造(SSRF)(Server-Side Request Forgery ) | 2 |
| CWE-77 | 命令行注入('Command Injection') | 2 |
(结束)