来自公开可见的 Hudson & Jenkins 服务器的安全问题?

信息安全 防火墙 风险管理
2021-08-27 16:19:43

一个朋友的初创公司在 Tomcat 容器上运行的 Hudson/Jenkins 服务器上实现了许多关键业务服务。这不是一个开源项目,事实上这个项目的许多方面都是保密的。Jenkins 主要用作运行批次和从这些批次中收集结果的一种方式。

在某种程度上,系统已被锁定,例如安装了一个插件,旨在阻止暴力密码猜测攻击。Jenkins 系统已配置为您在登录之前唯一能看到的就是登录屏幕,因此这些用户可以在 Jenkins 服务器上重新配置或运行任何东西。

问题:该系统是否对业务构成任何重大安全威胁?我们是否采取了所有相关的、合理的安全措施。

例如,堆栈中某种未知的漏洞可能会成为漏洞利用的基础,但我们应该如何关注一个充其量是无法量化的风险,最坏的情况是理论上的风险?

4个回答

您需要采取以下措施:

  • 防火墙以确保只有需要访问的端口是
  • 白名单而不是黑名单(意思是拒绝所有人的访问,只允许访问实际需要访问的任何内容)
  • 它应该可以从互联网上访问吗?(VPN也许就足够了)
  • ...

而且可能总会有漏洞利用,漏洞利用的问题是您永远不知道何时有人会在您的系统中发现漏洞。除非您查看服务的源代码和设计,否则您无法评价您应该关注的程度。当你看到它有糟糕的验证或糟糕的设计时,你知道你必须警惕,如果它设计良好,编码良好并且有良好的验证,你可以少担心。但它总是有可能发生。

您的问题一方面非常广泛,另一方面非常本地化。

如果无法将 Hudson/Jenkins 移动到另一台服务器,那么我会使用反向代理来禁用对 Hudson 之外的任何东西的远程访问(也添加 SSL)。

Hudson等的Tomcat中总是有可能存在错误。您只能将它们可能造成的影响降到最低。

有风险。这种风险是无法量化的(我们不知道,或者目前不在乎,它有多大风险)。面对这种风险,将其公开没有任何好处。因此,评估风险并不真正值得,因为无论风险是什么,这个比率都是零。

由于我从另一个问题中知道您正在查看 EC2,因此请使用仅允许从您的私有公司 IP 地址访问的私有安全区域。如果您确实将其保留在内部而不是 EC2 上,我建议您做出类似的努力来丢弃任何不是来自您预期网络的流量。

查看您的设置,我想知道您是否真的需要从公司外部访问?如果是,您可以使用 VPN、HTTPS、证书……来保护从您的客户端到 Jenkins 服务器的通信吗?

您的其中一条评论确实与我有关:

...这些用户可以在 Jenkins 服务器上重新配置或运行任何东西。

用户是否需要能够在该 Jenkins 服务器上执行任何操作(仅授予对实际需要的权限/访问权限,而不是在某些不可预见的未来可能需要的权限)?Jenkins/Tomcat的权限可以降低吗(Jenkins是否以root/服务级别权限运行)?您能否将用户限制为仅当他们从公司外部连接时才成为查看者?如何保护您的公司网络免受来自 Jenkins 服务器(防火墙)的任何可能威胁。换句话说,将 Jenkins 服务器视为不属于您公司网络的一部分。