出具符合GB/T 34944-2017《Java语言源代码漏洞测试规范》检测报告
发布时间:2025-01-17
北京仪综所实验室,CNAS和CMA认可的第三方检测机构,出具符合GB/T 34944-2017《Java语言源代码漏洞测试规范》检测报告,适用于各类软件课题项目验收需要。
适用范围:
本标准适用于开发方或第三方机构的测试人员利用自动化静态分析工具开展的Java语言源代码漏洞测试活动。Java语言的程序设计和编码人员以及源代码漏洞测试工具的设计人员也可参考使用。
测试目标:
确保Java语言源代码中不存在安全漏洞,提高软件的安全性和可靠性。
二、测试内容
输入验证
验证输入:所有来自不可信源的输入必须在使用前进行验证。这包括方法参数和外部流中的数据。例如,防止整数溢出和目录遍历攻击。
验证输出:在调用更高层次代码的方法时,返回值应进行验证。同样,仅通过实现上层调用可访问的对象不需要验证其输入。
异常处理
处理异常:方法调用结果为异常时,调用者可以选择处理或传播异常。处理异常意味着捕获它并执行一些纠正、清理或回退操作,然后正常继续,以保护调用者的调用者免受错误条件的影响。
过滤敏感信息:异常消息和类型可能包含敏感信息,应过滤这些信息以保护数据安全。例如,FileNotFoundException消息可能包含文件系统布局信息。
使用安全的库
选择经过验证的库:使用经过广泛测试和定期更新的库。这些库通常由开发社区广泛使用,任何漏洞很可能已经被发现并修复。
定期更新库:确保定期更新库,以保持应用程序的安全性。
使用强加密
强加密:使用强加密算法(如AES)来保护敏感数据,确保数据的保密性、完整性和真实性。
Java加密架构:利用Java加密架构(JCA)框架,提供数字签名、消息摘要、消息认证码、对称和非对称密码等加密功能。
代码简化
保持代码简单:减少代码复杂性可以降低潜在漏洞的发生。使用访问修饰符抽象实现细节,创建模块化和分隔的API。
使用访问修饰符:尽可能使用private修饰符,减少代码的暴露面。
模块化
使用模块系统:Java的模块系统和访问修饰符可以封装类和接口,确保实现细节不被恶意利用。只导出包含已发布API的包,隐藏支持API实现的包。
避免序列化漏洞
序列化问题:任何使用序列化Java对象的应用程序都可能受到漏洞的影响。确保从API或库接收的数据不使用序列化对象。
检测试验找彭工136-9109-3503。