ImageVerifierCode 换一换
格式:PPT , 页数:114 ,大小:735.19KB ,
文档编号:3164926      下载积分:29 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-3164926.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(三亚风情)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(第6章攻击与防范课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

第6章攻击与防范课件.ppt

1、1第第6章章 攻击与防范攻击与防范曹天杰中国矿业大学计算机科学与技术学院26.1 恶意代码n恶意代码恶意代码也称为恶意软件,是攻击者植入受害者系统的一段代码,使得攻击者可以在受害者毫不知情的状况下控制对方的系统、网络以及数据。n它通过把代码在不被察觉的情况下嵌入到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。3引导区病毒引导区病毒台式电脑台式电脑第第1代代第第2代代第第3代代第第4代代台式电脑台式电脑台式电脑台式电脑台式电脑台式电脑台式电脑台式电脑LAN服务器服务器基于文件的病毒基于文件的病毒邮件群发病毒邮件群发病毒 互联网互

2、联网防毒墙防毒墙电子邮件电子邮件服务器墙服务器墙台式电脑台式电脑笔记本电脑笔记本电脑网络病毒网络病毒 互联网互联网防毒墙防毒墙服务器服务器服务器服务器服务器服务器服务器服务器台式电脑台式电脑台式电脑台式电脑台式电脑台式电脑笔记本电脑笔记本电脑已打补丁的机器已打补丁的机器网络拥堵网络拥堵46.1.1 病毒n计算机病毒:一组能够进行自我传播、需要用户干预来触发执行的破坏性程序或代码。n同时,它们还可以把自己的副本分发到其他文件、程序或电脑中去。当被感染文件执行操作的时候(例如:打开一个文件,运行一个程序,点击邮件的附件等),病毒程序会进行自我复制。p如CIH、爱虫、新欢乐时光、求职信、恶鹰、ros

3、e5计算机病毒的特征n非授权可执行性n感染性 n寄生性 n隐蔽性 n潜伏性 n可触发性 n破坏性 n主动攻击性6非授权可执行性n计算机病毒与其它合法的程序一样,是一段可执行程序,但它又不是一个完整的程序,而是寄生在其他可执行文件上的程序,因此它拥有一切程序所能得到的权利。n当病毒运行时,便于合法程序争夺系统的控制权,往往会造成系统崩溃,导致计算机瘫痪。计算机病毒只有在计算机内得以运行时,才具有感染性和破坏性。7感染性n计算机病毒能够将自身的复制品或变种感染到其他程序中。这是计算机病毒的根本特定,它使得计算机病毒得以从被感染的计算机扩散到未被感染的计算机中。n计算机一旦感染病毒,如果不及时处理,

4、那么病毒会在这台计算机上迅速扩散,其中大量的文件(主要是可执行文件)会被感染。而被感染的计算机文件又成了新的感染源,可通过各种可能的渠道,如软盘、U盘和计算机网络等去感染其他的计算机。8寄生性n计算机病毒程序是嵌入到宿主程序的,依赖宿主程序的存在而生存,病毒程序侵入到宿主程序以后,一般对宿主程序进行一定的修改,当病毒激活条件一旦满足,病毒程序就被激活,从而可以进行自我复制。9隐蔽性n计算机病毒一般都是具有很高编程技巧的程序员编写的短小精悍的程序,通常附着在正常程序中或磁盘较隐蔽的地方,也有个别的以隐含文件形式出现,目的是不让用户发现他的存在。n如果不经过代码分析,病毒程序与正常程序是不容易区分

5、开来的。而且受到感染后,计算机系统通常仍能正常运行,使用户不会感到异常。10n计算机病毒的隐蔽性表现在两个方面:p一是传染过程隐蔽。大部分病毒传染速度快,传染时不具有外表表现,不易被人发觉。p二是病毒程序隐蔽,一般病毒程序嵌入在正常程序中,很难被发现。病毒一般只有几百或几千字节,而现在普通PC机的存取速度都是以MB/S为单位,所以病毒在瞬间就可以将其程序附着在正常程序中,使其不容易被察觉。11潜伏性n大部分病毒在感染系统后,一般不会马上发作,它可长期隐藏在系统中。除了传染外,不表现出破坏性,只有在满足其特定条件是才启动其表现破坏性的模块,显示发作信息或进行系统破坏,只有这样它才可以进行广泛地传

6、播。12可触发性n计算机病毒一般都有一个或者几个触发条件。满足其触发条件或者激活病毒的传染机制,使之进行传染;或者激活病毒的表现部分或破坏部分。n触发的实质是一种条件的控制,病毒程序可以依据设计者的要求,在一定条件下实施攻击。n使计算机病毒发作的触发条件通常有以下几种:利用系统时钟提供的时间作为触发器,这种触发机制被大量的病毒使用;利用病毒体自带的计数器作为触发器;利用计算机内执行的某些特定操作作为触发器。13破坏性n无论何种病毒程序一旦侵入系统都会对操作系统的运行造成不同程度的影响。即使不直接产生破坏作用的病毒程序也要占用系统资源(如占用内存空间,占用磁盘存储空间以及系统运行时间等)。n根据

7、这些特点,可以将病毒分为良性病毒和恶性病毒:良性病毒程序可能显示一些文字或图像、播放音乐等没有太大的破坏作用。而恶性病毒将影响系统的正常运行,这些病毒程序删除文件,加密磁盘中的数据,甚至摧毁整个系统和数据,使之无法恢复,造成无可挽回的损失。14主动攻击性n病毒对系统攻击是主动的。从一定程度上讲,计算机系统很难彻底地排除病毒对系统的攻击,而保护措施充其量是一种防御的手段。156.1.2 蠕虫n蠕虫:一组能够进行自我传播、不需要用户干预即可触发执行的破坏性程序或代码。p如:红色代码、SQL蠕虫王、冲击波、震荡波、极速波n蠕虫不修改文件,而是常驻在内存里并复制自己。蠕虫使用操作系统的一部分,这部分对

8、于用户来说是自动且无形的。n蠕虫的自我复制不像其他的病毒,它可以自动创建与它的功能完全相同的副本,并在没人干涉的情况下自动运行。16计算机病毒与蠕虫的区别n1、蠕虫是一个可以独立运行的程序。但病毒不能独立存在,必须将自身的代码附着在其他程序中,其程序的激活依赖与宿主程序的执行。n2、蠕虫可以自动通过传播,不需要利用文件寄生技术;而病毒要依赖于宿主文件进行传播。因为蠕虫程序自身包含了传播代码,这些代码会自动将蠕虫程序从一个系统发送到另一个系统。n蠕虫通常感染的对象是有相应漏洞或者其他脆弱性的计算机系统,而病毒的感染对象则是计算机中的文件系统。17名称计算机病毒蠕虫存在形式寄生于其它程序独立程序感

9、染目标本地文件网络中的计算机传播途径感染文件或可移动磁盘网络传播传播形式 需要人为干预,例如,运行感染病毒的程序,使用感染病毒的磁盘 不需要人为干预,蠕虫会利用系统漏洞或系统脆弱性、电子邮件等将自身副本发送到其它系统表5.1 蠕虫与病毒的区别186.1.3 木马n特洛伊木马从表面上看是正常的程序、具有正常的功能,但是实际上却隐藏着带有恶意目的的程序。n一些木马程序会通过覆盖系统中已经存在的文件的方式存在于系统之中,同时它可以携带恶意代码,还有一些木马会以一个软件的身份出现(例如:一个可供下载的游戏),但它实际上是一个窃取密码的工具。19n特洛伊木马通常由一个客户端和一个服务器端构成,客户端放在

10、木马控制者的电脑中,服务器端放置在被入侵电脑中,木马控制者通过客户端与被入侵电脑的服务器端建立远程连接。一旦连接建立,木马控制者就可以通过对被入侵电脑发送指令来传输和修改文件。n还有一些木马不具备远程登录的功能。它们的存在只是为了隐藏恶意进程的痕迹,例如使恶意进程不在计算机的进程列表中显示出来。n还有一些木马用于收集信息,例如被感染电脑的密码,并把收集到的密码列表发送互联网中一个指定的邮件账户中。常见的木马,如冰河、网络神偷、灰鸽子。20特洛伊木马隐蔽性连接请求连接请求8021常见的木马类型n远程访问型 n密码发送型 n键盘记录型 n毁坏型 nFTP型 22远程访问型木马n这是目前使用最广的特

11、洛伊木马。这类木马可以远程访问被攻击者的硬盘。例如,RATS(一种远程访问木马),它使用起来非常简单,只需要运行服务器端程序并且得到被攻击者的IP,就可以访问他的计算机,几乎可以在目标计算机上进行任何操作。n远程访问型特洛伊木马会在目标计算机上打开一个端口。一些特洛伊木马还可以改变端口的选型并且可以设置连接密码,为的是只能让攻击者来控制特洛伊木马。23密码发送型木马n 这种特洛伊木马的目的是找到所有的隐藏密码,并且在被攻击者不知道的情况下把它们发送到指定的信箱。n这类特洛伊木马大多数会在每次Windows重新启动的时候运行,而且它们大多使用25号端口发送E-mail。如果目标计算机有隐藏密码,

12、那么这类特洛伊木马是非常危险的。24键盘记录型木马n这种特洛伊木马非常简单:它们只做一种事情,就是记录受害者的键盘输人并且在log日志文件中查找密码。n这种特洛伊木马随着Windows系统的启动而运行。它们有记录在线和离线的功能。在线选项中,它们知道被攻击者在线并且记录每一件事情。但是,在离线记录时,每一件事情在Windows启动后才被记录,并且保存在受害者磁盘上等待被传输。25毁坏型木马n这种特洛伊木马的惟一功能是毁坏并且删除文件。它们非常简单、也很容易被发现。它能自动删除目标计算机的所有后缀名如dll、ini、exe等文件,所以非常危险,一旦被感染了,就会严重威胁到计算机的安全。26FTP

13、型木马n 这类特洛伊木马程序打开目标计算机的21号端口,使黑客可以用一个FTP客户端并且不用密码就可以连接到目标计算机上,并且拥有完全的上传和下载的权限。276.1.4 后门n对计算机操作系统或软件来说,后门后门是指可以指绕过软件的安全性控制而从比较隐秘的通道获取对程序或系统访问权的黑客方法。n通常,在软件开发时,设置后门可以方便修改和测试程序中的缺陷。28n后门具有隐蔽性,能绕开系统日志,不易被系统管理员发现等特点。n在计算机中,入侵者可以通过端口、串/并口、无线设备连接等后门方式进行入侵。如果一个程序仅仅提供远程访问,那么它只是一个后门。如果攻击者将这些后门伪装成某些其他良性程序,那么就变

14、成了特洛伊木马。29后门产生的必要条件n1、必须以某种方式与其他终端节点相连。n由于后门的利用都是从其他节点进行访问,因此必须与目标机使用双绞线、光纤维、串/并口、蓝牙、红外等设备在物理信号上有所连接才可以对端口进行访问。只有访问成功,双方才可以进行信号交流,攻击方才有机会进行入侵。30n2、目标机默认开放的可供外界访问的端口必须在一个以上。因为一台默认无任何端口开放的机器是无法连接通信的,而如果开放着的端口外界无法访问,则同样没有办法进行入侵。n3、目标机存在程序设计或人为疏忽,导致攻击者能以权限较高的身份执行程序。并不是任何一个权限的账号都能够被利用的,只有权限达到操作系统一定要求的才允许

15、执行修改注册表,修改log记录等相关修改 31后门产生的原因n1、操作系统自带的服务,大多数的操作系统,如Unix、Linux、windows2000/xp在默认安装完成后,为了方便用户的使用,会默认开启一定数量的服务(server),常见的有telnet server、ssh server、sendmail等等,如果有的服务程序版本存在漏洞或者默认配置的安全性不够,则很容易被攻击,从而成为攻击者进入的通道。32n2、早期网络协议安全性问题。由于在其的互联网络是用于军方、高校及科研结构,网络协议的设计对安全性方面考虑较少。例如,目前我们所使用的IPV4协议,IP数据包的源地址可以被修改、MAC

16、地址可以被伪造。33n3、软件编写不规范。现在很多大型软件都是模块化编程,可能某些功能某块之间出现漏洞,被攻击者利用作为漏洞;也有可能是程序员作为程序测试用的通道没有去除被攻击者发现。346.2 网络嗅探n网络监听也称为网络嗅探,其作用是:监视网络的流量、状态、数据等信息,分析数据包,获得有价值的信息。n一把双刃剑n管理员的管理工具,主要是进行数据包分析,通过网络监听软件,观测分析实时经由的数据包,从而进行网络故障定位n网络监听工具成了黑客的常用工具,黑客通过将网络接口设置成监听模式,便可截取以太网中的信息,造成用户口令失窃、敏感数据泄漏等 356.2.1 共享式以太网监听n当局域网内的主机是

17、通过集线器(HUB)等方式连接时,一般采取的是共享的连接。n这种共享方式连接的特点是,源主机的网路接口卡将要发送的数据报添加目的MAC地址、源MAC地址等信息封装成帧,然后将帧以广播的方式发往局域网。n当一台主机向另一台主机发送数据时,共享式的HUB会将接收到的数据向HUB上的每个端口转发。3637n通常情况下只有与数据帧中目的MAC地址一致的那台主机才会接收数据,并对其进行处理。网卡对于不属于自己的报文不予以响应,只是简单的忽略掉这些数据。n但是,如果某台主机将其网卡设置为混杂模式,使其工作在监听模式下,则不管数据帧中的目标地址是什么,主机都可以将其捕获。386.2.2 交换式以太网监听n以

18、太网交换机的原理很简单,它检测从以太网主机传送到端口来的数据包的源主机和目的主机的MAC(介质访问层)地址n然后再与系统内部的动态查找表进行比较,发往目的主机对应的交换机端口;n若数据包的MAC地址不在查找表中,则将该地址加入查找表中,并将数据包发送给相应的目的端口。39实现交换式以太网的数据包监听的方法 n(1)对交换机实行端口映射,将该端口的数据包全部映射到某个监控机器上。n(2)将数据包捕获程序放在网关或代理服务器上,这样就能抓取到整个局域网的数据包。n(3)在交换机和路由器之间连接一个HUB,这样数据将以广播的方式发送。n(4)实行ARP(地址解析协议)欺骗,即在用户机器上实现整个包的

19、转发,但这样会降低整个局域网的效率。4041交换环境下的网络监听:利用ARP欺骗nARP协议的全称是地址解析协议,ARP协议的功能是把逻辑地址转换为物理地址,即将32位的IP地址转换成48位的物理地址(网卡的MAC地址)。n例如,一台IP地址为192.168.0.1的计算机,其网卡的MAC地址为00-03-0F-FD-1D-2B。转换过程是一台主机向局域网广播包含目标IP地址的数据包,即ARP请求请求;然后目标主机向该主机发送一个含有其IP地址和MAC地址的数据包,即ARP应答应答。42n当一个网络设备需要和另一个网络设备通信时,它首先把目标设备的IP地址与自己的子网掩码进行“与”操作,以判断

20、目标设备与自己是否位于同一网段。n如果在同一个网段,而且源设备没有在高速缓存中获得与目标IP地址相对应的MAC地址信息,则源设备以广播的形式发送ARP请求报文,在ARP请求报文中包含了源设备与目标设备的IP地址。43n若某设备接收到ARP报文并发现报文中的目标IP地址与自己的IP地址相同,则向源设备发回ARP响应报文,通过该报文使源设备获得目标设备的MAC地址信息。n如果目标设备与源设备不在同一个网段,则源设备首先将IP分组发向自己的缺省网关,由缺省网关对该分组进行转发。若源设备的缓存中没有缺省网关的MAC地址,则它将同样以发ARP广播包的方式来获取网关的MAC地址 44n对大多数操作系统而言

21、,如果收到一个ARP应答,它们不管自己是否在此之前曾发出ARP请求报文,都会自动更新自己的ARP缓存,而不对ARP应答的真实性进行验证,因此ARP是一个无状态的协议,ARP欺骗就是利用这一点进行欺骗。nARP欺骗的核心思想就是向目标主机发送伪造的IPMAC映射的ARP响应,使目标主机收到伪造的ARP应答后更新其ARP缓存,从而使目标主机将数据包发送给指定的主机。45n假如同一交换网络中的三台主机A、B、C,主机C试图通过ARP欺骗截取主机A发送给主机B的数据报文,达到监听A、B通信的目的。n欺骗过程步骤为:n(1)主机C发送ARP请求报文,分别获取主机A和B的MAC地址。n(2)主机C向主机A

22、发送伪造的ARP应答报文(报文的源IP地址为B的IP地址,源MAC地址为C的MAC地址)。46n(3)主机A收到ARP应答报文,根据C发送的伪造的ARP应答报文,更新ARP缓冲区,此时有一条IP-MAC对应关系:主机B的IP地址-主机C的MAC地址。那么当主机A的应用程序向主机B发送数据时,在网络层形成包含主机B的IP信息的IP数据包;而在数据链路层将主机C的MAC地址信息加在IP数据包前,构成以太网数据帧,发往交换机的端口。交换机查找其主机MAC地址与端口的对应关系,将数据帧发往主机C对应的端口。47 为了成功监听主机A与主机B的通信,而不被主机A与B发现,主机C还要进行n(4)主机C将接收

23、的主机A发往主机B的数据帧去掉头部,加上主机B的MAC地址信息,发往交换机端口。交换机根据端口与MAC对应关系,将数据发往主机B对应的端口。这样,主机C成功的截获主机A发往B的信息,而A与B并未发觉通信有任何异常。同样主机C也可以欺骗主机B,截获B发往A的数据。这样主机C就可以监听A与B之间的所有通信。这种攻击通常也成为中间人攻击。48n为了保证伪造的IP-MAC映射关系在主机A缓冲区中的有效性,主机C每隔一个时间片发送一次ARP应答报文,保证主机A处于被欺骗状态。n同样,主机C也可以监听主机A或B与外网的通信,则只需要将上述步骤中的A或B种的一个换为网关即可。n可知,通过ARP欺骗,可监听交

24、换网络中的通信。496.3 缓冲区溢出n1988年11月,23岁的程序员Robert Tappan Morris编写的“Morris 蠕虫”是用于攻击VAX和Sun机器的程序。这个程序大约使得整个Internet的10%崩溃。Morris 蠕虫利用了一个被称为缓冲区溢出的程序缺陷。n1999年Bugtraq(一个讨论安全缺陷的邮件列表)进行的一次非正式调查发现,三分之二的参与者认为第一号的缺陷就是缓冲区溢出。从1997年到2002年3月,CERT/CC发出的半数安全警报都基于缓冲区缺陷。506.3.1 缓冲区溢出原理局部变量字符数组buf函数参数EBPret内存高端内存低端内存的生长方向堆栈的

25、生长方向向局部变量数组buf中压入的字符过多,则字符被写入EBP,ret所在的空间。51n由于内存的生长方向与堆栈的生长方向是相反的,堆栈是从内存的低端向内存的高端生长n那么向堆栈中压入的数据超过了堆栈预先分配的容量时,则就会覆盖内存高端的有用数据,此时就会出现堆栈溢出,从而使得程序失败,如果发生堆栈溢出的是大型程序,则有可能导致系统崩溃。526.3.2 缓冲区溢出实例nWindows Messenger服务用于Microsoft Windows操作系统服务器与客户端之间互相发送一些短消息。Microsoft Windows Messenger服务存在堆溢出问题,远程攻击者可以利用这个漏洞以系

26、统权限在目标机器上执行任意指令。n问题存在于Messenger服务程序的search-by-name函数中,攻击者提交特定序列的字符串给这个函数可造成堆溢出,精心构建提交数据可能以系统权限在目标机器上执行任意指令。53n消息通过NetBIOS或者RPC提交给消息服务,因此可以通过封闭NETBIOS端口(137-139)和使用防火墙过滤UDP广播包来阻挡此类消息。n用到的工具X-Scan 3.3、专用于Microsoft Windows Messenger服务远程堆溢出漏洞的扫描工具RetinaMSGSVC.exe、漏洞利用工具msgdos.exe。54n首先,对目标主机进行漏洞扫描,利用X-S

27、can3.3对202.119.201.1-202.119.201.254网段进行漏洞扫描,发现主机202.119.201.71存在安全漏洞,如图6.2所示。n图6.2 发现主机漏洞 55n其中的一个漏洞为Microsoft Windows Messenger服务远程堆溢出漏洞,图6.3为漏洞信息。n图6.3 漏洞描述 56n为确定目标主机202.119.201.71确实存在该漏洞,利用Microsoft Windows Messenger服务远程堆溢出漏洞的扫描工具RetinaMSGSVC.exe对其进行扫描(如图6.4所示),扫描结果出现VULENRABLE to MS03-43,说明该主机

28、确实可能存在此漏洞。57n图6.4 RetinaMSGSVC.exe 扫描结果 58n然后,利用msgdos.exe对主机202.119.201.71进行攻击,msgdos.exe是一个命令行工具,如图6.5所示。n图6.5 利用msgdos.exe对主机进行攻击 59n如果溢出成功,则目标主机将会在一分钟后重启,如图6.6所示。n图6.6 目标主机被溢出 606.3.3 缓冲区溢出的防范n编写正确的代码 n非执行的缓冲区技术n数组边界检查 n程序指针完整性检查 n及时安装安全补丁 n关闭不需要的特权程序 61编写正确的代码 n由于缓冲区溢出漏洞存在的原因是在程序开发时使用了与字符串操作相关的

29、函数,没有对函数参数进行严格控制,导致数据越界造成的。如果能确保缓冲区中数据不越界并有效,就可以避免缓冲区溢出。n很多存在漏洞的程序是由于调用了一些不安全的库函数,这些库函数往往没有对数组边界进行检查。现在已经开发了一些工具和技术来帮助程序员编写安全正确的代码,例如利用 grep 搜索源代码中容易产生漏洞的库的调用。62非执行的缓冲区技术 n所谓的非执行的缓冲区技术,也称为堆栈不可执行,就是指通过使被攻击程序的数据段地址空间不可执行,从而使得攻击者不可能执行被植入被攻击程序输入缓冲区的代码。n非执行的缓冲区技术可以有效地对付把代码植入自动变量的缓冲区溢出攻击,而对于其他形式的攻击则没有效果。通

30、过引用一个驻留的程序的指针,就可以跳过这种保护措施。攻击者也可以采用把代码植入堆或者静态数据段中来跳过保护。63数组边界检查 n缓冲区溢出的一个重要原因就是没有对数组进行边界检查,如果数组不能被溢出,也就不可能发生数组溢出攻击。n当数组被溢出的时候,函数返回地址、过程帧指针、函数指针等重要数据就有可能被修改。被植入的攻击代码就可能执行。因此,对数组进行边界检查,使超长代码不可能植入,这样就完全没有了缓冲区溢出攻击产生的条件。n对数组边界检查,直接的办法就是对所有的数组读写操作都进行检查,但这种完全检查要付出很大的性能代价。64程序指针完整性检查 n程序指针完整性检查是指在程序指针被应用之前检测

31、到指针的改变,因此即使一个攻击者成功地改变程序指针,由于系统提前检测到了指针的改变,因此这个指针将不会被使用。n程序指针完整性检查通过阻止缓冲区溢出的一个条件由于函数返回地址或函数指针的改变而导致的程序执行流程的改变,来阻止缓冲区溢出的发生。65n它的原理是在每次在程序指针被引用之前先检测该指针是否已被恶意改动过,如果发现被改动,程序就拒绝执行。n因此,即使一个攻击者成功地改变程序的指针,由于系统事先检测到了指针的改变,因此这个指针不会被使用。n常用的程序指针完整性检查有堆栈保护和指针保护。66n堆栈保护是一种提供程序指针完整性检查的编译器技术,即在堆栈中函数返回地址后面加了一些附加的字节,函

32、数返回时,如果检测到这个附加的字节被改动过,则说明发生过缓冲区溢出攻击。n但是如果攻击者预见到这些附加字节的存在,便可以在溢出过程中同样地附加字节,此时可以利用终止符号和随机符号对付这种攻击,67n由于终止符号不能在常用的字符串函数中使用,因为这些函数一旦遇到这些终止符号,函数过程就结束了,随机符号方式使得攻击者不可能猜测到附加字节的内容,从而加大攻击难度。n指针保护是堆栈保护的一个推广,通过在所有的代码指针之后放置附加字节来检验指针在被调用之前的合法性,如果校验失败,会发出警报信号和退出程序的执行。当然,正如在堆栈保护中的行为一样,程序指针完整性检查也不能解决所有的缓冲区溢出问题。68及时安

33、装安全补丁 n管理员必须不断关注最新的技术和补丁,不断的对系统进行修补,这是漏洞出现后最迅速有效的补救措施。n大部分的入侵是利用一些已被公布的漏洞达成的,如能及时补上这些漏洞,将增强系统抵抗攻击的能力,有效地防止大部分的攻击。69关闭不需要的特权程序 n由于缓冲区溢出只有在获得更高的特权时才有意义,所以带有特权的Unix下的suid 程序和 Windows 下由系统管理员启动的服务进程都经常是缓冲区溢出攻击的目标。n这时候,关闭一些不必要的特权程序就可以降低被攻击的风险。如Solaris下的fdformat是个有缓冲区溢出漏洞的suid 程序,因为这个格式化软盘的命令用的较少,最直接的措施是去

34、掉这个程序或者去掉suid位。n当有缓冲区溢出漏洞的程序还没有补丁时,就可以用这种方法。706.4 SQL注入nSQL注入是漏洞很常见的一种类型,一般来说,当非信任数据被插入一条查询或指令时,指令注入漏洞就会出现。n恶意输入会导致指令解释器或查询处理器对提供的指令数据产生误解,反之改变指令或查询原来的语义。n另外,对于SQL查询而言,如果应用程序执行shell指令、查询LDPA服务器、使用XPath语句从XML文件中抽取数据、把非信任数据翻译为XSLT样式单中的一部分等等,那么这个问题会出现,716.4.1 SQL注入攻击的原理nSQL注入攻击源于英文“SQL Injection Attack

35、”,微软技术中心从两个方面进行了描述:脚本注入式的攻击;恶意用户输入导致被执行的SQL脚本受到影响。nStephen Kost给出了这种攻击形式的另一个特征:“从一个数据库获得未经授权的访问和直接检索,当攻击者能够操作数据,往应用程序中插入一些SQL语句时,SQL注入攻击就发生了。”nSQL注入攻击就其本质而言,利用的是SQL的语法,针对的是应用程序开发者编程过程中的漏洞。72n由于SQL注入攻击使用的是SQL语法,使得这种攻击具有广泛性。n理论上说,对于所有基于SQL语言标准的数据库软件都是有效的,包括MSSQL Sevrer,Oracle,DB2,Sybase,MySQL等。当然,各种软件

36、有自身的特点,最终的攻击过程可能不尽相同。nSQL注入攻击的原理相对简单,易于掌握和实施,并且整个Internet上连接有数目惊人的数据库系统,在过去的几年里,SQL注入攻击的数量一直在增长。736.4.2 SQL注入攻击实例n结构化查询语言(Structured Query Language,SQL)是大部分关联数据库提供的一门语言,作为应用程序与数据库进行通信的方法。nSQL注入的原理很简单:利用未过滤的程序变量,插入任意SQL语句 74n下面是一条典型的SQL语句:select id,forename,surname from authors,n选择authors表中字段id,foren

37、ame,surname的记录。n具体选择其中一条记录时可以使用这样的查询语句:select id,forename,surname from authors where forename=john and surname=smith,75n这里值得注意的是john和smtih都被包含在单引号中,如果提交:forename:john;surname:smith;n查询语句就会变为:select id,forename,surname from authors where forename=john and surname=smith,76n当数据库执行这条语句时,会返回这样的信息:Server:

38、Msg 170,Level 15,State 1,Line 1;Line l:Incorrect syntax near hn;n这是由插入其中的单引号引起的,如果提交下面的输入,整个authors表会被删除。Forename:jo;drop table authors-;Surname:;n从上面可以看到,在提交输入时,可以构造特殊的字符串攻击数据库。这发生在数据库的查询过程中,所以通过附加精心构造的查询语句就可以渗透到数据库中。776.4.3防范SQL注入攻击n防范SQL注入攻击需要遵循几条基本的规则:n1)在构造动态SQL语句时,一定要使用类安全(type-safe)的参数加码机制。大多

39、数的数据API,包括ADO和ADO.NET,有这样的支持,允许你指定所提供的参数的确切类型(譬如,字符串,整数,日期等),可以保证这些参数被恰当地escaped/encoded了,来避免黑客利用它们。一定要从始到终地使用这些特性。78n2)在部署应用前,始终要做安全审评(security review)。建立一个正式的安全过程(formal security process),在每次做更新时,对所有的编码做审评。SQL 注入攻击从本质上看,就是攻击者利用构造的畸形 SQL 语句通过开放的 Web 服务器输入接口,把其发送到数据库服务器执行。如果 Web 服务器的接口程序没有进行细致过滤就被送往

40、数据库服务器执行,此时非法的查询语句会取得其欲获得的多数敏感信息。79n我们可以把对输入数据审核的技术通常分成以下几类:对非法数据进行修整而让它变成合法数据、拒绝预知的非法语句的输入、只接受我们已知的合法数据。n3)别把敏感性数据在数据库里以明文存放。密码应该总是在单向函数变换过后再存放。n4)确认你编写了自动化的单元测试,来特别校验你的数据访问层和应用程序不受SQL注入攻击 80n5)锁定你的数据库的安全,只给访问数据库的web应用功能所需的最低的权限。如果web应用不需要访问某些表,那么确认它没有访问这些表的权限。如果web应用只需要只读的权限从你的account payables表来生成

41、报表,那么确认你禁止它对此表的insert/update/delete 的权限。816.5 分布式拒绝服务攻击n分布式拒绝服务攻击DDoS(Distributed Denial of Service)是一种基于DoS的特殊形式的拒绝服务攻击,是一种分布、协作的大规模攻击方式,主要攻击较大的站点,比如商业站点、搜索引擎等站点。n分布式拒绝服务攻击是在传统的DoS攻击基础之上产生的一类攻击方式。82DoS是一台机器攻击目标,DDoS是很多台机器利用他们的高带宽攻击目标攻击者目标系统目标系统发起攻击发起攻击指令指令攻击的代理程序虚假的连接请求虚假的连接请求83n分布式拒绝服务攻击分布式拒绝服务攻击是

42、指借助于客户/服务器技术,将多个计算机联合起来作为入侵平台,对一个或多个目标发动DoS入侵,从而成倍地提高拒绝服务攻击入侵的威力。n通常,入侵者使用一个偷窃的帐号将DDoS主控程序安装在一个特定计算机上,在一个特定的时间主控程序与大量的代理程序通信,代理程序之前已经被安装在Internet上的许多计算机上,代理程序收到指令时就进行入侵。n利用客户/服务器技术,主控程序能在几秒内激活成百上千个代理程序的运行。846.5.1 分布式拒绝服务攻击原理n一个典型的DDoS攻击体系分成四大部分,攻击者、主控端、代理端与受害者。其中攻击者对主控端、代理端有控制权或者是部分的控制权,我们称其为傀儡机。n图6

43、.7 分布式拒绝服务攻击的原理 代理端受害者攻击者主控端85n攻击者攻击者:攻击者所用的计算机是攻击主控台,可以是网络上的任何一台主机。攻击者操纵整个攻击过程,它向主控端发送攻击命令。通常它会利用各种手段隐藏自己不被别人发现。n主控端主控端:主控端是攻击者非法侵入并控制的一些主机,这些主机还分别控制大量的代理主机。主控端主机的上面安装了特定的程序,因此它们可以接受攻击者发来的特殊指令,并且可以把这些命令发送到代理主机上 86n代理端代理端:代理端也是攻击者侵入并控制的一批主机,它们运行攻击器程序,接受和运行主控端发来的命令。代理端主机是攻击的执行者,真正向受害者主机发送攻击。87n发动DDoS

44、攻击一般分为两个阶段:n(1)初始的入侵阶段:攻击者首先扫描远程脆弱主机和服务器,并采用黑客入侵手段控制大量的主机和服务器,作为主控端和攻击端。n(2)攻击阶段:攻击者向主控端发出攻击命令,主控端在发送给每个攻击端,最后由攻击端向被攻击的目标发送DoS攻击数据包,对目标主机进行大规模拒绝服务攻击。886.5.2 DDoS攻击方式及分类n按照攻击路径可以将DDoS分为两大类:直接攻击和反射攻击(DRDoS,Distributed Reflection Denial of Service)。n在直接攻击直接攻击当中,攻击者直接向受害者发送大量的攻击包,数据包的类型可以是TCP、ICMP、UDP,或

45、是它们的混合。n在反射攻击反射攻击中,代理端的源IP地址是受害端的IP地址。89n常见的反射攻击反射攻击方式有Smurf、SYN洪泛、RST洪泛、ICMP洪泛、DNS响应洪泛等。n当前常见攻击方式有四种:SYN Flooding、UDP Flooding、ICMP Flooding、Smurf。n其中SNY Flooding、UDP Flooding和ICMP Flooding属于直接攻击直接攻击,而Smurf属于反射攻反射攻击击。90SYN Flooding攻击 n原理:利用TCP连接三次握手过程,打开大量的半开TCP连接,使得目标机器不能进一步接受TCP连接。n在建立连接的三次握手中假设客

46、户端向服务器端发送了SNY报文后突然死机或掉线那么服务器端在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的,在这种情况下服务器一般会重试,再次发送SYN+ACK应答报文并91 等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout。n一个用户出现异常导致服务器端的一个线程等待1个SYN Timeout并没有什么问题,但是如果这段时间内有大量的类似情况的SNY 数据包的话,服务器端将要维护一个规划庞大的半连接列表,这会消耗非常多的系统资源。92三次握手ACK(可以)(可以)/SYN(请确(请确认!)认!)ACK(确认连接)(确认连接)发起方发起方应答方应答方

47、SYN(我可以连接吗?)(我可以连接吗?)93SYN FloodingSYN(我可以连接吗?)(我可以连接吗?)ACK(可以)(可以)/SYN(请确认!)(请确认!)攻击者攻击者受害者受害者伪造地址进行伪造地址进行SYN请求请求为何为何还没还没回应回应就是就是让你让你白等白等不能建立正常的连接不能建立正常的连接94SYN Flooding攻击者攻击者受害者受害者这么多这么多需要处需要处理?理?不能建立正常的连接不能建立正常的连接正常用户正常正常tcp connectSYN/ACKSYN/ACKSYN/ACKSYNSYNSYNSYNSYN/ACK.95UDP Flooding攻击n用户数据报协议

48、(User Datagram Protocol,UDP)是ISO参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。它服务于很多应用层协议,包括NFS、简单网络管理协议(Simple Network Management Protocol,SNMP)、DNS以及简单文件传输系统(Trivial File Transfer Protocol,TFTP)等。96n应用程序通过系统调用与某(些)端口建立联接后,传输层传给该端口的数据都被相应进程接收。UDP有一些保留端口,同一个保留端口在UDP中可能对应于不同类型的应用进程,也可能对应于相同类型的服务进程。n一个UDP端口是一个可

49、读、可写的软件结构,内部有一个接收报文缓冲区。发送数据时UDP软件构造一个数据报,然后将它交给IP软件,便完成所有的工作。接收数据时,UDP软件先要判断接收数据报的端口是否与当前使用的某端口匹配。97n如果匹配,则将数据报放入相应接收队列,否则,抛弃该数报,并向信源端发送“端口不可到达”的ICMP报文。虽然端口匹配成功,但如果相应端口队列己满,UDP也会抛弃数据报。n如用Chargen(字符产生器)和Echo服务来传送毫无用处的数据来占用所有的带宽。Echo如果它收到一个包,就会把包中的负载按原样发回。如果向Chargen端口送一个任意字符,它将返回一个假的随机字符串。通过伪造与某一主机的Ch

50、argen服务之间的一次UDP连接,回复地址指向开着Echo98n服务的一台计算机,这样就生成在两台计算机之间的足够多的无用数据流,如果有过多的无用数据流就会导致带宽的拒绝服务攻击。n一个攻击者假冒某台计算机的Echo端口向不同的计算机发起多个Chargen连接,其目的就是在被假冒主机和这些主机间产生Echo、Chargen循环往返效果,使这些主机充满这些无用的数据包,浪费它们的带宽和CPU资源。另外成百上千台代理端同时向被攻击计算机长时间、连续、大量地发送UDP数据包,使得被攻击计算机耗费大量的CUP资源处理,疲于奔命,最终使被攻击计算机瘫痪。99ICMP攻击 nICMP(Internet

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|