远程服务器安全:处理编译器工具

6 security linux gcc

我想知道是否要从远程生产服务器中删除编译器工具 ( gcc, make, ...),主要是出于安全目的。

背景:
服务器在 Linux 上运行 Web 应用程序。考虑 Apache 入狱。否则,只有 OpenSSHd 面向公网。当然,jail 中没有编译器的东西,所以这是关于任何jail 之外的实际操作系统。

到目前为止,这是我个人的 PRO/CON 列表(关于删除):

亲:

  • 我一直在阅读一些删除编译器工具的建议,以便在攻击者获得非特权用户权限时禁止从主机内部自定义构建木马等。

缺点:

  • 无论如何,我不能没有 Perl/Python 和木马/任何可以用这样的脚本语言编写的东西,所以为什么要删除 gcc 等。根本。
  • 需要直接在服务器上从源代码构建新的 Linux 内核以及一些安全工具,因为服务器以 64 位模式运行,并且(据我所知)我无法(交叉)在本地/其他地方编译由于缺少另一个 64 位硬件系统。

好的,下面是我要问你的问题:

(a) 我的 PRO/CON 评估是否正确?

(b) 您是否知道删除所有编译器工具的其他优点/缺点?他们更重吗?

(c) 如果给定的 PRO 语句成立,我应该认为哪些二进制文件是危险的?只有gcc,还是还有make,还是什么?我应该删除它们附带的整个软件包吗?

(d) 在不需要时将这些二进制文件移动到仅根目录可访问的目录是否可以?或者,如果我每次都“scp 进入”,是否会增加安全性?

谢谢!

Sat*_*ppy 6

许多人删除编译器和编译器工具,因为它们理论上可以用于漏洞利用。我认为这是过时的。我最近的经验是,如果他们可以进入,他们也可以进入他们的工具,因此删除诸如编译器、emacs 之类的东西以及诸如此类的垃圾并不会增加您的整体安全性。

我会非常小心我在机器上运行的服务:连接到外部的一切都是潜在的漏洞。否则,我只会删除编译器以保持我的程序员诚实。我认为这些天它不会对安全性增加多少。