解密DDoS攻击 “缓存溢出”新变形
来源:asp之家 发布时间:2009-12-24 14:22:00
一种被称为“缓存溢出(buffer overflow)”的设计缺陷,正在严重危害着系统的安全,成为比y2k更为头痛的问题。一旦这个缺陷被别有用心的人发现,就会被利用作为非法入侵的一种手段,破坏电脑中的资料。据统计,通过缓存溢出进行的攻击占所有系统攻击总数的80%以上,最近各大网站所遭受的所谓分布式服务拒绝(ddos)式的攻击也是一种利用缓存溢出原理的攻击方式。
简单地说,缓存溢出是指一种攻击系统的手段,通过往程序的缓冲区中写入超出其长度的内容造成溢出,从而破坏程序的堆栈,使程序转而执行其它指令,而达到攻击的目的。分布式拒绝服务(ddos)的入侵者采用的是输入很长的字串,将通讯栏等区域填到超过设计的容量,有些多余字串就会被电脑误认为是执行密码,使入侵者有机会进入电脑,而同时系统无法察觉。有报告指出,“缓存溢出”是过去十年发生的非常普遍的电脑安全问题,入侵者可以利用它完全控制电脑。
■ 缓存溢出黑客们的惯用伎俩
在unix系统中,通过缓存溢出来获得root权限是目前使用得相当普遍的一种黑客技术。事实上这是一个黑客在系统本地已经拥有了一个基本账号后的首选攻击方式。它也被广泛应用于远程攻击,通过对daemon进程的堆栈溢出来实现远程获得rootshell的技术,已经有很多实例。
在windows系统中,同样存在着缓存溢出的问题。而且,随着internet的普及,win系列平台上的internet服务程序越来越多,低水平的win程序就成为你系统上的致命伤,因为它们同样会发生远程堆栈溢出。而且,由于win系统使用者和管理者普遍缺乏安全防范意识,一台win系统上的堆栈溢出,如果被恶意利用,将导致整个机器被黑客所控制,进而可能导致整个局域网落入黑客之手。在微软的产品iis server4.0中就被发现存在一种被称为“非法htr请求”的缺陷。据微软称,此缺陷在特定情况下会导致任意代码都可以在服务器端运行。黑客可以利用这一漏洞对iis服务器进行完全的控制,而实际上许多电子商务站点恰恰是基于这套系统的。
■ 黑客如何搅乱缓存
下面让我们了解一下缓存溢出的原理。众说周知,c语言不进行数组的边界检查,在许多运用c语言实现的应用程序中,都假定缓冲区的大小是足够的,其容量肯定大于要拷贝的字符串的长度。然而事实并不总是这样,当程序出错或者恶意的用户故意送入一过长的字符串时,便有许多意想不到的事情发生,超过的那部分字符将会覆盖与数组相邻的其他变量的空间,使变量出现不可预料的值。如果碰巧,数组与子程序的返回地址邻近时,便有可能由于超出的一部分字符串覆盖了子程序的返回地址,而使得子程序执行完毕返回时转向了另一个无法预料的地址,使程序的执行流程发生了错误。甚至,由于应用程序访问了不在进程地址空间范围的地址,而使进程发生违例的故障。这种错误其实是编程中常犯的。
一个利用缓冲区溢出而企图破坏或非法进入系统的程序通常由如下几个部分组成:
1.准备一段可以调出一个shell的机器码形成的字符串,在下面我们将它称为shellcode。
2.申请一个缓冲区,并将机器码填入缓冲区的低端。
3.估算机器码在堆栈中可能的起始位置,并将这个位置写入缓冲区的高端。这个起始的位置也是我们执行这一程序时需要反复调用的一个参数。
4.将这个缓冲区作为系统一个有缓冲区溢出错误程序的入口参数,并执行这个有错误的程序。
通过以上的分析和实例,我们可以看到缓存溢出对系统的安全带来的巨大威胁。在unix系统中,使用一类精心编写的程序,利用suid程序中存在的这种错误可以很轻易地取得系统的超级用户的权限。当服务程序在端口提供服务时,缓冲区溢出程序可以轻易地将这个服务关闭,使得系统的服务在一定的时间内瘫痪,严重的可能使系统立刻宕机,从而变成一种拒绝服务的攻击。这种错误不仅是程序员的错误,系统本身在实现的时候出现的这种错误更多。如今,缓冲区溢出的错误正源源不断地从unix、windows、路由器、网关以及其他的网络设备中被发现,并构成了对系统安全威胁数量最大、程度较大的一类。


猜你喜欢
- 准备一个CentOS6的安装盘(任意版本),或准备一张其他pnux的安装盘,此处以CentOS6为例。本文都已经经过实践,在Windows虚
- WordPress 3.3的beta 1 已经发布了,我们可以在这个版本中窥见一些最终版本的样子,这个版本还是发生了不小的变化。先找出一些明
- 前段时间,看麦田博客有一篇文章在探讨mayi首页的功能问题,大意为:假设首页为一扇门,这扇门是敞开的好还是半掩着的好,敞开的门能让人一眼的看
- 执着就是做网站要不怕困难,坚持到底。网站发展过程中可能遇到资金紧张、对手竞争、黑客攻击等各种各样的困难。但我相信,有一种执着的精神,有不畏艰
- DNS软件是黑客热衷攻击的目标,它可能带来安全问题。这里是一些保护DNS服务器最有效的方法。1.使用DNS转发器DNS转发器是为其他DNS服
- linux停止正在执行脚本正在执行一个压力测试脚本bench.sh,但是想中途停止进程,不再执行了。可以用’ps -ef
- <script src="{dede:field name='phpurl'
- 如果你有自己的主页,需要经常将自己制作的网页文件上传到几个固定的站点,相信你一定会喜欢下面介绍的“可以编程序&r
- Alexa 排名对于每个建站的朋友来说都不陌生了,它是目前常用来评价某一网站访问量的一个重要指标。虽然人们对他的算法颇有责疑(它只对安装了&
- 今天来介绍下如何在Godaddy子域名及别名域名上设置404页面,不过本文只与Linux托管计划有关。子域名上的404错误 你需要为每个指向
- 一、在\wamp\bin\apache\Apache2.4.4\conf\extra\httpd-vhosts.conf 修改如下 Name
- 电子邮件是人们在网上最常使用的通信工具之一,它已经成为我们网络生活中不可或缺的一部分,而其在局域网中也是一项很重要的应用。在局域网中构建一个
- 以前我们学校的服务器经常中毒,而且基本上是一个网站中毒而牵连到其他的网站。这无非是服务器的权限配置没做好,让黑客们利用一个大权限用户把整台服
- 帮朋友做个小导航时用到了下拉菜单,话说WordPress3.0以上版本的”wp_nav_menu()”真是好用,加上主题自定义菜单的设置简直
- 零:卸载旧版本Docker 的旧版本被称为 docker,docker.io 或 docker-engine 。如果已安装,请卸载它们:$
- 用户网页加载时间分为三部分:网页执行时间+页面及页面元素加载时间+浏览器渲染网页时间针对这三部分时间,我将加速的方法依加速的方式分成以下几类
- 为什么baidu只收录首或不收录?下面来看看各位站长的经历吧收录问题很多,,要是新站可能等等就收录了若是一值没收录,就可能是网站的问题的,更
- 最近遇到wordpress的头像在国内一直显示不出来,问题发生在WordPress 3.0以上,WordPress的头像服务Gravatar
- 腾讯QQ近期更新动作频频,2010的测试版中诸如自定义编辑头像、设置漫游及服务图标关闭等一些新特性颇为惹眼。在大家的眼球被2010吸引的时候
- Godaddy主机用户在指定Document Root时,需要注意的是: 此过程仅可用于运行Configuration 2.0的Linux帐