CWE

常见的弱点枚举

一个由社区开发的软件&硬件缺陷类型的列表

2021 CWE最重要的硬件的弱点
CWE最危险的弱点
>CWE列表> CWE -个人字典定义(4.10)
ID

cwe - 111:直接使用不安全的JNI

弱点ID: 111
抽象:变体
结构:简单的
视图定制的信息:
+描述
当Java应用程序使用Java Native Interface (JNI)来调用代码写在另一个编程语言,它可以使应用程序代码中的弱点,即使这些弱点不能发生在Java。
+扩展描述
许多安全功能,程序员可能理所当然不申请本地代码,因此您必须仔细审查所有这些潜在问题的代码。语言用来实现本机代码可能更容易受到缓冲区溢出和其他攻击。本机代码不受保护的安全特性的运行时环境,如强类型和数组边界检查。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 695年 使用低级的功能
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关观点“七有害的王国”(cwe - 700)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 20. 不正确的输入验证
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
实现
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

Java患病率(待定)

+常见的后果
部分帮助这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 影响 可能性
访问控制

技术的影响:旁路保护机制

+示范例子

示例1

下面的代码定义一个名为Echo的类。类声明一个本地方法(下面定义),它使用C echo命令进入控制台返回给用户。下面的C代码定义了回声的本机方法实现类:

(坏的代码)
例如语言:Java
类回波{

公共原生空隙runEcho ();
静态{

System.loadLibrary(“回声”);
}
公共静态void main (String [] args) {

新的Echo () .runEcho ();
}
}
(坏的代码)
例如语言:C
# include < jni.h >
# include”呼应。h”/ /使用javah编译上面的java类
# include < stdio . h >

JNIEXPORT空白JNICALL
Java_Echo_runEcho (JNIEnv * env jobject obj)
{
char buf [64];
得到(buf);
printf (buf);
}

因为Java实现的例子是,它可能会出现免疫记忆缓冲区溢出漏洞等问题。尽管Java做一份好工作的内存操作安全,这种保护并不延伸到漏洞发生在其他语言编写的源代码,使用Java本地接口访问。尽管内存保护提供Java, C代码在这个例子很容易受到缓冲区溢出,因为它利用了(),不检查其输入的长度。

Sun Java (TM)教程提供了以下描述的JNI(见参考):JNI框架允许您的本机方法使用Java对象在Java代码相同的方式使用这些对象。本机方法可以创建Java对象,包括数组和字符串,然后检查和使用这些对象执行它的任务。一个本地方法还可以检查和使用Java应用程序代码创建的对象。一个本地方法甚至可以更新的Java对象,它创建或传递给它,而这些更新对象是可用的Java应用程序。因此,母语的一面和Java的应用程序可以创建、更新和访问Java对象,然后在他们之间共享这些对象。

脆弱性在上面的例子中可以很容易地通过一个源代码审计发现的本机方法实现。这可能不是实际或可能根据C源代码的可用性和项目建造的方式,但在许多情况下,它可能足够了。然而,Java和本地方法之间共享对象的能力扩张的潜在风险更阴险的情况下用Java数据处理不当可能会导致意想不到的漏洞在本机代码或不安全的操作本机代码在Java中腐败的数据结构。漏洞在本机代码通过一个Java应用程序访问通常利用在同样的方式在当地语言编写的应用程序。唯一挑战这样的攻击是攻击者识别,Java应用程序使用本机代码以执行特定的操作。这可以以多种方式完成,包括确定具体行为往往是实现与本机代码或利用系统信息曝光的Java应用程序,揭示其使用JNI(见参考)。

+潜在的缓解措施

实施阶段:

在JNI调用实现错误处理。

实施阶段:

策略:重构

不要使用JNI调用如果你不信任当地图书馆。

实施阶段:

策略:重构

不愿使用JNI调用。Java API可能存在。
+弱点Ordinalities
Ordinality 描述
(其他弱点的弱点存在独立的)
+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 859年 CERT甲骨文安全Java编码标准(2011)第十六章-平台安全(SEC)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1001年 SFP二级集群:使用不当的API
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1151年 SEI CERT甲骨文Java安全编码标准,准则17。Java Native Interface (JNI)
+分类法映射
映射分类名称 节点ID 适合 映射节点名
7有害的王国 不安全的JNI
CERT甲骨文安全Java编码标准(2011) SEC08-J 定义包装器本地方法
SEI CERT甲骨文Java编码标准 JNI01-J 安全地调用执行任务的标准api使用的直接调用者的类加载器实例(loadLibrary)
SEI CERT甲骨文Java编码标准 JNI00-J 不精确的 定义包装器本地方法
软件故障模式 SFP3 使用不当的API
+引用
卡特里娜REF-6 Tsipenyuk,布莱恩象棋和加里·麦克格劳博士。“七有害的王国:分类软件安全错误”。NIST研讨会软件安全保障技术和度量工具。NIST的。2005-11-07。<https://samate.nist.gov/SSATTM_Content/papers/Seven%20Pernicious%20Kingdoms%20-%20Taxonomy%20of%20Sw%20Security%20Errors%20-%20Tsipenyuk%20-%20Chess%20-%20McGraw.pdf>。
[REF-41]增强软件。“增强描述”。<http://vulncat.fortifysoftware.com>。
REF-42贝斯登。“Java (TM)教程:Java本地接口”。太阳微系统公司,2005年。<http://www.eg.bucknell.edu/ ~米德/ java tutorial / native1.1 / index . html>。
+内容的历史
+提交
提交日期 提交者 组织
2006-07-19 7有害的王国
+修改
修改日期 修饰符 组织
2008-07-01 Eric Dalci Cigital
更新Demonstrative_Example、Potential_Mitigations Time_of_Introduction
2008-09-08 CWE内容团队 主教法冠
更新的关系,Other_Notes、引用Taxonomy_Mappings Weakness_Ordinalities
2008-11-24 CWE内容团队 主教法冠
更新描述,Other_Notes
2009-10-29 CWE内容团队 主教法冠
更新描述,Other_Notes
2011-03-29 CWE内容团队 主教法冠
更新Demonstrative_Examples
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences、关系、Taxonomy_Mappings
2012-05-11 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2013-02-21 CWE内容团队 主教法冠
更新Potential_Mitigations
2014-07-30 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2017-11-08 CWE内容团队 主教法冠
更新Causal_Nature Potential_Mitigations,引用
2019-01-03 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2020-02-24 CWE内容团队 主教法冠
更新引用、关系类型
2021-03-15 CWE内容团队 主教法冠
更新描述
+以前的条目名称
改变日期 以前的条目名称
2008-04-11 不安全的JNI
更多的信息是可用的,请选择一个不同的过滤器。
页面最后更新:2023年1月31日