keycloak登录密码设置,数据库使用与安全漏洞

文章目录

    • 管理员弱口令
    • 风险分析
    • 排查处理

管理员弱口令

  • 被区网信办通报,我们部署在公网上的系统遭到了黑客网络攻击
  • 9080 弱密码漏洞,经典用户名密码,admin admin
  • 漏洞详情通报如下:
网络安全风险情况

1.漏洞详情
监测发现,5月18日,境外黑客组织利用跳板(176.16.*.*、223.223.*.*),通过管理员弱口令(admin/admin)登录xxxxxx公司交通信号集中控制系统(xx.xx.xx.xx:9080),累计通联流量6.2MB。

2.修复建议
建议排查系统是否存在泄露数据风险,核查数据泄露原因、范围、风险及影响。

风险分析

  • 这是我们部署到腾讯云的一套基础版平台系统,用于公司同事在外面访问演示之类的,没有做ip限制,允许互联网访问
  • 可能是名字带了“交通信号控制”,被黑客程序扫到了
  • 看了下报告,应该是只扫到部署的中间件keycloak(就它9080端口),里面没有啥实质内容,只是keycloak中间件自带的操作界面

排查处理

  • 首先是把被扫描到的系统的keycloak密码改掉,改为强密码(防止以后被误启动后仍是弱密码)
  • 然后把服务关闭掉,不再提供服务。
  • 最后修改我们的部署脚本,讲对外部署的版本的keycloak服务都改成强密码
  • 在这里还遇到一个小问题发现修改完之后,登录和其他功能的权限校验都没问题,但在加载用户列表时报错,如下:
09:06:27,355 WARN  [org.keycloak.events] (default task-1) type=LOGIN_ERROR, realmId=master, clientId=admin-cli, userId=49c4ec90-1777-4c99-a1bd-d24339c8539b, ipAddress=172.18.0.13, error=invalid_user_credentials, auth_method=openid-connect, grant_type=password, client_auth_method=client-secret, username=admin, authSessionParentId=ad7d6212-3bf0-4275-bf1c-e31e2246bb9a, authSessionTabId=UfIvlTeTy8g
09:06:47,213 WARN  [org.keycloak.events] (default task-1) type=LOGIN_ERROR, realmId=master, clientId=admin-cli, userId=49c4ec90-1777-4c99-a1bd-d24339c8539b, ipAddress=172.18.0.13, error=invalid_user_credentials, auth_method=openid-connect, grant_type=password, client_auth_method=client-secret, username=admin, authSessionParentId=3990f6da-fa60-4935-a6fa-f47694d674ca, authSessionTabId=syDr4d1V_V8
  • 排查代码后发现,其他接口权限校验是验证已登录的token,用户列表接口是直接请求调用keycloak的服务接口,而修改密码时漏改了配置,修改后如下:
  core-app:
    image: core
    container_name: core
    volumes:
      - /etc/localtime:/etc/localtime
    depends_on:
      - keycloak
    environment:
      - _JAVA_OPTIONS=-Xmx1G -Xms512m
      - SERVER_PORT=8181
      - SPRING_PROFILES_ACTIVE=prod,api-docs,no-liquibase
      - SPRING_CLOUD_CONSUL_HOST=consul
      - SPRING_CLOUD_CONSUL_PORT=8500
      - KEYCLOAK_URL=http://keycloak:9080/auth
      - KEYCLOAK_USERNAME=admin
      - KEYCLOAK_PASSWORD=xxxxxx
  • 还有一个容易被扫描的弱密码漏洞,数据库弱密码漏洞、其他中间件的弱密码漏洞等。有时候我们明明设置了很强的密码,也会被第三方机构扫描上报为弱密码漏洞。这些是误报,但是客户需要我们处理
  • 处理方式也很简单,把端口对外映射关掉,只允许自己的服务的ip端口访问,不对外开放。如果是使用docker部署中间件,直接不把端口号暴露出来,服务调用中间件时,使用服务名称

你可能感兴趣的:(java,keycloak,微服务,安全漏洞,弱密码)