S-K*_*-K' 45 security make gcc
在设置我的虚拟服务器实例期间,我需要使用make. 安装后是否存在任何安全风险make?或者我应该在部署实例之前清理它?
我还在gcc服务器上安装了编译器,用于在部署前构建应用程序。
kas*_*erd 52
有些人会争辩说,生产机器上存在开发工具将使攻击者的生活更轻松。然而,这对攻击者来说是一个很小的障碍,您可以找到的任何其他支持或反对安装开发工具的论据都会更加重要。
如果攻击者到目前为止能够渗透系统,他们可以调用服务器上存在的任何工具,那么您已经存在严重的安全漏洞。如果没有开发工具,还有许多其他方法可以将二进制数据写入文件,然后在该文件上运行 chmod。此时想要在系统上使用自定义构建可执行文件的攻击者也可以在他们自己的机器上构建它并将其传输到服务器。
还有其他更相关的事情需要注意。如果安装的软件包含安全漏洞,攻击者可能会通过以下几种方式暴露它:
我不希望开发工具与上述之一相匹配,因此不是一个高风险的包。
如果您有使用开发工具的工作流,那么您首先必须确定这些工作流是否合理,如果是,您应该安装开发工具。
如果您发现服务器上并不真正需要这些工具,出于多种原因,您应该避免安装它们:
如果您出于安全原因决定不允许非特权用户将他们自己的可执行文件放在服务器上,那么您应该避免的不是开发工具,而是那些安装有执行权限的文件系统上的用户可写的目录。即使在这些情况下,开发工具也可能有用,但可能性不大。
EEA*_*EAA 16
make本身没问题。make只是一个依赖跟踪和自动化框架。但是,它通常与编译器结合使用,并且最好不要在生产系统上使用它们,因为它们完全没有必要。对于所有不需要的包也是如此,无论是共享库、解释器等。安装在生产系统上的软件应该受到严格控制,只有应用程序需要的包才应该存在。
您应该在构建服务器上构建应用程序,将其打包,然后将二进制包部署到您的生产系统。
注意:原生打包工具很烂。甚至不要费心去理解它们。相反,请查看 Jordan Sissel 的fpm. 它使包装成为一种绝对的乐趣。
ign*_*nis 16
make是一个与bash.
类似的编译器gcc是一个强大的awk配置,配置了一组标准awk不支持的替换。它不符合 POSIX 标准sort或cat在输出中注入垃圾。它是一个交互式文本编辑器(think vi),它被配置为在启动时进行一些编辑,然后在显示用户界面之前退出。
它们本身没有任何不安全的东西,它们不会使您的机器比具有 bash + cat+ shell 重定向的机器更不安全。
Joh*_*ohn 10
相反,潜在的问题不make在于生产服务器上,潜在的问题在于在生产服务器上构建应用程序而不是部署经过测试的预构建映像。这种方法可能有正当的理由,但如果我被要求采用它,我会极力反对它。