基于DBMS_FGA的数据安全控制系统的设计

2010-11-16 08:32金宪珊李佳俊
中国医疗设备 2010年3期
关键词:敏感数据数据安全语句

金宪珊,李佳俊

(杭州中医院 计算机网络中心,江苏 杭州 310007)

基于DBMS_FGA的数据安全控制系统的设计

金宪珊,李佳俊

(杭州中医院 计算机网络中心,江苏 杭州 310007)

医院信息系统(HIS)存储着处方信息、病人资料等敏感重要的数据,近年来医院数据被非法窃取的事情经常发生。我们利用Oracle数据库提供的DBMS_FGA包,部署细粒度审计系统,监控医院敏感数据;并用handler_module存储过程设计了数据安全控制系统,防止敏感数据被盗。

HIS;Oracle数据库;网络安全

医院信息系统(HIS)有着敏感重要的数据,如处方信息、病人资料等。由于医院数据非常重要,数据的安全性是HIS系统管理的重要环节。数据的安全是指只有合法的用户才可读取。近年来,医院数据被非法读取的事情经常发生。随着计算机技术的发展,医院也采取了很多安全控制方法,但很多医院缺少数据审计系统,医院数据是否做到安全也不确定。

1 细粒度审计 (FGA) 的概念

Oracle9i Database 推出了一种称为细粒度审计 (FGA) 的新特性,该特性允许将单个的 SELECT 语句联同用户提交的确切语句一起进行审计。Oracle提供了一个DBMS_FGA包,可以在线对单个的表进行审计并查询审计资料。除了简单地跟踪语句之外,FGA 还通过在每次用户选择特定的数据集时执行一段代码,提供了一种方法来模拟用于 SELECT 语句的触发器。

下面将就这个包的使用做简单的介绍,这个包共有四个过程:

2 HIS系统中敏感数据审计的设计

HIS系统是庞大的信息系统,有着大量数据表,如果对大量表、表中每个字段、每次用户从表中选择时都记录审计线索,则线索的大小将增长,导致空间和管理问题,因此只能选择比较重要、敏感的表和字段,在满足特定条件时进行审计,而不是每次都进行审计。这种类型的条件称为审计条件,并作为一项参数传递到 dbms_fga.add_policy 过程。例如如果要对药品使用情况表进行审计,可以定义如下:

其中'TCMHIS'是用户名称,'MZ_ YPXINXI '是对象名称,'CHK_ MZ_ YPXINXI '是 策略名 称,'YPXH,YSGH'是要审计的字段,审计字段要选择关键字段;'SYRQ between sysdate -9 and sysdate -1'是审计条件,审计条件的选择既要满足实际需要又要使线索尽量小。

审计系统可以监控医院敏感数据,我们可以根据审计日志分析系统安全状况。如果医院内部用户有非法操作,我们可以进一步规范权限,对利用职务之便进行非法操作的行为,可以将审计信息反馈管理部门。如果有外来人员进行非法操作,说明前台安全措施有漏洞,这也是验证系统安全性的好方法。

3 HIS系统中敏感数据表安全访问控制的实现

如果审计中发现非法操作,可以采取进一步措施,对重要数据访问进行控制。

FGA 的功能不只是记录审计线索中的事件;FGA 还可以通过handler_module任意执行过程。过程可以执行一项操作,比如当用户从表中选择特定行时向审计者发送电子邮件警告,或者可以写到不同的审计线索中。这种存储代码段可以是独立的过程或者是程序包中的过程,称为策略的处理器模块。实际上由于安全性原因,它不必与基表本身处于同一模式中,特意将它放置在不同的模式中。我们在审计基础上增加handler_module过程控制非法SQL 语句访问数据,控制非法机器语句访问数据:

同时需要增加表manager_auditip:Ip地址表;manager_auditonoff:策略控制表;manager_auditconfig:配置表(存放合法语句)和包dbms_ check。表和包都要进行加密。

程序逻辑判断说明(如图1):

图1 控制系统程序逻辑判断图

(1)manager_auditip中是否有相应的IP地址记录,如果有,则通过,如没有,步骤2。

(2)manager_auditonoff中是否有该策略的设置,如果status=0 关闭,则通过,如果status=1 开启,步骤3。

(3)manager_auditconfig中是否有status=1的匹配记录,如果有,则通过,如果无,则阻止。

上述设计实现日常系统正常运行和控制非法操作的灵活管理。manager_auditip表允许医院中特权用户进行特权操作,但特权操作只能在指定机器上操作,其对敏感数据的操作也接受审计。必要时配置监控等设施以便外部监督。manager_auditconfig收集HIS系统正常操作语句,语句有可能很长,我们可以按一定规律摘取部分语句,当然对规律的保密很重要。由于HIS系统系统开发人员众多、开发周期长,在部署审计控制系统时不能收集全部信息,而审计控制不能影响正常运作,为保证信息系统的正常运行,设计manager_auditonoff 表,通过status开关审计的开启,必要时关闭审计。

4 数据库用户权限的管理

为了提高安全性,不能对用户 TCMHIS(将要被审计的表的所有者)授予dbms_fga执行权限;而应该将权限授予一个安全的用户(比如 SYSTEM),此用户应该执行添加策略的过程。信息系统开发和维护过程中知道用户 TCMHIS(将要被审计的表的所有者)密码的人员很多,而实际工作过程中也很难管理这些人员。事实上HIS系统敏感重要数据经常发生被非法窃取的主要原因也在于HIS用户密码泄露。除了HIS用户也不能对其他用户授予执行权限,这就要检查数据库dbms_fga 对象权限,进行权限管理。

首先查看dbms_fga该对象的权限赋予了谁,我们检查时显示sys.dbms_fga execut权限给予了role execute catalog_role。再查看execute_catalog_role角色给了谁,结果显示exp_full_database,imp_full_database,DBA,SYS。这说明有exp_full_database,imp_full_database的就有dbms_fga的执行权限。还要检查EXECUTE_CATALOG_ROLE 有什么系统权限和对象权限。拥有EXP_FULL_DATABASE角色的用户很多,必须把dbms_fga的execute权限从execute_catalog_role中去除,然后单独把dbms_fga的执行权限赋给SYSTEM用户,加强操作系统和数据库DBA、SYS、SYSMAN、SYSTEM用户和密码管理。这样其他用户就无法操作disable_policy,真正审计和控制重要敏感信息了。

5 结论

信息系统的安全防范有着很多途径,我们也采取了各种措施,但总做不到万无一失。通过后台的审计系统可以验证系统是否安全,如果发现非法现象,可以进一步部署控制系统,在对ORACLE 用户进行有效权限管理的基础上,该控制系统是比较有效的。

[1] 刘逸敏.关系数据库中基于安全策略的数据访问控制模型[J].中国数字医学,2009,4(3):39-43.

[2] 蔡立军.Oracle 9i关系数据库实用教程[M].北京:中国水利水电出版社,2004.

[3] 刘艳辉,徐香.医院信息系统的数据安全策略[J].医学信息,2006,19(5):774-776.

[4] 郑阿奇,丁有和,周怡君,等.Oracle实用教程[M].北京:电子工业出版社,2006.

[5] 赵元杰.Oracle 10g系统管理员简明教程[M].北京:人民邮电出版社,2006.

[6] Carol McCullough-Dieter. Oracle8 实用大全[M].北京:中国水利水电出版社,1998.

Design and Realiziation of Fine Grained Audit and Data Security Control System Based on DBMS_FGA

JIN Xian-shan,LI Jia-jun
(Computer Network Center,Hangzhou Traditional Chinese Medicine Hospital, Hangzhou Zhejiang 310007,China)

The hospital information system have sensitive data such as prescription information,patient data.We designed fine grained audit system based on DBMS_FGA package and safety control system based on handler_module to protect datas.

HIS;Oracle database;network security

TP309.2

A

10.3969/j.issn.1674-1633.2010.03.017

1674-1633(2010)03-0056-03

2009-08-04

作者邮箱:hzjxs@126.com

猜你喜欢
敏感数据数据安全语句
干扰条件下可检索数字版权管理环境敏感数据的加密方法
基于大数据的智能数据脱敏系统
重点:语句衔接
实现虚拟机敏感数据识别
基于透明加密的水下通信网络敏感数据防泄露方法
云计算中基于用户隐私的数据安全保护方法
建立激励相容机制保护数据安全
大数据云计算环境下的数据安全
云环境中数据安全去重研究进展
我喜欢