oracle数据库等保测评所需包括内容解析命令
oracle登录身份有三种:normal普通身份、sysdba系统管理员身份、sysoper系统操作员。
sysdba权限:
(1)启动和关闭操作
(2)更改数据库状态为打开/装载/备份,更改字符集
(3)创建数据库
(4)创建服务器参数文件spfile
(5)日志归档和恢复
(6)包括“会话权限”权限
sysoper权限:
(1)启动和关闭操作
(2)更改数据库状态为打开/装载/备份
(3)创建服务器参数文件spfile
(4)日志归档和恢复
(5)包含“会话权限”权限
1、设计五方面内容:身份鉴别、访问控制、安全审计、入侵防范、数据备份恢复。
2、身份鉴别测评项:
(1)查看口令复杂度函数:select * from dba_profiles where
profile=‘DEFAULT’ and RESOURCE_NAME = ‘PASSWORD_VERIFY_FUNCTION’ ;其中 password_verify_function 的值不为unlimited;
Password_verify_function:该字段允许将复杂的PL/SQL密码验证脚本做为参数传递到create profile语句。Oracle数据库提供了一个默认的脚本,但是自己可以创建自己的验证规则或使用第三方软件验证。 对Function名称,指定的是密码验证规则的名称,指定为Null则意味着不使用密码验证功能。
(2)select * from dba_profiles where profile ='DEFAULT’and
resource_name=‘PASSWORD_LIFE_TIME’; 指定同一密码所允许使用的天数password_life_time 不为unlimited。
(3)检查utlpwdmg.sql 中“–check for the minimum length of the password”部分中的“length(password)<”后的值;这个值为8或者以上
C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin
(4)查看是否启用登录失败限制策略:select limit from dba_profiles where profile =’DEFAULT’ and resource_name =’FAILED_LOGIN_ATTEMPTS’;指定在帐户被锁定之前所允许尝试登陆的最大次数 failed_logiin_attempts的值不为UNLIMITED;
(5)查看是否启用登录失败锁定策略:select * from dba_profiles where profile = ‘DEFAULT’ and resource_name =‘PASSWORD_LOCK_TIME’;指定登陆尝试失败次数到达后帐户的锁定时间(以天为单位)password_lock_time的值不为UNLIMITED;
(6)查看是否启用登录超时退出策略: select * from dba_profiles where profile =‘DEFAULT’ and resource_name=‘IDLE_TIME’;IDLE_TIME的值不为UNLIMITED;指定会话允许连续不活动的总的时间,以分钟为单位,超过该时间,会话将断开
(7)查看 initSID.ora(%ORACLE_HOME \db_1\database)中REMOTS_OS_AUTHENT的赋值。如果是FALSE,则符合。如果是TRUE,原厂操作系统认证。
(8)查看listener.ora(%ORACLE_HOME \db_1\NETWORK\ADMIN)文件中的“LISTENER” -“DESCRIPTION”-”ADDRESS_LIST”-”ADRESS”-”PROTOCOL”项目的赋值,应存在PROTOCOL=TCPS(实际为TCP)
(9)查看远程登录:show parameter remote_login_passwordfile;结果为NONE,远程无法登录。其中exclusive 是唯一的数据库密码文件登录。
Value值有三种:
1>NONE:默认值。在这种情况下,oracle会忽略口令文件,并且sysdba(系统管理员)访问只给予本地特许的登录。
2>EXCLUSIVE exclusive该参数说明只有一个数据库可以使用这个口令文件。在这种模式下,口令文件可以包含用于多个特许的oracle账户的口令。这是推荐的操作模式,特别是在运行RMAN时,如果希望将RMAN与来自于远程客户端的数据库连接,则必须使用该参数设置。(RMAN是一种用于备份、还原和恢复数据库的oracle工具)
3>SHARED:该参数说明多个数据库可以使用相同的口令文件。这种模式只能保存SYS用户账户的口令。
(10)dba_profiles各个字段含义:
Resource_parameter部分(RESOURCE_TYPE=KERNEL):
1.Session_per_user:指定限制用户的并发会话的数目。
2.Cpu_per_session:指定会话的CPU时间限制,单位为百分之一秒。
3.Cpu_per_call:指定一次调用(解析、执行和提取)的CPU时间限制,单位为百分之一秒。
4.Connect_time:指定会话的总的连接时间,以分钟为单位。
5.Idle_time:指定会话允许连续不活动的总的时间,以分钟为单位,超过该时间,会话将断开。
6.Logical_reads_per_session:指定一个会话允许读的数据块的数目,包括从内存和磁盘读的所有数据块。
7.Logical_read_per_call:指定一次执行SQL(解析、执行和提取)调用所允许读的数据块的最大数目。
8.Private_sga:指定一个会话可以在共享池(SGA)中所允许分配的最大空间,以字节为单位。
9.Composite_limit:指定一个会话的总的资源消耗,以service units单位表示。
Password_parameter部分(RESOURCE_TYPE=PASSWORD):
1.Failed_login_attempts:指定在帐户被锁定之前所允许尝试登陆的的最大次数。
2.Password_life_time:指定同一密码所允许使用的天数。
3.Password_reuse_time和password_reuse_max:这两个参数必须互相关联设置,password_reuse_time指定了密码不能重用前的天数,
而password_reuse_max则指定了当前密码被重用之前密码改变的次数。两个参数都必须被设置为整数。
4.Password_lock_time:指定登陆尝试失败次数到达后帐户的锁定时间,以天为单位。
5.Password_grace_time:指定宽限天数,数据库发出警告到登陆失效前的天数。如果数据库密码在这中间没有被修改,则过期会失效。
6.Password_verify_function:该字段允许将复杂的PL/SQL密码验证脚本做为参数传递到create profile语句。Oracle数据库提供了一个默认的脚本,
但是自己可以创建自己的验证规则或使用第三方软件验证。 对Function名称,指定的是密码验证规则的名称,指定为Null则意味着不使用密码验证功能。
3、访问控制测评项:
(1)查看每个登录用户的角色和权限,是否是最小权限。Mgmt_uiew,sys,system,dbsnmp,sysman是open状态,其他用户都为锁定状态。
(2)验证系统用户的默认口令是否修改:
sys : CHANGE_ON_INSTALL
system:manager
dbsnmp:dbsnmp
(3)select username,account_status from dba_users;查看结果中是否存在scott、outln、ordsys等范例数据库账号。应不存在account_status为“expired”的账户,所有账户均为必要的管理账户或数据库应用程序账户,不存在测试账户/临时账户。每一歌数据库账户与实际用户应为一一对应关系。不存在多人共享账户的情况。
(4)对重要主体和客体设置安全标记,并控制主体对安全标记信息资源的访问。检查是否安装oracle label security模块。如果安装,会有LBACSYS用户。
查看是否创建策略: select policy_name,status from DBA_SA_POLICIES;结果存在状态为‘enable’的标签策略
查看是否创建级别:select * from dba_sa_levels order by level_num;返回结果不为空
查看标签创建情况:select * from dba_sa_labels;返回结果不为空
查看策略与模式、表的对应关系:select * from dba_sa_tables_policies; 判断是否针对重要信息资源设置敏感标签,返回结果不为空,且包含重要数据存储表格名称。
4、安全审计测评项:
(1)查看是否开启审计功能:select value from vparameterwherename=′audittrail′;结果不应该为none。参数取值为true或者db,将审计结果存入基表,os利用操作系统审计功能,none或者false不审计,没有默认值(2)showparameteraudittrail;结果应不为none;参数audittrail的值:db/true:启用审计,并且把审计结果放到数据库的sys.audparameter where name ='audit_trail';结果不应该为none。 参数取值为true或者db,将审计结果存入基表,os利用操作系统审计功能,none或者false不审计,没有默认值 (2)show parameter audit_trail;结果应不为none; 参数audit_trail的值: db/true :启用审计,并且把审计结果放到数据库的sys.audparameterwherename=′audit

877

被折叠的 条评论
为什么被折叠?



