攻击与防御考试复习探索.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
什么是缓冲区?它是包含相同数据类型实例的一个连续的计算机内存块。是程序运行期间在内存中分配的一个连续的区域,用于保存包括字符数组在内的各种数据类型。 所谓溢出,其实就是所填充的数据超出了原有的缓冲区边界。 两者结合进来,所谓缓冲区溢出,就是向固定长度的缓冲区中写入超出其预告分配长度的内容,造成缓冲区中数据的溢出,从而覆盖了缓冲区周围的内存空间。黑客借此精心构造填充数据,导致原有流程的改变,让程序转而执行特殊的代码,最终获取控制权。 问:什么是缓冲区溢出攻击 答:缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上。理想的情况是:程序会检查数据长度,而且并不允许输入超过缓冲区长度的字符。但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区,又被称为“堆栈”,在各个操作进程之 间,指令会被临时储存在“堆栈”当中,“堆栈”也会出现缓冲区溢出。 1 缓存溢出的原理 假定缓冲区的大小是足够的:当程序出错或者恶意的用户故意送入一过长的字符串时,超过的那部分字符将会覆盖与数组相邻的其他变量的空间,使变量出现不可预料的值。 如果数组与子程序的返回地址邻近时,便有可能由于超出的一部分字符串覆盖了子程序的返回地址,而使得子程序执行完毕返回时转向了另一个无法预料的地址,使程序的执行流程发生了错误。 甚至,由于应用程序访问了不在进程地址空间范围的地址,而使进程发生违例的故障。 heap:存放运行中被动态分配的内存段,它的大小并不固定。如new等函数分配内存时,新分配的内存就被动态添加到堆上,堆被扩张(由低到高方向);delete等函数释放内存(堆被缩减)。 stack:函数 {}中定义的变量(但不包括static声明的变量)。在函数被调用时,其参数也会被压入栈中(由高到低方向增长),并且待到调用结束后,函数的返回值也会被存放回栈中。 栈:只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。 堆:操作系统有一个记录空闲内存地址的链表,执行申请时, 会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序,大多数系统会在这块内存空间中的首地址处记录本次分配的大小,执行delete时释放相应内存空间。由于找到堆结点的大小不一定正好等于申请的大小,系统会自动将多余的那部分重新放入空闲链表中。 栈:在WINDOWS下,栈的大小是2M(一个编译时就确定的常数),如果申请的空间超过栈的剩余空间时,将提示overflow。因此,能从栈获得的空间较小。 堆是向高地址扩展的数据结构,是不连续的内存区域。堆的大小?受限于计算机系统中有效的虚拟内存。由此可见,堆获得的空间比较灵活,也比较大。 第4章 漏洞扫描 缺陷:安全漏洞可能是由于设计者或开发者的不慎而造成的产品缺陷。但并不是所有的产品缺陷都是安全漏洞。 例子: 在产品中使用一个40比特的密码可能会由于保护强度弱而产生安全隐患,但这并不属于安全漏洞。 如果一个设计者由于疏忽在一个128比特的密码中只使用了64比特,那么这一缺陷属于安全漏洞。 合理配置:任何产品的帮助文档都对其配置方法有着详细的介绍。此外,产品的最佳实践描述了产品的合理配置方式。只有那些在产品被正常和合理的配置情况下仍可能导致安全性问题的产品缺陷,才能称之为安全漏洞。 例子: 假如一个需要使用前进行用户身份认证的软件,用户配置了弱密码从而引起被轻易猜解,这并不属于安全漏洞带来的问题。 如果该软件初始安装时存在默认密码且并未强制用户在使用前进行密码更改,或者使用明文进行密码保存,则属于安全漏洞。 侵占:在使用者允许(且没有被欺骗),或系统授权范围内进行的行为,例如控制系统或变更配置等,则不是侵占,不属于安全漏洞。只有造成的后果同时违背了使用者的意愿和产品配置的安全策略的行为,才有可能是安全漏洞。 例子: 如果一个产品的缺陷会导致管理员具有修改计算机上所有文件的权限,那么不属于安全漏洞。 如果产品缺陷导致非特权级别用户(如普通用户)具备这些权限,那么就属于安全漏洞。 假设使用者在访问某个网页时,浏览器弹出警告窗口,告知使用者该网页正试图运行某些程序。这时如果使用者选择允许程序的运行,而这个程序的运行导致了某些安全性问题,这不属于安全漏洞。 如果该网页属于受信任区域,并且浏览器被配置为允许运行来自受信任区域的程序,那么这个行为符合系统安全策略,因此也不存在安全漏洞。 如果浏览器没有弹出警告窗口,该网页也不属于受信任区域,但是程序在使用者不知情的情况下就下载并运行了,那么这个缺陷就可能是安全漏洞。 如果浏览器的地址栏被当前浏览的非信任网站伪造为可信任的网址

文档评论(0)

***** + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档