微信搜索superit|邀请体验:大数据, 数据管理、OLAP分析与可视化平台 | 赞助作者:赞助作者

常见安全漏洞修复建议-3

漏洞修复 aide_941 9℃

Spring Boot Actuator 开放

Spring Boot 提供了安全限制功能。比如要禁用/env接口,则可设置如下:

endpoints.env.enabled= false

如果只想打开一两个接口,那就先禁用全部接口,然后启用需要的接口:

  1. endpoints.enabled = false
  2. endpoints.metrics.enabled = true

另外也可以引入spring-boot-starter-security依赖

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-security</artifactId>
  4. </dependency>

application.properties中指定 actuator 的端口以及开启 security 功能,配置访问权限验证,这时再访问 actuator 功能时就会弹出登录窗口,需要输入账号密码验证后才允许访问。

  1. management.port=8099
  2. management.security.enabled=true
  3. security.user.name=admin
  4. security.user.password=admin

 

K8S API 未授权访问

在使用 kubernetes 的时候一定要进行身份的校验,K8S 的 APi 其实有非常严格的认证和授权。
最简单的是在 Authentication 增加静态的 password,或者 token,可以的话关闭 Web 端口的服务,保持最小化原则,避免安全风险的产生。参考:官方文档

CouchDB未授权访问

(1)漏洞详情

CouchDB默认在5984端口开放Restful的API接口,用于数据库的管理功能。其HTTP Server默认开启时没有进行验证,而且绑定在0.0.0.0,所有用户均可通过API访问导致未授权访问。

(2)漏洞危害【高危】

任何连接到服务器端口上的人,都可以调用相关API对服务器上的数据进行任意的增删改查,其中通过API修改local.ini配置文件,可进一步导致执行任意系统命令,获取服务器权限.

(3)修复建议

1、指定CouchDB绑定的IP (需要重启CouchDB才能生效) 在 /etc/couchdb/local.ini文件中找到 “bind_address = 0.0.0.0”,把 0.0.0.0 修改为 127.0.0.1 ,然后保存。注:修改后只有本机才能访问CouchDB

2、设置访问密码 (需要重启CouchDB才能生效) 在 /etc/couchdb/local.ini中找到“[admins]”字段配置密码

 

Hadoop YARN Resource Manager 未授权访问

自检

yarn-site.xml配置文件中查找如下检查项:

  1. 检查yarn.resourcemanager.webapp.address,即 ResourceManager 对外 Web UI 地址。用户可通过该地址在浏览器中查看集群各类信息,默认为 8088
  2. 检查yarn.resourcemanager.webapp.https.address,即 ResourceManager 对外 Web UI HTTPS 地址。用户可通过该地址在浏览器中查看集群各类信息,默认为 8090

修复

  1. 通过 iptables 或者安全组配置访问策略,限制对 8088 等端口的访问,如无必要,不要将接口开放在公网,改为本地或者内网调用
  2. 升级 Hadoop 到 2.x 版本以上,并启用 Kerberos 认证功能,禁止匿名访问

Hadoop未授权访问

(1)漏洞详情

由于服务器直接在开放了Hadoop机器HDFS的50070 web端口及部分默认服务端口,黑客可以通过命令行操作多个目录下的数据。

(2)漏洞危害【高危】

攻击者可以进行删除,下载,目录浏览甚至命令执行等操作,产生极大的危害。
其中比较重要的是DataNode 默认端口50075开放的话,攻击者可以通过hdsf提供的restful api对hdfs存储数据进行操作。

(3)修复建议

1、如无必要,关闭Hadoop Web管理页面
2、开启身份验证,防止未经授权用户访问
3、设置“安全组”访问控制策略,将Hadoop默认开放的多个端口对公网全部禁止或限制可信任的IP地址才能访问包括50070以及WebUI等相关端口,详细端口列表如下:

HDFS

  1. NameNode 默认端口 50070
  2. DataNode 默认端口 50075
  3. httpfs默认端口14000
  4. journalnode默认端口 8480

YARN(JobTracker)

  1. ResourceManager 默认端口8088
  2. JobTracker 默认端口 50030
  3. TaskTracker 默认端口 50060

Hue

  1. 默认端口 8080

YARN(JobTracker)

  1. master默认端口 60010
  2. regionserver默认端口60030

hive-server2

  1. 默认端口 10000

spark-jdbcserver

  1. 默认端口 10003

Zookeeper未授权访问

(1)漏洞详情

Zookeeper的默认开放端口是2181。Zookeeper安装部署之后默认情况下不需要任何身份验证,造成攻击者可以远程利用Zookeeper。

(2)漏洞危害【中危】

通过服务器收集敏感信息或者在Zookeeper集群内进行破坏(比如:kill命令),攻击者能够执行所有只允许由管理员运行的命令。

执行以下命令即可远程获取该服务器的环境:

  1. echo envi | nc ip port

(3)修复建议

1、禁止把Zookeeper直接暴露在公网
2、添加访问控制,根据情况选择对应方式(认证用户,用户名密码)
3、绑定指定IP访问

 

MongoDB未授权访问

(1)漏洞详情

开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,而且可以远程访问数据库,登录的用户可以通过默认端口无需密码对数据库进行增、删、改、查等任意高危操作。

(2)漏洞危害 【高危】

执行任意数据库操作。

(3)修复建议

1.添加mongodb认证
MongoDB启动时添加—auth参数,给MongoDB添加用户:

  1. use admin
  2. db.addUser("root", "123456") #添加用户名root密码123456的用户
  3. db.auth("root","123456") #验证下是否添加成功,返回1说明成功

2.若只在本地使用,绑定本地IP(or 内网IP)。

启动时加入参数

  1. --bind_ip 127.0.0.1

或在/etc/mongodb.conf文件中添加以下内容:

  1. bind_ip = 127.0.0.1

Elasticsearch未授权访问

(1)漏洞详情

Elasticsearch是一款java编写的企业级搜索服务。公司使用ELK作为日志分析,启动此服务默认会开放9200端口,可被非法操作数据。

(2)漏洞危害 【高危】

默认开放端口9200
相当于一个API,任何人访问这个地址,就可以调用api,进行数据的增删改操作。

http://x.x.x.x:9200/_plugin/head/ web管理界面
http://x.x.x.x:9200/_cat/indices
http://x.x.x.x:9200/_river/_search 查看数据库敏感信息
http://x.x.x.x:9200/_nodes 查看节点数据

(3)修复建议

1、防火墙上设置禁止外网访问9200端口;
2、使用Nginx搭建反向代理,通过配置Nginx实现对Elasticsearch的认证(或者安装x-pack模块);
3、限制IP访问,绑定固定IP;
4、在config/elasticsearch.yml中为9200端口设置认证:

  1. http.basic.enabled true #开关,开启会接管全部HTTP连接
  2. http.basic.user "admin" #账号
  3. http.basic.password "admin_pw" #密码
  4. http.basic.ipwhitelist ["localhost", "127.0.0.1"]

 

 

 

Memcache 未授权访问

(1)漏洞详情

Memcached是一套常用的key-value缓存系统,由于它本身没有权限控制模块,所以对公网开放的Memcache服务很容易被攻击者扫描发现。

(2)漏洞危害【中危】

攻击者通过命令交互可直接读取Memcached中的敏感信息,泄露公司敏感数据。

可做为DRDoS的放大器,导致公司出口大量带宽消耗,危害公共网络安全。

PoC:

  1. nc -vv <target> <port>
  2. >stats

(3)修复建议(三选一)

1、设置memchached只允许本地访问,并重启

  1. # vim /etc/sysconfig/memcached
  2. OPTIONS="-l 127.0.0.1" #设置本地为监听

2、禁止外网访问Memcached 11211端口(iptables)

3、编译时加上–enable-sasl,启用SASL认证

转载请注明:SuperIT » 常见安全漏洞修复建议-3

喜欢 (1)or分享 (0)