Oracle数据库安全及安全策略研究
2015-05-15何子龙
何子龙
(深圳供电局有限公司,深圳 518000)
Oracle数据库安全及安全策略研究
何子龙
(深圳供电局有限公司,深圳 518000)
Oracle数据库是市场占有率第一的数据库,其安全问题关系到大部分公司业务数据的安全性、私密性、完整性。从权限管理、用户管理、审计控制、密码安全四方面研究Oracle数据库的安全问题,并针对安全问题进行安全策略优化。经过该安全策略加固方法的实施,可以解决大部分Oracle数据库安全问题,达到保障数据安全的目的。
Oracle;安全策略;数据库安全
0 引言
在大数据爆发式发展的安全事件愈发频繁发生的背景下,数据安全问题愈发重要。数据安全涉及到企业的重要经济应用,本文提出的方法能够抵抗大量数据库攻击,如SQL注入攻击等,有效保障Oracle数据库数据安全。
1 权限安全控制
在权限管理上,使用最小权限原则,需要回收所有应用账户的DBA权限,除了系统管理用户sys和system有DBA权限,其他用户都不会有DBA权限。
使用如图1的语句可以查找出当前系统里除了sys/system用户外,还有哪些用户拥有DBA权限。如果发现有DBA权限的应用账户,需要回收,只授权满足应用需要的权限。
2 用户安全管理
DBSNMP用户是用于EM管理的用户,数据库大部分都没有安装EM,所以需要我们把DBSNMP用户手工锁住。
scott用户是数据库演示用户,对于Oracle数据库,如果有scott用户存在,我们也需要把它锁住。
锁用户的语法:
alter user dbsnmp account lock;
alter user scott account lock;
3 行为审计控制
审计可以分为3类。或者说,可以从3种角度去启用审计。
3.1 语句审计(Statement Auditing)
对预先指定的某些SQL语句进行审计。这里从SQL语句的角度出发,进行指定。审计只关心执行的语句。
例如,audit CREATE TABLE;命令,就表明对"create table"语句的执行进行记录,不管这语句是否是针对某个对象的操作。
3.2 权限审计(Privilege Auditing)
对涉及某些权限的操作进行审计。这里强调“涉及权限”
图1
例如,audit CREATE TABLE;命令,又可以表明对涉及“CREATE TABLE”权限的操作进行审计。所以说,在这种命令的情况下,既产生一个语句审计,又产生了一个权限审计。这时“语句审计”和“权限审计”相互重复的。
3.3 对象审计(Object Auditing)
记录作用在指定对象上的操作。
3.4 如何启用审计
通过数据库初始化参数文件中的AUDIT_TRAIL初始化参数启用和禁用数据库审计。
DB:启用数据库审计并引导所有审计记录到数据库的审计跟踪
OS:启用数据库审计并引导所有审计记录到操作系统的审计跟踪。可以用AUDIT_FILE_DEST初始化参数来指定审计文件存储的目录。
NONE:禁用审计,为默认值。
目前Oracle数据库使用的启用方式是OS,将审计记录到操作系统的目录下,以减少对数据库资源占用。
应用于Oracle数据库的审计策略代码如下:
解读:
audit_sys_operations=true sys 用户在数据库的所有记录将会记录下来。
audit_trail=os 审计记录的结果存放到操作系统的目录下。
resource_limit=true 控制用户对于数据库资源的使用。
remote_login_passwordfile=none 禁止sys用户使用网络方式登录,只能在服务器本地验证登录。
图2为sys用户登录系统后,查询当前数据库的所有用户的结果。
在存放审计记录的目录中找到审计文件,可以看到这条记录被记录下来了(如图3)。
图4演示了sys用户和其他用户使用网络方式登录数据库服务器。
结果显示sys用户不能使用网络远程登录服务器,其他用户可以。sys用户只能通过本地验证的方式登录到数据库服务器。
4 密码安全控制
目前Oracle数据库实施密码安全加固的策略,策略的参数包括有:密码长度、复杂度检测、最大最小使用时间、过期警报时间、最大登录失败次数以及锁定时间的设置[1]。
图2
图3
图4
Oracle数据库的密码安全策略代码如下:
执行密码安全策略的代码后,查询结果如图5。
图5
Oracle默认提供了一个密码策略的SQL执行文件utlpwdmg.sql。Linux/UNIX默认路径是$Oracle_HOME/ rdbms/admin/utlpwdmg.sql[2]。Windows路径位置可以通过搜索来获得。
(1)文件utlpwdmg.sql的密码策略设置了密码长度的检查,如果密码长度小于8,密码设置将会不成功(如图6)。
图6
测试:新密码设置为321*dba失败,要求必须是8位以上(如图7)。
图7
提示密码的长度小于8位数,用户pos的密码修改不成功。
(2)文件utlpwdmg.sql的密码策略设置了密码和用户名是否同名的检查。如果密码和用户一样,密码设置将会不成功(如图8)。
图8
测试:用户名和密码相同,密码不论是小写还是大写,修改都不会成功。显示密码复杂度检测功能开启(如图9)。
图9
(3)文件utlpwdmg.sql的密码策略设置了密码是否太简单。如果是用('welcome1'、'database1'、'account1'、'user1234、'password1'、'Oracle123'、'computer1'、'abcdefg1',、'change_on_install'、'Oracle')这些简单字符做为用户的密码,密码设置将会不成功(如图10)。
图10
测试如图11。
图11
(4)文件utlpwdmg.sql的密码策略设置了密码必须包含字母和数字。如果密码没有密码和数字,密码设置将会不成功(如图12)。
测试:新密码设置为posofOracle失败,要求必须至少一个数字、一个字母,说明密码复杂度检测已经开启(如图13)。
(5)通过配置文件还可以发现目前密码策略中密码存活时间为60天,密码警告时间为3天,登录失败次数为3次,锁定时间为1天,密码重用需要修改了5次或使用了365天。
图12
图13
测试:当密码登录失败3次后,如果密码再次输入错误,账号将会被锁。
图14
综上所知:utlpwdmg.sql脚本文件生效,其它的密码策略也已经生效。
5 结语
由上所述,本文从权限安全、用户安全、审计、密码安全四方面着手阐述数据库安全问题及其安全策略解决方法。经过本文安全策略加固方法的实施,可以解决大部分Oracle数据库安全问题,达到保障数据安全的目的。
[1] 刘志敏.Oracle数据库应用管理解决方案[M].北京:电子工业出版社,2002
[2] 滕永昌.Oracle 10g数据库系统原理[M].北京:机械工业出版社,2006
Research on the Oracle Database Security and Security Strategy
HE Zi-long
(Shenzhen Power Supply Bureau Limited Company,Shenzhen 518000)
Oracle database has the largest market share of the database market.Its security issues related to the security of the majority of the company's business data,privacy,integrity.Researches on the security problem of Oracle database from four areas:security issue rights management,user management,audit controls and password security.Also researches on security issues for security policy optimization.After implementation of this security policy reinforcement method can solve most of the Oracle database security issues to ensure data security.
Oracle;Security Policy;Database Security
1007-1423(2015)01-0022-05
10.3969/j.issn.1007-1423.2015.01.006
何子龙(1984-),男,广东深圳人,硕士,中级工程师,从事领域为网络技术、信息安全技术和管理工作
2014-08-28
2014-12-15