光华DB_Audit数据库安全审计系统技术白皮书上海复旦光华信息科技股份有限公司Fudan GrandHorizon Information Technology, Inc.2007年10月目录1. 概述 (3)1.1数据库系统面临的安全风险 (3)1.2传统数据库审计工具的不足 (6)1.3为什么需要数据库安全审计? (7)2. 光华DB_AUDIT数据库安全审计系统解决方案 (9)2.1产品功能 (9)2.2产品特点 (13)2.3支持的数据库种类 (16)3. 体系架构 (17)3.1审计管理门户 (18)3.2审计中心 (18)3.3审计网探 (18)4. 产品部署 (20)4.1中小规模单位的部署 (20)4.2大规模模式的部署 (20)5. 结束语 (22)1. 概述数据库是电子商务、金融、证券以及保密部门业务系统的基础,通常都保存着重要的商业信息和机密数据资料,属于企事业单位的核心资产。
尽管这些系统的数据完整性、可用性以及安全性是非常重要的,但对数据库系统采取的安全防范措施的级别还比不上操作系统和网络的安全防范措施的级别。
此外,许多弱点都可能破坏数据的完整性并导致非法访问、数据被篡改、涉密信息的泄露等安全问题和事故,这些弱点包括系统复杂程度高、密码安全性较差、错误配置、未被察觉的系统后门以及自适应数据库安全方法的强制性常规使用等等。
根据国际CERT/CC组织收到的Internet安全事故报告统计数据表明,高峰期每天要收到将近250个事故报告,然而这只是占到发生的安全事故的很小比例。
在如此大量的网络安全事件中,每一次成功的入侵都会对系统造成极大的损失,其中数据库系统被入侵造成的损失更是巨大。
据报道曾有一个化名为Maxus 的美国黑客,在自己的网站上发布消息,说他通过数据库的漏洞成功的入侵了网站,并获取了大量的个人信用卡密码和帐户信息,并在网站首页放置一个按钮,访问者只要点击一下按钮就会获得一个随机的信用卡帐号。
当警察逮捕他时,他已经通过的数据库盗取了55,000以上的个人信用卡帐号。
而黑客入侵银行数据库,进行大笔资金转帐或者破坏银行数据库信息的案件也是率有报道。
由此可见,一直被安全专家和安全厂商所忽略的数据库系统安全随着信息时代的发展已经越来越重要了。
1.1 数据库系统面临的安全风险造成数据库系统被攻击破坏的原因是多方面的,对于在数据库使用方面,主要有以下几种现象值得关注:不正确地管理数据库数据库服务器的应用相当复杂,掌握起来比较困难,需要具备较高的专业知识。
诸如Oracle、DB2、Sybase、SQL Server、Informix数据库都具有以下特征:用户帐号及密码、校验系统、优先级模型、内置式命令、脚本和编程语言、中间件、网络协议、补丁和服务包、数据库管理实用程序和开发工具。
许多数据库管理员(DBA)都忙于管理复杂的系统,很可能没有检查出严重的安全隐患和不当的配置,甚至根本没有进行检测。
所以,正是由于传统的安全体系在很大程度上忽略了数据库安全这一主题,使数据库专业人员也通常没有把安全问题当作他们的首要任务。
●重视网络和主机安全,忽视数据库自身安全在许多资深安全专家中普遍存在着一个错误概念,他们认为:一旦修补了关键的网络服务和主机操作系统的漏洞,服务器上的所有应用程序(包括数据库)就得到了安全保障。
现代数据库系统具有多种特征和性能配置方式,在使用时可能会误用,或危及数据的保密性、有效性和完整性。
首先,所有现代关系型数据库系统都是“可从端口寻址的”,这意味着任何人只要有合适的查询工具,就都可与数据库直接相连,并能躲开操作系统的安全机制。
例如:可以用TCP/IP协议从1521和1526端口访问Oracle数据库。
多数数据库系统还有众所周知的默认帐号和密码,可支持对数据库资源的各级访问。
从这两个简单的数据相结合,很多重要的数据库系统很可能受到威胁。
并且,Oracle Internal 密码、SQL Server 的xp-cmdshell扩展存储过程等漏洞不仅会将数据库访问的大门敞开,同时也使入侵者能够轻易地对操作系统进行攻击。
●应用系统中结构性设计不合理目前的很多业务系统,着眼点集中于WEB服务器、Java和其它新技术,没有认识到业务系统都是以数据库为基础的。
这种应用系统结构导致了应用系统和数据库系统同时安装在同一个服务主机的可能性大增加,不可避免地,这些系统受到入侵的可能性更大。
因此,从上述分析可以看出,数据库系统存在诸多安全风险或安全隐患,主要表现在:1、数据库内的机密数据易被窃取由于系统设计者对于数据库中的数据访问权限定义不够严格,很有可能使得内部普通员工通过网络获取数据库中的机密数据。
同时,数据库系统本身的缺省用户和口令、数据库自身的安全漏洞或者管理员后门等均可能被普通用户利用,获取较高权限,窃取机密数据。
一些数据库应用系统的缺省数据库用户也会被普通用户利用获取应用系统中的数据信息。
2、数据库数据的损坏由于系统或软件的稳定性和其他的一些突发的情况,会导致数据库正在进行数据处理时产生中断,这时就会导致数据信息的丢失或损坏。
对于一些重要的数据如银行帐户信息、证券营业信息等等,这种威胁都是致命的。
3、直接的非授权数据库操作通常,一个应用系统无论是采用客户端/服务器模式,或者采用浏览器/WEB 服务器/数据库服务器模式,还是使用中间件的模式,一般用户访问数据库使用的操作工具是客户端软件或者通用浏览器。
但是攻击者可能使用一些数据库专用工具(如Oracle中的sqlplus、SQL Server中的isql等或者通过远程登录直接操作数据库中的数据)访问数据库。
这种威胁对数据库系统是非常严重的,攻击者可以轻易篡改数据或者破坏整个系统。
4、向数据库提供虚假数据在某些应用系统中,用户可能通过应用界面向数据库中插入虚假的数据,从而干扰整个业务的运转,或者从中牟利。
5、绕过应用系统的身份认证进入数据库大部分的应用系统在设计的时候为了节省license的数量,数据库的实际用户只有若干个(或者1个),而用户之间的身份区别是通过数据库中内部建立用户名/口令表的方式来实现的。
这种系统实际登录到数据库的“用户”是同一个数据库用户,所有用户相对数据库平台的权限是相同的,因此很容易相互冒用。
如果一个用户可以冒用他人身份进入,那么在案发或者故障时很难查证。
6、数据库自身安全漏洞数据库系统因为其功能强大、结构复杂、各种应用客户端众多,因此系统自身的漏洞也十分的繁多。
其中很多漏洞不仅威胁到数据库自身的安全,还会威胁到其所在操作系统的安全性。
SQL Server、Oracle等数据库都有很多广为人知的漏洞。
恶意的用户很可能利用这些漏洞攻击数据库进而入侵操作系统,获取重要数据,对系统造成破坏。
上述这些威胁是比较普遍的,应用系统在实际运转的过程中可能遇到来自更多方面的威胁。
1.2 传统数据库审计工具的不足目前数据库系统的安全防护措施主要有身份认证、数据安全、访问控制等手段,此外也有一些手段对数据库的访问行为进行审计,主要有以下三种:●数据库系统自带的日志审计模块:如SQL Server审计功能、DB Tools ForOracle、Sybase数据库跟踪功能等;●基于主机的安全审计工具,如Log Explorer、SQL Smart Audit等工具;●业务应用系统自身的审计功能。
上述工具能够实现一定的数据库日志审计的功能,对数据库的安全以及运维起到一定的作用。
由于这些工具在使用过程中存在一系列的问题,将直接影响到安全事件发生时,可能无法得到需要的日志信息(如数据库访问行为、数据库操作的命令等),从而导致安全事件的分析和取证无法展开,也无法确定事故责任。
上述三种传统的数据库审计工具会存在以下问题:1、严重影响数据库服务器的性能在主流的数据库系统中,当启用数据库系统自身的日志审计模块时,会占用大量的系统CPU、内存资源和硬盘资源,将会严重影响数据库访问的性能,严重的话甚至会影响用户对业务系统的正常访问,大大降低系统的可用性。
此外,由于难以选择需要记录的内容,在业务访问量较大的情况下,审计日志将很快充满硬盘,因此日志审计功能就无法正常运行。
而由于日志信息保存在数据库服务器商,高峰时期大量的数据库审计信息会使数据库系统和操作系统不堪重负。
2、审计日志信息不全基于主机的审计工具提供的日志信息或者数据库系统自身的日志信息往往缺乏网络层的信息(如IP、MAC地址等),并且难以区分真正的用户(大多数系统中,不同用户采用的是同一个数据库用户名),无法追溯到真正的操作发起源,很难安全事件的事后取证分析中发挥应有的作用。
另外上述日志信息主要记录用户登录时间、用户名(不同用户采用的是同一个数据库用户名)、退出时间等,而没有具体的数据库操作命令,因此无法分析安全事件发生的原因,也无法评估造成的影响和后果。
3、在三层结构中无法定位最终操作者目前业务系统普遍采用客户端/业务服务器/数据库,或者浏览器/Web服务器/数据库三层结构,一般的数据库审计只能审计出业务服务器或者Web服务器访问数据库的操作,不能够审计出是哪个客户端或者浏览器对数据库的访问。
这样无法定位到是哪个用户对数据库进行的操作。
4、日志信息不安全上述各种数据库系统的审计日志直接采用明文方式存放在数据表或文件中。
非法用户或黑客一旦获取主机的高级控制权,则会清除入侵过程中产生的所有踪迹,更有甚者,黑客可以更改日志记录,嫁祸给“合法的用户”,迷惑案件侦破人员或者栽赃他人。
黑客恶意的D.O.S.方式的数据库操作,使审计日志填满磁盘空间,从而停止审计日志的生成。
此外,患有兼容性和稳定性等问题,基于不同平台的数据库,需要相应的审计代理软件;同时针对不同类型的数据库,也需要对应的审计代理软件;若基于主机的审计代理软件存在bug或漏洞,将会影响服务器的正常运行,甚至导致系统瘫痪。
1.3 为什么需要数据库安全审计?由于数据库系统的重要性日益突出,其安全防护要求也越来越高;而现有的、传统的数据库审计工具不论是在功能上、还是在可用性以及稳定性等方面均存在很多不足之处。
与此同时,国际、国内的很多标准和规范要求建设审计系统,并保证审计信息的安全性、完整性以及唯一性。
1、在CC标准(信息技术通用评估准则,Common Criteria for Information Technology Security Evaluation)中,安全审计是其安全功能要求中最重要的组成部分,同时也是信息系统安全体系中必备的一个措施,它是评判一个系统是否真正安全的重要尺码。
2、国际安全管理标准及最佳实践ISO27001:2005●条款A10.10.1要求组织必须记录用户访问、意外和信息安全事件的日志,并保留一定期限,以便为安全事件的调查和取证;●条款A10.10.4要求组织必须记录系统管理和维护人员的操作行为;●条款A15.1.3明确要求组织必须保护其信息系统中的运行记录;●条款A15.2.1则要求组织信息系统负责人(CIO)必须确保所有的安全程序和过程都在正确执行,以符合组织安全策略和标准的要求。