
第20卷,第10号,计算机开发和应用文章编号: 1003·5850(2007)10·O007-03. 缓冲区溢出分析与预防策略研究缓冲区溢出与预防分析策略陶家印,李亚芳(湖南生物机械职业技术学院,长沙410127)[摘要]缓冲区溢出是一种漏洞,广泛存在于各种操作系统和应用软件中,并且存在更多漏洞. 有害. 分析了缓冲区溢出攻击的原理,讨论了基于缓冲区溢出的攻击方式和一般规则,以及攻击代码的植入方法,给出了防止缓冲区溢出攻击的策略和措施. [关键词]缓冲区溢出攻击植入代码的预防措施中间圈分类号: TP393.08 Liyue标识代码rA ^ BsTRACTBuffefOvernow aofto8范围和胖ardtohapPe其中mvarietyoperatirIgsyst是8重复∞∞ftwarethethp丑陋的p星amly距离8ofbufferdir循环8. 此原则代码在“ k8,植入80me和ti.res. 组羞耻rajla,Zhang等”的指导下进行了预防. p>容量,将存在广泛且对堆有害的漏洞. 使用缓冲区溢出会导致堆栈溢出,这将导致程序失败. 如果发生堆栈溢出,则程序将失败并且系统将崩溃.
更严重的是,大型程序可能会使系统崩溃. 例如: 要使用它执行未经授权的指令,甚至可以获取系统特权,输入vojdluⅡction(char * str)并执行各种非法操作. (chrbuffer [16]} l缓冲区溢出的原理strcpy(buffer,str),缓冲区溢出是指计算机程序填充到缓冲区时}数据位数超过了缓冲区本身的容量,溢出的数据覆盖vo | dmain(){在合法数据上. 理想情况下,程序检查数据长度,并且不对8trjng [256]进行打包以允许输入超出缓冲区长度的字符串. 但是大多数程序. mtil序列将假定数据长度始终匹配为“ = 0li <255Ii ++)分配的存储空间,这对缓冲区溢出具有隐患. 操作系统使用缓慢的Lar Xue-8tring [i]; \'A\.- rush区域在每个进程之间,指令是“临时存储功能(1a'ge-stri“ g)l. 在堆栈中,堆栈也会有缓冲区溢出. }当很长的数据进入缓冲区时,多余部分将包含一个经典的缓冲区溢出编码错误,该错误将写入其他缓冲区. Fers可能会存储数据和错误. 该函数将字符串直接复制到另一条指令的指针或其他程序的输出内容,而无需进行边界检查. 这些内容(故障(coredumped)”或类似的输出将被覆盖或破坏.

可以看到,一小部分数据或一组结果意味着Segmentation命令的溢出可能导致程序或操作系统崩溃. 在系统内部,当程序在内存覆盖中运行时,程序通常分为该程序的内容. \ A'\的十六进制值. 是ox41,因此功能段,数据段和堆栈是三个部分. 程序段存储程序的机器代码和只读数据,而数据段则将静态值存储在程序的数据地址空间中. 可见,缓冲区溢出允许更改函数的返回,并且动态数据存储在堆栈中. 地址. 这样,可以更改程序的执行顺序,因此程序从内存的低端到内存执行的高端依次排列,并且可以在以下情况下执行使用缓冲区溢出攻击的堆栈: 其他过程. 自生成的方向与内存增长的方向相反,因此堆栈上的代码被按下以绕过操作系统安全机制. 2007年1月21日收到,从2007年8月变更为t *基金项目. 湖南省教育厅科研项目(06D059)···陶家银,男. 1974年出生,实验师,研究方向,应用软件,计算机安全. 万方数据·8·(总计718)缓冲区溢出分析和预防策略研究2007代码段·2缓冲区溢出攻击方法3缓冲区溢出攻击预防方法缓冲区溢出攻击的目的是干扰以某些特权运行的程序的功能. ,从而使攻击者可以获得程序的控制缓冲区溢出攻击,这占了远程网络攻击的绝大部分. 如果该程序具有足够的权限,则对整个主机的这种攻击可以使匿名Internet用户有机会受到控制.
通常,攻击者攻击根程序,然后执行主机的部分或全部控制. 如果它可以有效地模仿“ exec(sh)”的执行代码以获得具有root权限的shell. 为了消除缓冲区溢出漏洞,已大大缓解了安全威胁. 为了实现此目标,攻击者必须安装四种适当的方法来保护缓冲区,以防止缓冲区溢出到程序的地址空间中,或者通过适当地初始化寄存器和内存而造成的影响: 让程序跳转到安排的地址空间由入侵者执行. ①不执行的缓冲区. Unix和Mswindows系统2.1. 在程序的地址空间中安排适当的代码. 为了获得更好的性能和功能,通常将其动态放置在数据段中. ①植入: 攻击者在被攻击程序的可执行代码中输入一个字符. 为了保持程序的兼容性,不可能制作该字符串一定程度上能防范缓冲区溢出攻击的措施有哪些,程序会将这个字符串放入缓冲区. 该字符串包含不可执行的程序数据段. 但是,可以设置为包含在堆栈数据中的数据是可以在受攻击的硬件平台上运行的分支段不可执行. 这种方法几乎不会引起任何兼容性问题,但是会导致顺序排序. 攻击者使用被攻击程序的缓冲区存储攻击代码,以最大程度地确保程序的安全性和兼容性. 码. 可以在堆栈,堆,静态数据区域的任何位置设置缓冲区. ②输入正确的代码. 当程序员编写代码时,由于对现有代码的大量使用: 攻击者希望代码调整开发速度和代码的简单性,通常忽略被攻击程序中程序的健壮性,只是传递一些代码参数

比较,这会导致缓冲区溢出,因此有必要从编程语言和系统执行“ exec(“ / bin / sh”)“). 例如,攻击代码需要加强对libc结构的防范. 但是,编写正确的代码是一个执行“ exec(arg)”的库代码,其中arg指向耗时的任务的指针,例如编写易于出错的C语言的指针参数. ,那么攻击者只需要将传递的参数传递给程序. 因此,已经开发了一些高级故障排除工具,例如将故障指针更改为指向“ / bin / sh”以实现该目标. 2.2将控制程序转移到攻击代码溢出区中,以找到代码的安全漏洞. 但是这些工具无法找到所有这些试图改变程序执行以流出所有缓冲区溢出漏洞的方法,只能用于减少缓冲区溢出过程并使它跳到攻击代码. 最基本的是没有溢出的可能性. 边界检查或其他弱缓冲区,这会干扰程序⑧数组边界检查. 为了执行数组边界检查,所有正常执行顺序. 通过溢出缓冲区,攻击者可以检查阵列上的读写操作一定程度上能防范缓冲区溢出攻击的措施有哪些,以确保阵列的操作通过蛮力重写相邻程序空间,并直接跳过正确范围内的系统. 最直接的方法是检查所有阵列操作. 可以,但是您也可以使用一些优化技术来减少检查数量. 2.3全面的代码植入和过程控制技术④程序指针完整性检查.
它与最简单和最常见的溢出缓冲区攻击类型不同,它可以防止更改程序指针. 程序指针完整性检查在引用程序指针之前检查字符串中的代码插入和激活记录. 攻击者定位并检测到其更改. 因此,即使攻击者成功更改了可能会溢出的自动变量,然后将大的序列指针传递给程序,由于系统会提前检测到指针更改,因此该指针字符串也会导致缓冲区溢出. 更改激活记录时将不使用植入针. 此方法不能解决所有缓冲区溢出代码. 如果存在问题,则使用其他缓冲区溢出方法可以避免这种代码植入和缓冲区溢出. 无需一次完成检测. 但是这种方法在性能上具有很大的优势并且是兼容的. 攻击者可以将代码放在缓冲区中(这也很好. 不能使缓冲区溢出),然后攻击者就会使另一个缓冲区溢出. 区域4以程序指针传输结束. 此方法通常用于解决缓冲区溢出不够大(无法放下所有代码)的问题. 如果攻击缓冲区溢出是网络攻击的一种非常常见的方法,则在尝试使用已驻留的代码而不是从外部嵌入代码时,它将给系统的安全性带来极大的风险. 为了防止缓冲区溢出攻击,通常必须使用代码作为参数. 在Iibc的代码段的一部分中,您可以定期升级软件并安装最新的安全补丁(服务器将执行“ exec(somethi“ g)”,其中的一些已程序员的安全意识和良好的数字,攻击者使用缓冲区溢出来更改程序参数,然后使用编程习惯.

另一个缓冲区溢出,使程序指针指向libc第20卷第10期计算机开发和应用库中的特定Wanfang数据(第11页). 在服务器描述中,服务器当前可用的服务份额和采用的价格策略由服务器进行协调和控制(在服务交付过程中,工作流引擎将根据组合服务动态描述提供者). 安排每个子服务的运行以确保相关信息. 此外,在模型框架中,不同的服务器将能够证明各服务的交互和执行可以顺利进行. 为了进行目的评估,该信息可用作相关参数计算服务评估字母4的结论. 其中,服务评估功能(servicev8luationfunction)是服务器的可用服务份额(availableserviceshare)和高动态环境下的价格服务综合的综合组成. 组合服务的每个子服务都需要动态搜索和评估. 服务共享是以抽象形式的容量整合服务器资源. 动态工作流管理系统可以在运行时修改其显示,例如cPu的数量,磁盘空间和主内存配置. 价格过程模型适应动态业务需求和某些异常情况. 策略意味着服务器必须在特定条件下使用动态工作流程模型来组合Web服务和工作流程. 价格(包括每个服务份额的价格折扣信息和报价字母)将Web服务用作工作流. 各种任务,例如动态工作流.
建议使用信任度来度量不同服务器的组合. 基于混合结构的服务发现模型的服务质量是服务器的信誉评估. 编织Web服务可以优化服务搜索的效率,但是在某些部分中,由于该模型支持Web服务开发和部署的分离,因此此时可能存在一定的通信开销,从而导致一定的性能瓶颈. 某些服务将不在Ren Neck上运行. 因此,可以在针对Web服务在主机服务器上部署并运行时发生的服务的服务中找到如何提供灵活有效的机制来及时处理服务器上的服务器. 在此过程中,根据服务中各种错误的服务描述,有待于进一步研究. ’要获取操作环境的说明,请选择满足动态部署和操作的服务操作要求的服务器. 这时,找到的服务器必须具有运行服务所需的所有条件. [1]李景霞,侯自峰. Web服务组合概述]. 互联网环境下计算机应用服务搜索的结果往往有更多的研究,2005,25(12); 52-54. 瓦迪姆a1. Cont Kun l Web服务满足用户的要求,这时需要根据特定[2] ArturA,svenG,K进行选择. EtA从hit或tunforSer中选择GrIdsiIla选择策略,并选择最能满足用户需求的Web服务.

FedentionofUtilityDatausA#HewIettP” hfd策略反映在用户需要将个性化参数设置到服务的某个中心8 [M]上. Laborat可以抵抗电子日子,并且可以限制某些参数索引值. 实际[3]唐静凡. 动态Web服务组合关键技术研究[D]. 杭州情况动态调整了服务的相关参数指标值和相应的价格. 州: 浙江大学出版社,2005. 省略,尽可能接近和满足用户的需求,这个过程是动态的[4]杨生文,史美林. 支持Qos约束的Web服务发现状态绑定的过程. 模型[J]. 计算机科学学报. 2005,48(4)t17-19. 在分配子服务的过程中,有两个服务调度程序的案例[5]欧玉仪,郭鹤庆,徐伯通. Web服务动态分组的研究需要处理: ①有多个服务器同时运行同一服务②4.D]. 计算机应用研究. 2006,26(4)t2l-2服务未在任何服务器上运行. 对于第一种情况,Ewrknow_b和GamsaMjahcompoing [6] D-Lupu服务调度程序将根据不同服务器的价格策略计算web-service8labu5ine88modeIofapog'ammingthe6thIntercanditional的服务评估功能值,以选择可用的服务器以提供服务并实现范例[一个]. Proceedi“ Distr. 动态绑定butedConference服务.
对于第二种情况,服务器调度程序首先是Enterprise 0bjectComputirIg,选择具有运行服务所需份额的服务器,然后根据这些[c](ED0c2002),2002. 服务器计算每个服务器的服务评估功能值分享报价. 根据服务评估功能的价值选择最佳服务器(续第8页),使用动态复制技术在服务器上部署和运行服务副本,并实现服务参考的更动态部署和操作;同时,服务副本的相关信息将为[1]于海峰,杨帆. 缓冲区溢出攻击及对策[J]. 陡峭并注册到uDDI(UniversalD电动订阅,Discovery East University Journal,2006.16 <1)112-14. 集成),提供服务发现功能. [2]高建华,尹家印. 操作系统[M]. 北京: 科学出版社. ‘执行综合服务是一个工作流程,服务的每个步骤都是2006年. 服务分配将根据服务评估功能[3]龚静,动态选择最佳价格. 基于缓冲区溢出和滑移的攻击与预防技术[J]. 比提供或运行特定子服务的可用服务器. 在整个池州师范学院学报上. 2006,28(1)1109-111百万平方数据
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-164139-1.html
我们可以打一场快速的局部战争