版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目七电子商务网站安全【项目综述】该项目主要从服务器系统病毒漏洞、SQL注入安全、数据库安全等几个方面让学生学习电子商务类网站存在的安全问题及防范措施。让学生通过实际操作来学习基于windows系统的安全防范的措施。任务一:操作系统病毒防范【任务介绍】通过此任务的学习,学生可以完成Windows平台上杀毒软件、防火墙等软件安装和配置方法,并学习基于Windows系统的安全配置方法。【任务分析】计算机病毒是指编制者在计算机程序中插入的破坏性计算机功能或者毁坏数据以影响计算机使用,并能自我复制的一组计算机指令或者程序代码。象细菌一样,并能自我复制。计算机病毒扩散性很强,又常常难以根除。它们能把自身附着在各种类型的文件上,比如.EXE.RAR....等等,有时会替换正常的系统文件。当文件被复制或从一个用户传递到另一个用户时,它们就随同文件一起蔓延开来。木马是一类恶意程序,木马是有隐藏性的、自发性的可被用来进行恶意行为的程序,多不会直接对电脑产生危害,而是以控制为主。一般来说,设计成熟的木马都有一个信息反馈机制。所谓信息反馈机制是指木马成功安装后会收集一些服务端的软硬件信息,并通过E-MAIL,IRC或ICO的方式告知控制端用户。从反馈信息中控制端可以知道服务端的一些软硬件信息,包括使用的操作系统,系统目录,硬盘分区况,系统口令等,在这些信息中,最重要的是服务端IP,因为只有得到这个参数,控制端才能与服务端建立连接。木马和病毒都是一种人为的程序,都属于电脑病毒,为什么木马要单独提出来说呢?大家都知道以前的电脑病毒的作用,其实完全就是为了搞破坏,破坏电脑里的资料数据,除了破坏之外其它无非就是有些病毒制造者为了达到某些目的而进行的威慑和敲诈勒索的作用,或为了炫耀自己的技术。“木马”不一样,木马的作用是赤裸裸的偷偷监视别人和盗窃别人密码、数据等,如盗窃管理员密码、子网密码搞破坏,或者好玩,偷窃上网密码用于它用,游戏帐号,股票帐号,甚至网上银行帐户等。达到偷窥别人隐私和得到经济利益的目的。所以木马的作用比早期的电脑病毒更加有用。更能够直接达到使用者的目的!导致许多别有用心的程序开发者大量的编写这类带有偷窃和监视别人电脑的侵入性程序,这就是目前网上大量木马泛滥成灾的原因。鉴于木马的这些巨大危害性和它与早期病毒的作用性质不一样,所以木马虽然属于病毒中的一类,但是要单独的从病毒类型中间剥离出来。独立的称之为“木马”程序。针对病毒和木马的入侵,操作系统的安全就更需要有安全的防卫措施,如安装杀毒软件等,同时也要考虑到系统本身的安全,关闭不必要的端口等等。下面我们通过任务的实施来学习如何加固系统的安全,防范系统的病毒入侵。【任务实施】系统病毒的防范措施有很多,除了依靠第三方软件来保护安全外,更重要的是不要开启过的无用的服务及端口,本任务重点讲述四个子任务:依靠杀毒软件防护病毒,限制多余端口的出入,关闭危险有害的端口,清楚系统多余启动项目。子任务1:安装配置杀毒软件 步骤一:下载杀毒软件 常用国内杀毒软件地址:瑞星/金山/江民/ 360卫士/
以瑞星杀毒软件为例,如图1所示。步骤步骤二:下载后双击安装包,如图2所示。
图2步骤三:选择“中文简体”,点击【确定】开始安装,安装成功后如图3所示。安装完成后提示重启动计算机,重新启动即可。重新启动后会有设置向导,默认下一步完成即可。步骤四:选择“设置”,找到“查杀设置”—“开机查杀”,选择“所有的服务和驱动”如图4所示。
图4步骤五:在“设置”选项卡内,找到“电脑防护”—“木马行为防御”,选择“自动处理”,等级设置为“推荐”,启用“启用危险动作分析”及“自动放过签名程序”如图5所示。图5步骤六:在“设置”选项卡内,找到“高级设置”—“云安全”,选择“加入瑞星云安全计划”,邮箱可以不填写,如图6所示。子任务2:限制端口出入端口出入限制只针对服务器来设置,如windowsserver2000系统,个人用户来说既繁琐又没有太多意义。步骤一:【开始】—【控制面板】—【网络连接】。如图7所示。步骤二:右键单击【本地连接】图标,单击【属性】,打开“本地连接”属性窗口,如图8所示。步骤三:选择“Internet协议(TCP/IP)”项目,单击“属性”按钮,打开“Internet协议(TCP/IP)属性”对话框,如图9所示。步骤四:单击“高级”按钮打开“高级TCP/IP设置”对话框该窗口中切换到“选项”界面,如图10所示。步骤五:在“可选设置”中选择“TCP/IP筛选”随后单击“属性”打开“TCP/IP筛选”对话框,勾选“启用TCP/IP筛选”复选框,这样系统会通过该连接按照所配置的规则限制所有端口的出入,如图11所示。步骤六:为了限制服务器只提供web服务,并且端口限制为80端口,那么我们可以添加80端口,并且开启特定IP协议(80协议),如图12所示。子任务3:关闭有害端口对客户端使用用户来说,关闭有害端口可以有效防止一些病毒通过端口入侵,如windowsxp系统。该任务学习在windows下如何关闭23、135、445、139、3389等端口。(1)学习关闭23端口:23端口主要用于Telnet(远程登录)服务,是Internet上普遍采用的登录和仿真程序。端口说明:23端口主要用于Telnet(远程登录)服务,是Internet上普遍采用的登录和仿真程序。同样需要设置客户端和服务器端,开启Telnet服务的客户端就可以登录远程Telnet服务器,采用授权用户名和密码登录。登录之后,允许用户使用命令提示符窗口进行相应的操作。在Windows中可以在命令提示符窗口中,键入“Telnet”命令来使用Telnet远程登录。操作建议:利用Telnet服务,黑客可以搜索远程登录Unix的服务,扫描操作系统的类型。而且在Windows2000中Telnet服务存在多个严重的漏洞,比如提升权限、拒绝服务等,可以让远程服务器崩溃。Telnet服务的23端口也是TTS(TinyTelnetServer)木马的缺省端口。所以,建议关闭23端口。步骤一:【开始】—【控制面板】—【管理工具】,双击打开。如图13所示。步骤二:在“管理工具”界面,选择“服务”,双击打开。如图14所示。步骤三:在“服务”对话框的服务列表中,找到Telnet服务,右键单击,选择“属性”。如图15所示。步骤四:在“Telnet的属性”对话框中,将启动类型改为“禁用”。如图16所示。步骤五:单击“停止”按钮,将服务状态改变为“停止”,单击“确定”,完成设置。如图1-17(2)学习关闭135端口:135端口主要用于使用RPC(RemoteProcedureCall,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务。端口说明:135端口主要用于使用RPC(RemoteProcedureCall,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务,通过RPC可以保证在一台计算机上运行的程序可以顺利地执行远程计算机上的代码;使用DCOM可以通过网络直接进行通信,能够跨包括HTTP协议在内的多种网络传输。端口漏洞:相信去年很多Windows2000和WindowsXP用户都中了“冲击波”病毒,该病毒就是利用RPC漏洞来攻击计算机的。RPC本身在处理通过TCP/IP的消息交换部分有一个漏洞,该漏洞是由于错误地处理格式不正确的消息造成的。该漏洞会影响到RPC与DCOM之间的一个接口,该接口侦听的端口就是135。操作建议:为了避免“冲击波”病毒的攻击,建议关闭该端口。步骤一:【开始】—【运行】,输入“dcomcnfg”,单击“确定”,打开组件服务。如图18所示。步骤二:在弹出的“组件服务”对话框中,选择“计算机”选项,在“计算机”选项右边,右键单击“我的电脑”,选择“属性”。如图19所示。步骤三:在出现的“我的电脑属性”对话框“默认属性”选项卡中,去掉“在此计算机上启用分布式COM”前的勾。如图20所示。步骤四:选择“默认协议”选项卡,选中“面向连接的TCP/IP”,单击“删除”/“移除”按钮。如图21所示。步骤五:单击“确定”按钮,设置完成,重新启动计算机后即可关闭135端口。(3)学习关闭445端口:445端口是一个毁誉参半的端口,有了它我们可以在局域网中轻松访问各种共享文件夹或共享打印机,但也正是因为有了它,黑客们才有了可乘之机,他们能通过该端口偷偷共享你的硬盘,甚至会在悄无声息中将你的硬盘格式化掉!我们所能做的就是想办法不让黑客有机可乘,封堵住445端口漏洞。步骤一:【开始】—【运行】,输入“regedit”,单击“确定”按钮,打开注册表。如图22所示。步骤二:找到注册表项“HKEY_LOCAL_MACHINE\System\CurrentControlset\Services\NetBT\Parameters”。如图23所示。步骤三:选择“Parameters”项,右键单击,选择“新建”——“DWORD值”。如图24所示。步骤四:将DWORD值命名为“SMBDeviceEnabled”。如图25所示。步骤五:右键单击“SMBDeviceEnabled”值,选择“修改”。如图26所示。步骤六:在出现的“编辑DWORD值”对话框中,在“数值数据”下,输入“0”,选择“16进制”,单击“确定”按钮,完成设置。如图27所示。(4)学习关闭139端口:139端口是为“NetBIOSSessionService”提供的,主要用于提供Windows文件和打印机共享以及Unix中的Samba服务。端口说明:139端口是为“NetBIOSSessionService”提供的,主要用于提供Windows文件和打印机共享以及Unix中的Samba服务。在Windows中要在局域网中进行文件的共享,必须使用该服务。比如在Windows98中,可以打开“控制面板”,双击“网络”图标,在“配置”选项卡中单击“文件及打印共享”按钮选中相应的设置就可以安装启用该服务;在Windows2000/XP中,可以打开“控制面板”,双击“网络连接”图标,打开本地连接属性;接着,在属性窗口的“常规”选项卡中选择“Internet协议(TCP/IP)”,单击“属性”按钮;然后在打开的窗口中,单击“高级”按钮;在“高级TCP/IP设置”窗口中选择“WINS”选项卡,在“NetBIOS设置”区域中启用TCP/IP上的NetBIOS。端口漏洞:开启139端口虽然可以提供共享服务,但是常常被攻击者所利用进行攻击,比如使用流光、SuperScan等端口扫描工具,可以扫描目标计算机的139端口,如果发现有漏洞,可以试图获取用户名和密码,这是非常危险的。操作建议:如果不需要提供文件和打印机共享,建议关闭该端口。步骤一:【开始】—【控制面板】—【管理工具】—【网络连接】,右键“本地连接”,选择“属性”,如图28所示。步骤二:在出现的“本地连接属性”对话框中,选择“Internet协议(TCP/IP)”,双击打开。如图29所示。步骤三:在出现的“Internet协议(TCP/IP)属性”对话框中,单击“高级”按钮。如图30所示。步骤四:在出现的“高级TCP/IP设置”对话框中,选择“WINS”选项卡。如图31所示。步骤五:在“WINS”选项卡,“NetBIOS设置”下,选择“禁用TCP/IP上的”NetBIOS,单击“确定”,重新启动后即可关闭139端口。如图32所示。(5)学习关闭3389端口:3389又称TerminalService,服务终端。在WindowsNT中最先开始使用的一种终端,在Win2000的Professional版本中不可以安装,在Server或以上版本才可以安装这个服务,其服务端口为3389。由于使用简单,方便等特点,一直受系统管理员的青睐。也正式因为他的简便,不产生交互式登陆,可以在后台操作,因此也受到了黑客朋友的喜爱,事实可以说明,现在大多数朋友在入侵之后,都想打开windows终端服务,甚至不惜重启对方的计算机,也要把终端服务安装上,由此可见他的普遍性。在在XP系统中又叫做“远程桌面”。步骤一:右键单击“我的电脑”,选择“属性”。如图33所示。步骤二:在弹出的“系统属性”对话框中,选择“远程”选项卡。如图34所示。步骤三:在“远程”选项卡下,去掉远程协助和远程桌面两个选项框里的勾。如图35所示。子任务4:清除多余启动项目前流行的病毒往往会随开机时自动运行,清理启动项目后,既能保障系统病毒的自动运行,又能提高系统启动速度。步骤一:【开始】—【运行】,输入“msconfig”,点击确定后出现“系统配置实用程序”界面。如图36所示。步骤二:找到右面的“启动”选项卡,点击右下角的“全部禁用”按钮。如图37所示。步骤三:然后根据自己的实际需求情况,选择需要启动的选项,一般情况下只选择“.ctfmon.exe”项目即可,此项目是输入法程序启动项目,也是必选项。其他的可以都不选择,其中杀毒软件启动项目会自动在开机的时候添加上,不需要考虑,如360、瑞星等。如图38所示。步骤四:点击“确定”按钮,重新启动计算机即可生效。【知识扩展】一、计算机端口概念计算机“端口”是英文port的义译,可以认为是计算机与外界通讯交流的出口。其中硬件领域的端口又称接口,如:USB端口、串行端口等。软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。1.按端口号可分为3大类(1)公认端口(WellKnownPorts):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。(2)注册端口(RegisteredPorts):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。(3)动态和/或私有端口(Dynamicand/orPrivatePorts):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。2.常用端口介绍一些端口常常会被黑客利用,还会被一些木马病毒利用,对计算机系统进行攻击,以下是计算机端口的介绍。(1)8080端口端口说明:8080端口同80端口,是被用于WWW代理服务的,可以实现网页浏览,经常在访问某个网站或使用代理服务器的时候,会加上“:8080”端口号,比如:8080。端口漏洞:8080端口可以被各种病毒程序所利用,比如BrownOrifice(BrO)特洛伊木马病毒可以利用8080端口完全遥控被感染的计算机。另外,RemoConChubo,RingZero木马也可以利用该端口进行攻击。(2)端口:21服务:FTP说明:FTP服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方****。这些服务器带有可读写的目录。木马DolyTrojan、Fore、InvisibleFTP、WebEx、WinCrash和BladeRunner所开放的端口。(3)端口:22服务:Ssh说明:PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点,如果配置成特定的模式,许多使用RSAREF库的版本就会有不少的漏洞存在。
(4)端口:23服务:Telnet说明:远程登录,入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术,入侵者也会找到密码。木马TinyTelnetServer就开放这个端口。
(5)端口:25服务:SMTP说明:SMTP服务器所开放的端口,用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭,他们需要连接到高带宽的E-MAIL服务器上,将简单的信息传递到不同的地址。木马Antigen、EmailPasswordSender、HaebuCoceda、ShtrilitzStealth、WinPC、WinSpy都开放这个端口。
(6)端口:80服务:HTTP说明:用于网页浏览。木马Executor开放此端口。
(7)端口:102服务:Messagetransferagent(MTA)-X.400overTCP/IP说明:消息传输代理。
(8)端口:109服务:PostOfficeProtocol-Version3说明:POP3服务器开放此端口,用于接收邮件,客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交换缓冲区溢出的弱点至少有20个,这意味着入侵者可以在真正登陆前进入系统。成功登陆后还有其他缓冲区溢出错误。
(9)端口:110服务:SUN公司的RPC服务所有端口
说明:常见RPC服务有rpc.mountd、NFS、rpc.statd、rpc.csmd、rpc.ttybd、amd等
(10)端口:119服务:NetworkNewsTransferProtocol说明:NEWS新闻组传输协议,承载USENET通信。这个端口的连接通常是人们在寻找USENET服务器。多数ISP限制,只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将允许发/读任何人的帖子,访问被限制的新闻组服务器,匿名发帖或发送SPAM。
(11)端口:135服务:LocationService说明:Microsoft在这个端口运行DCERPCend-pointmapper为它的DCOM服务。这与UNIX111端口的功能很相似。使用DCOM和RPC的服务利用计算机上的end-pointmapper注册它们的位置。远端客户连接到计算机时,它们查找end-pointmapper找到服务的位置。HACKER扫描计算机的这个端口是为了找到这个计算机上运行ExchangeServer吗?什么版本?还有些DOS攻击直接针对这个端口。
(12)端口:137、138、139服务:NETBIOSNameService说明:其中137、138是UDP端口,当通过网上邻居传输文件时用这个端口。而139端口:通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于windows文件和打印机共享和SAMBA。还有WINSRegisrtation也用它。
(13)端口:161服务:SNMP说明:SNMP允许远程管理设备。所有配置和运行信息的储存在数据库中,通过SNMP可获得这些信息。许多管理员的错误配置将被暴露在Internet。Cackers将试图使用默认的密码public、private访问系统。他们可能会试验所有可能的组合。SNMP包可能会被错误的指向用户的网络。3.有关端口的操作(1)查看端口Windows2000/XP/Server2003中要查看端口,可以使用NETSTAT命令:“开始”>“运行”>“cmd”,打开命令提示符窗口。在命令提示符状态下键入“NETSTAT-a-n”,按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态。命令格式:Netstat-a–e–n–o–s-a表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。-e表示显示以太网发送和接收的字节数、数据包数等。-n表示只以数字形式显示所有活动的TCP连接的地址和端口号。-o表示显示活动的TCP连接并包括每个连接的进程ID(PID)。-s表示按协议显示各种连接的统计信息,包括端口号。(2)关闭端口比如在Windows2000/XP中关闭SMTP服务的25端口,可以这样做:首先打开“控制面板”,双击“管理工具”,再双击“服务”。接着在打开的服务窗口中找到并双击“SimpleMailTransferProtocol(SMTP)”服务,单击“停止”按钮来停止该服务,然后在“启动类型”中选择“已禁用”,最后单击“确定”按钮即可。这样,关闭了SMTP服务就相当于关闭了对应的端口。(3)开启端口如果要开启该端口只要先在“启动类型”选择“自动”,单击“确定”按钮,再打开该服务,在“服务状态”中单击“启动”按钮即可启用该端口,最后,单击“确定”按钮即可。另外在网络连接属性中,选择“TCP/IP协议”属性,打开高级TCP/IP设置,在选项的那个页面打开TCP/IP筛选,在出现的设置窗口中也可以根据实现情况设置端口的打开和关闭,默认是未启用TCP/IP筛选。二、TCP/IP协议
1.定义TCP/IP指传输控制协议/网际协议(TransmissionControlProtocol/InternetProtocol)。TCP/IP定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。TCP/IP(传输控制协议/网际协议)是互联网中的基本通信语言或协议。在私网中,它也被用作通信协议。当你直接网络连接时,你的计算机应提供一个TCP/IP程序的副本,此时接收你所发送的信息的计算机也应有一个TCP/IP程序的副本。TCP/IP是一个两层的程序。高层为传输控制协议,它负责聚集信息或把文件拆分成更小的包。这些包通过网络传送到接收端的TCP层,接收端的TCP层把包还原为原始文件。低层是网际协议,它处理每个包的地址部分,使这些包正确的到达目的地。网络上的网关计算机根据信息的地址来进行路由选择。即使来自同一文件的分包路由也有可能不同,但最后会在目的地汇合。TCP/IP使用客户端/服务器模式进行通信。TCP/IP通信是点对点的,意思是通信是网络中的一台主机与另一台主机之间的。2.OSI模型及TCP/IP协议族数据链路层包括了硬件接口和协议ARP,RARP,这两个协议主要是用来建立送到物理层上的信息和接收从物理层上传来的信息;
网络层中的协议主要有IP,ICMP,IGMP等,由于它包含了IP协议模块,所以它是所有基于TCP/IP协议网络的核心。在网络层中,IP模块完成大部分功能。ICMP和IGMP以及其他支持IP的协议帮助IP完成特定的任务,如传输差错控制信息以及主机/路由器之间的控制电文等。网络层掌管着网络中主机间的信息传输。
传输层上的主要协议是TCP和UDP。正如网络层控制着主机之间的数据传递,传输层控制着那些将要进入网络层的数据。两个协议就是它管理这些数据的两种方式:TCP是一个基于连接的协议(还记得我们在网络基础中讲到的关于面向连接的服务和面向无连接服务的概念吗?忘了的话,去看看);UDP则是面向无连接服务的管理方式的协议。应用层位于协议栈的顶端,它的主要任务就是应用了。上面的协议当然也是为了这些应用而设计的,具体说来一些常用的协议功能如下:
Telnet:提供远程登录(终端仿真)服务,好象比较古老的BBS就是用的这个登陆。
FTP:提供应用级的文件传输服务,说的简单明了点就是远程文件访问等等服务;
SMTP:不用说拉,天天用到的电子邮件协议。
TFTP:提供小而简单的文件传输服务,实际上从某个角度上来说是对FTP的一种替换(在文件特别小并且仅有传输需求的时候)。
SNMP:简单网络管理协议。DNS:域名解析服务,也就是如何将域名映射成IP地址的协议。
HTTP:这是超文本传输协议,网上的图片,动画,音频,等等,都是这个协议在起作用。三、DNS服务器1.定义DNS服务器是(DomainNameSystem或者DomainNameService)域名系统或者域名服务,域名系统为Internet上的主机分配域名地址和IP地址。用户使用域名地址,该系统就会自动把域名地址转为IP地址。域名服务是运行域名系统的Internet工具。执行域名服务的服务器称之为DNS服务器,通过DNS服务器来应答域名服务的查询。
2.作用DNS服务器在互联网的作用是:把域名转换成为网络可以识别的ip地址。首先,要知道互联网的网站都是一台一台服务器的形式存在的,但是我们怎么去到要访问的网站服务器呢?这就需要给每台服务器分配IP地址,互联网上的网站无穷多,我们不可能记住每个网站的IP地址,这就产生了方便记忆的域名管理系统DNS,他可以把我们输入的好记的域名转换为要访问的服务器的IP地址。简单的说,就是为了方便我们浏览互联网上的网站而不用去刻意记住每个主机的IP地址,DNS服务器就应运而生,提供将域名解析为IP的服务,从而使我们上网的时候能够用简短而好记的域名来访问互联网上的静态IP的主机。四、注册表概念
注册表是为WindowsNT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件。16位驱动在Winnt下无法工作,所以所有设备都通过注册表来控制,一般这些是通过BIOS来控制的。在Win95下,16位驱动会继续以实模式方式设备工作,它们使用system.ini来控制。16位应用程序会工作在NT或者Win95下,它们的程序仍然会参考win.ini和system.ini文件获得信息和控制。在没有注册表的情况下,操作系统不会获得必须的信息来运行和控制附属的设备和应用程序及正确响应用户的输入。【任务评价】一、评价方法本任务以小组为单位上机操作杀毒软件的安装及启动项的筛选。学生本人根据在本任务中的作用和贡献进行自我评价,小组根据每位学生的自评和完成任务的情况对本组每位学生进行小组评价,最后由教师根据任务的完成情况和学习目标的掌握情况结合小组评价和学生自评指出每位同学的操作和学习的方向。二、评价指标【任务总结】该任务学习了如何通过第三方防护软件进行计算机的病毒防护;进一步学习操作系统的安全防御,如端口的限制,启动项目的筛选等等。让学生对病毒防护的工具及操作系统本身有所了解,要够充分认识到病毒防护需要综合考虑。任务二操作系统漏洞防范【任务介绍】通过此任务的学习,学生可以完成Windows平台上系统漏洞的修复与防范,避免黑客利用系统漏洞来破坏计算机甚至网站系统。【任务分析】漏洞即某个程序(包括操作系统)在设计时未考虑周全,当程序遇到一个看似合理,但实际无法处理的问题时,引发的不可预见的错误。系统漏洞又称安全缺陷,对用户造成的不良后果,如漏洞被恶意用户利用,会造成信息泄漏,如黑客攻击网站即利用网络服务器操作系统的漏洞。很有可能对用户操作造成不便,如不明原因的死机和丢失文件等。对服务器而言,网站服务器被黑客利用漏洞攻击后,很大程度上造成系统瘫痪,无法提供服务。 综上所述,只有及时堵住系统漏洞,用户才会有一个安全和稳定的工作环境,服务器才能更好的提供服务。我们可以通过系统自身的升级或者第三方工具进行系统漏洞的修复。【任务实施】漏洞的防范一是要开启系统本身的安全防范,二是要借助第三方软件来巩固系统的安全。子任务1:启用系统自动更新步骤一:【开始】—【所有程序】—【附件】—【系统工具】—【安全中心】。如图39所示。步骤二:找到“自动更新”,点击“启用自动更新”,如图40所示。子任务2:用瑞星卡卡修复系统漏洞步骤一:打开安装好的瑞星杀毒界面,在“工具”选项卡,找到“瑞星卡卡上网助手”,点击“安装”,如图41所示。步骤二:在打开的网页中,点击“立即下载”,如图42所示。步骤三:下载安装后启动卡卡助手,如图43所示。步骤四:在“常用”选项卡,点击“漏洞扫描与修复”,在右侧点击“全选”,然后点击“修复所有选项”,如图44所示。【知识扩展】一、漏洞简介系统漏洞是指应用软件或操作系统软件在逻辑设计上的缺陷或在编写时产生的错误,这个缺陷或错误可以被不法者或者电脑黑客利用,通过植入木马、病毒等方式来攻击或控制整个电脑,从而窃取您电脑中的重要资料和信息,甚至破坏您的系统。漏洞会影响到的范围很大,包括系统本身及其支撑软件,网络客户和服务器软件,网络路由器和安全防火墙等。换而言之,在这些不同的软硬件设备中都可能存在不同的安全漏洞问题。在不同种类的软、硬件设备,同种设备的不同版本之间,由不同设备构成的不同系统之间,以及同种系统在不同的设置条件下,都会存在各自不同的安全漏洞问题。二、漏洞原理Windows系统漏洞问题是与时间紧密相关的。一个Windows系统从发布的那一天起,随着用户的深入使用,系统中存在的漏洞会被不断暴露出来,这些早先被发现的漏洞也会不断被系统供应商:微软公司发布的补丁软件修补,或在以后发布的新版系统中得以纠正。而在新版系统纠正了旧版本中具有漏洞的同时,也会引入一些新的漏洞和错误。因而随着时间的推移,旧的系统漏洞会不断消失,新的系统漏洞会不断出现。系统漏洞问题也会长期存在。三、漏洞的危害在互联网日益普及的今天,越来越多的计算机连接到互联网,甚至某些计算机保持“始终在线”的连接,这样的连接使他们暴露在病毒感染、黑客入侵、拒绝服务攻击以及其它可能的风险面前。操作系统是一个基础的特殊软件,它是硬件、网络与用户的一个接口。不管用户在上面使用什么应用程序或享受怎样的服务,操作系统一定是必用的软件。因此它的漏洞如果不补,就像我们的门不上锁一样地危险!等待我们的轻则资源耗尽、重则感染病毒、被插木马、隐私尽泄甚至会产生经济上的损失!四、漏洞修复的几种方式
1.Windows自身
Windows自身以前是通过光盘或其他介质来发行补丁,后来随着网络的发展,现在多数可以通过互联网来直接下载,而且Windows将漏洞补丁功能集成在了其系统中,只要安装完后,默认会自动开启此功能。
2.各杀毒软件系统漏洞同样有很大的危险,作为杀毒公司自然不能不管。因此他们也开发了系统漏洞扫描和打补丁的功能。国内的杀毒厂商的产品基本都有这样的功能。
3.反恶意软件以360安全卫士为代表的反恶意软件同样提供了类似的功能,还有雅虎的天盾也有这样的功能。
4.迅雷软件随着下载在网民上网行为中占据越来越重的份额,木马、后门、蠕虫、病毒、插件等也“泥沙俱下”,将其夹带在了下载资源之中,给我们带来了极大麻烦。作为最大的下载服务提供商的迅雷提供了漏洞补丁修复功能。而且,它较其他的产品还有很多的特色功能。【任务评价】一、评价方法本任务以小组为单位上机操作,通过第三方软件来修复系统漏洞。学生本人根据在本任务中的作用和贡献进行自我评价,小组根据每位学生的自评和完成任务的情况对本组每位学生进行小组评价,最后由教师根据任务的完成情况和学习目标的掌握情况结合小组评价和学生自评指出每位同学的操作和学习的方向。二、评价指标【任务总结】该任务学习了通过第三方软件来进行系统的漏洞修复,操作简单,关键是理解漏洞修复的重要性及掌握漏洞修复的方法。任务三防止SQL注入攻击【任务介绍】通过此任务的学习,让学生了解SQL注入的危险及在设计网站时应该考虑到的安全问题。SQL注入的安全问题包含内容很多,如数据库的设计合理性、程序语言的编写安全性、web服务器的安全设置等等方面。本任务重点讲述防止SQL注入的常见防治措施。【任务分析】 SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQLInjection,即SQL注入。
SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况,需要构造巧妙的SQL语句,从而成功获取想要的数据。
SQL注入攻击的危害性很大。在讲解其防止办法之前,数据库管理员有必要先了解一下其攻击的原理。这有利于管理员采取有针对性的防治措施。【任务实施】本任务通过简单示例了解注入方式,进一步学习注入原理,然后学习如何防范SQL注入。子任务1:
SQL注入攻击的简单示例
SQL语句分析:statement:="SELECT*FROMUsersWHEREValue="+a_variable+"上面这条语句是很普通的一条SQL语句,他主要实现的功能就是让用户输入一个员工编号然后查询出这个员工的信息。但是若这条语句被不法攻击者改装过后,就可能成为破坏数据的黑手。如攻击者在输入变量的时候,输入以下内容’SA001’;droptablec_order--。那么以上这条SQL语句在执行的时候就变为了:SELECT*FROMUsersWHEREValue=’SA001’;droptablec_order--这条语句是什么意思呢?’SA001’后面的分号表示一个查询的结束和另一条语句的开始。c_order后面的双连字符指示当前行余下的部分只是一个注释,应该忽略。如果修改后的代码语法正确,则服务器将执行该代码。系统在处理这条语句时,将首先执行查询语句,查到用户编号为SA001的用户信息。然后,数据将删除表C_ORDER(如果没有其他主键等相关约束,则删除操作就会成功)。只要注入的SQL代码语法正确,便无法采用编程方式来检测篡改。因此,想要避免SQL注入,必须验证所有用户输入,并仔细检查在您所用的服务器中执行构造SQL命令的代码。子任务2:
SQL注入攻击的原理
可见SQL注入攻击的危害性很大。在讲解其防止办法之前,数据库管理员有必要先了解一下其攻击的原理。这有利于管理员采取有针对性的防治措施。SQL注入是目前比较常见的针对数据库的一种攻击方式。在这种攻击方式中,攻击者会将一些恶意代码插入到字符串中。然后会通过各种手段将该字符串传递到SQLServer数据库的实例中进行分析和执行。只要这个恶意代码符合SQL语句的规则,则在代码编译与执行的时候,就不会被系统所发现。SQL注入式攻击的主要形式有两种。一是直接将代码插入到与SQL命令串联在一起并使得其以执行的用户输入变量。上面笔者举的例子就是采用了这种方法。由于其直接与SQL语句捆绑,故也被称为直接注入式攻击法。二是一种间接的攻击方法,它将恶意代码注入要在表中存储或者作为原书据存储的字符串。在存储的字符串中会连接到一个动态的SQL命令中,以执行一些恶意的SQL代码。注入过程的工作方式是提前终止文本字符串,然后追加一个新的命令。如以直接注入式攻击为例。就是在用户输入变量的时候,先用一个分号结束当前的语句。然后再插入一个恶意SQL语句即可。由于插入的命令可能在执行前追加其他字符串,因此攻击者常常用注释标记“--”来终止注入的字符串。执行时,系统会认为此后语句位注释,故后续的文本将被忽略,不背编译与执行。子任务3:
SQL注入攻击的防治
既然SQL注入式攻击的危害这么大,那么该如何来防治呢?下面这些建议或许对数据库管理员防治SQL注入式攻击有一定的帮助。(1)普通用户与系统管理员用户的权限要有严格的区分如果一个普通用户在使用查询语句中嵌入另一个DropTable语句,那么是否允许执行呢?由于Drop语句关系到数据库的基本对象,故要操作这个语句用户必须有相关的权限。在权限设计中,对于终端用户,即应用软件的使用者,没有必要给他们数据库对象的建立、删除等权限。那么即使在他们使用SQL语句中带有嵌入式的恶意代码,由于其用户权限的限制,这些代码也将无法被执行。故应用程序在设计的时候,最好把系统管理员的用户与普通用户区分开来。如此可以最大限度的减少注入式攻击对数据库带来的危害。(2)强迫使用参数化语句如果在编写SQL语句的时候,用户输入的变量不是直接嵌入到SQL语句。而是通过参数来传递这个变量的话,那么就可以有效的防治SQL注入式攻击。也就是说,用户的输入绝对不能够直接被嵌入到SQL语句中。与此相反,用户的输入的内容必须进行过滤,或者使用参数化的语句来传递用户输入的变量。参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。采用这种措施,可以杜绝大部分的SQL注入式攻击。
不过可惜的是,现在支持参数化语句的数据库引擎并不多。不过数据库工程师在开发产品的时候要尽量采用参数化语句。(3)加强对用户输入的验证总体来说,防治SQL注入式攻击可以采用两种方法,一是加强对用户输入内容的检查与验证;二是强迫使用参数化语句来传递用户输入的内容。在SQLServer数据库中,有比较多的用户输入内容验证工具,可以帮助管理员来对付SQL注入式攻击。测试字符串变量的内容,只接受所需的值。拒绝包含二进制数据、转义序列和注释字符的输入内容。这有助于防止脚本注入,防止某些缓冲区溢出攻击。测试用户输入内容的大小和数据类型,强制执行适当的限制与转换。这即有助于防止有意造成的缓冲区溢出,对于防治注入式攻击有比较明显的效果。如可以使用存储过程来验证用户的输入。利用存储过程可以实现对用户输入变量的过滤,如拒绝一些特殊的符号。如以上那个恶意代码中,只要存储过程把那个分号过滤掉,那么这个恶意代码也就没有用武之地了。在执行SQL语句之前,可以通过数据库的存储过程,来拒绝接纳一些特殊的符号。在不影响数据库应用的前提下,应该让数据库拒绝包含以下字符的输入。如分号分隔符,它是SQL注入式攻击的主要帮凶。如注释分隔符。注释只有在数据设计的时候用的到。一般用户的查询语句中没有必要注释的内容,故可以直接把他拒绝掉,通常情况下这么做不会发生意外损失。把以上这些特殊符号拒绝掉,那么即使在SQL语句中嵌入了恶意代码,他们也将毫无作为。故始终通过测试类型、长度、格式和范围来验证用户输入,过滤用户输入的内容。这是防止SQL注入式攻击的常见并且行之有效的措施。(4)多使用SQLServer数据库自带的安全参数为了减少注入式攻击对于SQLServer数据库的不良影响,在SQLServer数据库专门设计了相对安全的SQL参数。在数据库设计过程中,工程师要尽量采用这些参数来杜绝恶意的SQL注入式攻击。如在SQLServer数据库中提供了Parameters集合。这个集合提供了类型检查和长度验证的功能。如果管理员采用了Parameters这个集合的话,则用户输入的内容将被视为字符值而不是可执行代码。即使用户输入的内容中含有可执行代码,则数据库也会过滤掉。因为此时数据库只把它当作普通的字符来处理。使用Parameters集合的另外一个优点是可以强制执行类型和长度检查,范围以外的值将触发异常。如果用户输入的值不符合指定的类型与长度约束,就会发生异常,并报告给管理员。如上面这个案例中,如果员工编号定义的数据类型为字符串型,长度为10个字符。而用户输入的内容虽然也是字符类型的数据,但是其长度达到了20个字符。则此时就会引发异常,因为用户输入的内容长度超过了数据库字段长度的限制。(5)多层环境如何防治SQL注入式攻击在多层应用环境中,用户输入的所有数据都应该在验证之后才能被允许进入到可信区域。未通过验证过程的数据应被数据库拒绝,并向上一层返回一个错误信息。实现多层验证。对无目的的恶意用户采取的预防措施,对坚定的攻击者可能无效。更好的做法是在用户界面和所有跨信任边界的后续点上验证输入。如在客户端应用程序中验证数据可以防止简单的脚本注入。但是,如果下一层认为其输入已通过验证,则任何可以绕过客户端的恶意用户就可以不受限制地访问系统。故对于多层应用环境,在防止注入式攻击的时候,需要各层一起努力,在客户端与数据库端都要采用相应的措施来防治SQL语句的注入式攻击。(6)必要的情况下使用专业的漏洞扫描工具来寻找可能被攻击的点。使用专业的漏洞扫描工具,可以帮助管理员来寻找可能被SQL注入式攻击的点。不过漏洞扫描工具只能发现攻击点,而不能够主动起到防御SQL注入攻击的作用。当然这个工具也经常被攻击者拿来使用。如攻击者可以利用这个工具自动搜索攻击目标并实施攻击。为此在必要的情况下,企业应当投资于一些专业的漏洞扫描工具。一个完善的漏洞扫描程序不同于网络扫描程序,它专门查找数据库中的SQL注入式漏洞。最新的漏洞扫描程序可以查找最新发现的漏洞。所以凭借专业的工具,可以帮助管理员发现SQL注入式漏洞,并提醒管理员采取积极的措施来预防SQL注入式攻击。如果攻击者能够发现的SQL注入式漏洞数据库管理员都发现了并采取了积极的措施堵住漏洞,那么攻击者也就无从下手了。【知识扩展】一、SQL注入简介所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.二、防SQL注入原则归纳一下,主要有以下几点:1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双"-"进行转换等。2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装。三、SQL容易受到攻击的过程当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生sql注入。sql注入可能导致攻击者使用应用程序登陆在数据库中执行命令。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。在某些表单中,用户输入的内容直接用来构造动态sql命令,或者作为存储过程的输入参数,这些表单特别容易受到sql注入的攻击。而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序中本身的变量处理不当,使应用程序存在安全隐患。这样,用户就可以提交一段数据库查询的代码,根据程序返回的结果,获得一些敏感的信息或者控制整个服务器,于是sql注入就发生了。【任务总结】该任务学习了SQL注入的一些理论知识,这部分内容学习起来比较难懂,该任务也仅仅是为了让学生们了解SQL注入的概念及防范的简单措施。不需要深入研究如何注入及如何具体防范SQL注入,这些深层次的内容学生可以在主修自己专业的方向上研究。任务四数据库安全防范【任务介绍】通过此任务的学习,学生可以完成Windows平台上web数据库的安全管理与防范,避免由于设计、管理等因素引起的数据库入侵和破坏。【任务分析】
数据库是Web的命脉,由于管理者的安全疏漏使得其成为攻击者入侵Web的入口。如何来加固Web数据库呢?本次任务就以当前使用比较广泛的Access和MSSQL数据库为例,讲述Web数据库的安全防护。【任务实施】本任务有两个子任务,分别以常见数据库来讲述数据库在网站建设中如何做基本的防护操作。子任务1:
Access数据库防下载
数据库被下载这对Web来说几乎是毁灭性的,因为攻击者从中可以获取包括管理员帐户及密码等在内的敏感信息,然后实施进一步的攻击。可被下载的数据库主要是Access数据库,采用这种数据库的Web站点不在少数。防止Access数据库下载,可以从以下几个方面入手。步骤一:数据库改名数据库改名包括两部分,首先将其改成比较生僻的名称,建议名字足够长并使用某些特殊字符以防被攻击者猜中。建议首字母为#字符。另外,将mdb后缀改为asp,以防数据库被下载。当然数据库改名后,数据库连接配置文件也要进行修改。如图45所示。步骤二:改变数据库路径
站点系统都有默认的数据库路径,由于安全意识淡薄,部署Web站点时有很多人不去修改数据库路径,因而攻击者很容易地猜到该站点的数据库路径。
更改数据库路径,大家可以在站点目录下创建比较生僻的目录,然后将数据库文件拷贝到该目录中。当然,更改数据库路径后,需要修改站点系统的数据库连接文件。一般asp站点系统的数据库连接文件是conn.asp。打开该文件后,然后根据实际情况进行修改,使得其跟当前的数据库路径相一致。如图46所示。步骤三:设置好目录权限要设置好数据库目录的访问权限,原则是权限最小化以防止非正常的访问。因为Web程序是通过IIS用户运行的,我们只要给IIS用户读取和写入权限,然后通过“IIS管理器”把这个目录的脚本执行权限去掉,防止入侵者在该目录中通过上传获得webshell了。如图47所示。步骤四:设置好数据库的NTFS权限要设置好数据库的NTFS访问权限,原则是权限最小化以防止非正常的访问。因为Web程序是通过IIS用户运行的,我们只要给IIS用户读取和写入权限和系统管理员账户所有权限即可。右键选择数据库文件,点击属性,找到“安全”选项卡,只保留”administrators”,”Internet来宾账户”,其中要确保”Internet来宾账户”用户的权限为“读取”“写入”,如图48所示。步骤五:添加mdb的扩展映射IIS对于不能解析的文件类型就会弹出下载对话框让用户下载,我们可以通过在IIS管理器中添加对mdb的扩展映射,防止数据库被下载。
其设置方法是:打开IIS管理器定位到相应的Web站点,右键选择“属性”,然后依次点击“主目录→配置→映射”,在“应用程序扩展”里面添加.mdb文件应用解析,至于用于解析它的可执行文件大家可以自己进行选择,只要让攻击者无法访问数据库文件就可以了。如图49,50,51所示。步骤六:数据库改造思路是将数据库后缀名(.mdb)修改为.asp,然后在数据库中加上一个NotDownLoad的表以防数据库被下载。具体添加字段的操作方法如下:首先新建一个.asp文件(notdown.asp),其代码如下:<%db="Data/26net.asp"'这里改成你的数据库地址,这是相对根目录的地址setconn=server.createobject("Adodb.Connection")conn.Open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&Server.MapPath(db)conn.execute("createtablenotdownload(notdownoleobject)")setrs=server.createobject("adodb.recordset")sql="select*fromnotdownload"rs.opensql,conn,1,3rs.addnewrs("notdown").appendchunk(chrB(asc("<"))&chrB(asc("%")))rs.updaters.closesetrs=nothingconn.closesetconn=nothingresponse.write”防止下载数据库改造成功!”%>然后在服务器端运行notdown.asp,这样在数据库添加了包含notdown字段的notdownload数据表,即可防止数据库的下载,因为notdown有一个值是"<%",asp运行是因缺少"%>"关闭标记而拒绝访问,下载当然会失败。如图52所示。同时要注意在access数据库改后缀名为.asp后,要把其他asp调用数据库的连接文件也要修改成.asp的后缀。子任务2:MSSQL数据库防注入MSSQL数据库是大中型Web站点常采用的数据库,对于SQL数据最大的威胁是注入。攻击者通过注入来调用SQL语句执行系统命令,因此其危险性更大。一个注入点,有可能造成整个Web服务器的沦陷。根据任务3(防止SQL注入攻击)的指导思想,防MSSQL注入可以从下面几个方面入手。步骤一:慎重选择建站系统通过站点系统建立一个Web站点是非常容易的,但是某些站点系统代码编写不够严谨,考虑不周,变量过滤不严等使得可被攻击者利用。因此,选择一款安全的站点系统是至关重要的。当然,没有百分之百安全的站点系统。管理员如果懂代码的话可以进行检测分析,看看是否有漏洞。另外,可以扮演入侵者进行入侵检测。最后,及时打补丁也是非常重要的。步骤二:最小权限连接数据库
Web站点连接数据库都是通过相应的账户进行连接,在这些账户中SA是权限最大的也是最危险的。数据库不要用SA账户,使用SA账户连接
数据库对服务器来说就是一场灾难。一般来说可以使用DB_OWNER权限账户连接数据库,如果可以正常运行,使用public用户最安全的。设置成dbo权限连接数据库之后,入侵者基本就只能通过猜解用户名和密码或者是差异备份来获得webshell了,对于前者,我们可以通过加密和修改管理后台的默认登陆地址来防御。对于差异备份,我们知道它的条件是有备份的权限,并且要知道web的目录。这样被攻击的可能性大大地降低。如图53所示。
步骤三:删除危险的存储过程
MSSQL数据库系统集成了较多的存储过程,这些命令集方便了我们的操作当然也为攻击者入侵Web提供了便利。因此我们要根据需要删除某些在Web中用不到的,并且可被攻击者利用才存储过程。比如xp_regread和xp_dirtree这两个存储过程可被攻击者用来读取注册表信息和列目录,我们可以删除。另外,xp_cmdshell可被用来执行DOS命令比如建立系统账户等等,是非常危险的。sp_makwebtask过程,可以读取SQLSELECT命令所得到的结果到表格形式的HTML文件中。这些比较危险,可被攻击者利用的存储过程我们可以删除。比如删除xp_cmdshell可以执行“execmaster..sp_dropextendedprocxp_cmdshell”,其它的类似。如图54步骤四:修改错误页,误导攻击者SQL注入入侵是根据IIS给出的ASP错误提示信息来入侵的,如果我们把IIS设置成不管出什么样的ASP错误,只给出一种错误提示信息,即http500错误,那么攻击者就无法获得敏感信息实施入侵了。打开IIS管理器选择相应的Web站点打开其站点“属性”窗口,在“自定义错误”选项卡下选择“500:100”点击“编辑”打开“编辑自定义错误属性”窗口,消息类型选择“文件”,然后通过浏览定位到自己构造的错误页,比如“c:\test.htm”,然后确定即可。如图55【知识扩展】
一、数据库安全
数据库系统的安全除依赖自身内部的安全机制外,还与外部网络环境、应用环境、从业人员素质等因素息息相关,因此,从广义上讲,数据库系统的安全框架可以划分为三个层次:
网络系统层次;
宿主操作系统层次;
数据库管理系统层次。这三个层次构筑成数据库系统的安全体系,与数据安全的关系是逐步紧密的,防范的重要性也逐层加强,从外到内、由表及里保证数据的安全。下面就安全框架的三个层次展开论述。【知识扩展】
1.网络系统层次安全技术从广义上讲,数据库的安全首先依赖于网络系统。随着Internet的发展和普及,越来越多的公司将其核心业务向互联网转移,各种基于网络的数据库应用系统如雨后春笋般涌现出来,面向网络用户提供各种信息服务。可以说网络系统是数据库应用的外部环境和基础,数据库系统要发挥其强大作用离不开网络系统的支持,数据库系统的用户(如异地用户、分布式用户)也要通过网络才能访问数据库的数据。网络系统的安全是数据库安全的第一道屏障,外部入侵首先就是从入侵网络系统开始的。网络入侵试图破坏信息系统的完整性、机密性或可信任的任何网络活动的集合,具有以下特点:
a)没有地域和时间的限制,跨越国界的攻击就如同在现场一样方便;
b)通过网络的攻击往往混杂在大量正常的网络活动之中,隐蔽性强;
c)入侵手段更加隐蔽和复杂。【知识扩展】
计算机网络系统开放式环境面临的威胁主要有以下几种类型:
a)欺骗(Masquerade);
b)重发(Replay);
c)报文修改(Modificationofmessage);
d)拒绝服务(Denyofservice);
e)陷阱门(Trapdoor);
f)特洛伊木马(Trojanhorse);
g)攻击,如透纳攻击(TunnelingAttack)、应用软件攻击等。这些安全威胁是无时、无处不在的,因此必须采取有效的措施来保障系统的安全。【知识扩展】
从技术角度讲,网络系统层次的安全防范技术有很多种,大致可以分为防火墙、入侵检测、协作式入侵检测技术等。防火墙防火墙是应用最广的一种防范技术。作为系统的第一道防线,其主要作用是监控可信任网络和不可信任网络之间的访问通道,可在内部与外部网络之间形成一道防护屏障,拦截来自外部的非法访问并阻止内部信息的外泄,但它无法阻拦来自网络内部的非法操作。它根据事先设定的规则来确定是否拦截信息流的进出,但无法动态识别或自适应地调整规则,因而其智能化程度很有限。防火墙技术主要有三种:数据包过滤器(packetfilter)、代理(proxy)和状态分析(statefulinspection)。现代防火墙产品通常混合使用这几种技术。【知识扩展】
⑵入侵检测入侵检测(IDS—InstrusionDetectionSystem)是近年来发展起来的一种防范技术,综合采用了统计技术、规则方法、网络通信技术、人工智能、密码学、推理等技术和方法,其作用是监控网络和计算机系统是否出现被入侵或滥用的征兆。1987年,DerothyDenning首次提出了一种检测入侵的思想,经过不断发展和完善,作为监控和识别攻击的标准解决方案,IDS系统已经成为安全防御系统的重要组成部分。入侵检测采用的分析技术可分为三大类:签名、统计和数据完整性分析法。⑶协作式入侵监测技术独立的入侵监测系统不能够对广泛发生的各种入侵活动都做出有效的监测和反应,为了弥补独立运作的不足,人们提出了协作式入侵监测系统的想法。在协作式入侵监测系统中,IDS基于一种统一的规范,入侵监测组件之间自动地交换信息,并且通过信息的交换得到了对入侵的有效监测,可以应用于不同的网络环境。【知识扩展】
2.宿主操作系统层次安全技术操作系统是大型数据库系统的运行平台,为数据库系统提供一定程度的安全保护。目前操作系统平台大多数集中在WindowsNT和Unix,安全级别通常为C1、C2级。主要安全技术有操作系统安全策略、安全管理策略、数据安全等方面。操作系统安全策略用于配置本地计算机的安全设置,包括密码策略、账户锁定策略、审核策略、IP安全策略、用户权利指派、加密数据的恢复代理以及其它安全选项。具体可以体现在用户账户、口令、访问权限、审计等方面。用户账户:用户访问系统的“身份证”,只有合法用户才有账户。口令:用户的口令为用户访问系统提供一道验证。访问权限:规定用户的权限。审计:对用户的行为进行跟踪和记录,便于系统管理员分析系统的访问情况以及事后的追查使用。安全管理策略是指网络管理员对系统实施安全管理所采取的方法及策略。针对不同的操作系统、网络环境需要采取的安全管理策略一般也不尽相同,其核心是保证服务器的安全和分配好各类用户的权限。数据安全主要体现在以下几个方面:数据加密技术、数据备份、数据存储的安全性、数据传输的安全性等。可以采用的技术很多,主要有Kerberos认证、IPSec、SSL、TLS、VPN(PPTP、L2TP)等技术。【知识扩展】
3.数据库管理系统层次安全技术数据库系统的安全性很大程度上依赖于数据库管理系统。如果数据库管理系统安全机制非常强大,则数据库系统的安全性能就较好。目前市场上流行的是关系式数据库管理系统,其安全性功能很弱,这就导致数据库系统的安全性存在一定的威胁。由于数据库系统在操作系统下都是以文件形式进行管理的,因此入侵者可以直接利用操作系统的漏洞窃取数据库文件,或者直接利用OS工具来非法伪造、篡改数据库文件内容。这种隐患一般数据库用户难以察觉,分析和堵塞这种漏洞被认为是B2级的安全技术措施。数据库管理系统层次安全技术主要是用来解决这一问题,即当前面两个层次已经被突破的情况下仍能保障数据库数据的安全,这就要求数据库管理系统必须有一套强有力的安全机制。解决这一问题的有效方法之一是数据库管理系统对数据库文件进行加密处理,使得即使数据不幸泄露或者丢失,也难以被人破译和阅读。【知识扩展】
我们可以考虑在三个不同层次实现对数据库数据的加密,这三个层次分别是OS层、DBMS内核层和DBMS外层。⑴在OS层加密。在OS层无法辨认数据库文件中的数据关系,从而无法产生合理的密钥,对密钥合理的管理和使用也很难。所以,对大型数据库来说,在OS层对数据库文件进行加密很难实现。⑵在DBMS内核层实现加密。这种加密是指数据在物理存取之前完成加/解密工作。这种加密方式的优点是加密功能强,并且加密功能几乎不会影响DBMS的功能,可以实现加密功能与数据库管理系统之间的无缝耦合。其缺点是加密运算在服务器端进行,加重了服务器的负载,而且DBMS和加密器之间的接口需要DBMS开发商的支持。⑶在DBMS外层实现加密。比较实际的做法是将数据库加密系统做成DBMS的一个外层工具,根据加密要求自动完成对数据库数据的加/解密处理。采用这种加密方式进行加密,加/解密运算可在客户端进行,它的优点是不会加重数据库服务器的负载并且可以实现网上传输的加密,缺点是加密功能会受到一些限制,与数据库管理系统之间的耦合性稍差。【知识扩展】
下面我们进一步解释在DBMS外层实现加密功能的原理:数据库加密系统分成两个功能独立的主要部件:一个是加密字典管理程序,另一个是数据库加/解密引擎。数据库加密系统将用户对数据库信息具体的加密要求以及基础信息保存在加密字典中,通过调用数据加/解密引擎实现对数据库表的加密、脱密及数据转换等功能。数据库信息的加/解密处理是在后台完成的,对数据库服务器是透明的。按以上方式实现的数据库加密系统具有很多优点:首先,系统对数据库的最终用户是完全透明的,管理员可以根据需要进行明文和密文的转换工作;其次,加密系统完全独立于数据库应用系统,无须改动数据库应用系统就能实现数据加密功能;第三,加解密处理在客户端进行,不会影响数据库服务器的效率。【知识扩展】
数据库加/解密引擎是数据库加密系统的核心部件,它位于应用程序与数据库服务器之间,负责在后台完成数据库信息的加/解密处理,对应用开发人员和操作人员来说是透明的。数据加/解密引擎没有操作界面,在需要时由操作系统自动加载并驻留在内存中,通过内部接口与加密字典管理程序和用户应用程序通讯。数据库加/解密引擎由三大模块组成:加/解密处理模块、用户接口模块和数据库接口模块。其中,“数据库接口模块”的主要工作是接受用户的操作请求,并传递给“加/解密处理模块”,此外还要代替“加/解密处理模块”去访问数据库服务器,并完成外部接口参数与加/脱密引擎内部数据结构之间的转换。“加/解密处理模块”完成数据库加/解密引擎的初始化、内部专用命令的处理、加密字典信息的检索、加密字典缓冲区的管理、SQL命令的加密变换、查询结果的脱密处理以及加脱密算法实现等功能,另外还包括一些公用的辅助函数。【知识扩展】
数据加/解密处理的主要流程如下:
1)对SQL命令进行语法分析,如果语法正确,转下一步;如不正确,则转6),直接将SQL命令交数据库
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外研版六年级下册教案设计英语
- 吉林师范大学《世界古代社会风俗史》2021-2022学年第一学期期末试卷
- 吉林师范大学《篮球教学与训练》2021-2022学年第一学期期末试卷
- 机场防恐防暴演练工作方案
- 吉林大学《组合数学》2021-2022学年第一学期期末试卷
- 企业内部充电桩安装合同
- 科研机构高空保洁服务方案
- 仓库火灾应急预案培训方案
- 2024幼儿园员工劳动合同范本
- 吉林大学《健康教育学》2021-2022学年第一学期期末试卷
- 接触隔离、飞沫隔离、空气隔离标准
- DZ∕T 0219-2006 滑坡防治工程设计与施工技术规范(正式版)
- 审美鉴赏与创造智慧树知到期末考试答案章节答案2024年南昌大学
- 尿源性脓毒血症护理查房
- 迈瑞医疗技术团队介绍
- 《光伏发电工程工程量清单计价规范》
- 烹饪生涯发展
- 2024年国家能源集团神华物资集团有限公司招聘笔试参考题库含答案解析
- 最美老师评选述职报告
- 电气工程及其自动化生涯发展展示
- 俯卧位通气品管圈课件
评论
0/150
提交评论