漏洞详情 | 解决方案 |
登录爆破 | 对于登录爆破,我们对外一直是提供登录验证码功能扩展包解决,https://history.wiki.smartbi.com.cn/pages/viewpage.action?pageId=52627212,用户可配置相关扩展包解决。 |
弱口令 | 用户配置密码过于简单,可以通过配置正在表达式限制用户输入密码过于简单,具体可参考Wiki文档:https://wiki.smartbi.com.cn/pages/viewpage.action?pageId=76679302 设置账号校验规则:^$|[a-zA-Z0-9]{6,32} 设置密码校验规则:^(?![^a-zA-Z]+$)(?!\D+$)[a-zA-Z0-9]{8,}$ |
查看smartbi版本信息 | 版本信息开放主要是用于日常问题分析,因为我们前端js是存在会话缓存,若无法确认版本信息,会导致问题分析比较难。再者我们过于经过第三方安全机构检测,相关检测报告也未对此类做安全漏洞判断。用户可以删除相关的txt文件,对产品功能使用不影响。 |
目录遍历 | 于2020-10-14已发布相关安全补丁,该问题可通过安装安全补丁后,配置限制config页面文件访问路径解决:https://history.wiki.smartbi.com.cn/pages/viewpage.action?pageId=50692623 |
信息泄露 | 为了监控用的页面,超级管理员才有的权限。建议用户配置IP限制,限制非允许IP访问,具体同2.3参考Wiki文档:https://wiki.smartbi.com.cn/pages/viewpage.action?pageId=50692623 |
接口泄露(直接访问wsdl无需401) | 相关接口信息可参考Wiki文档进行屏蔽:https://wiki.smartbi.com.cn/pages/viewpage.action?pageId=89033146,产品未直接限制主要是做成产品,很有项目需要调用相关接口进行二开,因此我们保留相关访问。 |
session劫持+重置用户密码(无需原密码) | session劫持的前提是访问到,https://127.0.0.1/vision/monitor/listsessions.jsp。通过2.3的解决方案,可限制IP访问,非白名单IP无法访问到相关页面,https://wiki.smartbi.com.cn/pages/viewpage.action?pageId=50692623 |
heapdump缓存抓取密码 | 如session劫持,另外于2022-06-17对于相关密码已采取asc加密。 |
Tomcat存在登陆页面 | 删除webapps下的docs、examples、ROOT目录 |
会话超时 | 配置会话超时扩展包,产品默认实现不超时功能,若项目安全性要求高,建议配置会话超时扩展包,当用户对系统长时间未操作自动超时,具体可参考Wiki文档:https://wiki.smartbi.com.cn/pages/viewpage.action?pageId=76679004 |
不安全的http协议 | 配置https可参考:https://history.wiki.smartbi.com.cn/pages/viewpage.action?pageId=58101324 |
缺少X-Frame-Options标头属性 | webSecurityExt.ext扩展包 |
禁止越权设置 | 【系统选项】->【高级设置】,设置AUTHORITY_CONTROL_SWITCH=true |
sql代码执行 | 新建原生sql数据集这个功能允许输入sql,并且可以绕过系统select限制,执行增删改,包括删除其它库 需要修改知识库表: insert into t_systemconfig values('SQLDDLDMLAUTHORITY_CONTROL_SWITCH', 'true', null) |
config.jsp页面内的密码项要勾选【加密保存】 | |
同一个账号在不同的地方登录使用 | 锁定账号扩展包LoginLock,不允许同一个账号在不同的地方登录使用,如果存在同时使用同一账号的情况,之前登录的账号在访问下一个请求的自动跳转到登录界面。https://wiki.smartbi.com.cn/pages/viewpage.action?pageId=52627243 |
报错页面泄漏信息 | 报错信息权限控制扩展包SuccinctErrorMessage,https://wiki.smartbi.com.cn/pages/viewpage.action?pageId=62300080 |
会话固定 | 用户登录前与登录后的JSESSIONID是一样的,需要用修复会话固定漏洞扩展包SessionFixationHandler,https://wiki.smartbi.com.cn/pages/viewpage.action?pageId=52627136 |
Cookie的HttpOnly、secure 安全属性未启用 | 到Tomcat根目录下的conf/web.xml中添加如下配置 <session-config> <session-timeout>30</session-timeout> <cookie-config> <http-only>true</http-only> <secure>true</secure> </cookie-config> </session-config> 注意:设置secure需要开启https |
ip伪造、host头攻击、缺少X-Frame-Options响应头、cookie缺少httponly,secure,samesite问题 | 配置nginx,如: upstream smartbi_tomcat{ ip_hash; server 10.253.88.111:8080 weight=1; } server { listen 80; server_name 10.253.88.111; if ($host !~* ^10.253.88.111|127.0.0.1$){ return 403; } # 将http请求转发到https #if ($scheme = http) { # return 301 https://$host$request_uri; #} # https 证书配置 #ssl_certificate <证书所在路径>/<证书名称>.crt; #ssl_certificate_key <证书所在路径>/<证书名称>.key; location / { # 注意,这里不要使用集群,直接转发到 Tomcat 服务即可 proxy_pass http://10.253.88.111:8080; add_header 'Access-Control-Allow-Credentials' 'true'; add_header X-Frame-Options SAMEORIGIN; proxy_set_header Cookie $http_cookie; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; # 需要https 的支持 #proxy_cookie_path ~^/(.+)$ "/$1; HttpOnly; secure; SameSite=none"; client_max_body_size 100m; client_body_buffer_size 1024k; proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } } |
Tomcat服务器版本号泄露 | ①进入到tomcat/lib目录下,用电脑自带解压软件打开catalina.jar 进入到\org\apache\catalina\util目录下。 ②编辑ServerInfo.properties文件,编辑最后三行,去掉版本号等信息。 ③改完后自动跳出提示,点击“是”自动更新catalina.jar重新打包。更改内容如下: https://wiki.smartbi.com.cn/pages/viewpage.action?pageId=83691036 |