AY-漏洞

发布时间 2023-03-23 17:58:55作者: 长安-TreeHole

Hadoop漏洞

1、Hadoop 未授权访问【原理扫描】

漏洞名称 Hadoop 未授权访问【原理扫描】 CVE编号
危险等级
威胁分类 远程信息泄露
漏洞描述 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
在默认情况下,Hadoop允许任意用户访问管理接口。
解决办法 方法1:在防火墙限制可信任IP才可访问50070端口。
https://www.cnblogs.com/liuqq1015/p/17078159.html

方法2:开启身份验证 ,防止未经授权用户访问。
① 开启服务级认证授权,需要在core-site.xml文件中开启参数hadoop.security.authorization,将其设置为true,并且重启hadoop。
<property>
<name>hadoop.security.authorization</name>
<value>true</value>
</property>
(hadoop.security.authorization=true则开启ServiceLevel Authorization,hadoop.security.authorization若为false则不经过任何验证,所有用户拥有全部权限)(修改此配置需要重启hadoop)

② 针对具体的各个服务的认证,在配置文件hadoop-policy.xml中对各个服务属性配置用户或组。 目前只需要针对客户端哪些用户能够访问namenode即可,即修改参数security.client.protocol.acl和security.job.submission.protocol.acl的值。

每个可配置多个用户,用户之间用“,”分割;可配置多个用户组,分组之间用“,”分割,用户和分组之间用空格分割,如果只有分组,前面保留一个空格,如:

<property>
<name>security.job.submission.protocol.acl</name>
<value> alice,bob group1, group2</value>
</property>

默认情况下,属性不对任何用户和分组开放。

每次修改hadoop-policy.xml中的值,要执行刷新操作:
更新namenode相关属性:bin/hadoop dfsadmin –refreshServiceAcl
更新jobtracker相关属性:bin/hadoopmradmin –refreshServiceAcl
(默认有10个服务,每个服务的默认值都是*,表示的就是任何的用户都可以对其进行访问。)

方法3:关闭HDFS的web页面访问,如下图,在HDFS的配置里面找到此选项,取消勾选,重启HDFS服务。
image

方法4:默认情况下,Hadoop HTTP Web控制台(ResourceManager,NameNode,NodeManagers和DataNodes)允许访问而无需任何形式的身份验证。Hadoop HTTP Web控制台支持相当于Hadoop的伪/简单身份验证。如果启用此选项,则必须使用user.name查询字符串参数在第一个浏览器交互中指定用户名。例如:http://localhost:8088/cluster?user.name=hadoop。
属性配置说明:附件1

具体实施操作如下:
4.1 创建secret目录,用于存放密钥文件,任意指定目录位置
mkdir -p /home/xxx/hadoop

4.2 编辑core-site.xml

<property>
<name>hadoop.http.filter.initializers</name>
<value>org.apache.hadoop.security.AuthenticationFilterInitializer</value>
</property>
<property>
<name>hadoop.http.authentication.type</name>
<value>simple</value>
</property>
<property>
<name>hadoop.http.authentication.token.validity</name>
<value>3600</value>
</property>
<property>
<name>hadoop.http.authentication.signature.secret.file</name>
<value>/home/xxx/hadoop/hadoop-http-auth-signature-secret</value>
<!-- 可动态配置,主从同样配置,并生成hadoop-http-auth-signature-secret文件,放到对应位置,内部为允许访问的用户,用user.name=“”访问 -->
</property>
<property>
<name>hadoop.http.authentication.cookie.domain</name>
<value></value>
</property>
<property>
<name>hadoop.http.authentication.simple.anonymous.allowed</name>
<value>false</value>
</property>

4.3 创建hadoop-http-auth-signature-secret密钥文件,添加用户,例如hadoop用户
编辑hadoop-http-auth-signature-secret

添加内容
hadoop

把core-site.xml和hadoop-http-auth-signature-secret文件同步到集群其他节点,重新启动Hadoop集群

4.4 验证
通过用户方式访问:http://IP:50070?user.name=hadoop
参考资料 https://www.cnblogs.com/zcg-cpdd/p/14525113.html