什么是针对Web服务器的拒绝服务攻击?

什么是针对Web服务器的拒绝服务攻击?,第1张

分布式拒绝服务攻击(DDoS)是目前黑客经常采用而难以防范的攻击手段。本文从概念开始详细介绍了这种攻击方式,着重描述了黑客是如何组织并发起的DDoS攻击,结合其中的Syn Flood实例,您可以对DDoS攻击有一个更形象的了解。最后作者结合自己的经验与国内网络安全的现况探讨了一些防御DDoS的实际手段。

DDoS攻击概念

DoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。

DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式。单一的DoS攻击一般是采用一对一方式的,当攻击目标CPU速度低、内存小或者网络带宽小等等各项性能指标不高它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS攻击的困难程度加大了 - 目标对恶意攻击包的"消化能力"加强了不少,例如你的攻击软件每秒钟可以发送3,000个攻击包,但我的主机与网络带宽每秒钟可以处理10,000个攻击包,这样一来攻击就不会产生什么效果。

这时侯分布式的拒绝服务攻击手段(DDoS)就应运而生了。你理解了DoS攻击的话,它的原理就很简单。如果说计算机与网络的处理能力加大了10倍,用一台攻击机来攻击不再能起作用的话,攻击者使用10台攻击机同时攻击呢?用100台呢?DDoS就是利用更多的傀儡机来发起进攻,以比从前更大的规模来进攻受害者。

高速广泛连接的网络给大家带来了方便,也为DDoS攻击创造了极为有利的条件。在低速网络时代时,黑客占领攻击用的傀儡机时,总是会优先考虑离目标网络距离近的机器,因为经过路由器的跳数少,效果好。而现在电信骨干节点之间的连接都是以G为级别的,大城市之间更可以达到2.5G的连接,这使得攻击可以从更远的地方或者其他城市发起,攻击者的傀儡机位置可以在分布在更大的范围,选择起来更灵活了。

被DDoS攻击时的现象

被攻击主机上有大量等待的TCP连接

网络中充斥着大量的无用的数据包,源地址为假

制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯

利用受害主机提供的服务或传输协议上的缺陷,反复高速的发出特定的服务请求,使受害主机无法及时处理所有正常请求

严重时会造成系统死机

黑客是如何组织一次DDoS攻击的?

这里用"组织"这个词,是因为DDoS并不象入侵一台主机那样简单。一般来说,黑客进行DDoS攻击时会经过这样的步骤:

1. 搜集了解目标的情况

下列情况是黑客非常关心的情报:

被攻击目标主机数目、地址情况

目标主机的配置、性能

目标的带宽

对于DDoS攻击者来说,攻击互联网上的某个站点,如http://www.mytarget.com,有一个重点就是确定到底有多少台主机在支持这个站点,一个大的网站可能有很多台主机利用负载均衡技术提供同一个网站的www服务。以yahoo为例,一般会有下列地址都是提供http://www.yahoo.com服务的:

66.218.71.87

66.218.71.88

66.218.71.89

66.218.71.80

66.218.71.81

66.218.71.83

66.218.71.84

66.218.71.86

如果要进行DDoS攻击的话,应该攻击哪一个地址呢?使66.218.71.87这台机器瘫掉,但其他的主机还是能向外提供www服务,所以想让别人访问不到http://www.yahoo.com的话,要所有这些IP地址的机器都瘫掉才行。在实际的应用中,一个IP地址往往还代表着数台机器:网站维护者使用了四层或七层交换机来做负载均衡,把对一个IP地址的访问以特定的算法分配到下属的每个主机上去。这时对于DDoS攻击者来说情况就更复杂了,他面对的任务可能是让几十台主机的服务都不正常。

所以说事先搜集情报对DDoS攻击者来说是非常重要的,这关系到使用多少台傀儡机才能达到效果的问题。简单地考虑一下,在相同的条件下,攻击同一站点的2台主机需要2台傀儡机的话,攻击5台主机可能就需要5台以上的傀儡机。有人说做攻击的傀儡机越多越好,不管你有多少台主机我都用尽量多的傀儡机来攻就是了,反正傀儡机超过了时候效果更好。

但在实际过程中,有很多黑客并不进行情报的搜集而直接进行DDoS的攻击,这时候攻击的盲目性就很大了,效果如何也要靠运气。其实做黑客也象网管员一样,是不能偷懒的。一件事做得好与坏,态度最重要,水平还在其次。

2. 占领傀儡机

黑客最感兴趣的是有下列情况的主机:

链路状态好的主机

性能好的主机

安全管理水平差的主机

这一部分实际上是使用了另一大类的攻击手段:利用形攻击。这是和DDoS并列的攻击方式。简单地说,就是占领和控制被攻击的主机。取得最高的管理权限,或者至少得到一个有权限完成DDoS攻击任务的帐号。对于一个DDoS攻击者来说,准备好一定数量的傀儡机是一个必要的条件,下面说一下他是如何攻击并占领它们的。

首先,黑客做的工作一般是扫描,随机地或者是有针对性地利用扫描器去发现互联网上那些有漏洞的机器,象程序的溢出漏洞、cgi、Unicode、ftp、数据库漏洞…(简直举不胜举啊),都是黑客希望看到的扫描结果。随后就是尝试入侵了,具体的手段就不在这里多说了,感兴趣的话网上有很多关于这些内容的文章。

总之黑客现在占领了一台傀儡机了!然后他做什么呢?除了上面说过留后门擦脚印这些基本工作之外,他会把DDoS攻击用的程序上载过去,一般是利用ftp。在攻击机上,会有一个DDoS的发包程序,黑客就是利用它来向受害目标发送恶意攻击包的。

3. 实际攻击

经过前2个阶段的精心准备之后,黑客就开始瞄准目标准备发射了。前面的准备做得好的话,实际攻击过程反而是比较简单的。就象图示里的那样,黑客登录到做为控制台的傀儡机,向所有的攻击机发出命令:"预备~ ,瞄准~,开火!"。这时候埋伏在攻击机中的DDoS攻击程序就会响应控制台的命令,一起向受害主机以高速度发送大量的数据包,导致它死机或是无法响应正常的请求。黑客一般会以远远超出受害方处理能力的速度进行攻击,他们不会"怜香惜玉"。

老到的攻击者一边攻击,还会用各种手段来监视攻击的效果,在需要的时候进行一些调整。简单些就是开个窗口不断地ping目标主机,在能接到回应的时候就再加大一些流量或是再命令更多的傀儡机来加入攻击

服务器发包就是服务器向外发送流量,一般都是服务器被入侵了,才会向外发包。

为什么发包? 黑客为的就是入侵你的服务器,利用服务器的宽带流量,来进行攻击别人。

如果服务器(网站)被入侵了,一般都是服务器或者网站存在漏洞,被黑客利用并提权入侵的,导致服务器中木马,网站被挂黑链,被篡改,被挂马。解决办法:如果程序不是很大,可以自己比对以前程序的备份文件,然后就是修复,或者换个服务器,最好是独立服务器。也可以通过安全公司来解决,国内也就Sinesafe和绿盟等安全公司 比较专业.

此附录介绍怎样获得和安装运行MySQL所需的软件和本书中介绍的第三方软件,如Perl DBI 和CGI.pm 支持环境、PHP、Apache 等。此附录中还说明了怎样获得与本书所用的samp_db 数据库样例有关的文件。

本章的目的是将所有程序包的安装说明汇集在一起,但不取代各程序包附带的安装说明。事实上,我们鼓励阅读随程序包附带的说明。此附录提供了能满足多数情况的说明,但每个软件分发包还含有在独立的安装过程失败时,怎样排除故障的说明。例如, MySQL手册中有相当多的章节介绍其安装过程,还包括专门针对许多系统问题的解决方法。

选择MYSQL安装的内容

如果还没有安装MySQL,那么必须安装它,但还需要安装如下三个工具:

如果希望编写访问MySQL数据库的脚本,则必须安装MySQL客户机编程支持环境和DBI 模块。如果打算编写提供对数据库进行Web 访问的DBI 脚本,还应该安装CGI.pm 模块,并且需要一个Web 服务器。本书所使用的是Apache 服务器,但也可以使用其他一些服务器。

如果想要编写PHP 脚本,则必须安装MySQL客户机编程支持环境与PHP。一般PHP用于Web 脚本编写,这表示还需要一个Web 服务器。本书使用Apache 服务器,因为Apache 服务器具有PHP 的模块支持环境。这表示可以安装PHP 作为Apache 系统的一个内部成分。如果您不能修改自己的Apache 拷贝(例如,如果在ISP 主机上工作而Apache 是由ISP 控制的),或者运行的是另一个不同的Web 服务器,那么可以将PHP设置为一个独立程序,并且将PHP 脚本作为一个标准的CGI 脚本运行。将PHP 作为Apache 的一个模块安装所提供的性能比将它作为独立程序运行的性能更好。

许多安装程序包都可得到预编译程序。L i n ux提供各种RPM 文件。如果喜欢编译源程序,或者程序分发包在您的平台上不可用,那么需要一个C 编译器(MySQL需要C + +)。MySQL开发者建议使用gcc 2.95.1或更新的版本来建立MySQL。egcs 在1.03 以上的版本可以用。

所需要的其他工具还包括gunzip 和t a r(如果利用压缩的tar 文件进行安装)或rpm (如果利用RPM 文件进行安装)。

获得MYSQL软件

每个程序包的主要分布点如下表所示。有的程序包可从多个位置得到: 程序包位置MySQLhttp://www.mysql.com/

ftp://ftp.mysql.com/pub/mysql/DBIhttp://www.symbolstone.org/ technology/perl/DBI/

http://www.mysql. com/Contrib/PHPhttp://www.php.net/

ftp://ftp.php.net/Apachehttp://www.apache.org/ ftp://ftp.apache.org/CGI.pmhttp://stein.cshl.org/WWW/software/CGI/

如果使用FTP 传送文件,应该用二进制方式传送它们以免出错。

有许多MySQL的镜像站点。w w w.mysql.com 位于S c a n d i n a v i a,因此如果您选择一个离您最近的站点,可以缩短下载时间。下列地址列出了各镜像站点:

http://www.mysql.com/mirrors.html

对于Perl 软件,可以用h t t p : / / c p a n . per l . o rg/ 找到所需模块的镜像。

选择要安装的版本

安装哪个程序包版本应该根据需求而定:

如果需要极大的稳定性,应该守旧一些,使用软件包的最新稳定(非b)版。这样既能得到较新的功能,而又不像b版那样存在许多问题。

如果您喜欢冒险,或者是一个开发者,可能希望使用最新的b版。当然,如果极为需要的某些功能只能在b版中得到,那么除了使用该版本外没有其他选择。

对于MySQL,预编译的系统和RPM 分发包一般是优化建立的,它们比使用源程序分发包中的配置脚本自己完成更好。MySQL开发者还利用某些使MySQL更快的商业优化编译器来建立分发包。因此这些分发包中的程序可能比您自己编译的程序更快。如果您想得到的性能,应该尽量使用预编译的分发包。

每个软件包的Web 站点都指出哪些版本是最新的稳定发行版,哪些版本是最新的b发行版。它们还提供对以前版本的功能更改清单,以帮助决定哪个版本最适合于您。

如果您使用的是二进制的代码或RPM 分发包,解开分发包就等于安装它,因为解开的文件会进入相应的目录。如果在分发包将文件装入保护目录,可能需要以root 用户的身份打开分发包。

对于源程序分发包,可将其在用来进行编译的地方解开,然后再将软件安装到目的地址。可能需要以root 身份完成安装步骤(但不是完成配置或编译步骤)。

订阅帮助邮件清单

在安装程序包时,订阅该程序包的综合讨论表是一个很好的想法,因为可以通过它提问题并得到答案。如果安装的是b发行版,应该准备参加并阅读与该软件有关的邮件,以便随时得到错误报告和解决方法。如果您不参加综合讨论,至少也应该订阅其通告,以便能接到新发行版的通知。预订邮件清单和使用它们的说明在引言中做过介绍。每个程序包的Web 站点也提供预订信息。

如果利用源程序进行安装,有几个程序包配置有configure 实用程序,这样容易在各种系统上设置和建立软件。如果建立失败,可能需要针对您原来给出的选项给configure 提供不同的选项。这很有必要,因为要防止configure 使用您前次运行它时保存的那些信息。可按如下方式清除原来保存的配置信息:

% make distclean

也可以按如下方式清除:

% rm config.cache

% make clean

不管选用哪种方式,现在都可以重新运行configure 了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11689601.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存