YARN 远程代码执行(RCE)安全漏洞问题分析与解决方案
1 YARN RCE 漏洞问题问题现象
某客户使用Tenable.sc扫描安全漏洞后反馈,YARN 存在Remote code execution (RCE) 安全漏洞问题,攻击者可在未经过身份验证的情况下通过该漏洞在受影响主机执行任意命令,最终控制服务器。
问题描述及细节情况如下图所示:
2 YARN RCE 漏洞问题分析与复现
- YARN 内置了Jetty并基于Jetty提供了 restful api,用户可以访问这些 restful api 以获得YARN集群中集群、节点和用用的相关信息。
- 在未作特殊配置的情况下,普通用户确实可以在未认证的情况下访问yarn这些restful api,通过巧妙地构建特定的JSON输入数据,确实可以通过Remote code execution (RCE) 安全漏洞在受影响主机执行任意命令,最终控制服务器。
- 我们可以通过开启kerberos安全认证(hadoop.security.authentication=kerberos),来阻止针对整个hadoop集群(包括hdfs/yarn)的基于RPC的未授权访问;
- 我们可以通过进一步开启 HTTP Web 控制台的 Kerberos 身份验证(hadoop.http.authentication.type=kerberos)