按照这种原理进行的黑客入侵就叫做“堆栈溢出攻击”,我们不妨打个比方,黑客就获取了程序的控制权,就会覆盖其他数据区,再根据漏洞编写溢出程序(好多都自带扫描功能)包括本地提权溢出。 6)防御溢出(漏洞)攻击 在没有修复windows系统漏洞的情况下,微点主动防御软件能够有效检测到黑客利用windows系统漏洞进行的溢出攻击和入侵,实时保护计算机......。6)防御溢出(漏洞)攻击 在没有修复windows系统漏洞的情况下,微点主动防御软件能够有效检测到黑客利用windows系统漏洞进行的溢出攻击和入侵,实时保护计算机的安全。
因此,防范缓冲区溢出攻击的另一个方面就是对系统设置实施有效的安全策略。这些策略种类很多,比较典型措施有:(1)在装有Telnet服务的情况下,通过手工改写“/etc/inetd.conf”文件中的Telnet设置,使得远程登录的用户无法看到系统的提示信息。具体方法是将Telnet设置改写为:telnetstreamtcpnowaitroot/usr/sbin/tcpd/in.telnetd-h末尾加上“-h”参数可以让守护进程不显示任何系统信息,只显示登录提示,这样用户在发出远程登录的时候,没有任何可用的信息,他不知道什么版本,自然想得到某种版本的漏洞信息就比较困难了。(2)改写“rc.local”文件。默认情况下,当登录Linux系统时系统运行rc.local文件,显示该Linux发行版本的名字、版本号、内核版本和服务器名称等信息,这使得大量系统信息被泄露。将“rc.local”文件中显示这些信息的代码注释掉,可以使系统不显示这些信息。另一种方法是将保存有系统信息的文件/etc/issue.Net和issue删除。这两个文件分别用于在远程登录和本地登录时向用户提供相关信息。删除这两个文件的同时,仍需要完成方法一中的注释工作,否则,系统在启动时将会自动重新生成这两个文件。
微软的编译器从visual studio.net 2002开始,默认设置了一个编译选项/gs,其作用是堆栈检查,以防止堆栈或缓冲区溢出此类问题的发生,即是阻止代码溢出攻击,所以必须链接bufferoverflowu.lib库。(1)禁止非信任区程序非法运行:理论上需要四条规则——禁止非信任区程序访问文件、注册表项、注册表值、端口,其中,“禁止非信任区程序访问文件”默认规则的“防病毒爆发控制”中的“阻止对所有共享资源的读写访问”就是,这是咖啡的极致规则,“阻止对所有共享资源的读写访问”开启,非信任区程序根本没有能力再碰触到注册表项、注册表值、端口规则了。禁止非信任区程序访问文件、注册表项、注册表值、端口,其中,“禁止非信任区程序访问文件”默认规则的“防病毒爆发控制”中的“阻止对所有共享资源的读写访问”就是,这是咖啡的极致规则,“阻止对所有共享资源的读写访问”开启,非信任区程序根本没有能力再碰触到注册表项、注册表值、端口规则了。
如果使用的机器堆栈压入数据时向高地址方向前进,那么无论缓冲区如何溢出,都不可能覆盖低地址处的函数返回地址指针,也就避免了缓冲区溢出攻击。当然这种方法仍然无法防范利用堆和静态数据段的缓冲区进行溢出的攻击。4.4及时给程序漏洞打补丁这是漏洞出现后最迅速有效的补救措施。大部分的入侵是利用一些已被公布的漏洞达成的,如能及时补上这些漏洞,无疑极大的增强了系统抵抗攻击的能力。缓冲区溢出的防范策略这三种系统策略对管理员来说代价都不是很高,但能很有效地防止住大部分的攻击企图。4.5提供高级的用户帮助很多开发者都不能把帮助与良好的安全性联系到一起,但是良好的帮助的确可以减少用户犯错误来提高安全性。例如,良好的帮助文件可以通过显示应用程序希望接收的信息,从而防止某类用户输入错误信息。减少输入错误可以彻底地分析遗留的错误信息,并最终减少不正确输入带来的安全风险。帮助可以来自于所有形式,包括有用的错误消息。某些数据类型会提出一些特殊的挑战,而你的应用程序必须处理这些问题以确保数据完整性和安全性。例如,日期就是经常会出现问题的一个数据输入条目。首先,你必须考虑日期的格式。用户可能输入06/01/2009、2009-01-06、2009/06/01或其它可接受的变量。
程序员应该约束自己的应用程序,只允许一种日期格式以便于检查日期信息的有效性。但是错误消息和帮助文件可以告诉用户必须使用哪种格式,这样用户使用错误格式输入一个有效日期的时候就不会感到沮丧(因为有帮助提醒格式)。当然,无论你怎样做,仍然有一些用户试图滥用系统。他们可能使用错误的格式输入日期,甚至于输入根本不包含日期的信息。但是,通过提供良好的帮助,程序员就拥有了用于询问用户的基本要素了。程序员可以调用安全性措施来确保用户知道这种行为是不可接受的。减少缓冲区溢出是一个主动的过程。必须多方面入手,才可以达到自己的目的。攻击后的恢复为了阻止攻击的进一步发展,目前缓冲区溢出防卫工具的普遍做法是中止当前的运行程序。这种处理方式简单、直接,但是牺牲了程序的可用性。对于服务关键性程序,中止服务会将缓冲区溢出攻击转换成攻击。有一种编译器扩展方法,将溢出缓冲区的数据保存到一个哈希表中,使其不造成数据破坏,又可供需要时使用,巧妙地化解了可用性与安全性之间的矛盾。文献[34]提出一种处理方法,将程序中的每个函数看成一个交易,当检测到溢出操作时,仅中止当前交易(函数),而不中止整个程序。由于程序可用性不容忽视,以后研制的缓冲区溢出防卫工具除了阻止攻击以外,还需要具备一定的恢复能力,在确保安全的同时尽可能减少对程序可用性的影响。
6)防御溢出(漏洞)攻击。《电脑安全与黑客攻防从新手到高手(全彩)》共分为16章,包括网络安全初接触、了解随处可见的计算机病毒、揭开黑客与木马的面纱、掌握windows系统的漏洞和防范妙招、黑客常用命令详解、搜集远程计算机的信息、远程入侵计算机、木马入侵与防御、qq攻击与防御、电子邮箱攻击与防御、来自网页的攻击与防御方法、防范扫描与恶意软件、网站攻防入门、网站上传漏洞的攻击和防御、网站脚本注入的攻击与防御等内容。 6)防御溢出(漏洞)攻击 在没有修复windows系统漏洞的情况下,微点主动防御软件能够有效检测到黑客利用windows系统漏洞进行的溢出攻击和入侵,实时保护计算机......。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-115084-3.html
美国早就很清楚
还是忍
如果是漏过气的到是很正常