PHP 开发人员自己是否有机会在 PHP 核心中实现后门?

信息安全 php 病毒
2021-09-09 16:58:57

这不是我个人关心的问题,不!在我的工作环境中,我从程序员和非程序员那里听说,PHP 开发人员总是在 PHP 中设置秘密后门,除了他们自己之外没有人可以访问,所以如果一个项目上线并成为一个大项目,他们可以用它做任何他们想做的事情,比如窃取公司资产等。
虽然我很尊重php.net和其他人的所有PHP开发人员,但我只是想知道你的意见。

PS:像某些病毒,包括通过特定操作启用的 Starex。

4个回答

后门会定期被发现这绝不是 PHP 独有的,并且可能出于多种原因而发生。开放源代码项目并非完全免疫,因为代码可能会被偷偷摸摸,但这并不是仅仅影响开放源代码项目的事情。

例如, Horde (php) 被黑,攻击者引入了后门,但同样的事情发生在 VSFTP (C/C++)上。有时软件供应商会故意在他们自己的代码中放置一个后门。这被认为发生在RuggedCom 的闭源 SCADA 系统上。

蠕虫可能包含后门。例如,MyDoom 是一种电子邮件蠕虫,它传播并打开一个允许代码执行的端口。后来,一种名为DoomJuice 的蠕虫利用 MyDoom 的后门进行传播此外,PhatBot/AgoBot 系列的 IRC 机器人在 MyDoom 的后门上散布捎带,允许任何拥有 C++ 编译器的青少年利用它。

不小心遗漏了一个卫生程序很容易,谁说它是一个后门?

PHP 被认为是一种不安全的开发语言,并不是因为 PHP 语言开发人员设置了秘密后门,而是因为它最初是在没有将安全作为主要问题的情况下开发的,并且与其他语言/Web 框架相比,它很难在其中安全地开发。

例如,如果您开发 LAMP/LAPP (linux+apache+mysql/postgresql+PHP) Web 应用程序,您必须手动在输入/输出环境中编写代码以防止 SQL 注入/XSS/CSRF,确保没有微妙的调用eval用户提供的代码(例如preg_replace以 '/e' 结尾的 regexp 参数),安全地处理文件上传,确保用户密码被安全地散列(不是明文),身份验证 cookie 是不可猜测的、安全的 (https) 和 http-only , 等等。

大多数现代 Web 框架通过以安全的方式完成大部分这些事情(或最初不安全地执行它们然后获得安全更新)来简化许多这些问题。

开源 PHP 中存在秘密后门的风险很小;并且风险存在于您使用的每个软件(windows/linux/apache/nginx/IIS/postgresql/oracle)中——开源和闭源。开源的至少有很多独立的眼睛一直在看它的好处,如果你愿意,你可以检查它。

原则上还要注意,即使在完全检查了源代码并没有发现后门并完全检查了编译器的源代码(没有发现后门)之后,如果你重新编译你的编译器(通过使用一些不受信任的现有编译器引导),然后编译使用您新编译的“安全”编译器的安全源代码,您的可执行代码仍然可能有后门,因为使用不受信任的现有编译器来编译新编译器。请参阅 Ken Thompson关于信任信任思考(在实践中防止这种情况的方法是使用来自多个来源的许多独立且晦涩的编译器来编译任何新编译器,然后比较输出)。

作为 PHP 开发人员,我知道如果开发人员需要,放置后门非常简单,或者如果开发人员不关心安全性并在以后回忆它存在时,它通常会无意中实现。

这样的事情是可能的,但随着时间的推移,它会在开源项目中被发现。PHP 是开源的,您可以使用它的好处。如果您害怕后门,请下载源代码,阅读并自己编译。另外,我建议使用您的发行版中的软件包。php 包的维护者会在上游找到这样的后门。如果您不信任您的维护者,请在自己编译之前下载并阅读源代码。

请向这些人询问后门的位置。如果他们非常确定 php 是后门的,那么向您显示代码行应该没有问题。