网络安全 频道

通过漏洞管理方式提高数据库安全

  【IT168 资讯】以“互联网安全新思维”为主题的OWASP2011亚洲峰会在11月8日-9日成功举办。本届大会以“网络安全产品测评”、“OWASP应用安全技术”“业务安全发展新思路”“云安全”等多个角度展开深入的讨论。Larry Man分享了《技术数据控制:通过漏洞管理方式,提高数据库安全》,从三个方面进行了详细的介绍:一是数据安全和数据库安全,二是如何建立健康安全的数据库环境,三是介绍整体的方案。

通过漏洞管理方式提高数据库安全
▲Larry Man:《技术数据控制:通过漏洞管理方式,提高数据库安全》

  Larry Man介绍到:“我们公司这几年来主要专注于开发数据安全系统,数据安全软件,今天我希望给大家介绍整体的是数据安全解决方案。今天这个演讲,我们分三部分:第一部分,数据安全整体发展方向,我们通过如何搞到数据,接下来是如何保护数据库安全,数据是多方面的东西,有多方面的考虑,要考虑静态和动态的,这里介绍整体数据解决方案。”

  在数据库安全领域,很多公司他们感觉有一种错误的理解,他们感觉他们数据库安全,其实他们没有利用一些方案,利用一些工具去证实他们的数据库是安全的。我们通过美国一家公司做出的调查,43%的数据库保存关键的数据,80%的公司他们认为数据库安全已经足够,但是一半以上的公司在之前以上的公司发生了安全事件,有些事情有可能没有被媒体曝光,有73%的公司预计数据库攻击会增加。他们有一个错误的观念,他们觉得数据库是安全,其实安全是不存在的。

  我们希望通过多方面的讨论去讲出未来数据库的发展,我们对数据库的发展,首先之前十年,我们通过防火墙直接对数据进行保护,但是这些趋势,以后会再改变,我们会从直接保护到间接的保护,通过加密、解密的方法通过审计的方法对数据进行保护。这个保护包括我们对数据库落点的扫描,建立健康稳定的数据库,也可以通过我们认证的手法对数据进行保护。这里具体讨论一下,如果可以把数据分成两类,数据库里面的数据,我们叫做动态的数据,因为这个数据随时会改变,数据库以外的数据我们叫做静态的数据。现在我们对这两个数据的保护,对于静态的数据通过加密解密,对于数据库里面的数据,最好的方法通过建立健康、安全数据库环境对数据库进行保护。

  接下来我重点说一下怎么样对数据库里面的数据进行保护。这部分我们分成四部分:第一部分,我们说一下如何去控制数据库里面资源的利用。第二部分,数据库应用程序的完整性,数据库是一个应用程序,它也会遭到一些病毒、木马的漏洞的攻击。我们会详细说一下如何保证我们应用程序的完整性。第三部分,或密码控制控制。第四部分,操作系统的完整性。

  访问控制

  数据库里面我们有很多资源,包括读、更新、更改、执行等,因为数据库是很庞大的系统,包括自己开发的数据安全系统也会利用到数据库。我们必须要对这些权限进行很好的控制,如果你可以对输入权限进行很好的控制,就可以避免或者减少SQL注入造成的伤害,建立一个健康安全环境数据库的最终的目的,保护我们的数据。

  这个层面主要是控制用户的权限,数据库里面有不同的用户,每个用户权限不同,领导权力比较大一点,我们必须要对每个用户对数据库的资源的应用进行很好的控制,主要是防止内部威胁、管理员、程序员、外包员工、临时、商业间谍等等。

  外部威胁,通过数据的保护,保护数据的安全。有些数据库的列表有一些敏感的数据,对谁可以访问这些数据要进行很好的权限的控制。

  我们有一个Oracle的有很多表,里面包含很多敏感数据,比如table里面有很多没有加密的,如果你对数据库有权限访问,就很容易不数据拿出来,对数据库进行攻击或者拿到一些你不应该拿的信息。建立安全健康数据库过程之中,必须要把用户访问权限去掉。

  应用程序的完整性,指的是一个完整真正状态,完整性搜索的话如果造成很大威胁,如果应用程序受到病毒感染了或者有后门完整性就受损了。这里我们主要说的是要保证数据库的完整性,必须保证应用程序是干净的,没有受到感染。我这里介绍几个例子具体说一下,如何保证我们数据库程序是没有被感染的,我们要谈的是Global Temp Stored procedure,如果每一个人都可以生成SQl语句,如果用户A生成,用户B执行的话,就像病毒一。

  在Oracle的实例,Oracle里面有一个Database link buffer overflow,用户只看到的是一个B数据库,通过指针指不同的数据库,对于我们开放式应用电脑环境有好处,可以更好的利用数据库资源。在这里面主要会出现buffer overflow,主要是在字符串过一千的时候,当运行SELECT命令时就会出现buffer overflow。如果你这个数据库语句没有控制好的话,就会造成数据库完整性受损。

  识别或密码控制,数据库里面我们必须保证密码的有效期,必须保证密码的强度,这方面我们建立健康、安全数据库的时候需要考虑的地方。主要目的是限制、减少密码被破解的机率。数据库里面怎么通过对密码进行检测呢?把数据库存的一些密码和字典式的密码进行比较,有些用户用的密码很简单,或者用他的姓名或者他自己熟悉的东西,我们必须要对数据库用户所用的密码强度进行定期的检测,保证数据库密码强度不被容易拆掉。

  操作系统的完整性,应用依赖操作系统,我们必须保证操作系统的用户不会对数据库的资源进行访问。比如说在MSSQL里面有很多实例,只有某些授权的操作系统用户才可以有访问MSSQL注册表值的权限。

  最后介绍一下数据库安全的方案,怎么保护我们所有的数据?我们通过软的方法,通过审计的方法,通过控制的方法去控制保护数据。

  我们通过权限、通过时间、通过水印方法进行保护。比如我们有很多文档和需要进行交流共享,我们怎么去控制这个数据不被他们拿走或在网上转载。其中一个方法是权限控制,一种方法就是通过动态水印,最后一张纸的技术简介,前面是数据的内容,后面是权限的信息,审计的信息这个信息你可以说阅读者打开电脑,打开这个数据的人,有可能是他的姓名,可以把他的样貌特征放在数据库里面,就可以防止随意把数据截取。重要的数据必须有一个共享的过程,在看的过程中,不希望通过劫屏或者相机不它拿走放到网上去,我们通过水印的方法,把他的身份打在上面,就拿不走了,这个身份密密麻麻分布在数据的后面,可以用任何的颜色和方法把它放在后面,很大程度上就防止了敏感数据的流通,不能只有看的人才可以把它记下来,记在脑子里面,不可以用其他工具拿走,这是不直接的,是一个软的,而且是通过审计的方法把数据保护下来,减少数据的风险。

  我们如何保护数据库里面的数据,我们通过建立健康很好的控制里面对资源的权限控制的方法保护数据,建立良好的数据库体系,可以建立安全的生命周期,我们可以通过寻找数据库作为发现,发现主要找出公司里面有多少数据库,数据库里面存了多少数据。十个数据库里面只有三个四个数据库是准确的,我们要选择性对数据库进行保护,静态保护方案给水印或者什么,我们选择性对数据进行保护。我们把数据分类以后,我们就可以对重要的数据进行评估,我们进行落地扫描、漏洞控制把问题找出来。问题找出来以后,把它分成高风险,中风险,低风险,严重的问题,可以把它先解决,有一些优先次序。下一步对它进行修补,把问题找出来,用户A权限过大了,哪个程序很多人都可以访问,我们就可以把权限更好的控制。

  修补过程保证了我们之前把这些问题解决,但是有可能在问题解决安全部门把问题找出来了,交给IT部门解决,IT部门不一定执行命令,我们如何保证IT部门执行的单位真正把这些问题了,用户权限控制好了,我们还需要监控机制。刚才我们的动态水印也是监控数据,这种保护可以减少风险。用户A应该没有权限这个列表了,我监控了一下他在某一个时段有没有对这个数据进行访问,如果有访问,说明IT部门没有把这个事情做好。如果受到外部的攻击的话,会主动发现问题进行主动防护,包括把数据库进程去掉,把用户账号屏蔽掉,这也是数据库监控,包括数据安全免受黑客的攻击。


  相关链接:

  OWASP2011演讲PPT下载专辑http://topic.it168.com/factory/owasp_2011/index.html
  OWASP2011专题报道http://safe.it168.com/topic/2011/11-7/OWASP2011/index.html

0
相关文章