描述
产品下载源代码或从远程位置和执行一个可执行的代码没有充分验证代码的来源和完整性。
扩展描述
攻击者可以通过牺牲主机服务器执行恶意代码,执行DNS欺骗,在运输途中或修改代码。
的关系
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关的视图”研究概念”(cwe - 1000)
自然 |
类型 |
ID |
的名字 |
ChildOf |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
669年 |
不正确的资源领域之间的转移 |
ChildOf |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
345年 |
验证数据的真实性不足 |
PeerOf |
Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 |
79年 |
中和不当输入在Web页面生成(“跨站点脚本编制”) |
光束 |
Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 |
79年 |
中和不当输入在Web页面生成(“跨站点脚本编制”) |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关观点“软件开发”(cwe - 699)
自然 |
类型 |
ID |
的名字 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1214年 |
数据完整性问题 |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 |
类型 |
ID |
的名字 |
ChildOf |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
669年 |
不正确的资源领域之间的转移 |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关视图”架构概念”(cwe - 1008)
自然 |
类型 |
ID |
的名字 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1020年 |
验证消息的完整性 |
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 |
请注意 |
架构和设计 |
遗漏:这个弱点是由于缺少一个安全策略在体系结构和设计阶段。 |
实现 |
|
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
完整性 可用性 保密 其他
|
技术的影响:执行未经授权的代码或命令;改变执行逻辑;其他
执行不受信任的代码可以妥协程序的控制流。不受信任的代码可以执行attacker-controlled命令,读取或修改敏感资源,或防止软件合法用户的正常。 |
|
利用的可能性
示范例子
示例1
这个例子从本地加载外部类子目录。
URL新URL [] [] classURLs = {
新的URL(“文件:子目录/”) }; URLClassLoader装载机= new URLClassLoader (classURLs); 类loadedClass =类。forName (“loadMe”,的确,加载程序);
这段代码并不能保证类加载的目的,例如通过验证类的校验和。攻击者可能会修改类文件执行恶意代码。
示例2
这段代码包含一个外部脚本数据库证书,然后对数据库验证用户,允许访问应用程序。
/ /假设已经加密的密码,避免cwe - 312
功能验证(用户名、密码)美元{
包括(“http://external.example.com/dbInfo.php”);
/ / dbInfo。php使dbhost美元,dbus dbpass, dbname可用美元美元
mysql_connect (dbhost, dbus美元,美元dbpass)或死亡(“错误连接到mysql”); mysql_select_db(美元dbname); 从用户查询美元= ' Select *用户名= '。美元的用户名。美元= ' '和密码。密码; 美元$结果= mysql_query(查询);
如果(mysql_numrows(美元)= = 1){
mysql_close (); 返回true; } 其他{
mysql_close (); 返回错误; }
}
这段代码并不验证外部域访问预期的影响。攻击者可能会以某种方式导致外部域名解决攻击服务器,这将提供虚假的信息数据库。攻击者可能会窃取用户名和加密密码的用户登录尝试,或者只是让自己没有真正的用户帐户访问该应用程序。
这个例子也容易Adversary-in-the-Middle AITM (cwe - 300)攻击。
观察到的例子
参考 |
描述 |
|
卫星电话并不验证其固件图像。 |
|
链:路由器的固件更新过程使用curl - k”(不安全)选项,禁用验证证书( cwe - 295),允许adversary-in-the-middle (AITM)与恶意固件图像(妥协 cwe - 494)。 |
|
操作系统并不验证真实性的更新。 |
|
在线扑克客户端不核实真实性的更新。 |
|
反病毒产品并不验证自动更新。 |
|
VOIP电话从网站下载应用程序没有验证的完整性。 |
潜在的缓解措施
实施阶段:
执行适当的正向和反向DNS查找检测DNS欺骗。
注意:这只是一个部分解决方案,因为它不会阻止你的代码被修改的托管站点或在运输途中。 |
阶段:体系结构和设计;操作
加密传输之前代码与可靠的加密方案。
这只会是一个部分解决方案,因为它不会检测DNS欺骗,它不会阻止您的代码修改托管网站。
|
阶段:体系结构和设计
使用审查库或框架不允许这个弱点发生或提供了结构,使这个弱点更容易避免的。
Speficially,它可能有助于使用工具或框架来对传播执行完整性检查代码。
|
阶段:体系结构和设计;操作
使用所需的最低特权运行您的代码来完成必要的任务( ref - 76]。如果可能的话,创建独立帐户权限有限,只用于一个任务。这样,一个成功的攻击不会立即给攻击者访问其他软件或其环境。例如,数据库应用程序很少需要作为数据库管理员运行,特别是在日常操作。 |
阶段:体系结构和设计;操作
运行代码的“监狱”或类似沙箱环境执行严格的流程和操作系统之间的边界。这可能有效地限制哪些文件可以在一个特定的目录或访问哪些命令可以执行的软件。
操作系统的例子包括Unix chroot监狱,AppArmor对,SELinux。在一般情况下,托管代码可能会提供一些保护。例如,java。在Java SecurityManager FilePermission允许软件指定文件操作的限制。
这可能不是一个可行的解决方案,它只限制对操作系统的影响;应用程序的其余部分可能仍然接受妥协。
注意:这种缓解的有效性取决于特定的沙盒或监狱的预防功能使用,只可能有助于减少攻击的范围,比如限制攻击者对特定文件系统的系统调用或限制部分,可以访问。 |
检测方法
手动分析
这个弱点可以检测使用的工具和技术,需要手动(人类)的分析,如渗透测试、威胁建模和交互工具,允许测试人员记录和修改一个活跃的会话。
具体地说,人工静态分析通常需要找到触发下载代码的行为,并确定是否使用集成检测方法。
注意:这些可能是更有效的比严格的自动化技术。尤其如此弱点设计和相关的业务规则。 |
黑盒
使用监控工具,检查软件的流程与操作系统交互和网络。这种技术的情况很有用的源代码不可用,如果软件并不是由你,或者如果你想验证构建阶段并没有引入任何新的弱点。例子包括调试器直接附加到正在运行的进程;系统调用跟踪实用程序,如桁架(Solaris)和strace (Linux);系统活动监视器如FileMon、RegMon、过程监控、和其他的Sysinternals工具(Windows);嗅探器和协议分析,监控网络流量。
把监控过程和嗅探网络连接。触发特性相关的产品更新或插件安装,这可能会迫使一个代码下载。监控当文件被下载和单独执行,或者如果他们否则读回的过程。寻找证据的密码库调用使用完整性检查。
|
会员资格
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
笔记
研究的差距
这对于移动代码是至关重要的,但它很可能会变得越来越常见,因为开发人员继续采用自动化、基于网络的产品分布和升级。软件即服务(SaaS)可能会引入额外的微妙之处。常见的开发场景可能包括广告服务器的妥协和坏的升级。
分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
扣 |
|
|
调用不可信移动代码 |
CERT甲骨文安全Java编码标准(2011) |
SEC06-J |
|
不依赖于默认提供的自动签名验证URLClassLoader java.util.jar |
软件故障模式 |
SFP27 |
|
污染环境的输入 |
引用
|
|
|
|
迈克尔•霍华德(REF-44)大卫·勒布朗和Viega约翰。软件安全的“24宗罪”。“罪孽18:移动代码的罪过。”Page 267. McGraw-Hill. 2010. |
|
|
|
内容的历史
提交 |
提交日期 |
提交者 |
组织 |
2006-07-19 |
扣 |
|
|
修改 |
修改日期 |
修饰符 |
组织 |
2008-07-01 |
Eric Dalci |
Cigital |
更新Time_of_Introduction |
2008-09-08 |
CWE内容团队 |
主教法冠 |
更新的关系,Other_Notes Taxonomy_Mappings |
2009-01-12 |
CWE内容团队 |
主教法冠 |
Applicable_Platforms更新,Common_Consequences、描述、名称、Other_Notes, Potential_Mitigations,引用关系,Research_Gaps、类型 |
2009-03-10 |
CWE内容团队 |
主教法冠 |
更新Potential_Mitigations |
2009-07-27 |
CWE内容团队 |
主教法冠 |
更新描述、Observed_Examples Related_Attack_Patterns |
2010-02-16 |
CWE内容团队 |
主教法冠 |
更新Detection_Factors、引用关系 |
2010-04-05 |
CWE内容团队 |
主教法冠 |
更新Applicable_Platforms |
2010-06-21 |
CWE内容团队 |
主教法冠 |
更新Common_Consequences Detection_Factors Potential_Mitigations,引用 |
2010-09-27 |
CWE内容团队 |
主教法冠 |
更新Potential_Mitigations,引用 |
2010-12-13 |
CWE内容团队 |
主教法冠 |
更新Potential_Mitigations |
2011-03-29 |
CWE内容团队 |
主教法冠 |
更新Demonstrative_Examples |
2011-06-01 |
CWE内容团队 |
主教法冠 |
更新Common_Consequences、关系、Taxonomy_Mappings |
2011-06-27 |
CWE内容团队 |
主教法冠 |
更新的关系 |
2011-09-13 |
CWE内容团队 |
主教法冠 |
更新Potential_Mitigations,引用 |
2012-05-11 |
CWE内容团队 |
主教法冠 |
更新引用关系,Taxonomy_Mappings |
2012-10-30 |
CWE内容团队 |
主教法冠 |
更新Potential_Mitigations |
2014-07-30 |
CWE内容团队 |
主教法冠 |
更新的关系,Taxonomy_Mappings |
2017-11-08 |
CWE内容团队 |
主教法冠 |
更新Modes_of_Introduction、引用关系 |
2019-01-03 |
CWE内容团队 |
主教法冠 |
更新Taxonomy_Mappings |
2019-06-20 |
CWE内容团队 |
主教法冠 |
更新Related_Attack_Patterns、人际关系 |
2020-02-24 |
CWE内容团队 |
主教法冠 |
更新Demonstrative_Examples、人际关系 |
2020-08-20 |
CWE内容团队 |
主教法冠 |
更新的关系 |
2020-12-10 |
CWE内容团队 |
主教法冠 |
更新Demonstrative_Examples |
2021-03-15 |
CWE内容团队 |
主教法冠 |
更新引用,Related_Attack_Patterns |
2021-07-20 |
CWE内容团队 |
主教法冠 |
更新Demonstrative_Examples |
2021-10-28 |
CWE内容团队 |
主教法冠 |
更新Observed_Examples、人际关系 |
2022-10-13 |
CWE内容团队 |
主教法冠 |
更新引用,Related_Attack_Patterns |
2023-01-31 |
CWE内容团队 |
主教法冠 |
更新Related_Attack_Patterns |
以前的条目名称 |
改变日期 |
以前的条目名称 |
2008-04-11 |
移动代码:调用不可信的移动代码 |
|
2009-01-12 |
下载不可信移动代码没有完整性检查 |
|
|