GB/T 34944-2017 Java语言源代码漏洞测试规范解析
- 分类:新闻资讯
- 作者:苏州华克斯信息科技有限公司
- 来源:苏州华克斯信息科技有限公司
- 发布时间:2024-09-09
- 访问量:0
【概要描述】
GB/T 34944-2017 Java语言源代码漏洞测试规范解析
【概要描述】
- 分类:新闻资讯
- 作者:苏州华克斯信息科技有限公司
- 来源:苏州华克斯信息科技有限公司
- 发布时间:2024-09-09
- 访问量:0
GB/T 34944-2017 Java语言源代码漏洞测试规范解析
GB/T 34944-2017适用于JAVA语言源代码的漏洞测评,旨在规范测评过程,提高测评结果的准确性。该标准明确了漏洞测评的范围、方法、流程和指标等,适用于软件研发、软件产品和系统的质量保障。
Java语言是一种面向对象的、运行于Java虚拟机之上的高级程序设计语言。它广泛应用于各于各大型信息系统和智能终端应用软件的开发。众所周知,由于各种人为因素的影响,每个软件的源代码都难免会存在漏洞,而软件信息泄露、数据或代码被恶意篡改等安全事件的发生一般都与源代码漏洞有关。为尽量减少Java语言源代码中存在的洞,有必要制定针对Java语言程序的源代码漏洞测试规范。
源代码漏洞测试可在开发过程的软件编码活动之后实施,也可在运行和维护过程中实施。
本标准的漏洞分类与漏洞说明主要参号了MITRE公司发布的CWE(Common Weakness Enumeration),同时结合了当前行业主流的自动化静态分析工具在测试实践中发现的典型漏洞来确定并进行说明。
注:本标准漏洞参考了CWE2.9版本。
源代码漏洞测试工具
选择的源代码漏洞测试工具应首先明确GB/T 15532-2008中4.8.2的要求,重点应考虑工具的漏报选择源代码漏洞测试工具应首先明确工具的漏报率和误报率,也可通过调查或比较的方式评估工具的漏报率和误报率。
选择的源代码漏洞测试工具应覆盖但不限于本标准的源代码漏洞测试内容,测试前应对工具的漏洞规则库和测试引擎进行必要的升级和维护。
注:选择的源代码漏洞测试工具建议结合项目的具体需求。如可行,首先考虑选用商业的自动化静态分析工具。条件不具备,也可选用开源的自动化静态分析工具。
源代码漏洞分类
GB/T 34944-2017《Java语言源代码漏洞测试规范》,具体分为9个大类,44个问题:
1、行为问题:由于应用程序的意外行为而引发的漏洞。包括我们经常见到的各种类型的操控。
2、路径错误:不恰当的处理访问路径而引发的漏洞。通常来讲指的是攻击者可以把这些路径的参数做控制,有些标准也叫路径操控,有些工具也叫路径操纵。
3、数据处理:处理数据的功能中发现的漏洞。包括数据的一些输入输出、注入、信息的泄露等。
4、处理程序错误:由于处理程序的管理不当而引发的漏洞。
5、不充分的封装:未充分封装关键数据或功能而引发的漏洞。一般会涉及到序列化相关的问题。
6、安全功能:软件安全功能如身份鉴别、访问控制、机密性、密码学和特权管理等相关的漏洞。像一些越权问题,接口可以遍历等问题。
7、时间和状态:在多系统、进程或线程并发计算的环境下由于时间和状态管理不恰当而引发的漏洞。像有些软件在使用过程中,内存控制得不好,会在运行过程中看到其他数据,不属于自己个人的数据。
8、Web问题:Web技术相关的漏洞。主要涉及到一些跨站请求伪造等这些常见的Web层面的安全问题
9、用户界面错误:与用户界面相关的漏洞。主要涉及到界面的劫持。
标准对应编号与漏洞分类图表:
序号 |
编号 |
漏洞分类 |
子类 |
1 |
6.2.1.1 |
行为问题 |
不可控的内存分配 |
2 |
6.2.2.1 |
路径错误 |
不可信的搜索路径 |
3 |
6.2.3.1 |
数据处理 |
相对路径遍历 |
4 |
6.2.3.2 |
数据处理 |
绝对路径遍历 |
5 |
6.2.3.3 |
数据处理 |
命令注入 |
6 |
6.2.3.4 |
数据处理 |
SQL注入 |
7 |
6.2.3.5 |
数据处理 |
代码注入 |
8 |
6.2.3.6 |
数据处理 |
进程控制 |
9 |
6.2.3.7 |
数据处理 |
信息通过错误消息泄露 |
10 |
6.2.3.8 |
数据处理 |
信息通过服务器日志文件泄露 |
11 |
6.2.3.9 |
数据处理 |
信息通过调试日志文件泄露 |
12 |
6.2.3.10 |
数据处理 |
信息通过持久Cookie泄露 |
13 |
6.2.3.11 |
数据处理 |
未检查的输入做为循环条件 |
14 |
6.2.3.12 |
数据处理 |
Xpath注入 |
15 |
6.2.6.1 |
安全功能 |
明文存储口令 |
16 |
6.2.6.2 |
安全功能 |
存储可恢复的口令 |
17 |
6.2.6.3 |
安全功能 |
口令硬编码 |
18 |
6.2.6.4 |
安全功能 |
依赖referer字段进行身份鉴别 |
19 |
6.2.6.5 |
安全功能 |
Cookie中的敏感信息明文存储 |
20 |
6.2.6.6 |
安全功能 |
敏感信息明文传输 |
21 |
6.2.6.7 |
安全功能 |
使用已破解或危险的加密算法 |
22 |
6.2.6.8 |
安全功能 |
可逆的散列算法 |
23 |
6.2.6.9 |
安全功能 |
密码分组链接模式未使用随机初始化矢量 |
24 |
6.2.6.10 |
安全功能 |
不充分的随机数 |
25 |
6.2.6.11 |
安全功能 |
安全关键的行为依赖反向域名解析 |
26 |
6.2.6.12 |
安全功能 |
关键参数篡改 |
27 |
6.2.6.13 |
安全功能 |
没有要求使用强口令 |
28 |
6.2.6.14 |
安全功能 |
没有对口令域进行掩饰 |
29 |
6.2.6.15 |
安全功能 |
依赖未经验证和完整性检查的cookie |
30 |
6.2.6.16 |
安全功能 |
通过用户控制的SQL关键字绕过授权 |
31 |
6.2.6.17 |
安全功能 |
HTTPS会话中的敏感cookie没有设置安全属性 |
32 |
6.2.6.18 |
安全功能 |
未使用盐值计算散列值 |
33 |
6.2.6.19 |
安全功能 |
RSA算法未使用最优非对称加密填充 |
34 |
|
处理程序错误 |
未限制危险类型文件的上传 |
35 |
|
不充分的封装 |
可序列化的类包含敏感数据 |
36 |
|
不充分的封装 |
违反信任边界 |
37 |
6.2.7.1 |
时间和状态 |
会话固定 |
38 |
6.2.7.2 |
时间和状态 |
会话永不过期 |
39 |
6.2.8.1 |
Web问题 |
跨站脚本 |
40 |
6.2.8.2 |
Web问题 |
跨站请求伪造 |
41 |
6.2.8.3 |
Web问题 |
HTTP响应拆分 |
42 |
6.2.8.4 |
Web问题 |
开放重定向 |
43 |
6.2.8.5 |
Web问题 |
依赖外部提供的文件的名称或扩展名 |
44 |
6.2.9.1 |
用户界面错误 |
点击劫持 |
推荐源代码检测工具
Fortify源代码检测工具可出具基于GB/T 34944-2017 Java语言源代码漏洞测试规范的报告。
扫二维码用手机看
更多资讯
AppScan常见问题及解答
Loadrunner参数化详解
LoadRunner Professional 版本 24.3 的新功能和增强功能
联系我们
联系我们
关注我们