北邮软件安全末复习整理.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北邮软件安全末复习整理

软件安全 2013.6 1.1概述 1.1.1信息安全的六性*** ①保密性(C, confidentiality ):信息不泄漏给非授权的用户、实体或者过程的特性,。 ②完整性(I,integrity):数据未经授权不能进行改变的特性,即信息在存储或传输过程中保持不被修改、不被破坏和丢失的特性。 ③可用性(A, availability ):可被授权实体访问并按需求使用的特性,即当需要时应能存取所需的信息。 ④真实性:内容的真实性。 ⑤可核查性:对信息的传播及内容具有控制能力,访问控制即属于可控性。 ⑥可靠性:系统可靠性。 信息安全根源:复杂性、开放性(系统、标准、业务) 信息安全特性:攻防特性、相对性、配角特性、动态性 1.1.2软件安全威胁分类( Gary Mcgraw ) ①输入验证与表示:输入信任→特殊字符、编码和数字表示 ②API误用:调用者没有理解约定的目的 ③安全特征:主要指认证,访问控制,机密性,密码,权限管理等方面的内容 ④时间与状态:死锁、会话固定、竞争条件、不安全临时文件 ⑤错误处理:没有完全处理错误 ⑥代码质量 ⑦封装 ⑧环境 OWASP的WEB安全风险分类:认证、授权、客户端攻击、命令执行、信息泄露、逻辑攻击 1.1.3软件安全加固模型*** 1.2 缓冲区溢出原理 1.2.1 缓冲区溢出原理*** 缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量溢出的数据覆盖在合法数据上。由于缓冲区溢出,相邻的内存地址空间被覆盖,造成软件出错或崩溃。如果没有采取限制措施,可以使用精心设计的输入数据使缓冲区溢出,从而导致安全问题。 1.2.2 缓冲区溢出预防 静态保护:不执行代码,通过静态分析来发现代码中可能存在的漏洞.静态的保护技术包括编译时加入限制条件,返回地址保护,二进制改写技术,基于源码的代码审计等. 动态保护:通过执行代码分析程序的特性,测试是否存在漏洞,或者是保护主机上运行的程序来防止来自外部的缓冲区溢出攻击. 1.2.3 系统栈的工作原理*** 内存的栈区实际上指的就是系统栈。系统栈由系统自动维护,它用于实现高级语言中函数的调用。对于类似C语言这样的高级语言,系统栈的PUSH/POP等堆栈平衡细节是透明的。 每一个函数独占自己的栈帧空间。当前正在运行的函数的栈帧总是在栈顶。Win32系统提供两个特殊的寄存器用于标识位于系统栈顶端的栈帧。 (1)ESP:栈指针寄存器(extendedstackpointer),其内存放着一个指针,该指针永远指向系统栈最上面的一个栈帧的栈顶。 (2)EBP:基址指针寄存器(extendedbasepointer),其内存放着一个指针,该指针永远指向系统栈最上面的一个栈帧的底部。 在函数栈帧中,一般包含以下几类重要信息。 (1)局部变量:为函数局部变量开辟的内存空间。 (2)栈帧状态值:保存前栈帧的顶部和底部(实际上只保存前栈帧的底部,前栈帧的顶部可以通过堆栈平衡计算得到),用于在本帧被弹出后恢复出上一个栈帧。 (3)函数返回地址:保存当前函数调用前的“断点”信息,也就是函数调用前的指令位置,以便在函数返回时能够恢复到函数被调用前的代码区中继续执行指令。 函数调用大致包括以下几个步骤。 (1)参数入栈:将参数从右向左一次压入系统栈中。 (2)返回地址入栈:将当前代码区调用指令的下一跳指令地址压入栈中,供函数返回时继续执行。 (3)代码区跳转:处理器从当前代码区跳转到被调用函数的入口处。 (4)栈帧调整:保存当前栈帧的状态值,以备后面恢复本栈帧时使用(EBP入栈);将当前栈帧切换到新栈帧(将ESP值装入EBP,更新栈帧底部);给新栈帧分配空间(把ESP减去所需空间的大小,抬高栈帧); 1.2.4 基于邻接变量修改的缓冲区溢出的原理 略 1.3 缓冲区溢出利用 1.3.1 什么是shellcode shellcode:缓冲区溢出攻击中植入进程的代码。 1.3.2 如何定位shellcode ①栈帧移位与jmpesp ②获取“跳板”的地址 ③使用“跳板”定位的exploit 1.3.3 缓冲区的组织 ①缓冲区的组成:填充物、淹没返回地址的数据、shellcode ②抬高栈顶保护shellcode ③函数返回地址移位 1.3.4 shellcode编码 首先,所有的字符串函数都会对NULL字节进行限制。 其次,有些函数还会要求shellcode必须为可见字符的ASCII或Unicode的值。 最后,在进行网络攻击时,基于特征的系统往往会对常见的shellcode进行拦截 1.4 漏洞挖掘方法 1.4.1 什么是漏洞挖掘技术 1.4.2 简单的fuzzing过程 Fuzz的主要目的是”崩溃crash”,”中断break”,”销毁destroy”。 Fuzz技术的

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档