核心数据库保护安全技术实践

引言:

随着计算机技术在各行各业中越来越多的成为业务流程的核心支撑系统,数据作为企业的重要资产,数据库作为数据资产的最终载体和保存实体的安全越来越成为一个值得关注的重点领域。尤其是今年以来随着勒索软件等新型的计算机病毒带来的安全问题也同样威胁着数据库系统安全。作为数据库管理员,保护数据安全是一项本职工作和要求。数据库系统安全除了管理制度的有效约束外,重要的技术手段也是一项基本技术能力。本文将通过一些具体的技术措施以及数据库自身的高级方法来对企业级Oracle12C数据库进行安全加固,帮助用户从整体上了解数据库安全加固的不同层面和相关方法。

安全加固措施:

  1. 本地路由表实施网络层保护策略

按照当前主流系统的“客户端”“应用服务器”“数据库服务器”三层架构设计。多数数据库服务器的上层访问请求客户端数量有限,然而主机上的默认网关设置可以让主机与所有网络中的其它节点进行网络层通信,这种默认网关设置将数据库服务器直接暴露在整个网络中,从网络层来看这种设置具有很大的安全风险和隐患。通过在操作系统上删除默认网关,并使用本地静态路由表配置方法,可以很好的对安装了数据库系统的主机进行网络客户端主机的授权访问,可以从网络层进行访问主机的授权控制,也可以实现最小化的网络访问许可。

  1. Windows系统主机:

在windows主机中可以删除掉当前网卡的默认网关配置,如图(1):

之后可以使用命令对需要访问的主机进行静态路由添加,命令示例如下:

route ADD 157.5.5.3 MASK 255.255.255.255 192.168.0.1 -p

其中“157.5.5.3”为目标地址(可以为主机地址或网段地址),“255.255.255.255”为网络掩码(当设置为4个255时,匹配为主机地址),“192.168.0.1”为网关地址。整理允许访问的客户端地址并逐条命令执行。完成后通过命令“route print”查看,系统显式的“永久路由”既是添加的静态路由地址,如下图(二)例:

用户也可以通过命令“route delete”对这些静态访问主机进行删除。

  1. Linux系统主机:

Linux主机下的静态路由表可以通过修改Linux主机启动加载文件/etc/rc.local来实现主机静态路由控制,使用命令vi /etc/rc.local编辑如下行:

/sbin/ip ip route del default

/sbin/ip ip route addr 157.5.5.3/32 via 192.168.0.1 dev eth0

/sbin/ip ip route add 157.5.4.2/32 via 192.168.0.1 dev eth0

用户可以根据自己的实际需求增加行。完成后重启系统并使用命令“ip route”检查本机路由表,如下所示:

[birdofprey@localhost ~]$ ip route

157.5.5.3/32 dev eth0 proto kernel scope link src 192.168.0.1 metric 100

157.5.4.2/32 dev eth0 proto kernel scope link src 192.168.0.1 metric 100

192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.73 metric 100

通过如上配置后该主机将只允许当前本网段主机及“157.5.5.3”“157.5.4.2”两台外部主机进行访问。

  1. AIX系统主机:

AIX作为非常成熟的UNIX系统,目前依然活跃在企业级服务器市场,尽管从用户规模上来讲,其属于小众系统,但其稳定性依然值得称赞,在AIX系统中用户可以使用“smitty”命令进行各种系统级设置的配置和修改,用户需要进行静态路由控制时首先需要删除掉各个网卡的默认网关,然后使用“smitty tcpip”命令进入网络配置状态,选择“Further Configuration”模式,并继续选择“Static Routes”选项,之后选择“Add a Static Route”选项,进行静态路由添加,如图(三)所示:

其中“Destination TYPE”为目标节点类型,用户可以通过F4选择是网络或者主机,“DESTINATION Address”为目标节点IP地址,“Default GATEWAY Address”为到达目标节点所需的网关IP地址。用户针对目标节点逐条添加完成后可以通过“Static Routes”选项下的“List All Routes”进行当前默认路由表检查和查看,效果如图(四):

 

通过以上在各个系统上的静态路由配置方法,我们可以将数据库服务器的网络层访问请求进行更细粒度的控制和限制,第一可以减少很多没有必要的TCP/IP握手流量,第二可以很好的防止任何形式的外部扫描以及探测行为。可以从网络层很好的规避网关以外计算机的很多恶意行为。

二、数据库IP准入控制

Oracle数据库系统自9i开始加入了数据库IP准入技术,但限于当时系统架构模式以及技术。该项功能只能以限制单个IP地址的方式进行访问控制,并没有受到用户的重视和广泛使用。随着系统架构向三层架构的演进和发展,从11G开始数据库IP准入开始支持以网段方式控制数据库IP准入,配置更加灵活。逐步成为了数据库安全设置的常用技术方法之一。通过该技术方法加上静态路由方法可以很好的实现对访问数据库资源的动态添加、删除、修改。

  1. 单实例数据库修改方法:

单实例数据库环境下,数据库服务器上只有“ORACLE”账号作为数据库系统管理员账号,需要启用数据库IP准入功能时只要以“oracle”用户登录系统并修改$ORACLE_HOME/network/admin/sqlnet.ora文件,并加入如下行:

tcp.validnode_checking = yes

tcp.invited_nodes=(157.5.3.*,157.5.4.3)

其中“tcp.validnode_checking = yes”参数作用是激活数据库检查IP合法性特性。“tcp.invited_nodes”为允许登录的IP地址。括号中“157.5.3.*”为网段,“157.5.4.3”为具体IP地址。网段设置方法必须要在ORACLE11G以后的数据库系统才能获得该语法支持。多网段或者多地址时可以依次使用逗号进行分隔即可。

  1. RAC实例数据库修改方法:

使用过OracleRAC的用户可能会发现,OracleRAC在安装之后会在“grid”“oracle”的ORACLE_HOME中分别都创建了network/admin/sqlnet.ora文件,对于OracleRAC环境的数据库IP准入控制用户需要需改“grid”用户下的$ORACLE_HOME/network/admin/sqlnet.ora文件,并需要注意的是,应该在所有RAC节点上对该文件进行修改。具体设置方法可以参照ORACLE单实例修改方法。

三、数据库使用独立插拔数据库实现数据库级数据安全隔离

Oracle12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。该特性很好的隔离了之前数据库那种单库内用户权限设置不当带来的非授权用户对其他用户数据库对象访问或者修改的问题。一个应用完全可以以一个插拔数据库的方式来对该应用的所有数据进行管理和控制,同时该应用创建的DBA角色也完全和其它应用插拔数据库DBA角色分离。应用间数据库关系可以理解为传统数据库那种彼此分属于不同物理机的关系。该特性集中了物理资源的使用,但更好的隔离了数据库间的角色以及权力,较过去的一个数据库下多用户需要统一DBA管理模式有更好的安全隔离性。

四、数据审计

Oracle12C推出一套全新的审计架构,称为统一审计功能。统一审计主要利用策略和条件在 Oracle 数据库内部有选择地执行有效的审计。新架构将现有审计跟踪统一为单一审计跟踪,从而简化了管理,提高了数据库生成的审计数据的安全性。Oracle12C数据库中预先定义了一些审计策略,并且根据版本不同,默认开启的审计策略也略有不同。

我们可以通过auditunifiedenabled_policies视图进行确认默认开启的统一审计的审计策略。以下为12.1.0.2的默认审计策略

SQL> select USER_NAME,POLICY_NAME,ENABLED_OPT,SUCCESS,FAILURE from audit_unified_enabled_policies;


 

USER_NAME POLICY_NAME ENABLED_OPT SUCCES FAILUR

-------------------- -------------------- ---------------- ------ ------

ALL USERS ORA_SECURECONFIG BY YES YES

ALL USERS ORA_LOGON_FAILURES BY NO YES


 

由上面的输出结果我们可以看到,不做任何配置的情况下, 在12.1.0.2数据库的环境中,默认开启了ORASECURECONFIG和ORALOGONFAILURES审计策略,数据库会根据这2个审计策略,对数据库具有DBA权限的用户登录失败以及DBA登录成功后执行的所有DML语句进行记录。在统一审计功能下,存储和查看更加简单化,所有的审计结果都存放在新追加的AUDSYS schema下,并可以通过字典表UNIFIEDAUDITTRAIL,进行确认。通过审计功能可以很好的发现和保护数据库DBA的操作行为和账号安全。

转载于:https://my.oschina.net/Birdofprey/blog/3083158

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值