oracle 安全基线配置
要求 | 应更改数据库账号的默认口令,避免使用默认口令的账号登陆到数据库(Oracle数据库中的默认账号/默认密码如下:sys/change_on_install、system/manager、sysman/oem_temp、scott/tiger、aqadm/aqadm、dbsnmp/dbsnmp) |
风险描述 | Oracle数据库中的默认账号/默认密码可能被攻击者尝试破解,给数据库安全带来威胁。 |
检查方法 | 使用sqlplus命令或者plsql工具等进入管理员账号: sqlplus / as sysdba conn sys/change_on_install conn system/manager conn sysman/oem_temp conn scott/tiger conn aqadm/aqadm conn dbsnmp/dbsnmp 使用默认口令登录,查看是否可以登录成功。若可登录成功则不合规,否则合规。 |
配置方法 | 使用sqlplus命令或者plsql工具等进入管理员账号 两种合规方法(任选其一): 1、修改密码: alter user scott identified by password; alter user aqadm identified by password; 2、锁定用户: alter user scott account lock; alter user aqadm account lock; |
要求 | 对于采用静态口令认证技术的数据库,应开启账号口令策略,口令长度应为8个字符及以上,口令应至少包含以下四种类别的字符中的三种:
特殊符号 @, #, $, %, &, *等。 |
风险描述 | 如果账号口令不满足复杂度要求,会存在账号弱口令的风险,增加账号口令被暴力破解的概率,从而使得数据库受到安全威胁。 |
检查方法 | select limit from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_VERIFY_FUNCTION'; 是 null则不合规,否则合规。 dba_profiles 视图 PASSWORD_VERIFY_FUNCTION limit 列 |
配置方法 | 开启密码复杂度验证: sqlplus / as sysdba @?/rdbms/admin/utlpwdmg.sql ? 代表 Oracle 的 ORACLE_HOME 环境变量。utlpwdmg.sql 是 Oracle 自带的一个脚本,存放在 $ORACLE_HOME/rdbms/admin/ 目录下,它的主要作用是管理密码复杂度策略。 |
要求 | 应启用数据字典保护,只有SYSDBA账号才能访问数据字典基础表。数据字典可能包含的信息如:数据库设计资料、储存的SQL程序、账号权限、账号统计、数据库的过程中的信息。 启用数据库字典保护达到保护数据库的目的,而普通dba登陆到数据库,不具备访问X$开头的表,以此来加强对数据库的保护。 |
风险描述 | 数据字典中可能包含数据库设计资料、储存的SQL程序、账号权限、账号统计、数据库进程信息、数据库的增长统计、数据库性能统计等重要信息,未对数据字典进行安全防护会导致信息泄露风险提升。 |
检查方法 | 检查O7_DICTIONARY_ACCESSIBILITY是否配置为FALSE,命令如下: SQL>show parameter O7_dictionary_accessibility; 若为FALSE则合规,否则不合规。 |
配置方法 | 以下操作需DBA权限 1、通过设置下面初始化参数来限制只有SYSDBA权限的用户才能访问数据字典。 SQL>alter system set O7_DICTIONARY_ACCESSIBILITY=FALSE scope=spfile; 关闭、重新启动数据库。 解释 数据字典访问权限: |
要求 | 应配置数据库管理账号远程连接超时策略,超时等待时间应不超过10分钟。 |
风险描述 | 长时间远程连接可能被攻击者窃听到敏感信息。远程人员在离开时可能未锁屏或未采取有效保护措施,存在恶意人员借助此时间空闲进行违规操作的风险。 |
检查方法 | select limit from dba_profiles where profile='DEFAULT' and resource_name='IDLE_TIME'; 查询结果值小于等于10合规,否则不合规 profile = 'DEFAULT':指定查询默认配置文件(所有新创建用户默认继承此配置)。 |
配置方法 | 使用sqlplus命令或者plsql工具等进入管理员账号 修改超时时间(分钟): ALTER PROFILE DEFAULT LIMIT IDLE_TIME 10; |
要求 | 应设置单独账号,用于启动并运行oracle数据库,只授予该账号为完成操作所需的最小权限,禁止以操作系统超级管理员账号运行oracle; |
检查方法 | 应设置单独账号,用于启动并运行oracle数据库,只授予该账号为完成操作所需的最小权限,禁止以操作系统超级管理员账号运行oracle; |
配置方法 | linux: 切换到oracle用户启动服务 监听:lsnrctl start 实例:sqlplus / as sysdba → startup windows: 1、新建oracle管理账号 2、使用services.msc 进入服务管理,找到Oracle(OracleServiceORCL)服务和tnslistener(xxxTNSListener)服务服务 右键属性→登录→此账号 更改成oracle |
描述 | Linux应设置软件安装目录权限不高于755,配置文件及数据文件权限不高于644。Windows的软件目录及数据文件等权限仅限管理员账号完全控制,其他账号如有需求仅限读取和执行权限。 |
检查方法 | 1、Oracle主目录的权限查看: ls –ld ${ORACLE_HOME} # 不高于755 2、数据文件权限查看: ls –l $ORACLE_BASE/oradata/{orcl}/ #不高于644 3、进入配置文件目录:$ORACLE_HOME/dbs ls –l $ORACLE_HOME/dbs #不高于644 windows: 对目录和配置文件点击右键属性-安全-点击用户查看相关权限。 |
配置方法 | inux: 1、修改Oracle安装目录权限: chmod 755 $ORACLE_HOME 2、修改数据文件权限: chmod 644 -R $ORACLE_BASE/oradata/{orcl}/ 3、修改配置文件权限 chmod 644 –R $ORACLE_HOME/dbs windows: oracle安装目录【右键】-【属性】-【安全】设置oracle主目录和数据存储目录的权限system组、administrators组和服务启动用户为完全控制,其余用户权限全部删除。 |