oracle数据库安全
数据库安全详解(先理论后oracle举例)

DBMS提供统一的数据管理和控制 功能,其中很重要的就是数据保护, 包括有数据的安全性和数据的完整性, 达到保证数据的安全可靠和正确有效 的目的。
4.1
计算机安全性概论
数据库的安全性和计算机系统的 安全性,包括操作系统、网络系统的 安全性是紧密联系、相互支持的。
4.1.1 计算机系统的三类安全性 问题
2. 存取控制
存取控制机制主要包括两部分: ① 定义用户权限,并将用户权限登记 到数据字典中。 在数据库系统中对存取权限的定义称 为授权(Authorization)。这些授权定 义经过编译后存放在数据字典中,被称作 “安全规则”或“授权规则”。
⑴ 用户分类 一般可对数据库的用户分为四类: 系统用户(或DBA) 数据对象的属主(Owner) 一般用户 公共用户(Public)
用户身份、身份验证和防止数据泄露及篡改
数据库内部管理:用户标识/口令、角色与权限等; 资源管理:通过系统概要文件限制连接会话等; 网络数据通信管理:采用口令文件、数据加密等高级安全 技术;
1-36
用户管理
用户类别
在数据库系统中,根据工作性质和特点,用户可分成 三类:数据库管理员(DBA)、数据库开发人员和普通用户。 不同类型的用户分别赋予不同的权限,从而保证数据 库系统的安全。
跟踪审计(Audit Trail)是一种 监视措施。数据库在运行中,DBMS跟踪 用户对一些敏感性数据的存取活动,跟 踪的结果记录在跟踪审计记录文件中 (有许多DBMS的跟踪审计记录文件与系 统的运行日志合在一起)。一旦发现有 窃取数据的企图,有的DBMS会发出警报 信息,多数DBMS虽无警报功能,也可在 事后根据记录进行分析,从中发现危及 安全的行为,找出原因,追究责任,采 取防范措施。
Oracle数据库安全配置基线

Oracle数据库安全配置基线
简介
本文档旨在提供Oracle数据库的安全配置基线指南,以帮助确保数据库的安全性。
通过按照以下步骤进行配置,可以减少潜在的安全威胁和风险。
配置步骤
以下是Oracle数据库安全配置的基线步骤:
1. 安装最新的数据库补丁:确保在安装数据库之前,先安装最新的补丁程序,以修复已知的安全漏洞。
2. 禁用默认的系统帐户:在部署数据库之前,禁用默认的系统帐户(如SYSTEM、SYS、SYSMAN等),并创建自定义的管理员帐户。
3. 启用密码复杂性检查:使用强密码策略,确保数据库用户的密码具备足够的复杂性和强度。
4. 实施账户锁定策略:设置账户锁定策略,限制登录失败的次数,以防止暴力。
5. 限制数据库访问权限:核实数据库用户的访问权限,仅赋予他们所需的最低权限,以限制潜在的恶意操作。
6. 启用审计功能:启用Oracle数据库的审计功能,记录和监控数据库的所有活动,便于发现潜在的安全威胁。
7. 启用网络加密:使用SSL/TLS等加密协议,确保数据库与客户端之间的通信是安全和加密的。
8. 实施备份和恢复策略:定期备份数据库,并测试恢复过程,以防止数据丢失和灾难恢复。
9. 定期审查和更新安全配置:定期审查数据库的安全配置,并根据最新的安全标准和最佳实践的推荐,更新配置以提高安全性。
总结
通过遵循以上基线配置步骤,可以帮助提高Oracle数据库的安全性。
然而,在实际应用中,还应根据具体情况进行定制化的安全配置,并持续关注新的安全威胁和漏洞,及时进行更新和升级。
oracle数据库安全加固

Oracle安全加固1.安全加固的检查1.1.sysdba用户远程登录限制(查看Oracle登录认证方式)检查:show parameter remote_login_passwordfile整改:alter system set remote_login_passwordfile = NONE scope=spfile;注:需要重启库生效。
1.2.是否开启了资源限制show parameter resource_limitalter system set resource_limit = true;1.3.登录失败的帐号锁定策略select * from dba_profiles order by 1;关注FAILED_LOGIN_ATTEMPTS的设定值1.4.数据库用户帐号检查检查:select username,profile from dba_users where account_status='OPEN';整改:锁定用户:alter user <用户名> lock;删除用户:drop user <用户名> cascade;1.5.范例数据库帐号是否存在默认的范例数据库账号scott等,可以考虑删除scott账号1.6.dba权限账户检查select * from dba_role_privs where granted_role='DBA';1.7.数据库账户口令加密存储11g数据里面的账户口令本来就是加密存储的。
1.8.数据库密码安全性校验函数Select limit from dba_profiles where profile='DEFAULT' and resource_name= 'PASSWORD_VERIFY_FUNCTION';1.9.设定信任IP集在服务器上的文件$ORACLE_HOME/network/admin/sqlnet.ora中设置以下行:tcp.validnode_checking = yestcp.invited_nodes = (ip1,ip2…)1.10.超时的空闲远程连接是否自动断开根据实际需要设置合适的数值。
Oracle数据库安全配置基线

基线符合性判定依据
参数REMOTE_LOGIN_PASSWORDFILE设置为NONE;
sqlnet.ora文件中参数SQLNET.AUTHENTICATION_SERVICES设置成NONE。
基线符合性判定依据
上述账户口令均不能成功登录。
备注
3.1.5密码更改策略
安全基线项目名称
数据库管理系统Oracle密码更改策略安全基线要求项
安全基线项说明
Oracle软件账户的访问控制可遵循操作系统账户的安全策略,比如不要共享账户、强制定期修改密码、密码需要有一定的复杂度等。
检测操作步骤
1.以Oracle用户登陆到系统中;
1.可通过设置profile来限制数据库账户口令的复杂程度,口令生存周期和账户的锁定方式等;
2.可通过设置profile来限制数据库账户的CPU资源占用。
备注
2.1.4数据字典访问权限
安全基线项目名称
数据库管理系统Oracle数据字典访问权限策略安全基线要求项
安全基线项说明
启用数据字典保护,只有SYSDBA用户才能访问数据字典基础表。
备注
第3章口令
3.1口令安全
3.1.1账户口令的生存期
安全基线项目名称
数据库管理系统Oracle账户口令生存期安全基线要求项
安全基线项说明
在相应应用程序条件允许的情况下,对于采用静态口令认证技术的数据库,账户口令的生存期不长于90天。
检测操作步骤
1.以Oracle用户登陆到系统中;
2.以sqlplus‘/as sysdba’登陆到sqlplus环境中;
oracle数据库安全加固操作手册

1.支持按用户分配账号。
结果:现网已实现2.与设备运行、维护等工作无关的账号,应能够删除或锁定。
结果:现网已实现3.应按照用户分配账号。
避免不同用户间共享账号。
避免用户账号和设备间通信使用的账号共享。
结果:现网已实现4.应删除或锁定与设备运行、维护等工作无关的账号。
结果:现网已实现5.限制具备数据库超级管理员(SYSDBA)权限的用户远程登录。
结果:可以实现,但是需要需要重起数据库,影响业务,不建议实现,而且通过防火墙限制访问数据库的端口方式已经实现。
6.对于采用静态口令认证技术的设备,应支持数字、小写字母、大写字母和特殊符号4类字符构成的口令。
应支持配置口令复杂度。
在配置了复杂度后,设备自动拒绝用户设置不符合复杂度要求的口令结果:部分账号已实现(system和CS车务通),其他账号实施时需要重新配置现网的应用配置,影响业务,不建议实现。
7.对于采用静态口令认证技术的设备,应支持配置用户连续认证失败次数上限。
当用户连续认证失败次数超过上限时,设备自动锁定该用户账号。
必须由其他账号,通常为具有管理员权限的账号,才可以解除该账号锁定结果:现网已实现(系统默认是10次)8.对于采用静态口令认证技术的设备,应支持按天配置口令生存期功能。
在配置了口令生存期后,设备在口令超过生存期的用户登录时,应提示并强迫该用户设置新口令结果:可以实现,但是应用账号不建议实现,将会影响应用系统;编号:安全要求-设备-ORACLE-配置-10-可选9.对于采用静态口令认证技术的设备,应支持配置用户不得重复使用其最近已用口令的功能。
当配置相应功能后,设备拒绝用户重复使用在限制次数内的口令结果:可以实现,但是应用账号不建议实现,将会影响应用系统;见问题8的实现10.对于采用静态口令认证技术的设备,应配置当用户连续认证失败次数超过6次(不含6次),锁定该用户使用的账号结果:现网已实现(系统默认是10次)11.对于存在关系型数据库的设备,设备应支持对数据库表,给不同数据库用户或用户组分别授予读取、修改的权限。
Oracle数据库安全测评指导书

应提供符合业务系统要求的备份策略,并符合 测评要求。
时,能及时恢复数据;
2)每天至少进行一次全备份,并将备份介质存放在场外。
第 4 页,共 4 页
审计记录应包含要求的要素。
select sel,upd,del,ins,gra from dba_priv_audit_opts
3
安全审计
安全事件记录:日期和时 间、类型、 主体标识、 客体标识、事件的结果等
手工检查 记录一条日志内容,确认其包括事件发生的日期与时间、触发事件 的主体与客体、事件的类型、事件成功或失败、身份鉴别事件中请 求的来源(如末端标识符)、事件的结果等内容。
评测项
检测方法
预期结果
覆盖每个用户
手工检查 1)执行 select value from v$parameter where name='audit_trail',查看是否开启审计功 能; 2)用不同的用户登录数据库系统并进行不同的操作,在 Oracle 数 据库中查看日志记录是否满 足要求。
应开启审计功能,并对每个用户的操作都有记 录。
2)检查 utlpwdmms.sql 中"--Check for the minimum length of
应启用复杂度函数,对口令的复杂度有一定要 求。
the password"部分中
"length(password)<"后的值;
3)或者:查看口令管理制度以及执行记录,并选择验证。
访谈
1)询问数据库的身份鉴别方式,是否使用其他鉴别技术; 手工检
应配置空闲超时设置。
资源限额;
4
资源控制
手工检查 1)确定用户使用的 profile:select username,profile from dba_users,针对指定用户的 profile,查看其限制(以 default 为例); 2)使用命令 select limit from dba_profiles where profile='DEFAULT' and resource_name='SESSION_PER_USER'; 3)使用命令 select limit from dba_profiles where
(完整版)5-数据库安全测评(S3A3G3)-Oracle

主机
身份鉴别(S) b) 操作系统和数据库系统管理用户身份鉴别信息应具有不易被冒用的特点,口令应有复杂度要
1 1)检查主要服务器操作系统和主要数据库管理系统,查看其身份鉴别信息是否具有不易被冒用的特点,如对用户登录口令的最小长度、复杂度和更换周期进行的要求和限制; 2)渗透测试主要服务器操作系统,可通过使用口令破解工具等,对服务器操作系统进行用户口令强度检测,查看是否能够破解用户口令,
层
控制点 要求项 权重 测评实施 测评结果 符合 程度
主机
身份鉴别(S) c) 应启用登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出
0.5 1)检查主要服务器操作系统和主要数据库管理系统,查看是否已配置了鉴别失败处理功能,并设置了非法登录次数的限制值;查看是否设置网络登录连接超时,并自动退出; 1)执行命令:select limit from dba_profiles where profile=’DEFAULT’ and resource_name=’FAILED_LOGIN_ATTEMPTS’,查看其值是否为unlimited,如果其值不为unlimited则说明进行了登录失败尝试次数的限制,如设置了登录失败尝试次数,则执行命令:select limit from dba_profiles where profile=’DEFAULT’ and resource_name=’PASSWORD_LOCK_TIME’,查看
1)查看每个登录用户的角色和权限,是否是该用户所需的最小权限。 查看所有权限: Select * from dba_users; Select * from all_users; Select * from user_users; 查看用户系统权限: Select * from dba_sys_privs; Select * from role_sys_privs; Select * from user_sys_privs; Select * from session_privs; 查看用户对象权限: Select * from dba_tab_privs; Select * from all_tab_privs;
防范黑客攻击Oracle系统的八大常用方法

防范黑客攻击Oracle系统的八大常用方法的销售在向客户兜售其数据库系统一直把它吹捧为牢不可破的,耍嘴皮子轻易,兑现起来可就不那么轻易了。
不管什么计算机系统,的方法,Oracle也不例外。
本文将和大家从黑客的角度讨论是用哪些方法把黑手伸向了你原以为他们不能触及的数据,希望作为Ora 清楚的阐明自己基础架构的哪些区域比较轻易受到攻击。
同时我们也会讨论保护系统防范攻击的方法。
入攻击部分的Oracle数据库都具有为某种类型网络应用服务的后端数据存储区,网页应用使数据库更轻易成为我们的攻击目标体现在三个方面非常复杂,具有多个组成成分,使数据库治理员难以对它们进行彻底检查。
其二,阻止程序员侵入的屏障很低,即便不是C语言的些页面进行攻击。
下面我们会简单地解释为什么这对我们这么重要。
第三个原因是优先级的问题。
网页应用一直处于发展的模式,所陈出新。
这样安全问题就不是一个必须优先考虑的问题。
攻击是一种很简单的攻击,在页面表单里输入信息,静静地加入一些非凡代码,诱使应用程序在数据库里执行这些代码,并返回一些。
例如,有一份用户登录表格,要求输入用户名和密码才能登录,在用户名这一栏,输入以下代码:select username, passWord from all_users;--据库程序员没有聪明到能够检查出类似的信息并“清洗”掉我们的输入,该代码将在远程数据库系统执行,然后这些关于所有用户名返回到我们的浏览器。
会认为这是在危言耸听,不过还有更绝的。
David Litchfield在他的著作《Oracle黑客手册》(Oracle Hacker's Handbook)中把某种非其名曰:圣杯(holy grail),因为它曾通杀Oracle 8到Oracle10g的所有Oracle数据库版本。
很想知道其作用原理吧。
你可以利用_EXTENSION的程序包,使用注入攻击获取执行一个异常处理程序的代码,该程序会赋予用户或所有相关用户数据库治理员的特权。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SCOTT
口令tiger,用于测试网络的连接
PUBLIC用户组
为数据库中所有用户设定必需的对象权限和系统权限
用户属性
认证方式
数据库身份认证 外部身份认证 全局身份认证
默认表空间
• DEFAULT TABLESPACE
临时表空间
TEMPORARY TABLESPACE
数据库审计
数据库是用来监视和记录用户在数据库中的活动。 Oracle安全性的另一个重要领域。 审记的方式: 1、SQL审计命令 通过AUDIT语句我们可以对成功或者不成功的特定 对象的读取,更新操作进行审计。 2、用对象触发器进行审计 由客户自行开发放置于特定数据库对象上的触发器
数据库审计
3、用系统级触发器进行审计
数据库安全
目录
• • • 一、数据库安全技术 二、Oracle数据库安全 三、SQL Injection 安全问题
一、数据库安全
数据库安全是指保护数据库以防止非法用户 的越权使用、窃取、更改或破坏数据。 数据库的安全性含义
• 防止非法用户对数据库的访问 • 防止用户的非法操作
数据库安全的内容
ORACEL概述
Oracle是关系型数据库管理系统 。从总体上而言, Oracle数据库是业界安全性方面最完备的数据库产 品。在数据库安全性的国际标准中,Oracle通过了 14项标准的测试,是所有数据库产品中通过安全性 标准最多、最全面的产品。Oracle在C2级的操作系 统上(如商用UNIX,VMS操作系统),不仅满足NCSC C2级安全标准,而且已经正式通过了NCSC C2标 准的测试。在B1级的操作系统上不仅满足NCSC B1级安全标准,而且已经通过了NCSC B1级标准 的测试。
在实际应用中,应该以物理备份பைடு நூலகம்主,
逻辑备份作为补充。
恢复类型
完全恢复
• 从一个物理备份中恢复一个已丢失的数据文件的拷贝, 然后根据从此刻起的所有归档日志文件与重做日志文 件进行恢复,这样能够得到从备份以来发生的所有变 化,这种恢复称为完全恢复。
不完全恢复
• 如果归档日志文件有丢失的情况发生,那么数据库只 能恢复到这个归档日志文件以前的状态,没有得到从 备份以来的所有变化,这种恢复称为不完全恢复。
物理备份
物理备份分为冷备份与热备份。
• 冷备份又称为脱机备份。是在数据库保持关 闭状态下,把数据库的配置文件、数据文件、 控制文件、重做日志文件和归档日志文件复 制到其他地方保存起来。 • 热备份又称为联机备份或者归档备份。是在 数据库保持开放状态下对数据库进行备份, 热备份的好处是不必关闭数据库,不影响数 据库系统的正常运行,但是热备份的操作要 比冷备份复杂。
物理备份与恢复
冷备份与恢复 热备份与恢复 不完全恢复
物理备份方法
冷备份与恢复
冷备份
• 关闭数据库实例,用操作系统的实用工具备份数据文件。
• 如果没有启用归档模式,数据库不能恢复到备份完成后的 任意时刻。
冷备份
• 如果启用归档模式,从冷备份结束后到出现故障这 段时间的数据库恢复,可以利用联机日志文件和归 档日志文件实现。
系统权限管理
系统权限的回收
语法结构
REVOKE sys_priv_list FROM user_list| role_list;
注意事项
多个管理员者授予用户同一个系统权限后,其中一个管理 员回收其授予该用户的系统权限时,该用户不再拥有该系 统权限。 为了回收用户系统权限的传递性(授权时使用了WITH ADMIN OPTION子句),必须先回收其系统权限,然后再 授予其相应的系统权限。 如果一个用户获得的系统权限具有传递性(授权时使用了 WITH ADMIN OPTION子句),并且给其他用户授权,那 么该用户系统权限被回收后,其他用户的系统权限并不受 影响。
对象权限管理
对象权限分类:对象权限的授权
语法结构 GRANT obj_priv_list | ALL ON [schema.]object TO user_list | role_list [WITH GRANT OPTION 示例:将scott模式下的emp表的SELECT、 UPDATE、 INSERT权限授予user1用户。 GRANT SELECT,INSERT,UPDATE ON scott.emp TO user1;
数据库安全的主要技术
3、备份与恢复 数据库备份常用的备份方法有:静态备份、 动态备份和逻辑备份等;而数据库恢复则可 以通过磁盘镜像、数据库备份文件和数据库 日志三种方式来完成。 4、建立安全的审计机制 审计就是对指定用户在数据库中的操作进行 监控和记录的一种数据库功能 。
二、oracle 数据库安全
概要文件中参数
口令管理参数
• • • • • • • FAILED_LOGIN_ATTEMPTS PASSWORD_LOCK_TIME PASSWORD_GRACE_TIME PASSWORD_LIFE_TIME PASSWORD_REUSE_MAX PASSWORD_REUSE_TIME PASSWORD_VERIFY_FUNCTION
• 如果数据库系统在运行中发生故障,有些提交的事 务对数据库所做的修改有一部分写入物理数据库, 这时数据库就处于一种不正常的状态,或者说是不 一致的状态。
备份与恢复的基本概念
备份分为物理备份和逻辑备份
• 物理备份,是指通过将重要的物理文件备份 起来,以避免物理故障造成的损失。 • 逻辑备份,通常是SQL语句的集合。
角色管理
角色:一系列相关权限的集合。 角色的分类
数据库系统预定义角色 用户自定义角色
角色的管理
• 定义、授权、修改、生效与失效、删除、查询
利用角色对用户间接授权
概要文件管理
概要文件的作用 限制用户对数据库和系统资源的使用以及进 行用户口令管理 资源限制级别 会话级限制 调用级限制 资源限制类型 CPU使用时间 逻辑读 每个用户的并发会话数 用户连接数据库的空闲时间 用户连接数据库的时间 私有SQL区和PL/SQL区的使用
数据库系统安全的主要风险
1、来自操作系统的风险 :病毒、后门、数据 库系统和操作系统的关联 2、来自管理的风险 :安全意识薄弱, 安全管 理措施不落实。 3、来自用户的风险:用户帐号、作用和对特定 数据库目标的操作许可 4、来自数据库系统内部的风险 :
数据库安全的主要技术
1、数据库加密 对数据库中存储的重要数据进行加密处理,以实 现数据存储的安全保护 。 2、存取管理技术 (1).用户认证技术 a.用户身份验证 b.用户身份识别 (2).访问控制 a.按功能模块对用户授权 b.将数据库系统权限赋予用户
资源限制参数
• • • • • • • • • CPU_PER_SESSION CPU_PER_CALL CONNECT_TIME IDLE_TIME SESSIONS_PER_USER LOGICAL_READS_PER_SESSION LOGICAL_READS_PER_CALL PRIVATE_SGA COMPOSITE_LIMIT
概要文件管理
启用或停用资源限制
在数据库启动前启用或停用资源限制
将数据库初始化参数文件中的参数 RESOURCE_LIMIT的值设置为TRUE或FALSE
在数据库启动后启用或停用资源限制
使用ALTER SYSTEM语句修改RESOURCE_LIMIT 参数值为TRUE或FALSE
概要文件中参数
对象权限管理
对象权限的回收
语法结构 REVOKE obj_priv_list | ALL ON [schema.]object FROM user_list|role_list;
需要注意的几点
多个管理员者授予用户同一个对象权限后,其中一个管理 员回收其授予该用户的对象权限时,不影响该用户从其他 管理员处获得的对象权限。 为了回收用户对象权限的传递性(授权时使用了WITH GRANT OPTION子句),必须先回收其对象权限,然后 再授予其相应的对象权限。 如果一个用户获得的对象权限具有传递性(授权时使用了 WITH GRANT OPTION子句),并且给其他用户授权, 那么该用户的对象权限被回收后,其他用户的对象权限也 被回收。
关闭数据库,
开始备份
备份完成
备份
故障时刻
恢复
重装备份副本
恢复丢失数据
冷备份步骤
步骤:
1、关闭数据库
2、备份所有相关的数据库文件:
数据文件 控制文件 Redo 日志 归档的 Redo 日志
初始化文件
冷备份的恢复
非归档模式下恢复
• 关闭数据库 • 用备份文件覆盖原有文件 • 重新启动数据库
Oracle数据安全控制机制
用户管理 权限管理 角色管理 表空间设置和配额 用户资源限制 数据库审计 数据库的备份和恢复
用户管理
数据库初始用户 SYS
数据库中具有最高权限的DBA,可以启动、修改和关闭 数据库,拥有数据字典
SYSTEM
一个辅助的DBA,不能启动和关闭数据库,但可以进行 其他一些管理工作