等保2.0 数据库Oracle测评(等保2.0数据安全)
mhr18 2024-09-14 05:31 27 浏览 0 评论
等级保护【数据库Oracle】测评:
详解【数据库Oracle】(三级):身份鉴别、访问控制、安全审计、资源控制四个控制点的测评要求项、测评方法及测评步骤!
身份鉴别
a)应对数据库系统的用户进行身份标识和鉴别;
测评方法及步骤:
1)以默认口令或者常见口令尝试登录数据库,查看是否成功,查看是否需要口令以及是否存在空口令
$ sqlplus/nolog
SQL>connuser/password as sysdba
2)或者使用Oracle客户端管理控制台(Enterprise Manager Console)进行登录
3)默认口令包括sys/change_on_install;system/manager,scott/tiger,常用口令包括oracle:admin/oracle;sys:admin:oracle等。(更改用户口令alter user user_name identified by password),或者用select * from dba_users;查看账号口令;
b)数据库系统管理用户身份标识应具有不易被冒用的特点,口令应有复杂度要求并定期更换;
测评方法及步骤:
1)select username,profile fromdba_user;了解用户使用的profile
2)select * from dba_profiles whereprofile='default';查看系统本身的profile的配置参数都有哪些?
PASSWORD_VERIFY_FUNCTIONverify_function为密码复杂度验证函数已经开启。这个oracle默认verify_function()函数,要求口令密码最小长度4、不能和用户名相同、至少有一个字母、数字和特殊字母,旧密码和新密码至少有三位不同。如果你觉得这个要求还太低,那你就创建自己复杂的验证函数
3)检查utlpwdmg.sql中"-- Check for the minimum length of the password"部分中"length (password)<"后的值;
c)应启用登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出等措施;
测评方法及步骤:
1)select limitfrom dba_profiles where resource_name='FAILED_LOGIN_ATTEMPTS
FAILED_LOGIN_ATTEMPTS:最大错误登录次数
PASSWORD_GRACE_TIME:口令失效后锁定 时间
PASSWORD_LIFE_TIME:口令有效时间
PASSWORD_LOCK_TIME:登录超过有效次数锁定时间
查看有无对各项进行时间/次数上的设置和限制;
d)当对服务器进行远程管理时,应采取必要措施,防治鉴别信息在网络传输过程中被窃听;
测评方法及步骤:
1)询问管理员是否采取加密手段保证数据库的访问信息不被窃听
2)在9i中查看数据库安装目录下的\admin\DB_NAME\pfile\initSID.ora中REMOTE_OS_AUTHENT的赋值,确认是否允许管理员对数据库进行远程连接和管理,其他版本用命令“SHOW PARAMETERS AUTH;”记录是否允许远程访问
3)或者图形界面管理中查看打开Oracle客户端管理控制台(Enterprise Manager Console);添加被评估数据库的连接信息,使用sys或system用户登录数据库;在左侧菜单栏中打开“例程”,选中“配置”栏,再选择“一般信息”页面,点击“所有初始化参数”;在弹出的界面中,查看“remote_os_authent”参数行的设置,为是否允许远程连接,如实记录该原始数据或拷屏
4)查看lsnrctl status查看是否存在TCPS协议;
e)应为数据库系统的不同用户分配不同的用户名,确保用户名具有唯一性;
测评方法及步骤:
1)询问管理员,是否为不同的用户分配了不同的账户。可检索账户“selectusername,account_status from dba_users”,并询问是否建立制度,确保不同人员使用不同用户登录数据库系统;
f)应采用两种或两种以上组合的鉴别技术对管理用户进行身份鉴别;
测评方法及步骤:
1)询问管理员数据库是否采用了2种以上身份鉴别方式进行身份认证,如是否部署CA认证等第三方认证产品进行认证;
2)查看配置文件 db_1\NETWORK\ADMIN目录下或$TNS_ADMIN/sqlnet.ora的sqlnet.ora,查看SQLNET_AUTHENTICATION_SERVICES的值,确认数据库管理员指定的鉴别方式是否与管理员回答的一致,值为NTS时,则为使用windows系统认证,当为none时,则需要双重身份认证。但是不为双因子认证;
此条中判断以第一条为准,第二条仅做参考,不对结果造成影响;
访问控制
a)应启用访问控制功能,依据安全策略控制用户对资源的访问;
测评方法及步骤:
1)linux下在数据库的操作系统中打开$ORACLE_HOME\bin目录,并找到可执行程序Oracle;
在操作系统中运行命令:ls –al oracle;查看其运行、读写权限;
2)访谈管理员是否有其他方式(如防火墙、ACL、IPsec等方式)进行端口/IP级的访问限制,或者其他方式对数据库访问的控制,并进行验证;
判定依据主要参考第三条,第一二条为辅助依据;
b)应根据管理用户的角色分配权限,实现管理用户的权限分离,仅授予管理用户所需的最小权限;
测评方法及步骤:
1)查看应用账户是否属于DBA组权限
2)select grantee from dba_role_privs where grante_role='DBA' and grante not in('SYS','SYSTEM','CTXSYS','WmSYS','SYSMAN');
c)应实现操作系统和数据库系统特权用户的权限分离;
测评方法及步骤:
询问管理员是否由不同员工分别担任操作系统管理员与数据库管理员
登录操作系统,查看是否能对数据库系统进行操作;
d)应限制默认帐户的访问权限,重命名系统默认帐户,修改这些帐户的默认口令;
测评方法及步骤:
询问管理员:应尽量重命名数据库系统的默认账户,如果部分账户无法重命名,则应加强这些账户的口令强度,确保这些账户不被授权使用;
e)应及时删除多余的、过期的帐户,避免共享帐户的存在;
测评方法及步骤:
1、在sqlplus中执行命令
desc dba_users
selectusername,account_status from dba_users where account_status='OPEN'
2、查看返回结果中是否存在scott、outln、ordsys等范例数据库账号,在windows中或者用图形用户界面找到安全性查看用户状态检查是否有过期、共享帐户存在;
f)应对重要信息资源设置敏感标记;
测评方法及步骤:
1)检查是否安装oracle label security模块(如无,下面步骤可省略)select username from dba_users;查看有无lbacsys的用户,如无,则无安装Oracle Label Security模块
2)查看是否创建策略:select policy_name,statusfrom DBA_SA_POLICIES
3)查看标签创建情况:select * fromdba_sa_lables;
g)应依据安全策略严格控制用户对有敏感标记重要信息资源的操作;
测评方法及步骤:
登录sqlplus,查看用户的标签
select * fromdba_sa_lables
select * fromdba_sa_tables_policies;可让管理员演示选择特定的用户和表进行验证敏感标记功能是否正确;
安全审计
a)审计范围应覆盖到服务器和重要客户端上的每个数据库用户;
测评方法及步骤:
检查并记录数据库操作审计的配置策略
show parametersaudit;查看数据库审计的目录及审计是否开启,审计级别
1.windows中打开Oracle客户端管理控制台(Enterprise Manager Console)
2.添加被评估数据库的连接信息,使用sys或system用户登录数据库
3.在左侧菜单栏中打开“例程”,选中“配置”栏,再选择“一般信息”页面,点击“所有初始化参数”
4.在弹出的界面中,查看“audit_trail”参数行的设置,如实记录该原始数据或拷屏。如果为linux系统执行show parameters audit_trail;查看是否开启审计功能
5.进行管理员和一般用户登录登出,查看审计日志是否能正确记录
6.以上条件不满足时,询问管理员是否有第三方数据库审计软件;
b)审计内容应包括重要用户行为、系统资源的异常使用和重要系统命令的使用等系统内重要的安全相关事件;
测评方法及步骤:
查看AUDIT_TRAIL的值为NONE为关闭审计功能,audit_sys_operations为YES审计系统重要操作;
c)审计记录应包括事件的日期、时间、类型、主体标识、客体标识和结果等;
测评方法及步骤:
select * fromsys.aud$,select * fromdba_audit_trail,记录审计记录中事件的日期、时间、类型、主体标识、客体标识和结果等记录情况;
d)应能根据记录数据进行分析,并生产审计报表;
测评方法及步骤:
询问管理员是否安装并使用了oracle audit vault等日志分析工具并查看相关报表,或者是否采用了第三方数据库审计软件以及具有报表功能并定期生成报表;
e)应保护审计进程,避免受到未预期的中断;
测评方法及步骤:
询问是否严格限制数据库管理员权限,系统管理员能否进行与审计相关的操作。用户可以通过alter system set audit_trail='NONE' scope=spfile;,查看是否成功;
f)应保护审计记录,避免受到未预期的删除、修改或覆盖等;
测评方法及步骤:
询问数据库管理员,是否严格限制用户访问审计记录的权限,如采用audit vault等,或者第三方审计系统,并检查是否定期对审计日志做备份;
资源控制
a)应通过设定终端接入方式、网络地址范围等条件限制终端登录;
测评方法及步骤:
方法一:人工审计
1.以文本文件的方式,打开操作系统中的数据库服务配置文件“SQLNET.ORA”(数据库目录下的NETWORK\ADMIN\)
查看是否存在如下内容
tcp.validnode_checking=YES
tcp.excluded_nodes={list of IP address}
tcp.invited_nodes={list of IP address},如存在则对IP地址进行了限制
3.如实记录该原始数据或拷屏
4.如果没有在数据库系统上进行配置,询问是否在防火墙或者其他网络设备/安全设备上进行了相关的配置;
方法一:人工审计
1.以文本文件的方式,打开操作系统中的数据库服务配置文件“listener.ora”;
2.查看“ADMIN_RESTRICTIONS_listener_name=”的设置(此项设置为防止对oracle listener的未经授权的管理,需要),如实记录该原始数据或拷屏,如为ON则符合,不存在则不符合;
b)应根据安全策略设置登录终端的操作超时锁定;
测评方法及步骤:
查看空闲超时设置,selectlimit from dba_profiles where resource_name='IDLE_TIME'.查看超时设置,并记录或查看系统概要文件;
c)应限制单个用户对系统资源的最大或最小使用限度;
测评方法及步骤:
执行命令,查看用户使用的profile,select username,profile fromdba_users,查看其限制,set lines 300
查看默认用户的并行会话数和CPU使用时间
select limitfrom dba_profiles where profile='DEFAULT';,或CPU_PER_SESSION,IDLE_TIME,'SESSIONS_PER_USER'等各设置
下面是全部可用的参数:
SESSIONS_PER_USER 每个用户名所允许的并行会话数
CPU_PER_SESSION 一个会话一共可以使用的CPU时间,单位是百分之一秒
CPU_PER_CALL 一次SQL调用(解析、执行和获取)允许使用的CPU时间
CONNECT_TIME 限制会话连接时间,单位是分钟
IDLE_TIME 允许空闲会话的时间,单位是分钟
LOGICAL_READS_PER_SESSION 限制会话对数据块的读取,单位是块
LOGICAL_READS_PER_CALL 限制SQL调用对数据块的读取,单位是块
COMPOSITE_LIMIT “组合打法”
PRIVATE_SGA 限制会话在SGA中Shared Pool中私有空间的分配;
相关推荐
- 使用 Docker 部署 Java 项目(通俗易懂)
-
前言:搜索镜像的网站(推荐):DockerDocs1、下载与配置Docker1.1docker下载(这里使用的是Ubuntu,Centos命令可能有不同)以下命令,默认不是root用户操作,...
- Spring Boot 3.3.5 + CRaC:从冷启动到秒级响应的架构实践与踩坑实录
-
去年,我们团队负责的电商订单系统因扩容需求需在10分钟内启动200个Pod实例。当运维组按下扩容按钮时,传统SpringBoot应用的冷启动耗时(平均8.7秒)直接导致流量洪峰期出现30%的请求超时...
- 《github精选系列》——SpringBoot 全家桶
-
1简单总结1SpringBoot全家桶简介2项目简介3子项目列表4环境5运行6后续计划7问题反馈gitee地址:https://gitee.com/yidao620/springbo...
- Nacos简介—1.Nacos使用简介
-
大纲1.Nacos的在服务注册中心+配置中心中的应用2.Nacos2.x最新版本下载与目录结构3.Nacos2.x的数据库存储与日志存储4.Nacos2.x服务端的startup.sh启动脚...
- spring-ai ollama小试牛刀
-
序本文主要展示下spring-aiollama的使用示例pom.xml<dependency><groupId>org.springframework.ai<...
- SpringCloud系列——10Spring Cloud Gateway网关
-
学习目标Gateway是什么?它有什么作用?Gateway中的断言使用Gateway中的过滤器使用Gateway中的路由使用第1章网关1.1网关的概念简单来说,网关就是一个网络连接到另外一个网络的...
- Spring Boot 自动装配原理剖析
-
前言在这瞬息万变的技术领域,比了解技术的使用方法更重要的是了解其原理及应用背景。以往我们使用SpringMVC来构建一个项目需要很多基础操作:添加很多jar,配置web.xml,配置Spr...
- 疯了!Spring 再官宣惊天大漏洞
-
Spring官宣高危漏洞大家好,我是栈长。前几天爆出来的Spring漏洞,刚修复完又来?今天愚人节来了,这是和大家开玩笑吗?不是的,我也是猝不及防!这个玩笑也开的太大了!!你之前看到的这个漏洞已...
- 「架构师必备」基于SpringCloud的SaaS型微服务脚手架
-
简介基于SpringCloud(Hoxton.SR1)+SpringBoot(2.2.4.RELEASE)的SaaS型微服务脚手架,具备用户管理、资源权限管理、网关统一鉴权、Xss防跨站攻击、...
- SpringCloud分布式框架&分布式事务&分布式锁
-
总结本文承接上一篇SpringCloud分布式框架实践之后,进一步实践分布式事务与分布式锁,其中分布式事务主要是基于Seata的AT模式进行强一致性,基于RocketMQ事务消息进行最终一致性,分布式...
- SpringBoot全家桶:23篇博客加23个可运行项目让你对它了如指掌
-
SpringBoot现在已经成为Java开发领域的一颗璀璨明珠,它本身是包容万象的,可以跟各种技术集成。本项目对目前Web开发中常用的各个技术,通过和SpringBoot的集成,并且对各种技术通...
- 开发好物推荐12之分布式锁redisson-sb
-
前言springboot开发现在基本都是分布式环境,分布式环境下分布式锁的使用必不可少,主流分布式锁主要包括数据库锁,redis锁,还有zookepper实现的分布式锁,其中最实用的还是Redis分...
- 拥抱Kubernetes,再见了Spring Cloud
-
相信很多开发者在熟悉微服务工作后,才发现:以为用SpringCloud已经成功打造了微服务架构帝国,殊不知引入了k8s后,却和CloudNative的生态发展脱轨。从2013年的...
- Zabbix/J监控框架和Spring框架的整合方法
-
Zabbix/J是一个Java版本的系统监控框架,它可以完美地兼容于Zabbix监控系统,使得开发、运维等技术人员能够对整个业务系统的基础设施、应用软件/中间件和业务逻辑进行全方位的分层监控。Spri...
- SpringBoot+JWT+Shiro+Mybatis实现Restful快速开发后端脚手架
-
作者:lywJee来源:cnblogs.com/lywJ/p/11252064.html一、背景前后端分离已经成为互联网项目开发标准,它会为以后的大型分布式架构打下基础。SpringBoot使编码配置...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle位图索引 (63)
- oracle批量插入数据 (62)
- oracle事务隔离级别 (53)
- oracle 空为0 (50)
- oracle主从同步 (55)
- oracle 乐观锁 (51)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)