b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

一定程度上能防范缓冲区溢出攻击的措施有哪些_堆栈溢出 攻击_一定程度上能防范缓冲区溢出攻击的措施有

电脑杂谈  发布时间:2019-07-23 08:05:34  来源:网络整理

一定程度上能防范缓冲区溢出攻击的措施有哪些_一定程度上能防范缓冲区溢出攻击的措施有_堆栈溢出 攻击

端口漏洞:sun rpc有一个比较大漏洞,就是在多个rpc服务时xdr_array函数存在远程缓冲溢出漏洞,通过该漏洞允许攻击者远程或本地获取root权限。3.堆喷拦截层:即便恶意脚本拦截层被突破,360网盾可依据“挂马攻击”利用漏洞的行为特征将其拦截,此拦截层还可以防范利用未知漏洞的挂马攻击。《电脑安全与黑客攻防从新手到高手(全彩)》共分为16章,包括网络安全初接触、了解随处可见的计算机病毒、揭开黑客与木马的面纱、掌握windows系统的漏洞和防范妙招、黑客常用命令详解、搜集远程计算机的信息、远程入侵计算机、木马入侵与防御、qq攻击与防御、电子邮箱攻击与防御、来自网页的攻击与防御方法、防范扫描与恶意软件、网站攻防入门、网站上传漏洞的攻击和防御、网站脚本注入的攻击与防御等内容。

6)防御溢出(漏洞)攻击 在没有修复windows系统漏洞的情况下,微点主动防御软件能够有效检测到黑客利用windows系统漏洞进行的溢出攻击和入侵,实时保护计算机的安全。 6)防御溢出(漏洞)攻击 在没有修复windows系统漏洞的情况下,微点主动防御软件能够有效检测到黑客利用windows系统漏洞进行的溢出攻击和入侵,实时保护计算机的安全。360网站安全检测平台发现,“多多返利”建站系统存在漏洞类型为sql注入,黑客可利用该漏洞绕过防火墙访问网站,获取后台超级管理员权限,甚至在网站服务器植入脚本后门,对数百万网购人群的帐号和交易安全形成威胁。

一般而言,黑客往往通过系统安全设计上的缺陷、系统网络的漏洞、口令管理的脆弱入侵系统,破坏应用,窃取数据。漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,那些黑客和病毒制造者就是利用漏洞,让病毒或木马侵入你的电脑,从而可以使攻击者能够在未授权的情况下访问或破坏系统。为了指导新手尽快的找到属于自己的漏洞,这里和大学分享一个简单的方法:根据自己开发中熟悉的内容,配合利用默认配置信息,如默认的安装路径、默认的用户口令进行第一个漏洞的挖掘。

要知道,入侵者首先要做的事情就是搜索网络上是否有这样的管理员为空口令的机器。(3)临时端口:有时候为了测试,管理员会在机器上打开一个临时端口,但测试完后却忘记了禁止,这样就会给入侵者有洞可寻、有漏可钻。通常的解决策略是:除非一个端口是必须使用的,否则禁止它。一般情况下,安全审计数据包可用于发现这样的端口并通知管理者。(4)信任关系:网络间的系统经常建立信任关系以方便资源共享,但这也给入侵者有可趁之机、间接攻击的可能,例如,只要攻破信任群中的一个机器,就有可能进一步攻击其他的机器。所以,要对信任关系严格审核、确保真正的安全联盟。2.2.2 口令失窃(1)弱不禁破的口令:就是说虽然设置了口令,但是非常简单,入侵者可以轻而易举的攻破。(2)字典攻击:就是指入侵者使用一个程序,该程序借助一个包含用户名和口令的字典,不断地尝试登录系统,直到成功进入。毋庸置疑,这种方式的关键在于有一个好的字典。(3)暴力攻击:与字典攻击类似,但这个字典却是动态的,就是说,字典包含了所有可能的字符组合。例如,一个包含大小写的4字符口令大约有50万个组合,1个包含大小写且标点符号的7字符口令大约有10万亿组合。

对于后者,一般的计算机要花费大约几个月的时间才能试验一遍。2.2.3 嗅探未加密通讯数据(1)共享介质:传统的以太网结构很便于入侵者在网络上放置一个嗅探器就可以查看该网段上的通讯数据,但是如果采用交换型以太网结构,嗅探行为将变得非常困难。(2)服务器嗅探:交换型网络也有一个明显的不足,入侵者可以在服务器上特别是充当路由功能的服务器上安装一个嗅探器软件,然后就可以通过它收集到的信息闯进客户端机器以及信任的机器。例如,虽然不知道用户的口令,但当用户使用Telnet软件登录时就可以嗅探到他输入的口令了。(3)远程嗅探:许多设备都具有RMON,功能以便管理者使用公共体字符串进行远程调试。随着宽带的不断普及,入侵者对这个后门越来越感兴趣了。2.2.4 设计存在的缺陷(1)TCP/IP协议的缺陷:TCP/IP协议现在已经广为应用、但是它设计时却是在入侵者猖狂肆虐的今天之很早以前设计出来的。因此,存在许多不足造成安全漏洞在所难免,例如smurf攻击、ICMPUnreachable数据包断开、IP地址欺骗以及SYNflood。然而,最大的问题在于IP协议是非常容易“轻信”的,就是说入侵者可以随意地伪造及修改IP数据包而不被发现。

堆栈溢出 攻击_一定程度上能防范缓冲区溢出攻击的措施有_一定程度上能防范缓冲区溢出攻击的措施有哪些

现在Ipsec协议已经开发出来以克服这个不足,但还没有得到广泛的应用。2.2.5 软件编写存在bug无论是服务器程序、客户端软件还是操作系统,只要是用代码编写的,都会存在不同程度的Bug。Bug主要分为以下几类:(1)缓冲区溢出:指入侵者在程序的有关输入项目中了输入了超过规定长度的字符串,超过的部分通常就是入侵者想要执行的攻击代码,而程序编写者又没有进行输入长度的检查,最终导致多出的攻击代码占据了输入缓冲区后的内存而执行。(2)意料外的联合使用问题:一个程序经常由功能不同的多层代码组成,甚至会涉及到最底层的操作系统级别。入侵者通常会利用这个特点为不同的层输入不同的内容,以达到窃取信息的目的。(3)不对输入内容进行预期检查:有些编程人员工作不负责任,对输入内容不进行预期的匹配检查,使入侵者输送的工作变得非常简单。(4)Raceconditions:多任务多线程的程序越来越多,在提高运行效率的同时,也要注意Raceconditions的问题。比如说:程序A和程序B都按照“读/改/写”的顺序操作一个文件,当A进行完读和改的工作时,B启动立即执行完“读/改/写”的全部工作,这时A继续执行写工作,结果是A的操作没有了表现。

问题描述如下:一个生产者生产出某种 类型的数据(记录、字符),并把它送入缓 冲区(缓冲区为n) ,惟一的一个消费者一 次从缓冲区中取走一个数据,系统要保 证缓冲区操作不发生重叠,即在任一时 刻只能有一方(生产者或消费者)访问缓冲 区。系统要保 证缓冲区操作不发生重叠,即在任一时 刻只能有一方(生产者或消费者)访问缓冲 区。这称作“堆栈溢出或缓冲溢出”,而且后来者也会踩出新的脚印。

(2)在程序中存在不规范,不安全的代码,这是发生缓冲区溢出攻击最主要的前提条件。黑客就是最先利用这些不安全,不规范的代码,来首先取得系统的控制权的,然后才利用系统的控制权,进一步实施攻击,产生更大的危害。(3)程序运行中栈的安排结构,有利于黑客展开缓冲区溢出攻击,这是因为在程序运行时通常栈是向下增长的,即后进栈的数据的地址小于先进栈的数据的地址。这样当发生函数调用时,首先压栈的是该函数的参数,然后是函数的返回地址,接下来是基指针,然后在进入函数体以后还会保存一些寄存器的值,再把这些寄存器的值压入栈顶,最后才是函数体中声明的各个局部变量(即前文所说的缓冲区),也有可能包含一些函数指针。因此,在函数运行中缓冲区的地址低于寄存器的地址,低于基指针的地址,低于返回地址的地址,低于该函数的参数的地址。所以要是向缓冲区中拷贝超过其容量大小的数据,那么多出来的数据就会覆盖寄存器的值,覆盖基指针的值,覆盖返回地址的值覆盖参数的值,也完全可以覆盖上层函数中的缓冲区等等,只要拷贝的数据足够长。而且栈所在的地址范围又低于代码所在的地址范围,这样也完全可能覆盖程序中的代码。(4)既使上诉条件都满足,也不一定会发生缓冲区溢出攻击,只能说程序中存在缓冲区溢出漏洞,这是因为不是所有的漏洞都能被黑客利用。

端口漏洞:sun rpc有一个比较大漏洞,就是在多个rpc服务时xdr_array函数存在远程缓冲溢出漏洞,通过该漏洞允许攻击者远程或本地获取root权限。7、修复系统提权漏洞与运行在root权限下的程序漏洞,以免恶意软件通过漏洞提权获得root权限传播后门。要完成权限的扩大,不但可以利用已获得的权限在系统上执行利用本地漏洞的程序,还可以放一些木马之类的欺骗程序来套取管理员密码,这种木马是放在本地套取最高权限用的,而不能进行远程控制。

因此黑客可以通过填写argv的内容,在strcpy出现缓冲区溢出时让程序转去执行相应的攻击代码,完成对系统的攻击。如图3.1(c)所示,老SP值被修改指向缓冲区的地址返回地址被修改指向恶意代码的入口地址。当sub返回时,程序将转去执行恶意代码,从而达到攻击目的。因此,为防止缓冲区溢出攻击,开发软件时应该尽量使用带边界检查的函数,或主动进行边界检查。3.3 缓冲区溢出实现方式3.3.1利用跳转指令实现溢出在调用函数时,以下内容会依次压栈:该函数的参数(按从右向左的顺序压栈),函数的返回地址,为该函数调用分配局部栈空间之前的EBP寄存器的值。这些东西调试程序的时候看一看对应的汇编代码、对应地址处的内存内容和相关寄存器的值就会一清二楚。函数调用完成后会执行ret指令,ret指令执行完后esp寄存器中会指向栈的原始区(执行函数调用之前的那个栈的栈顶),所以把shellcode放在栈的原始区,把返回地址修改后指令jmpesp的地址就可以,这条jmpesp指令的地址是通过在操作系统的几个核心DLL中查找的。整个实验过程就是写代码时调用一个函数,然后在调用函数的过程中实现栈溢出。图3.2 溢出前后堆栈分布状态对照图3.2,在程序正常执行时,memcpy函数被执行完毕后,指令指针会返回至ret地址处,继续执行memcpy函数调用处的后续指令;同时一定程度上能防范缓冲区溢出攻击的措施有哪些,执行完ret指令后ESP指针也会指向堆栈原始区(调用memcpy函数前一时刻的堆栈分布)。

堆栈溢出 攻击_一定程度上能防范缓冲区溢出攻击的措施有_一定程度上能防范缓冲区溢出攻击的措施有哪些

而缓冲区溢出中,最为危险的是堆栈溢出,因为入侵者可以利用堆栈溢出,在函数返回时改变返回程序的地址,让其跳转到任意地址,带来的危害一种是程序崩溃导致拒绝服务,另外一种就是跳转并且执行一段恶意代码,比如得到shell,然后为所欲为。通常的做法是:普通的flashmcu是在上电时或复位时,pc指针里面的存放的是“0000”,表示cpu从rom的0000地址开始执行指令,在该地址处放一条跳转指令,使程序跳转到_main函数中,然后根据不同的指令,一条一条的执行,当中断发生时(中断数量也很有限,2~5个中断),按照系统分配的中断向量表地址,在中断向量里面,放置一条跳转到中断服务程序的指令,如此如此,整个程序就跑起来了。启用dep后,就不能使用poppopret地址了,而应采用popreg/popreg/popesp/ret指令的地址,指令popesp可以改变堆栈指针,ret将执行流转移到nseh中的地址上(用关闭nx例程的地址覆盖nseh,用指向pop/pop/popesp/ret指令的指针覆盖异常处理器)。

shellcode功能体实现了溢出后主要的执行功能,如创建超级用户,提升用户权限等。在这里我们通过自定义指令来实现弹出用户对话框。攻击者可以利用缓冲区溢出漏洞,通过溢出来获取程序的控制权。若此程序具有足够的权限,则攻击者就因此获得了系统的控制权。要实施一次有效的缓冲区溢出攻击,攻击者必须完成如下任务:(a)在程序的地址空间里植入适当的代码(称为shellcode)用于完成获取系统控制权等非法任务。(b)通过修改寄存器或内存,让程序执行流跳转到攻击者植入的shellcode地址空间执行。下面以栈溢出为例,简要介绍一下这两个任务的实现方法:(a)shellcode植入:当缓冲区溢出发生在程序的IO操作附近时,攻击者可以直接利用程序的输入,向程序中植入shellcode。(b)程序执行流程的跳转:shellcode植入后,缓冲区溢出便会发生,以上面的栈溢出为例,如图3.3,函数调用的返回地址被覆盖为AAAAA,这样当此函数执行完毕返回时,程序执行流会跳转到0xAAAAA(即shellcode)处继续执行。图3.3 堆栈溢出3.3.2定位参数地址实现溢出首先看下面的代码片段。Void overflow(const char* ptr, int len){Char buff[400];Memcpy(buff,ptr,len);}其中第二参数len的值为第一参数ptr指向的字符串长度。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-115084-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...