系统安全之漏洞扫描ppt课件.ppt
2008联想网御 系统安全之漏洞扫描陈威2009年11月海南省海南省2009年政府信息安全培训年政府信息安全培训目录目录常见系统漏洞简介 漏洞扫描系统介绍 数据库的安全管理漏洞漏洞源自源自“vulnerabilityvulnerability”(脆弱性)。一般认为,漏洞是指硬件、软件或(脆弱性)。一般认为,漏洞是指硬件、软件或策略上存在的的安全缺陷,从而使得攻击者能够在未授权的情况下访问、控制系策略上存在的的安全缺陷,从而使得攻击者能够在未授权的情况下访问、控制系统。统。 标准化组织标准化组织CVECVE(Common Vulnerabilities and Exposures, 即即“公共公共漏洞与暴露漏洞与暴露”)致力于所有安全漏洞及安全问题的命名标准化,安全产品对漏洞)致力于所有安全漏洞及安全问题的命名标准化,安全产品对漏洞的描述与调用一般都与的描述与调用一般都与CVE兼容。兼容。漏洞的概念信息安全的信息安全的“木桶理论木桶理论”对一个信息系统来说,它的安全性不在于它是对一个信息系统来说,它的安全性不在于它是否采用了最新的加密算法或最先进的设备,而是由否采用了最新的加密算法或最先进的设备,而是由系统本身最薄弱之处,即漏洞所决定的。只要这个系统本身最薄弱之处,即漏洞所决定的。只要这个漏洞被发现,系统就有可能成为网络攻击的牺牲品。漏洞被发现,系统就有可能成为网络攻击的牺牲品。漏洞的发现 一个漏洞并不是自己突然出现的,必须有人发现它。这个工作主要是一个漏洞并不是自己突然出现的,必须有人发现它。这个工作主要是由以下三个组织之一来完成的:黑客、破译者、安全服务商组织。由以下三个组织之一来完成的:黑客、破译者、安全服务商组织。 每当有新的漏洞出现,黑客和安全服务商组织的成员通常会警告安全每当有新的漏洞出现,黑客和安全服务商组织的成员通常会警告安全组织机构;破译者也许不会警告任何官方组织,只是在组织内部发布消息。组织机构;破译者也许不会警告任何官方组织,只是在组织内部发布消息。根据信息发布的方式,漏洞将会以不同的方式呈现在公众面前。根据信息发布的方式,漏洞将会以不同的方式呈现在公众面前。 通常收集安全信息的途径包括:新闻组、邮件列表、通常收集安全信息的途径包括:新闻组、邮件列表、WebWeb站点、站点、FTPFTP文文档。档。 网络管理者的部分工作就是网络管理者的部分工作就是关心信息安全相关新闻,了解信息安全的关心信息安全相关新闻,了解信息安全的动态。动态。管理者需要制定一个收集、分析以及抽取信息的策略,以便获取有管理者需要制定一个收集、分析以及抽取信息的策略,以便获取有用的信息。用的信息。 漏洞对系统的威胁 漏洞对系统的威胁体现在恶意攻击行为对系统的威胁,因为只有利用硬件、漏洞对系统的威胁体现在恶意攻击行为对系统的威胁,因为只有利用硬件、软件和策略上最薄弱的环节,恶意攻击者才可以得手。软件和策略上最薄弱的环节,恶意攻击者才可以得手。 目前,因特网上已有目前,因特网上已有3 3万多个黑客站点,而且黑客技术不断创新,基本的攻击万多个黑客站点,而且黑客技术不断创新,基本的攻击手法已多达手法已多达800800多种。多种。 目前我国目前我国9595的与因特网相连的网络管理中心都遭到过境内外攻击者的攻击的与因特网相连的网络管理中心都遭到过境内外攻击者的攻击或侵入,其中银行、金融和证券机构是黑客攻击的重点。国内乃至全世界的网络或侵入,其中银行、金融和证券机构是黑客攻击的重点。国内乃至全世界的网络安全形势非常不容乐观。安全形势非常不容乐观。漏洞可能影响一个单位或公司的生存问题。漏洞可能影响一个单位或公司的生存问题。 漏洞扫描的必要性 v帮助网管人员了解网络安全状况帮助网管人员了解网络安全状况v对资产进行风险评估的依据对资产进行风险评估的依据v安全配置的第一步安全配置的第一步v向领导上报数据依据向领导上报数据依据系统脆弱性分析 信息系统存在信息系统存在着着许多漏洞许多漏洞,如,如IISIIS的安全性的安全性、CGICGI的安全性、的安全性、DNSDNS与与FTPFTP协议的协议的安全性、缓冲区溢出问题、拒绝服务和后门。由于网络的飞速发展,越来越多的安全性、缓冲区溢出问题、拒绝服务和后门。由于网络的飞速发展,越来越多的漏洞也必将随之出现漏洞也必将随之出现。IIS安全问题 WindowsWindows的的IISIIS服务器存在着很多漏洞,如拒绝服务、泄露信息、泄露源代码、服务器存在着很多漏洞,如拒绝服务、泄露信息、泄露源代码、获得更多权限、目录遍历、执行任意命令、缓冲区溢出执行任意代码等。获得更多权限、目录遍历、执行任意命令、缓冲区溢出执行任意代码等。 缓冲区溢出 lBuffer overflow attack 缓冲区溢出攻击缓冲区溢出攻击缓冲区溢出漏洞大量存在于各种软件中缓冲区溢出漏洞大量存在于各种软件中利用缓冲区溢出的攻击,会导致系统当机,获得系统特权等严重后利用缓冲区溢出的攻击,会导致系统当机,获得系统特权等严重后果。果。l最早的攻击最早的攻击1988年年UNIX下的下的Morris worml最近的攻击最近的攻击Codered 利用利用IIS漏洞漏洞SQL Server Worm 利用利用SQL Server漏洞漏洞Blaster 利用利用RPC漏洞漏洞Sasser利用利用LSASS漏洞漏洞l向缓冲区写入超过缓冲区长度的内容,造成缓冲区溢出,破坏程序的堆栈,使程序转而执行其他的指令,达到攻击的目的。l原因:程序中缺少错误检测:void func(char *str) char buf16; strcpy(buf,str);如果str的内容多于16个非0字符,就会造成buf的溢出,使程序出错。缓冲区溢出 l类似函数有strcat、sprintf、vsprintf、gets、scanf等l一般溢出会造成程序读/写或执行非法内存的数据,引发segmentation fault异常退出.l如果在一个suid程序中特意构造内容,可以有目的的执行程序,如/bin/sh,得到root权限。缓冲区溢出 l对于使用C语言开发的软件,缓冲区溢出大部分是数组越界或指针非法引用造成的。l有时并不引发溢出也能进行攻击。l现存的软件中可能存在缓冲区溢出攻击,因此缓冲区溢出攻击短期内不可能杜绝。l缓冲区溢出的危害很大:可以植入并运行攻击代码比大部分DoS攻击危害严重缓冲区溢出 l在进程的地址空间安排适当的代码l通过适当的初始化寄存器和内存,跳转到以上代码段执行l利用进程中存在的代码传递一个适当的参数如程序中有exec(arg),只要把arg指向“/bin/sh”就可以了l植入法把指令序列放到缓冲区中堆、栈、数据段都可以存放攻击代码,最常见的是利用栈缓冲区溢出 拒绝服务攻击 软件弱点是包含在操作系统或应用程序中与安全相关的系统缺陷,这软件弱点是包含在操作系统或应用程序中与安全相关的系统缺陷,这些缺陷大多是由于错误的程序编制,粗心的源代码审核,无心的副效应或些缺陷大多是由于错误的程序编制,粗心的源代码审核,无心的副效应或一些不适当的绑定所造成的。根据错误信息所带来的对系统无限制或者未一些不适当的绑定所造成的。根据错误信息所带来的对系统无限制或者未经许可的访问程度,这些漏洞可以被分为不同的等级。经许可的访问程度,这些漏洞可以被分为不同的等级。 典型的拒绝服务攻击有如下两种形式:资源耗尽和资源过载。典型的拒绝服务攻击有如下两种形式:资源耗尽和资源过载。当一个当一个对资源的合理请求大大超过资源的支付能力时就会造成拒绝服务攻击对资源的合理请求大大超过资源的支付能力时就会造成拒绝服务攻击(例(例如,对已经满载的如,对已经满载的WebWeb服务器进行过多的请求。)拒绝服务攻击还有可能服务器进行过多的请求。)拒绝服务攻击还有可能是由于软件的弱点或者对程序的错误配置造成的。区分恶意的拒绝服务攻是由于软件的弱点或者对程序的错误配置造成的。区分恶意的拒绝服务攻击和非恶意的服务超载依赖于请求发起者对资源的请求是否过份,从而使击和非恶意的服务超载依赖于请求发起者对资源的请求是否过份,从而使得其他的用户无法享用该服务资源。得其他的用户无法享用该服务资源。错误配置也会成为系统的安全隐患。这些错误配置通常发生在硬件装错误配置也会成为系统的安全隐患。这些错误配置通常发生在硬件装置,系统或者应用程序中。如果对网络中的路由器,防火墙,交换机以及置,系统或者应用程序中。如果对网络中的路由器,防火墙,交换机以及其他网络连接设备都进行正确的配置会减小这些错误发生的可能性。如果其他网络连接设备都进行正确的配置会减小这些错误发生的可能性。如果发现了这种漏洞应当请教专业的技术人员来修理这些问题。发现了这种漏洞应当请教专业的技术人员来修理这些问题。以下的两种情况最容易导致拒绝服务攻击:以下的两种情况最容易导致拒绝服务攻击: 由于由于程序员对程序错误的编制,导致系统不停的建立进程,最终耗尽资源程序员对程序错误的编制,导致系统不停的建立进程,最终耗尽资源,只能重新启动机器。不同的系统平台都会采取某些方法可以防止一些特殊的用户只能重新启动机器。不同的系统平台都会采取某些方法可以防止一些特殊的用户来占用过多的系统资源,我们也建议尽量采用资源管理的方式来减轻这种安全威来占用过多的系统资源,我们也建议尽量采用资源管理的方式来减轻这种安全威胁。胁。 还有一种情况是还有一种情况是由磁盘存储空间引起由磁盘存储空间引起的。假如一个用户有权利存储大量的文的。假如一个用户有权利存储大量的文件的话,他就有可能只为系统留下很小的空间用来存储日志文件等系统信息。这件的话,他就有可能只为系统留下很小的空间用来存储日志文件等系统信息。这是一种不良的操作习惯,会给系统带来隐患。这种情况下应该对系统配额作出考是一种不良的操作习惯,会给系统带来隐患。这种情况下应该对系统配额作出考虑。虑。 拒绝服务攻击 基于网络的拒绝服务攻击:基于网络的拒绝服务攻击: (1 1)Ping of DeathPing of Death发送长度超过发送长度超过6553565535字节的字节的ICMP Echo Request ICMP Echo Request 数据包数据包导致目标机导致目标机TCP/IPTCP/IP协议栈崩溃,系统死机或重启协议栈崩溃,系统死机或重启现有的操作系统基本上都能正确处理这种异常数据包,不会出现问题现有的操作系统基本上都能正确处理这种异常数据包,不会出现问题(2 2) TeardropTeardrop发送特别构造的发送特别构造的IP IP 数据包数据包导致目标机导致目标机TCP/IPTCP/IP协议栈崩溃,系统死锁协议栈崩溃,系统死锁现有的操作系统基本上都能正确处理这种异常数据包,不会出现问题现有的操作系统基本上都能正确处理这种异常数据包,不会出现问题拒绝服务攻击 基于网络的拒绝服务攻击基于网络的拒绝服务攻击 ( (续续) ) (3 3) SynSyn flooding flooding发送大量的发送大量的SYNSYN包包系统中处于系统中处于SYN_RECVSYN_RECV状态的状态的 socketsocket (4 4) LandLand发送一个发送一个TCP SYNTCP SYN包,包的包,包的SRC/DST IPSRC/DST IP相同,相同,SPORT/DPORTSPORT/DPORT相同相同导致目标机导致目标机TCP/IPTCP/IP协议栈崩溃,系统死机或失去响应协议栈崩溃,系统死机或失去响应现有的操作系统基本上都能正确处理这种异常数据包,不会出现问题现有的操作系统基本上都能正确处理这种异常数据包,不会出现问题拒绝服务攻击 基于网络的拒绝服务攻击基于网络的拒绝服务攻击 ( (续续) ) (5 5)SmurfSmurf攻击者冒充服务器向一个网段的广播地址发送攻击者冒充服务器向一个网段的广播地址发送ICMP echoICMP echo包包整个网段的所有系统都向此服务器回应一个整个网段的所有系统都向此服务器回应一个icmpicmp reply reply包包 (6 6)WinnukeWinnuke发送特别构造的发送特别构造的TCPTCP包,使得包,使得WindowsWindows机器篮屏机器篮屏 (7 7)分布式拒绝服务攻击分布式拒绝服务攻击 使得分散在因特网各处的机器共同完成对一台主机攻击的操作,从而使主机使得分散在因特网各处的机器共同完成对一台主机攻击的操作,从而使主机看起来好像是遭到了不同位置的许多主机的攻击。看起来好像是遭到了不同位置的许多主机的攻击。 拒绝服务攻击 DNS的安全性对对DNSDNS服务器的攻击主要有三种方法:地址欺骗、远程漏洞入侵和拒绝服务。服务器的攻击主要有三种方法:地址欺骗、远程漏洞入侵和拒绝服务。 1 1)地址欺骗。地址欺骗攻击利用了)地址欺骗。地址欺骗攻击利用了RFCRFC标准协议中的某些不完善的地方,达标准协议中的某些不完善的地方,达到修改域名指向的目的。到修改域名指向的目的。 2 2)远程漏洞入侵。)远程漏洞入侵。BINDBIND服务器软件的许多版本存在缓冲区溢出漏洞,黑客可服务器软件的许多版本存在缓冲区溢出漏洞,黑客可以利用这些漏洞远程入侵以利用这些漏洞远程入侵BINDBIND服务器所在的主机,并以服务器所在的主机,并以rootroot身份执行任意命令。身份执行任意命令。 3 3)拒绝服务。一种攻击针对)拒绝服务。一种攻击针对DNSDNS服务器软件本身服务器软件本身;另一种攻击的目标不是另一种攻击的目标不是DNSDNS服务器,而是利用服务器,而是利用DNSDNS服务器作为中间的服务器作为中间的“攻击放大器攻击放大器”,去攻击其他,去攻击其他InternetInternet上上的主机的主机。FTP协议漏洞分析 1 1)FTPFTP反弹反弹(FTP Bounce)(FTP Bounce)。 FTPFTP的代理服务特性,形成的代理服务特性,形成FTPFTP反弹漏洞。反弹漏洞。2 2)有限制的访问)有限制的访问(Restricted Access)(Restricted Access)。可能形成可能形成控制连接控制连接是可是可信任的,而信任的,而数据连接却不是。数据连接却不是。 3 3)保护密码)保护密码(Protecting Passwords)(Protecting Passwords)。漏洞:在。漏洞:在FTPFTP标准标准PR85PR85中,中,FTPFTP服服务器允许无限次输入密码;务器允许无限次输入密码;“PASSPASS”命令以明文传送密码。命令以明文传送密码。 4 4)端口盗用)端口盗用(Port (Port SteaUngSteaUng) )。漏洞:当使用操作系统相关的方法分配端口号。漏洞:当使用操作系统相关的方法分配端口号时,通常都是按增序分配。时,通常都是按增序分配。 后门 后门通常是一个服务端程序,它可能由黑客编写,被恶意攻击者通过一定手后门通常是一个服务端程序,它可能由黑客编写,被恶意攻击者通过一定手段放在目标主机上以达到非法目的;也可能是目标主机正在运行的授权应用软件,段放在目标主机上以达到非法目的;也可能是目标主机正在运行的授权应用软件,其本身具有可被攻击者利用的特性。更形象地说,第一种情况是小偷趁主人度假其本身具有可被攻击者利用的特性。更形象地说,第一种情况是小偷趁主人度假期间,在房主院子后面为自己打造了一个后门,并稍加装饰,使人轻易发现不了期间,在房主院子后面为自己打造了一个后门,并稍加装饰,使人轻易发现不了他的杰作;第二种情况可能是主人为了方便,本来就在院子后面留有一门,但由他的杰作;第二种情况可能是主人为了方便,本来就在院子后面留有一门,但由于疏忽竟然忘了上锁,这就给小偷以可乘之机。当然,在第一种情况下,若小偷于疏忽竟然忘了上锁,这就给小偷以可乘之机。当然,在第一种情况下,若小偷在主人眼皮底下开工,自然需要更高超的技术,通常人们所说的特洛伊木马就是在主人眼皮底下开工,自然需要更高超的技术,通常人们所说的特洛伊木马就是这种情况。这种情况。 很多网管软件也有类似的功能很多网管软件也有类似的功能,若被误用或滥用,后果会非常严重。,若被误用或滥用,后果会非常严重。 8.1.2 8.1.2 漏洞的发现漏洞的发现 目录目录 常见系统漏洞简介漏洞扫描系统介绍 数据库的安全管理扫描技术与原理 扫描是检测扫描是检测InternetInternet上的计算机当前是否是活动的、提供了什么样的服务,上的计算机当前是否是活动的、提供了什么样的服务,以及更多的相关信息,主要使用的技术有以及更多的相关信息,主要使用的技术有PingPing扫描、端口扫描和操作系统识别。扫描、端口扫描和操作系统识别。扫描所收集的信息主要可以分为以下几种:扫描所收集的信息主要可以分为以下几种:1 1)标识主机上运行的)标识主机上运行的TCPTCPUDPUDP服务。服务。2 2)系统的结构)系统的结构(SPARC(SPARC、ALPHAALPHA、X86)X86)。3 3)经由)经由INTERNETINTERNET可以到达主机的详细可以到达主机的详细IPIP地址信息。地址信息。4 4)操作系统的类型。)操作系统的类型。 扫描的几个分类扫描的几个分类 PingPing扫描扫描:ICMPICMPTCPTCP扫描扫描UDPUDP扫描扫描端口扫描端口扫描扫描器的类型和组成 扫描器的作用就是用检测、扫描系统中存在的漏洞或缺陷。目前主要有两种扫描器的作用就是用检测、扫描系统中存在的漏洞或缺陷。目前主要有两种类型的扫描工具,即主机扫描器和网络扫描器,它们在功能上各有侧重。类型的扫描工具,即主机扫描器和网络扫描器,它们在功能上各有侧重。1 1主机扫描器主机扫描器主机扫描器又称本地扫描器,它与待检查系统运行于同一节点,执行对自身主机扫描器又称本地扫描器,它与待检查系统运行于同一节点,执行对自身的检查。它的主要功能为分析各种系统文件内容,查找可能存在的对系统安全造的检查。它的主要功能为分析各种系统文件内容,查找可能存在的对系统安全造成威胁的漏洞或配置错误。成威胁的漏洞或配置错误。 2 2网络扫描器网络扫描器 网络扫描器又称远程扫描器,一般它和待检查系统运行于不同的节点上,通网络扫描器又称远程扫描器,一般它和待检查系统运行于不同的节点上,通过网络远程探测目标节点,检查安全漏洞。远程扫描器检查网络和分布式系统的安过网络远程探测目标节点,检查安全漏洞。远程扫描器检查网络和分布式系统的安全漏洞。全漏洞。 扫描器的组成一般说来,扫描器由以下几个模块组成:一般说来,扫描器由以下几个模块组成:用户界面、扫描引擎、扫描方法集、漏洞数据用户界面、扫描引擎、扫描方法集、漏洞数据库、扫描输出报告等。整个扫描过程是由用户库、扫描输出报告等。整个扫描过程是由用户界面驱动的,首先由用户建立新会话,选定扫界面驱动的,首先由用户建立新会话,选定扫描策略后,启动扫描引擎,根据用户制订的扫描策略后,启动扫描引擎,根据用户制订的扫描策略,扫描引擎开始调度扫描方法,扫描方描策略,扫描引擎开始调度扫描方法,扫描方法将检查到的漏洞填入数据库,最后由报告模法将检查到的漏洞填入数据库,最后由报告模块根据数据库内容组织扫描输出结果。块根据数据库内容组织扫描输出结果。 典型漏洞扫描系统 目录目录 常见系统漏洞简介 漏洞扫描系统介绍数据库的安全管理背景知识:数据库安全标准 1985年,可信计算机系统评测标准(TCSEC)的颁布,为计算机安全产品的评测提供了测试和方法,指导信息安全产品的制造和应用。 1987年,美国国家计算机安全中心为TCSEC桔皮书提出可信网络解释(TNI),通常被称作红皮书。 1991年,美国国家计算机安全中心(NCSC)为TCSEC桔皮书提出可依赖数据库管理系统解释(TDI)。 CC(Common Criteria):通用标准,很多产品开始申请CC证书,比如ORACLE9i,已经通过EAL4级认证。TCSEC-TDI基本内容(一) R1 安全策略(Security Policy) R1.1 自主存取控制(Discretionary Access Control,简记为DAC) R1.2 客体重用(Object Reuse) R1.3 标记(Labels) R1.3.1 标记完整性(Label Integrity) R1.3.2 标记信息的扩散(Labeled Information Exploration) R1.3.3 主体敏感度标记(Subject Sensitivity Labels) R1.3.4 设备标记(Device Labels) R1.4 强制存取控制(Mandatory Access Control,简记为MAC) TCSEC-TDI基本内容(二) R2 责任(Accountability) R2.1 标识与鉴别(Identification & Authentication) R2.1.1 可信路径(Trusted Path) R2.2 审计(Audit) TCSEC-TDI基本内容(三) R3 保证(Assurance) R3.1 操作保证(Operational Assurance) R3.1.1 系统体系结构(System Architecture) R3.1.2 系统完整性(System Integrity) R3.1.3 隐蔽信道分析(Covert Channel Analysis) R3.1.4 可信设施管理(Trusted Facility Management) R3.1.5 可信恢复(Trusted Recovery) R3.2 生命周期保证(Life Cycle Assurance) R3.2.1 安全测试(Security Testing) R3.2.2 设计规范和验证(Design Specification & Verification) R3.2.3 配置管理(Configuration Management) R3.2.4 可信分配(Trusted Distribution) TCSEC-TDI基本内容(四) R4 文档(Documentation) R4.1 安全特性用户指南(Security Features Users Guide) R4.2 可信设施手册(Trusted Facility Manual) R4.3 测试文档(Test Documentation) R4.4 设计文档(Design Documentation)数据库系统安全级别 根据计算机系统对上述各项指标的支持情况,TCSEC-TDI将数据库系统划分为四类七个等级,依次是D、C(C1,C2)、B(B1,B2,B3)、A(A1),按系统可信程度逐渐增高,如下表所示。TCSEC-TDI安全级别划分A1验证设计(Verified Design)B3安全域(Security Domains)B2结构化保护(Structural Protection)B1 标记安全保护(Labeled Security Protection)C2受控的存取保护(Controlled Access Protection)C1自主安全保护(Discretionary Security Protection)D最小保护(Minimal Protection)D级 D级是最低级别。保留D级的目的是为了将一切不符合更高标准的系统,统统归于D组,在安全性方面几乎没有什么专门的机制来提供保障。C1级 只提供了非常初级的自主安全保护。能够实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。现有的商业系统往往稍作改进即可满足要求。C2级 实际是安全产品的最低档次,提供受控的存取保护,即将C1级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离。很多商业产品已得到该级别的认证,如Oracle公司的Oracle 7, Sybase公司的 SQL Server 11.0.6 等。B1级 标记安全保护。对系统的数据加以标记,并对标记的主体和客体实施强制存取控制(MAC)以及审计等安全机制。B1级能够较好地满足大型企业或一般政府部门对于数据的安全需求,这一级别的产品才认为是真正意义上的安全产品。满足此级别的产品前一般多冠以“安全”(Security)或“可信的”(Trusted)字样,作为区别于普通产品的安全产品出售,如Oracle公司的Trusted Oracle 7和ORACLE 9i, Sybase公司的Secure SQL Server version 11.0.6等。B2级 结构化保护。建立形式化的安全策略模型并对系统内的所有主体和客体实施DAC和MAC。 现在还没有符合B2标准的数据库产品。B3级 安全域。该级的TCB必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。A1级 验证设计,即提供B3级保护的同时给出系统的形式化设计说明和验证以确信各安全保护真正实现。小结 B2以上的系统标准更多地还处于理论研究阶段,产品化以至商品化的程度都不高,其应用也多限于一些特殊的部门如军队等。但美国正在大力发展安全产品,试图将目前仅限于少数领域应用的B2安全级别或更高安全级别下放到商业应用中来,并逐步成为新的商业标准。支持自主存取控制的DBMS大致属于C级,而支持强制存取控制的DBMS则可以达到B1级。数据库安全技术 访问控制 加密、证书 标识和鉴别 购买:关键业务少使用MS的产品; 安装:不要使用缺省配置 部署:多层部署; 开发:开发环境与业务环境隔离;不要硬编码口令 应用具有IDS+IPS功能,恢复,日志,硬拷贝 一定不要自己设计加密算法和公式!数据库安全策略数据库安全策略是应该重视的关键问题之一,为了对抗常见的威胁,可以在如下几个方面选择安全策略: 1.1 数据备份策略 1.2 漏洞弥补策略 1.3 数据安全性策略 1.4 用户安全性策略 1.5 数据库管理员安全性策略 1.6 应用程序开发人员的安全性策略 1.7 系统安全性策略数据备份策略 确保当系统当机、存储介质受到破坏、用户误操作时,数据信息不至于丢失。数据备份策略可以采取的策略有:机器备份介质备份应用备份网络备份异地备份漏洞弥补策略 扫描并弥补潜在漏洞,有专人跟踪漏洞发布情况。 肯定存在不知道的或者不能马上弥补的漏洞,要在其他方面积极采取措施来应对这种情况,以使整个业务系统正常运行。 数据安全性策略 数据安全性策略应建立在数据重要性基础上。 如果数据不是很重要,那么数据安全性策略可以稍松一些。 如果很重要,则应该有谨慎的安全性策略来 维护对数据对象的有效控制。 用户安全性策略 1) 一般用户的安全性(口令与权限) A. 口令的安全性。如果用户是通过数据库进行用户身份的确认,那么建议使用口令加密的方式与数据库进行连接,举例:ORACLE系统的设置方法如下: 在客户端的oracle.ini文件中设置ora_encrypt_login数为true; 在服务器端的initORACLE_SID.ora文件中设置dbling_encypt_ login参数为true。用户安全性策略 1) 一般用户的安全性 B. 权限管理。对于那些用户很多,应用程序和数据对象很丰富的数据库,应充分利用“角色”这个机制对权限进行有效管理。用户安全性策略 2) 终端用户的安全性(权限) 必须针对终端用户制定安全性策略。例如,对于一个有很多用户的大规模数据库, 安全管理员可以决定用户组分类,为这些用户组创建角色,把所需的权限授予每一个角色,然后为用户分配相应角色。当处理特殊的应用要求时,安全管理员也必须明确地把一些特定的权限要求授予用户。数据库管理员安全性策略 (1)及时更改有高权限用户的缺省口令 当数据库创建好以后,立即更改有管理权限的用户的口令(如ORACLE的sys和system的口令),防止非法用户访问数据库。因为有管理权限的用户连入数据库后可以用各种方式对数据库进行改动,威胁很大。数据库管理员安全性策略(2) 保护管理者与数据库的连接 应该只有数据库管理员才能用管理权限连入数据库。 (3) 使用角色对管理者权限进行管理 应该合理设置和分配角色给用户,做到权力制衡。应用开发人员安全性策略 (1) 应用程序开发人员和他们的权限 (2) 应用程序开发人员的环境 (3) 自由和受控的应用程序开发 (4) 应用程序开发人员的角色和权限 (5) 加强应用程序开发人员的空间限制 (6) 应用开发安全管理应用开发人员和权限 应用程序开发人员是唯一一类需要特殊权限组才能完成自己工作的数据库用户 开发者需要诸如create table等系统权限。为了限制开发者对数据库的操作,只应该把一些特定的系统权限授予开发者。应用开发人员的环境 A.程序开发者不应与终端用户竞争数据库资源 B.应用程序开发人员不能损害数据库其他应用产品自由和controlled应用开发 应用程序开发人员有以下两种权限:自由开发和受控开发 A.自由开发允许应用程序开发人员创建自己的模式对象,包括table, index, procedure, package等,允许应用程序开发人员开发独立于其他对象的应用程序。 自由和controlled应用开发 应用程序开发人员有以下两种权限: B.受控开发不允许应用程序开发人员创建自己的模式对象,所有需要的table, procedure等都由数据库管理员创建,保证了数据库管理员能完全控制数据空间的使用以及访问数据库信息的途径。应用开发人员角色和权限 数据库安全管理员能创建角色来管理典型的应用程序开发人员的权限要求 create系统权限常常被授予应用程序开发人员,以便让开发者创建自己的数据对象。加强开发者空间限制 数据库安全管理者应该为每个应用开发人员设置以下的一些限制: A. 开发者可以创建table或index的表空间; 加强开发者空间限制 数据库安全管理者应该为每个应用开发人员设置以下的一些限制:B. 在每一个表空间中,开发者所拥有的空间份额。可能需要一应用程序管理者来负责以下的任务:1.为每个应用程序创建角色以及管理每个应用程序的角色;2.创建和管理应用程序需要使用的数据对象;3.维护和更新应用程序代码和存储过程和程序包。应用开发安全管理要进行严格的软件配置管理,尽可能使用自动化的配置管理支持工具。系统安全性策略 (1) 管理数据库用户 数据库用户要访问数据库信息,因此应该维护和管理数据库用户的安全性。按照数据库系统的规模和管理数据库用户所需工作量的大小,数据库安全管理员可能只是拥有create、alter、drop等特权的特殊用户,或者是拥有这些权限的一组用户。应注意,只有那些值得信任的个人才应该拥有管理这些数据库用户的权限。系统安全性策略 (2) 用户身份确认数据库用户可以通过操作系统、网络服务或数据库进行身份确认。通过主机操作系统进行用户身份认证的优点有: A. 用户能更快、更方便地联入数据库; B. 通过操作系统对用户身份进行集中控制:如果操作系统与数据库用户信息一致,那么DBMS无须存储和管理用户名以及密码; C. 用户进入数据库和操作系统的审计信息一致。系统安全性策略 (3) 操作系统安全性 A.数据库管理员必须有create和delete文件的权限; B. 一般数据库用户不应该有create或delete与数据库相关文件的权限; C. 如果操作系统能为数据库用户分配角色,那么安全管理员必须有修改操作系统帐户安全属性的操作系统权限。