教科版选修3《网络安全威胁》PPT课件2.ppt

教科版选修3《网络安全威胁》PPT课件2.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3讲 网络安全威胁;1 TCP/IP经典威胁;以太网安全;IP欺骗;ARP欺骗;IP源路由欺骗;条件 主机A(假设IP地址是)是主机B的被信任主机 主机X想冒充主机A从主机B(假设IP为)获得某些服务 攻击过程 攻击者修改距离X最近的路由器G2,使得到达此路由器且包含目的地址的数据包以主机X所在的网络为目的地 攻击者X利用IP欺骗(把数据包的源地址改为)向主机B发送带有源路由选项(指定最近的路由器G2)的数据包。当B回送数据包时,按收到数据包的源路由选项反转使用源路由,就传送到被更改过的路由器G2。由于G2路由表已被修改,收到B的数据包时,G2根据路由表把数据包发送到X所在网络,X可在其局域网内较方便的进行侦听,收取此数据包。;TCP欺骗;盲攻击与非盲攻击: 非盲攻击:攻击者和被欺骗的目的主机在同一个网络上,攻击者可以简单地使用协议分析器(嗅探器)捕获TCP报文段,从而获得需要的序列号。见上述流程。 盲攻击:由于攻击者和被欺骗的目标主机不在同一个网络上,攻击者无法使用嗅探器捕获TCP报文段。其攻击步骤与非盲攻击几乎相同,只不过在步骤三无法使用嗅探器,可以使用TCP初始序列号预测技术得到初始序列号。在步骤五,攻击者X可以发送第一个数据包,但收不到A的响应包,较难实现交互。;2 典型系统安全威胁;泪滴(teardrop); 缓冲区溢出;缓冲区溢出的根本原因来自C语言(以及其后代C++)本质的不安全性: · 没有边界来检查数组和指针的引用; · 标准C 库中还存在许多非安全字符串操作,如strcpy() 、sprintf() 、gets() 等。 为了说明这个问题还必须看一看程序的内存映像。 任何一个源程序通常都包括代码段和数据段,这些代码和数据本身都是静态的。为了运行程序,首先要由操作系统负责为其创建进程,并在进程的虚拟地址空间中为其代码段和数据段建立映射。但是,光有静态的代码段和数据段是不够的,进程在运行过程中还要有其动态环境。一般说来,默认的动态存储环境通过堆栈(简称栈)机制建立。所有局部变量以及所有按值传递的函数参数都通过堆栈机制自动地进行内存空间的分配。分配同一数据类型相邻块的内存区域称为缓冲区。图2.6为Linux下进程的地址空间布局。当然,C语言还允许程序员使用堆机制创建存储器,存储使用malloc()获得的数据。不过,这与本节讨论的问题无关。 ;从逻辑上讲进程的堆栈是由多个堆栈帧构成的,其中每个堆栈帧都对应一个函数调用。当函数调用发生时,新的堆栈帧被压入堆栈;当函数返回时,相应的堆栈帧从堆栈中弹出。尽管堆栈帧结构的引入为在高级语言中实现函数或过程这样的概念提供了直接的硬件支持,但是由于将函数返回地址这样的重要数据保存在程序员可见的堆栈中。当程序写入超过缓冲区的边界时,这就是所谓的“缓冲区溢出”。发生缓冲区溢出时,就会覆盖下一个相邻的内存块,导致一些不可预料的结果:也许程序可以继续,也许程序的执行出现奇怪现象,也许程序完全失败。;下面的程序是一个缓冲溢出的实例。 例2.3.1 #include stdio.h int main(){ char name[5]; printf(“Please input your name:”); gets(name); printf(“you are %s”,name); }? 运行这个程序可以发现,当输入的字符数少时,程序运行正常;当输入的字符数太多时(超过8),程序就不能正常结束。这就是缓冲区逸出所造成。 ; 典型的堆栈帧结构如图2.7所示。堆栈中存放的是与每个函数对应的堆栈帧。当函数调用发生时,新的堆栈帧被压入堆栈;当函数返回时,相应的堆栈帧从堆栈中弹出。 ; 堆栈帧的顶部为函数的实参,下面是函数的返回地址以及前一个堆栈帧的指针,最下面是分配给函数的局部变量使用的空间。一个堆栈帧通常都有两个指针,其中一个称为堆栈帧指针,另一个称为栈顶指针。前者所指向的位置是固定的,而后者所指向的位置在函数的运行过程中可变。因此,在函数中访问实参和局部变量时都是以堆栈帧指针为基址,再加上一个偏移。由图2.7可知,实参的偏移为正,局部变量的偏移为负。当发生数据栈溢出时,多余的内容就会越过栈底,覆盖栈底后面的内容。通常,与栈底相邻的内存空间中存放着程序返回地址。因此,数据栈的溢出,会覆盖程序的返回地址,从而造成如下局面:要么程序会取到一个错误地址,要么将因程序无权访问该地址而产生一个错误。 鉴此,C语言把这一艰巨任务交给了开发人员,要求他们进行边界检查,编写安全的程序。然而这一要求往往被人们忽视,从而给黑客有机可乘。 ;4 拒绝服务攻击;4.1 拒绝服务攻击实例;Ping of Death;Jolt2 ;Land ;SYN Flood;;.;分布式拒绝服

文档评论(0)

pandon + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳春市鑫淼网络科技有限公司
IP属地广东
统一社会信用代码/组织机构代码
91441781MA52GF540R

1亿VIP精品文档

相关文档