1. 概述
1.1 版本
产品 | 版本 | 安全漏洞声明 |
---|---|---|
FineBI | 6.0.* 5.1.0-5.1.18.* | 公示24年及历史版本漏洞&解决方案:安全漏洞声明 |
FineReport | 11.0.* 10.0.* | |
FineDataLink | 4.1.* |
1.2 应用场景
为了提升产品的安全性,本文整理了,正式工程中应当开启的相关安全设置,请参照本文对工程进行安全加固。
注1:如无法完成产品升级和加固,请至少参考文档完成:限制IP访问工程
注2:参照本文进行安全配置后,部分功能会有影响,主要面向安全诉求更高的客户。
2. 产品升级
2.1 FR11.*&BI6.0.*&FDL4.1.*系列
操作目的:当前处于高危版本「JAR包在 2024-07 及之前版本」的工程,请升级至最新安全版本。
注:FineBI6.1.*系列,仅支持运维平台部署,请直接联系帆软技术支持协助升级。请勿下载本文FineBI6.0.*JAR包进行替换。
操作内容:换工程JAR包、删netty JAR包、清空impl文件夹,重启即可。
产品 | 升级步骤 |
---|---|
FineReport11.* | 该升级操作仅面向非运维平台部署的工程。运维平台部署的工程,请直接联系帆软技术支持协助升级 下文简单描述了服务器工程升级的操作步骤,更详细升级指南请参考:小版本升级指南 FineBI的JAR包中,自带FineReport相关JAR,因此FineBI与FineReport集成工程,升级FineBI即可 1)获取JAR包
2)升级服务器工程
3)升级设计器 低版本的设计器无法连接高版本的服务器工程,因此本地设计器也需要同步升级至最新版本。
|
FineBI6.0.* | 该升级操作仅面向非运维平台部署的工程。运维平台部署的工程,请直接联系帆软技术支持协助升级 FineBI6.1.*系列,仅支持运维平台部署,请直接联系帆软技术支持协助升级。请勿下载6.0.*JAR包进行替换 下文简单描述了服务器工程升级的操作步骤,更详细升级指南请参考:小版本升级指南 请在升级前认真查看升级注意事项,确保了解各个版本的兼容问题:FineBI小版本升级注意事项 1)检查工程情况
2)获取JAR包
3)升级工程
|
FineDataLink4.1.* | 该升级操作仅面向非运维平台部署的工程。运维平台部署的工程,请直接联系帆软技术支持协助升级。 下文简单描述了服务器工程升级的操作步骤,更详细升级指南请参考:小版本升级指南 1)获取JAR包
2)升级工程
|
2.2 FR10.*&BI5.1.0~5.1.18.x系列
操作目的:当前处于高危版本「JAR包在 2024-07 及之前版本」的工程,请升级至最新安全版本。
推荐配置:请跨大版本升级至「FR11.*&BI6.*系列」最高版本,例如从FineReport10.0.4升级至FineReport11.0.26。
如选择本种操作方式,请联系帆软技术支持协助。技术支持联系方式:服务平台>在线支持。
最低配置:请至少小版本升级至最新安全加固版本。
如选择本种操作方式,可参考下文清空impl文件夹、换工程JAR包、更换netty JAR包,重启即可。
产品 | 升级步骤 |
---|---|
FineReport10.0 | 下文简单描述了服务器工程升级的操作步骤,更详细升级指南请参考:小版本升级指南 FineBI的JAR包中,自带FineReport相关JAR,因此FineBI与FineReport集成工程,升级FineBI即可 1)升级服务器工程
2)升级设计器 低版本的设计器无法连接高版本的服务器工程,因此本地设计器也需要同步升级至最新版本。
|
FineBI5.1.18.x系列 FineBI5.1~5.1.17 | 下文简单描述了服务器工程升级的操作步骤,更详细升级指南请参考:小版本升级指南 FineBI的JAR包中,自带FineReport相关JAR,因此FineBI与FineReport集成工程,升级FineBI即可 备份工程,关闭工程
|
2.3 其他老版本
帆软 FineReport 8.* &9.* 、FineBI4.*&5.0.*&5.1.19+、FineDataLink4.0.* 系列及更早版本目前已经停止维护。
此类版本安全系数极低,请联系帆软技术支持进行大版本升级。技术支持联系方式:服务平台>在线支持。
3. 开启平台配置
3.1 密码强度限制
作用:增加密码破解的难度。
1)检查用户认证方式
管理员登录数据决策系统,点击「管理系统>用户管理>全局设置」。
若系统使用「平台内置认证」,则需进行下文的密码策略限制。
若系统使用「LDAP认证」或「HTTP认证」,则无需进行密码策略设置,密码安全性由客户自己的认证系统保证。
2)进行密码策略设置
注意:设置了自定义登录页的工程,请勿执行本节操作,「系统管理>登录」相关配置项与自定义登录页不兼容。
基于安全考虑,建议更换为默认登录页。
操作:管理员登录数据决策系统,点击「管理系统>系统管理>登录」,在「密码策略设置」处建议勾选以下配置:
设置密码强度策略(推荐密码长度8位,包含数字、大小写字母、符号)
设置定期修改密码
设置修改密码验证方式
开启初始密码强制修改
开启历史密码重复校验
3.2 登录锁定设置
作用:主要用于防暴力破解。
建议:开启登录锁定。必选,最简单有效的攻击方式就是弱密码爆破进入工程,再提权或通过其他手段入侵服务器。
注意:设置了自定义登录页的工程,请勿执行本节操作,「系统管理>登录」相关配置项与自定义登录页不兼容。
基于安全考虑,建议更换为默认登录页。
操作:管理员登录数据决策系统,点击「管理系统>系统管理>登录」,开启「登录验证」。
3.3 开启模板认证
作用:防止无鉴权查看模板
建议:开启模板认证,选择全量模板进行认证。选择合适的认证方式,优先推荐「角色权限认证」
操作:管理员登录数据决策系统,点击「管理系统>模板认证>全局设置」,开启「模板认证」,选择合适的认证方式。
具体操作请参考:模板认证
4. 插件管理
4.1 升级插件
工程上所有的插件,建议全部更新至最新版本。
建议至少确保以下插件升级到安全版本(若未安装相应插件可忽略):
插件名称 | 高危版本 | 建议升级 |
---|---|---|
FineVis数据可视化插件 | 2024-08-16以下版本 | 建议先参考2.1节升级FineReport主JAR版本到最新 建议升级插件到帆软市场最新版本 至少升级插件到V2.9.0.5及以上版本 插件升级步骤请参考:服务器插件管理 |
扩展图表插件 | 2023-06以下版本 | 建议升级插件到帆软市场最新版本 FR11至少升级插件到V4.6.10及以上版本 FR10至少升级插件到V4.6.6及以上版本 插件升级步骤请参考:服务器插件管理 |
常用函数集合插件 | V9.4及以下版本 | 建议升级插件到帆软市场最新版本 FR11至少升级插件到V9.5及以上版本 FR10至少升级插件到V9.4及以上版本 插件升级步骤请参考:服务器插件管理 |
4.2 安装插件
插件名称 | 插件简介 | 功能影响 |
---|---|---|
web防火墙插件 | 插件作用: 插件主要用于限制访问IP,预防channel接口反序列化 插件安装: 插件安装及配置步骤请参见:限制IP访问工程 | 有三种配置方案,请根据需要选择:
|
安全加固插件 | 插件作用: 对于被爆破了账密的系统能有效提升服务器安全性 插件安装: 点击下载插件:安全加固插件 插件安装步骤请参考:服务器插件管理 注:插件安装完成后,需重启工程生效。 | 1)插件安装后,需要重启生效 2)请安装最新1.6及以上版本插件(工程重启生效),否则在高版本工程中,可能会出现远程设计版本不匹配的情况 3)插件安装后,以下安全风险较高的功能会被禁用
|
5. 开启配置库安全选项
5.1 安装插件
点击下载插件:fine_conf_entity可视化配置插件
5.2 配置参数
插件安装成功后,超级管理员登录数据决策系统,点击「管理系统」,新增「系统工具」设置。如下图所示:
注:由于 FineDB 的修改非常重要,影响较大,因此仅支持超管进行操作,不支持次级管理员操作。
配置方法支持以下两种方式:
选择参数配置:系统参数名(key)下拉框中罗列了支持配置的 fine_conf_entity 参数,用户可直接在下拉框中选择参数,配置参数值(value)。
自定义参数配置:用户可自行输入支持配置的 fine_conf_entity 参数名(key),并自动跳出参数值(value),用户可修改并保存参数值。
两种配置方式支持配置的参数完全相同,建议修改的 fine_conf_entity 中的配置参数和参数值如下表所示:
参数名 | 参数作用 | 建议参数值 |
---|---|---|
SystemConfig.hideVersion | 作用:是否隐藏system info中的版本信息 true:系统信息接口不返回版本信息。 | true |
以下参数无法通过「fine_conf_entity可视化配置插件」进行修改,需手动修改或通过联系数据库管理员修改配置库的方式进行修改。
如果 fine_conf_entity 表中不存在以下配置项,请手动添加。
操作方法请参考:填报修改fine_conf_entity 。
参数名 | 参数作用 | 建议参数值 |
---|---|---|
JDBCSecurityConfiguration.sqlBlackKeyword | 面向:FineReport11.x和FineBI6.x工程 作用:禁用危险SQL关键字 SQL语句执行禁止调用所配置的关键字,防止通过SQL语句触发数据库的远程命令执行漏洞 注意:此配置会导致mysql、h2、hsql、sqlite、oracle和sqlserver等数据库均无法执行相关SQL关键字 | ["exec","call"] |
PluginFileValidateConfig.fileValidateOpen | 作用:本地安装/手动安装插件时,为了防止恶意篡改插件包中的代码,2021.11.24 及之后的版本,提供插件完整性校验功能。 true:插件包完整性校验开启 注意:开启后无法从页面上安装没有官方签名的插件。 | true |
SystemConfig.driverUpload | 作用:是否允许在驱动管理中上传驱动 JAR 包。该功能默认关闭。 true:允许上传驱动 JAR 包。 | false |
5.3 删除插件
参数配置完成后,需删除「fine_conf_entity可视化配置插件」。
设计器插件删除方法参照 设计器插件管理
服务器安装删除方法参照 服务器插件管理
6. 更新密钥文件
在工程加密算法中,密钥是保护数据安全的关键元素。某些公司企业要求定期更换密钥,以确保系统的长期安全和数据的保密性。
1)使用前提
1、仅 FineReport11.0.28 及以上版本支持本功能。
2、更新密钥文件前将备份,可能需要较长时间,请确保系统不在使用状态。
3、使用「默认算法」的工程支持更新密钥文件,「国密算法」不支持。
4、帆软应用所使用的配置库,必须是「外接配置库」,使用「内置数据库」的系统不支持更新密钥文件。所使用的配置库用户,必须有该数据库的读写执行权限。
5、集群环境下更新密钥文件后,其他节点无法连接配置库,节点间无法通信,无法做到节点之间密钥文件同步更新。
因此如需更新集群环境下的密钥文件,请先关闭其他节点,仅在单节点环境下进行切换操作。
成功更新后,请手动拷贝该节点下的/webroot/WEB-INF/config文件夹至其他节点,再启动其他节点,方可成功更新密钥文件。
2)更新密钥
管理员登录FineReport系统,点击「管理系统>安全管理>安全防护」,点击加密算法处的「一键更新」按钮。
请耐心等待,直到出现提示「密钥文件已更新成功」即可