首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >与编译开放源码项目相关的风险

与编译开放源码项目相关的风险
EN

Security用户
提问于 2014-04-18 12:03:27
回答 2查看 272关注 0票数 2

在阅读了这个问题关于是否更安全地下载和编译开源项目的源代码或下载并运行安装程序之后,我想到了另一个可能的漏洞:是否可以设想编译器可以将后门(或其他恶意软件)保留在它输出的文件中?换句话说,用于编译源代码的编译器是否会受到损害?要想捕捉到这样的事情,唯一的方法就是去掉编译好的可执行文件,并将代码与原始代码进行比较。这将是非常困难的。

此外,您还需要一个预先存在的编译器来编译一个开源编译器。在理论上,是否有可能拥有一个全是开源软件的系统,而计算机所有者(或一群受信任的人)已经审查了所使用的程序的代码?

EN

回答 2

Security用户

发布于 2014-04-18 12:29:49

是的,编译器和在计算机上执行代码的任何其他程序一样,可以用于在编译程序(例如ELF头和区段操作)之前或之后在程序中添加恶意指令。

票数 1
EN

Security用户

发布于 2014-04-18 13:22:57

你得看看信任链。您是否信任代码作者的源代码,是否让您或您信任的人审阅了代码,是否信任编译器。的确,编译器有可能被分发,插入后门、恶意代码等。

肯汤普森的“信任思考”,他1984年的图灵奖获奖演说,是第一份描述黑匣子后门问题,并指出信任是相对的的主要论文。

您的编译器也有可能不按预期行事,可能会减少代码的不安全性。

麻省理工学院计算机科学与人工智能实验室的四名研究人员将于下周在ACM操作系统原理研讨会上发表论文,研究优化--不稳定代码的问题,这是一种由编译器删除的代码,因为它包含未定义的行为。未定义的行为是可以不可预测的行为的代码,例如除以零、空指针解引用和缓冲区溢出。与其他代码不同,编译器编写人员可以任意处理未定义的行为。在某些情况下,他们选择完全消除它,如果所讨论的代码包含安全检查,则会导致漏洞。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/56099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档