等保2.0数据库测评 - Oracle 11g数据库
mhr18 2024-09-18 20:31 17 浏览 0 评论
一、Oracle介绍
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。
本次安装环境为Windows10专业版操作系统,数据库版本为11.2.0.1,单机部署过程比较简单就不在此进行讲解。本文针对Oracle 11g等保测评进行实际操作,不妥之处还恳请留言指正,共同学习。
二、等保测评
身份鉴别
a) 应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换;
1)登录Oracle检查是否采用用户名和口令登录。
2)执行命令:
(1)密码有效期:“select limit from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';”
(2)密码失效后锁定时间:“select limit from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_REUSE_TIME';”
(3)失效后保留次数:“select limit from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_REUSE_MAX';”
(4)失效后密码保留时间:“select limit from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_GRACE_TIME';”
(5)复杂度:“select limit from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_VERIFY_FUNCTION';”
查看输出结果:
如果为null表示未设置。
如果不为null,其中:
PASSWORD_LOGIN_ATTEMPTS = 登录尝试次数;
PASSWORD_LIFE_TIME = 设置口令有效期;
PASSWORD_ROUSE_MAX =设置重新启用一个先前用过的口令前必须对该口令进行重新设置的次数(重复用的次数);
PASSWORD_VERIFY_FUNCITON =设置口令复杂度校验函数;
PASSWORD_GRACE_TIME=口令修改的宽限期天数,一般为7天;
备注:
“PASSWORD_VERIFY_FUNCTION”的Profile字段值为Default,某用户要使用Default的相关配置,就要设置DBA_USERS表中的Profile字段值为Default。
“PASSWORD_VERIFY_FUNCTION”表示该函数对口令进行校验,默认值是null,即不使用任何函数对口令进行校验。
3)执行命令:“Select username,account_status from dba_users;”查看用户名信息是否唯一:
4)执行命令:“select username, account_status, profile from dba_users where account_status NOT like '%LOCKED';”查看未锁定的所有用户:
b) 应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施;
1)执行命令:“select limit from dba_profiles where profile='DEFAULT' and resource_name='FAILED_LOGIN_ATTEMPTS';检查登录失败次数。
2)执行命令:“select limit from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LOCK_TIME';“登录失败锁定时间:
结果为“unlimited”,表示未配置;结果为“1”,重试失败后锁定一天。
3)执行命令:“SELECT LIMIT FROM DBA_PROFILES WHERE PROFILE='DEFAULT' AND RESOURCE_NAME='IDLE_TIME';”查询输出结果。若为’UNLIMITED’则无登录超时限制。
若为’UNLIMITED’则无登录超时限制。
4)可在sqlnet.ora配置文件中设置空闲超时时间。
c) 当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听;
1)是否采用加密等安全方式对系统进行远程管理是否用户都是localhost,全为localhost则为本地管理,可判定为不适用。
2)远程管理根据实际管理情况进行判定(如了解数据库管理工具采用什么措施防止鉴别信息在传输过程中被窃听)。采用sqlplus或PL/SQL连接数据库,对数据库进行管理,客户端与服务器端之间通信是加密的,故Oracle该项符合。
d) 应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现。
访谈管理员并进行验证,是否采用双因子身份鉴别技术,鉴别技术是什么 。实际实现双因素认证比较困难,一般情况判定为不符合。
访问控制
a) 应对登录的用户分配账户和权限;
执行命令“Select username,account_status from dba_users;”或点菜单栏“用户”,查看账户的管理权限:
b) 应重命名或删除默认账户,修改默认账户的默认口令
执行命令:Select username,account_status from dba_users where account_status='OPEN';查看账户列表,是否存在默认账户如下:
c) 应及时删除或停用多余的、过期的账户,避免共享账户的存在
1)询问管理员数据库中的账户使用情况,是否存在无人使用的账户,如果存在建议删除。
2)检查网络管理员,安全管理员、系统管理员不同用户是否采用不同账户登录数据库。
d) 应授予管理用户所需的最小权限,实现管理用户的权限分离
点击菜单栏”用户“查看已启用的账户,查看账户的权限分配情况,账户的管理权限是否不同,是否建立三员。
e) 应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则
1)访谈和查看管理员是否制定了访问控制策略
2)查看管理员权限;(此测评点如果Oracle已经启用身份鉴别,且具备权限分离可判定为符合)
f) 访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级
结合a)、b)、c)、d)、e)项,并访谈管理员并核查访问控制粒度主体是否为用户级,客体是否为数据库表级。
(此测评点多数测评机构默认判定为符合)
g)应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问
通过访谈管理员是否对重要主体和客体设置安全标记。Oracle自身应该不具备这个功能,可能需要依赖操作系统或者第三方来实现。该项一般默认都不符合。
安全审计
a) 应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计
1)执行命令:select value from v$parameter where name='audit_trail';检查是否开启审计。
2)执行命令:"show parameter audit_file_dest;"和“show parameter audit;”和检查审计数据存储路径。
3)访谈管理员是否通过第三方工具(数据库审计系统)收集审计数据进行分析。
b) 审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息
1)
2)核查是否部署第三方工具(数据库审计系统)增强MySQL日志功能。记录第三方审计工具的审计内容,查看是否包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息。
c) 应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等
应保证各个管理员尽可以访问与自身相关的日志文件,如关键日志仅允许特权账户访问
1)访谈管理员对审计记录如何保护,对审计记录是否定期备份,备份策略。
是否采取了备份、转存等手段对审计记录进行保护,避免未预期的删除、修 改或覆盖,数据库本地日志保存时间超过6个月。采用第三方数据库审计产品,审计记录保存时间超过6个月。
2)是否严格限制用户访问审计记录的权限,可以通过普通用户登录然后是否能够访问修改删除日志。
d) 应对审计进程进行保护,防止未经授权的中断
根据Oracle可以根据权限建立各类型的账户,可以防止审计进程未经授权的终端:
入侵防范
a) 应遵循最小安装的原则,仅安装需要的组件和应用程序
数据库系统此测评项可判定为不适用。
b) 应关闭不需要的系统服务、默认共享和高危端口
数据库系统此测评项不适用。
c) 应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制
可在sqlnet.ora配置文件中设信任IP地址。
d) 应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求
数据库系统此测评项不适用。
e) 应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞
1、 访谈管理员是否定期或不定期进行漏洞扫描或渗透测试,周期按照天/月/季度/半年/年等方式(建议漏洞扫描周期最长半年一次)。
2、通过本次漏洞扫描是否发现与数据库相关的高危漏洞,若存在,是否及时进行漏洞修补。
执行命令:”select banner from sys.v_$version;“检查数据库版本。
f) 应能够检测到对重要节点进行入侵的行为,并在发生严重入侵事件时提供报警
数据库系统此测评项不适用。
恶意代码防范
应采用免受恶意代码攻击的技术措施或主动免疫可信验证机制及时识别入侵和病毒行为,并将其有效阻断
数据库系统此测评项不适用。
可信验证
可基于可信根对计算设备的系统引导程序、 系统程序、重要配置参数和应用程序等进行可信验证,并在应用程序的关键执行环节进行动态可信验证,在检测到其可信性受到破坏后进行报警,并将验证结果形成审计记录送至安全管理中心
通过访谈管理员,是否采取了可信技术,可信技术主要是基于可信芯片、可信根,目前实现此技术的可能性不大,一般判定为不符合。
数据完整性
a)应采用密码技术保证重要数据在传输过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;
传输过程中的完整性一般是通过通信协议来实现的,常见的包括TLS、SSH等协议,对数据库而言,查看是否启用了安全协议进行数据通信,同时询问管理员,确认是否还有其他保证数据传输过程中的完整性措施。
(本地管理判定为不适用,远程管理根据实际情况判定)
b)应采用密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据和重要个人信息等。
对数据库配置文件进行一个完整性检测,需要配置文件初始可信状态时的哈希值,然后再根据目前的文件生成一个哈希值,对比前后的一致性,确认数据是否被篡改过,根据了解一般数据库自身不带这种机制,询问管理人员是否使用了第三方软件对数据库重要数据进行了完整性校验。
实际操作中可核查数据库表中的业务数据、审计数据有无存在哈希字段,据了解数据在前端一般通过json或xml格式进行传输,相关数据库表字段中具有完整性校验字段。目前一般做不到,判定为不符合。
数据保密性
a)应采用密码技术保证重要数据在传输过程中的保密性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;
若password是以明文密码传送给数据库,建议不在生产环境中使用。若数据库未开启SSL时,我通过Wireshare对数据库认证过程的数据包进行抓取,可能发现传输的密码字段信息。
总结,最直接验证的办法就是抓包验证重要的加密数据(鉴别数据、需要加密的业务数据、个人信息等)是否明文传输。
b)应采用密码技术保证重要数据在存储过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等。
检查数据库表中的重要数据是否明文存储,根据经验除鉴别数据外,业务数据、审计数据实际很少加密存储,所以一般不符合或者部分符合。如果使用数据库加密功能,就可以符合符合,数据库加密主要分库内加密和库外加密,库内加密主要是调用的数据库本身的加密功能,库外加密主要通过第三方厂家的数据库加密功能。
此处主要针对鉴别信息(其他像业务数据、审计数据和配置数据一般情况未加密)传输相关的参数大致有下类三个:
SCRAM-SHA-256属于挑战-响应架构, 可防止密码在不可信连接上嗅探,并支持以密码散列的形式将密码存储在服务器上, 这种形式被认为是安全的。
MD5使用自定义安全性较低的质询-响应机制。 它可以防止密码嗅探,并避免以纯文本形式将密码存储在服务器上, 但如果攻击者设法从服务器窃取密码哈希,则不提供保护。(MD5哈希算法现在不再被认为是安全的算法)
据了解,Oracle数据库加密方式有两种,其中a)加密 API 例如包和 dbms_crypto (在 Oracle 数据库 10g 第 1 版和更高版本中)。使用这些包,我们可以构建我们自己的基础架构,对数据进行加密。这种方法的灵活性最强,但是构建和管理却相当复杂。DBMS_CRYPTO支持DES加密、双密钥的3DES以及三密钥的3DES加密,采用三个不同大小的AES和RC4加密算法。
b)透明的数据加密是 Oracle 数据库 10g 第 2 版和更高版本的一个特性;使用该特性后,我们就不必手动进行密码管理了。数据库管理密码,但是正如名称所指,加密是透明的——数据仅仅以加密的方式存储而已。当我们选择了这种方式,扩展性比较差。
数据备份恢复
a)应提供重要数据的本地数据备份与恢复功能;
1)访问管理员配置数据、审计数据、业务数据的备份策略,检查备份策略的备份情况与管理员所说是否一致,是否具有恢复测试记录。
2)可以通过数据库管理工具进行备份,如navicat等工具,工具具备Oracle自带的逻辑备份。它的备份原理是通过协议连接到Oracle数据库,将需要备份的数据查询出来。
b)应提供异地实时备份功能,利用通信网络将重要数据实时备份至备份场地;
部署异地备份机房,并符合备份策略通过网络定期进行异地备份。
c)应提供重要数据处理系统的热冗余,保证系统的高可用性;
集群部署、双机热备均可判定为符合。
剩余信息保护
a)应保证鉴别信息所在的存储空间被释放或重新分配前得到完全清除;
一般情况下数据库系统内核层默认无法实现剩余信息保护功能,需要第三方工具才能实现。
b)应保证存有敏感数据的存储空间被释放或重新分配前得到完全清除。
一般情况下数据库系统内核层默认无法实现剩余信息保护功能,需要第三方工具才能实现。
个人信息保护
a)应仅采集和保存业务必需的用户个人信息;
检查数据库中是否存储个人信息,若有,检查个人信息保护机制和个人信息保护管理制度
b)应禁止未授权访问和非法使用用户个人信息。
检查个人信息保护机制和个人信息保护管理制度,验证非授权人员是否可以访问个人信息存储的相关组件内容。
总结
在等保测评检查中会发现Oracle数据库大部分配置都可以实现,但是在实际测评过程中很多单位不愿意配置等保中要求的策略,一方面是管理员认为不方便自己运维管理,另一方面可能是数据库在实时生产环境中,管理员担心更改相关安全配置后影响系统的正常运行,所以我们在测评中要做好安全和生产、安全和管理的平衡。
相关推荐
- redis 7.4.3更新!安全修复+性能优化全解析
-
一、Redis是什么?为什么选择它?Redis(RemoteDictionaryServer)是一款开源的高性能内存键值数据库,支持持久化、多数据结构(如字符串、哈希、列表等),广泛应用于缓存、消...
- C# 读写Redis数据库的简单例子
-
CSRedis是一个基于C#的Redis客户端库,它提供了与Redis服务器进行交互的功能。它是一个轻量级、高性能的库,易于使用和集成到C#应用程序中。您可以使用NuGet包管理器或使用以下命令行命令...
- 十年之重修Redis原理
-
弱小和无知并不是生存的障碍,傲慢才是。--------面试者总结Redis可能都用过,但是从来没有理解过,就像一个熟悉的陌生人,本文主要讲述了Redis基本类型的使用、数据结构、持久化、单线程模型...
- 高频L2行情数据Redis存储架构设计(含C++实现代码)
-
一、Redis核心设计原则内存高效:优化数据结构,减少内存占用低延迟访问:单次操作≤0.1ms响应时间数据完整性:完整存储所有L2字段实时订阅:支持多客户端实时数据推送持久化策略:RDB+AOF保障数...
- Magic-Boot开源引擎:零代码玩转企业级开发,效率暴涨!
-
一、项目介绍基于magic-api搭建的快速开发平台,前端采用Vue3+naive-ui最新版本搭建,依赖较少,运行速度快。对常用组件进行封装。利用Vue3的@vue/compiler-sfc单文...
- 项目不行简历拉胯?3招教你从面试陪跑逆袭大厂offer!
-
项目不行简历拉胯?3招教你从面试陪跑逆袭大厂offer!老铁们!是不是每次面试完都感觉自己像被大厂面试官婉拒的渣男?明明刷了三个月题库,背熟八股文,结果一被问项目就支支吾吾,简历写得像大学生课程设计?...
- 谷歌云平台:开发者部署超120个开源包
-
从国外相关报道了解,Google与Bitnami合作为Google云平台增加了一个新的功能,为了方便开发人员快捷部署程序,提供了120余款开源应用程序云平台的支持。这些应用程序其中包括了WordPre...
- 知名互联网公司和程序员都看好的数据库是什么?
-
2017年数据库领域的最大趋势是什么?什么是最热的数据处理技术?学什么数据库最有前途?程序员们普遍不喜欢的数据库是什么?本文都会一一揭秘。大数据时代,数据库的选择备受关注,此前本号就曾揭秘国内知名互联...
- 腾讯云发布云存储MongoDB服务
-
近日,著名安全专家兼Shodan搜索引擎的创建者JohnMatherly发现,目前至少有35000个受影响的MongoDB数据库暴露在互联网上,它们所包含的数据暴露在网络攻击风险之中。据估计,将近6...
- 已跪,Java全能笔记爆火,分布式/开源框架/微服务/性能调优全有
-
前言程序员,立之根本还是技术,一个程序员的好坏,虽然不能完全用技术强弱来判断,但是技术水平一定是基础,技术差的程序员只能CRUD,技术不深的程序员也成不了架构师。程序员对于技术的掌握,除了从了解-熟悉...
- 面试官:举个你解决冲突的例子?别怂!用这个套路……
-
面试官:举个你解决冲突的例子?别怂!用这个套路……最近收到粉丝私信,说被问到:团队技术方案有分歧怎么办?当场大脑宕机……兄弟!这不是送命题,是展示你情商+技术判断力的王炸题!今天教你们3招,用真实案例...
- 面试碰到MongoDB?莫慌,跟面试官这样吹MongoDB 复制集
-
推荐阅读:吊打MySQL:21性能优化实践+学习导图+55面试+笔记+20高频知识点阿里一线架构师分享的技术图谱,进阶加薪全靠它十面字节跳动,依旧空手而归,我该放弃吗?文末会分享一些MongoDB的学...
- SpringBoot集成扩展-访问NoSQL数据库之Redis和MongoDB!
-
与关系型数据库一样,SpringBoot也提供了对NoSQL数据库的集成扩展,如对Redis和MongoDB等数据库的操作。通过默认配置即可使用RedisTemplate和MongoTemplate...
- Java程序员找工作总卡项目关?
-
Java程序员找工作总卡项目关?3招教你用真实经历写出HR抢着要的简历!各位Java老哥,最近刷招聘软件是不是手都划酸了?简历投出去石沉大海,面试邀请却总在飞别人的简历?上周有个兄弟,13年经验投了5...
- Java多租户SaaS系统实现方案
-
嗯,用户问的是Java通过租户id实现的SaaS方案。首先,我需要理解用户的需求。SaaS,也就是软件即服务,通常是指多租户的架构,每个租户的数据需要隔离。用户可能想知道如何在Java中利用租户ID来...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 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)