cwe - 583: finalize()方法声明
描述
移动产品违反安全编码原则,宣布finalize()方法的公共代码。
扩展描述
产品不应该显式地调用完成,除了叫super.finalize()内部finalize()方法的实现。在移动代码的情况下,否则容易出错的实践手册垃圾收集可以成为安全威胁如果攻击者恶意调用finalize()方法,因为它是用公共访问声明。
的关系
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
保密 完整性 可用性
|
技术的影响:改变执行逻辑;执行未经授权的代码或命令;修改应用程序数据
|
|
示范例子
示例1
下面的Java小程序代码错误地声明一个公共finalize()方法。
移动代码,在这种情况下,一个Java Applet,代码通过网络传播,并在远程机器上执行。因为移动代码开发人员几乎没有如果任何控制他们的代码将执行的环境,特殊的安全问题成为有关。一个最大的环境威胁的风险结果移动代码将与其他一起运行,潜在的恶意移动代码。因为所有流行的web浏览器执行代码来自多个源在相同的JVM中,许多移动代码安全指导方针的重点是防止操纵对象的状态和行为的对手获得相同的虚拟机运行你的产品。
潜在的缓解措施
实施阶段:
如果您正在使用finalize(),因为它是设计,没有理由宣布finalize()与保护访问。 |
会员资格
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
CERT甲骨文安全Java编码标准(2011) |
MET12-J |
|
不要使用终结器 |
软件故障模式 |
SFP28 |
|
意外的访问点 |
|