完整版5数据库安全测评S3A3G3Oracle.docx
《完整版5数据库安全测评S3A3G3Oracle.docx》由会员分享,可在线阅读,更多相关《完整版5数据库安全测评S3A3G3Oracle.docx(32页珍藏版)》请在冰豆网上搜索。
![完整版5数据库安全测评S3A3G3Oracle.docx](https://file1.bdocx.com/fileroot1/2023-5/30/871d7c2c-a195-4da2-b279-bb7ce0a3558a/871d7c2c-a195-4da2-b279-bb7ce0a3558a1.gif)
完整版5数据库安全测评S3A3G3Oracle
数据库安全测评表(Oracle)
(数据库版本:
IP:
)
被访谈人员确认签字:
访谈人员签字:
访谈时间:
序号
层面
控制点
要求项
权重
测评实施
测评结果
符合
程度
1
主机安全
身份鉴别(S)
a)应对登录操作系统和数据库系统的用户进行身份标识和鉴别;
0.5
1)访谈系统管理员和数据库管理员,询问操作系统和数据库管理系统的身份标识与鉴别机制采取何种措施实现;
2)检查主要服务器操作系统和主要数据库管理系统,查看是否提供了身份鉴别措施;
3)渗透测试主要服务器操作系统,测试是否存在绕过认证方式进行系统登录的方法;
1)数据库管理系统的身份标识与鉴别机制采取用户名+密码的验证措施实现;
2)经检查,数据库管理系统中不存在空口令或默认口令的用户。
1)以默认口令和常见口令登录数据库,查看是否成功,查看Oracle数据库系统中是否存在空口令或默认口令的用户。
默认口令:
sys/change_on_install
system/manager;
常用口令一般包括:
oracle:
oracle/admin/ora92
sys:
oracle/admin
system:
oracle/admin
访谈系统中用户是否存在默认口令的情况
2
主机安全
身份鉴别(S)
b)操作系统和数据库系统管理用户身份鉴别信息应具有不易被冒用的特点,口令应有复杂度要求并定期更换;
1
1)检查主要服务器操作系统和主要数据库管理系统,查看其身份鉴别信息是否具有不易被冒用的特点,如对用户登录口令的最小长度、复杂度和更换周期进行的要求和限制;
2)渗透测试主要服务器操作系统,可通过使用口令破解工具等,对服务器操作系统进行用户口令强度检测,查看是否能够破解用户口令,破解口令后是否能够登录进入系统;
1)执行命令:
selectlimitfromdba_profileswhereprofile=’DEFAULT’andresource_type=’PASSWORD’,查看是否启用口令复杂度函数。
2)检查utlpwdmg.sql(密码策略的sql执行文件,linux/unix默认路径是$ORACLE_HOME/rdbms/admin/utlpwdmg.sql)中“--Checkfortheminimumlengthofthepassword”部分中“length(password)<”后的值。
3)查看口令管理制度以及执行记录,并选择验证。
3
主机安全
身份鉴别(S)
c)应启用登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出等措施;
0.5
1)检查主要服务器操作系统和主要数据库管理系统,查看是否已配置了鉴别失败处理功能,并设置了非法登录次数的限制值;查看是否设置网络登录连接超时,并自动退出;
1)执行命令:
selectlimitfromdba_profileswhereprofile=’DEFAULT’andresource_name=’FAILED_LOGIN_ATTEMPTS’,查看其值是否为unlimited,如果其值不为unlimited则说明进行了登录失败尝试次数的限制,如设置了登录失败尝试次数,则执行命令:
selectlimitfromdba_profileswhereprofile=’DEFAULT’andresource_name=’PASSWORD_LOCK_TIME’,查看其值是否为unlimited,如果其值不为unlimited则说明设置了口令锁定时间。
4
主机安全
身份鉴别(S)
d)当对服务器进行远程管理时,应采取必要措施,防止鉴别信息在网络传输过程中被窃听;
1
1)访谈系统管理员和数据库管理员,询问对操作系统和数据库管理系统是否采用了远程管理,如采用了远程管理,查看是否采用了防止鉴别信息在网络传输过程中被窃听的措施;
1)查看initSID.ora中REMOTE_OS_AUTHENT的赋值(TRUE或FALSE),是否允许管理员对数据库进行远程管理。
2)查看listener.ora文件中的“LISTENER”-“DESCRIPTION”-“ADDRESS_LIST”-“ADDRESS”-“PROTOCOL”的赋值,是否启用了包括TCPS在内的加密协议。
5
主机安全
身份鉴别(S)
e)为操作系统和数据库的不同用户分配不同的用户名,确保用户名具有唯一性;
0.5
1)检查主要服务器操作系统和主要数据库管理系统帐户列表,查看管理员用户名分配是否唯一;
6
主机安全
身份鉴别(S)
f)应采用两种或两种以上组合的鉴别技术对管理用户进行身份鉴别。
1
1)检查主要服务器操作系统和主要数据库管理系统,查看身份鉴别是否采用两个及两个以上身份鉴别技术的组合来进行身份鉴别;
1)查看配置文件sqlnet.ora,查看SQLNET.AUTHENTICATION_SERVICES的值,确认数据库管理系统指定的鉴别方式是否与管理员回答的一致。
2)如果使用其他技术,则查看该技术的实现情况。
7
主机安全
访问控制(S)
a)应启用访问控制功能,依据安全策略控制用户对资源的访问;
0.5
1)检查主要服务器操作系统的安全策略,查看是否对重要文件的访问权限进行了限制,对系统不需要的服务、共享路径等进行了禁用或删除;
1)询问数据库管理员,数据库系统的访问控制策略是什么。
2)查看Oracle数据库的访问控制策略是否与管理员回答的一致。
Select*fromv$pwfile_users;列出所有具有SYSDBA和SYSOPER权限的数据库用户
8
主机安全
访问控制(S)
b)应根据管理用户的角色分配权限,实现管理用户的权限分离,仅授予管理用户所需的最小权限;
0.5
1)检查主要服务器操作系统和主要数据库管理系统的权限设置情况,查看是否依据安全策略对用户权限进行了限制;
2)检查主要服务器操作系统和主要数据库管理系统,查看特权用户的权限是否进行分离,如可分为系统管理员、安全管理员、安全审计员等;查看是否采用最小授权原则;
1)查看每个登录用户的角色和权限,是否是该用户所需的最小权限。
查看所有权限:
Select*fromdba_users;
Select*fromall_users;
Select*fromuser_users;
查看用户系统权限:
Select*fromdba_sys_privs;
Select*fromrole_sys_privs;
Select*fromuser_sys_privs;
Select*fromsession_privs;
查看用户对象权限:
Select*fromdba_tab_privs;
Select*fromall_tab_privs;
Select*fromuser_tab_privs;
Select*fromdba_col_privs;
Select*fromrole_tab_privs;
查看所有角色:
Select*fromdba_roles;
查看用户所拥有的角色:
Select*fromdba_role_privs;
Select*fromuser_role_privs;
9
主机安全
访问控制(S)
c)应实现操作系统和数据库系统特权用户的权限分离;
1
1)检查主要数据库服务器的数据库管理员与操作系统管理员是否由不同管理员担任;
1)登录操作系统,查看是否能对数据库系统进行操作。
10
主机安全
访问控制(S)
d)应严格限制默认账户的访问权限,重命名系统默认账户,并修改这些账户的默认口令;
0.5
1)检查主要服务器操作系统和主要数据库管理系统,查看匿名/默认用户的访问权限是否已被禁用或者严格限制,是否删除了系统中多余的、过期的以及共享的帐户;
1)以默认账户/口令和常见账户/口令登录数据库,查看是否成功,查看Oracle数据库系统中是否存在空口令或默认口令的用户。
默认账户/口令:
sys/change_on_install
system/manager;
常用账户/口令一般包括:
oracle:
oracle/admin/ora92
sys:
oracle/admin
system:
oracle/admin
11
主机安全
访问控制(S)
e)应及时删除多余的、过期的账户,避免共享账户的存在;
0.5
1)检查主要服务器操作系统和主要数据库管理系统,是否删除了系统中多余的、过期的以及共享的帐户;
1)在sqlplus中执行命令:
selectusername,account_statusfromdba_users,查看返回结果中是否存在scott、outln、ordsys等范例数据库账号,针对上述命令获得的用户账号,查看是否存在过期账户,询问数据库管理员是否每一个账户均为正式、有效的账户。
12
主机安全
访问控制(S)
f)应对重要信息资源设置敏感标记;
1
1)检查主要服务器操作系统和主要数据库管理系统,查看是否对重要信息资源设置敏感标记;
1)检查是否安装OracleLabelSecurity模块:
selectusernamefromdba_users,查看是否有包括所有OracleLabelSecurity对象的LBACSYS用户,其缺省口令是LBACSYS。
2)查看是否创建策略:
selectpolicy_name,statusfromdba_sa_policies。
3)查看是否创建级别:
select*fromdba_sa_levelsorderbylevel_num。
4)查看标签创建情况:
select*fromdba_sa_labels。
5)询问重要数据存储表格名称。
6)查看策略与模式、表的对应关系:
select*fromdba_sa_tables_policies,判断是否针对重要信息资源设置敏感标签。
13
主机安全
访问控制(S)
g)应依据安全策略严格控制用户对有敏感标记重要信息资源的操作。
1
1)检查主要服务器操作系统和主要数据库管理系统,查看是否依据安全策略严格控制用户对有敏感标记重要信息资源的操作;
1)查看用户的标签:
select*fromdba_sa_user_labels。
2)选择特定的用户和表进行验证敏感标记功能是否正确。
14
主机安全
安全审计(G)
a)安全审计应覆盖到服务器和重要客户端上的每个操作系统用户和数据库用户;
1
1)检查主要服务器操作系统、重要终端操作系统和主要数据库管理系统,查看安全审计配置是否符合安全审计策略的要求;
1)执行:
selectvaluefromv$parameterwherename='audit_trail'或showparameteraudit_trail,查看是否开启审计功能,审计结果默认存放在哪里。
审计跟踪结果如存放到OS文件,其默认位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/,
如存储在数据库中,其位置在system表空间中的SYS.AUD$表中,可通过视图dba_audit_trail查看。
2)用不同的用户登录数据库系统并进行不同的操作,在Oracle数据库中查看日志记录是否满足要求。
15
主机安全
安全审计(G)
b)审计内容应包括重要用户行为、系统资源的异常使用和重要系统命令的使用等系统内重要的安全相关事件;
0.5
1)访谈安全审计员,询问主机系统的安全审计策略是否包括系统内重要用户行为、系统资源的异常和重要系统命令的使用等重要的安全相关事件;
1)showparameteraudit_sys_operations。
2)selectsel,upd,del,ins,grafromdba_obj_audit_opts。
(对象级别审计)
3)selectsel,upd,del,ins,grafromdba_stmt_audit_opts。
(语句级别审计)
4)selectsel,upd,del,ins,grafromdba_priv_audit_opts。
(权限级别审计)
16
主机安全
安全审计(G)
c)审计记录应包括事件的日期、时间、类型、主体标识、客体标识和结果等;
0.5
1)检查主要服务器操作系统、重要终端操作系统和主要数据库管理系统,查看审计记录信息是否包括事件发生的日期与时间、触发事件的主体与客体、事件的类型、事件成功或失败、事件的结果等内容;
1)记录一条日志内容。
select*fromsys.aud$;
select*fromdba_audit_trail;
SELECTsession_id,TIMESTAMP,db_user,os_user,userhost,sql_textFROMDba_Fga_Audit_Trail;
17
主机安全
安全审计(G)
d)应能够根据记录数据进行分析,并生成审计报表;
1
1)检查主要服务器和重要终端操作系统,查看是否为授权用户提供浏览和分析审计记录的功能,是否可以根据需要自动生成不同格式的审计报表;
1)询问管理员是否安装并使用OracleAuditVault等日志分析工具并查看相关报表。
18
主机安全
安全审计(G)
e)应保护审计进程,避免受到未预期的中断;
0.5
1)测试主要服务器操作系统、重要终端操作系统和主要数据库管理系统,可通过非审计员的其他帐户试图中断审计进程,验证审计进程是否受到保护;
1)询问是否严格限制数据库管理员权限,系统管理员能否进行与审计相关的操作。
2)用户可以通过altersystemsetaudit_trail=none并重启实例关闭审计功能,查看是否成功。
19
主机安全
安全审计(G)
f)应保护审计记录,避免受到未预期的删除、修改或覆盖等。
0.5
1)检查主要服务器操作系统、重要终端操作系统和主要数据库管理系统,查看是否对审计记录实施了保护措施,使其避免受到未预期的删除、修改或覆盖等;
1)询问系统管理员,是否严格限制用户访问审计记录的权限,如采用auditvault等。
2)或者:
查看备份策略,是否定期备份审计数据。
20
主机安全
入侵防范(G)
a)应能够检测到对重要服务器进行入侵的行为,能够记录入侵的源IP、攻击的类型、攻击的目的、攻击的时间,并在发生严重入侵事件时提供报警;
0.5
1)访谈系统管理员,询问是否采取入侵防范措施,入侵防范内容是否包括主机运行监视、特定进程监控、入侵行为检测和完整性检测等方面内容;
2)检查入侵防范系统,查看是否能够记录攻击者的源IP、攻击类型、攻击目标、攻击时间等,在发生严重入侵事件时是否提供报警(如声音、短信和EMAIL等);
21
主机安全
入侵防范(G)
b)应能够对重要程序完整性进行检测,并在检测到完整性受到破坏后具有恢复的措施;
1
1)检查重要服务器是否提供对重要程序的完整性进行检测,并在检测到完整性受到破坏后具有恢复的措施的功能;
22
主机安全
入侵防范(G)
c)操作系统遵循最小安装的原则,仅安装需要的组件和应用程序,并通过设置升级服务器等方式保持系统补丁及时得到更新。
0.5
1)检查主要服务器操作系统中所安装的系统组件和应用程序是否都是必须的;
2)检查是否设置了专门的升级服务器实现对主要服务器操作系统补丁的升级;
3)检查主要服务器操作系统和主要数据库管理系统的补丁是否得到了及时安装;
23
主机安全
恶意代码防范(G)
a)应安装防恶意代码软件,并及时更新防恶意代码软件版本和恶意代码库;
1
1)访谈系统安全管理员,询问主机系统是否采取恶意代码实时检测与查杀措施,恶意代码实时检测与查杀措施的部署覆盖范围如何;
2)检查主要服务器,查看是否安装了实时检测与查杀恶意代码的软件产品并进行及时更新;
24
主机安全
恶意代码防范(G)
b)主机防恶意代码产品应具有与网络防恶意代码产品不同的恶意代码库;
0.5
1)检查网络防恶意代码产品,查看其厂家名称、产品版本号和恶意代码库名称等,查看其是否与主机防恶意代码产品有不同的恶意代码库;
25
主机安全
恶意代码防范(G)
c)应支持恶意代码防范的统一管理。
0.5
1)检查防恶意代码产品是否实现了统一管理;
26
主机安全
剩余信息保护(S)
a)应保证操作系统和数据库管理系统用户的鉴别信息所在的存储空间,被释放或再分配给其他用户前得到完全清除,无论这些信息是存放在硬盘上还是在内存中;
0.5
1)检查主要操作系统和主要数据库管理系统维护操作手册,查看是否明确用户的鉴别信息存储空间被释放或再分配给其他用户前的处理方法和过程;
27
主机安全
剩余信息保护(S)
b)应确保系统内的文件、目录和数据库记录等资源所在的存储空间,被释放或重新分配给其他用户前得到完全清除。
0.2
1)检查主要操作系统和主要数据库管理系统维护操作手册,查看是否明确文件、目录和数据库记录等资源所在的存储空间被释放或重新分配给其他用户前的处理方法和过程;
28
主机安全
资源控制(A)
a)应通过设定终端接入方式、网络地址范围等条件限制终端登录;
0.5
1)检查主要服务器操作系统,查看是否设定了终端接入方式、网络地址范围等条件限制终端登录;
1)查看服务器端sqlnet.ora中是否配置了以下参数:
tcp.validnode_checking(使用这个参数来启用下边的两个参数)、tcp.invited_nodes(指定允许访问db的客户端,他的优先级比TCP.EXCLUDED_NODES高)和TCP.EXCLUDED_NODES(指定不允许访问oracle的节点,可以使用主机名或者IP地址)。
2)如果没有在数据库系统上进行相关配置,则询问是否在防火墙或其他网络设备/安全设备上进行了相关的配置。
29
主机安全
资源控制(A)
b)应根据安全策略设置登录终端的操作超时锁定;
0.5
1)应检查访问主要服务器的终端是否都设置了操作超时锁定的配置;
1)查看空闲超时设置:
selectlimitfromdba_profileswhereprofile=’DEFAULT’andresource_name=’IDLE_TIME’。
30
主机安全
资源控制(A)
c)应对重要服务器进行监视,包括监视服务器的CPU、硬盘、内存、网络等资源的使用情况;
0.5
1)检查主要服务器操作系统,查看是否对CPU、硬盘、内存和网络等资源的使用情况进行监控;
31
主机安全
资源控制(A)
d)应限制单个用户对系统资源的最大或最小使用限度;
0.2
1)检查主要服务器操作系统,查看是否设置了单个用户对系统资源的最大或最小使用限度;
1)执行命令:
selectusername,profilefromdba_users,确定用户使用的profile,针对指定用户的profile,查看其限制(以default为例)。
2)selectlimitfromdba_profileswhereprofile=’DEFAULT’andresource_name=’SESSIONS_PER_USER’,
selectlimitfromdba_profileswhereprofile=’DEFAULT’andresource_name=’IDLE_TIME’。
32
主机安全
资源控制(A)
e)应能够对系统的服务水平降低到预先规定的最小值进行检测和报警。
0.2
1)检查主要服务器操作系统,查看是否在服务水平降低到预先规定的最小值时,能检测和报警;
select*fromsys.dba_users
select*fromdba_profiles
select*fromdba_ts_quotas
Select*fromuser_history$
Select*fromall_users
Select*fromuser_users
Select*fromdba_sys_privs
Select*fromrole_sys_privs
Select*fromuser_sys_privs
Select*fromdba_tab_privs
Select*fromall_tab_privs
Select*fromuser_tab_privs
Select*fromdba_roles
Select*fromdba_role_privs
Select*fromuser_role_privs
selectpolicy_name,statusfromdba_sa_policies
select*fromdba_sa_levelsorderbylevel_num
select*fromv$parameterwherename='audit_trail'
select*fromdba_obj_audit_opts
select*fromdba_stmt_audit_opts
SELECT*FROMDba_Fga_Audit_Trail
select*fromsys.aud$
select*fromdba_audit_trail
selectusername,profilefromdba_users
select*fromdba_profileswhereprofile='DEFAULT'andresource_name='SESSIONS_PER_USER'
select*fromdba_profileswhereprofile='DEFAULT'andresource_name='IDLE_TIME'
utlpwdmg.sql
initSID.ora
listener.ora
sqlnet.ora
在oracle服务器端编辑sqlnet.ora文件,添加参数:
SQLNET.ENCRYPTION_SERVER=REQUIRED ----加密级别
SQLNET.ENCRYPTION_TYPES_SERVER=RC4_256加密算法
SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED 一致性能校验