设为主页
加入收藏
联系我们
返回首页
 
 
网吧技术 网吧经营 网管心声 网吧名站
 
   
  您现在的位置>>首页>>网吧技术  
 
     
 

 

拒绝服务--攻击原理及解决方法( 3 )

文章来源:中国站长学院 


     5 、使用 ngrep 来处理 tfn2k 攻击

  根据使用 DNS 来跟踪 tfn2k 驻留程序的原理,现在已经出现了称为 ngrep 的实用工具。经过修改的 ngrep (参见附录)可以监听大约五种类型的 tfn2k 拒绝服务攻击 (targa3, SYN flood, UDP flood, ICMP flood 和 smurf) ,它还有一个循环使用的缓存用来记录 DNS 和 ICMP 请求。如果 ngrep 发觉有攻击行为的话,它会将其缓存中的内容打印出来并继续记录 ICMP 回应请求。假如攻击者通过 ping 目标主机的手段来铆定攻击目标的话,在攻击过程中或之后记录 ICMP 的回应请求是一种捕获粗心的攻击者的方法。由于攻击者还很可能使用其他的服务来核实其攻击的效果(例如 web ),所以对其他的标准服务也应当有尽量详细的日志记录。

  还应当注意, ngrep 采用的是监听网络的手段,因此, ngrep 无法在交换式的环境中使用。但是经过修改的 ngrep 可以不必和你的 DNS 在同一个网段中,但是他必须位于一个可以监听到所有 DNS 请求的位置。经过修改的 ngrep 也不关心目标地址,您可以把它放置在 DMZ 网段,使它能够检查横贯该网络的 tfn2k 攻击。从理论上讲,它也可以很好的检测出对外的 tfn2k 攻击。

  运行 ngrep, 您将看到:

[root@lughnasad ngrep]# ./ngrep
Ngrep with TFN detection modifications by wiretrip / http://www.wiretrip.net/
Watching DNS server: 10.0.0 .8
interface: eth0 (10.0.0.0/255.255.0.0)

  从这里开始 ngrep 将监听 tfn2k 攻击,如果检测到攻击 , ngrep 将在屏幕上打印:

Sun Jan 9 17:30:01 2000
A TFN2K UDP attack has been detected!
Last (5000) DNS requests:
《 list of IPs that made DNS requests, up to DNS_REQUEST_MAX length 》
Last (1000) ICMP echo requests (pings):
《 list of IPs that made ICMP echo requests, up to ICMP_REQUEST_MAX length 》
Incoming realtime ICMP echo requests (pings):
《 all ICMP echo requests since the attack was detected 》

  以上的列表并不是唯一的,可以对它进行调整让他不仅显示是谁请求,而且请求多少次,频率为多少等等。在 ICMP flood 事件中, ICMP 回应请求的报告中将不包括做为 tfn2k flood 一部分的 ICMP 包。 Ngrep 还可以报告检测出来的除 smurf 之外的攻击类型( TARGA, UDP, SYN, ICMP 等)。混合式的攻击在缺省情况下表现为 ICMP 攻击,除非你屏蔽了向内的 ICMP 回应请求,这样它就表现为 UDP 或 SYN 攻击。这些攻击的结果都是基本类似的。

6 、附录 - Ngrep.c with tfn2k detection

  以下的代码在使用前应当更改一些参数。
#define DNS_REQUEST_MAX 5000
#define ICMP_REQUEST_MAX 1000
   通知 ngrep 最大的请求跟踪数(在检测攻击之前)。传输较为繁忙的网站应当增加这一数值(网络流量较为繁忙的网站 DNS 的请求数最好在 10 , 000 ,而 ICMP 请求为 2000-3000 )

#define FLOOD_THRESHOLD 20

  用在 10 秒中内有多少同一类型的攻击包来确认为真正的攻击。数目设计的越大,程序报受攻击的可能性就越小。假如您老是收到错误的警报,那么您应当增加一下这个数值。

#define DNS_SERVER_IP " 10.0.0 .8"

Ngrep 通过监视 DNS 服务器的 53 端口的 UDP 包来跟踪向内的 DNS 请求(只有 UDP )。因此, ngrep 需要知道您的 DNS 服务器的 IP 地址。

  我们的设备可能会有多个 DNS 服务器,但我们认为对一台 DNS 服务器的支持足以证明这项技术的能力。
#define TTL_THRESHOLD 150

tfn2k SYN flood 攻击使用的 TTL 值通常在 200-255 的范围内。估计到攻击者与目标主机之间不止 50 跳,因此我们可以只查找 TTL 时间高于 150 的包。假如您相信攻击者在 50 跳左右,那么您可以对 TTL 的限制进行一下更改。

  编译更改过的 ngrep

  编译和安装都非常简单。您仅需要使用以下之一来取代 ngrep.c 文件。处于方便起见,我们可以详细说明。

  这段代码只是在 RedHat 6.1 和 Mandrake 6.5 Linux 上测试过。

首先您需要在 http://www.packetfactory.net/ngrep/下载 ngrep ,我们测试的是 1.35 版。

  然后在 ftp://ftp.ee.lbl.gov/libpcap.tar.Z下载 libpcap 我们使用的是 0.40 版。

把文件放在临时文件夹里并解包, tar xvzf libpcap.tar.Z

  然后进行编译

cd libpcap-0.4 ; ./configure ; make ; make install ; make install-incl

  假如您遇到了困难,可以参见在 libpcap-0.4 目录里的 README 或 INSTALL 文件。根据我们实验的经验,如果 /usr/local/include 和 /usr/local/include/net 目录在 linux 系统中不存在的话,安装会失败。加入您在安装时遇到了 pcap.h 或 bpf.h 的错误时你可以运行
mkdir /usr/local/include ; mkdir /usr/local/include/net 然后重新运行 'make install-incl' 。然后我们需要编译 ngrep ( 使用我们修改过的版本 ) 。首先解包:

tar xvzf ngrep-1.35.tar.gz

  然后进行配置:

cd ngrep ; ./configure

  然后把 ngrep.c 复制到 ngrep 目录里。你可以覆盖也可以备份原始的 ngrep.c 文件。在这里,您应当回顾在修改过的 ngrep.c 里的配置,至少您应当把 DNS_SERVER_IP 更改为您所使用的 DNS 的地址。更改完毕后你就可以运行 'make' ,这样就建立了 ngrep 应用程序。

Modified ngrep.c source code
/* this code is available for download from http://www.wiretrip.net/na/ngrep.c*/
/*
* $Id: ngrep.c,v 1.35 1999/10/13 16:44:16 jpr5 Exp $
*
*/
/* TFN detection code added by Rain Forest Puppy / mailto:rfp@wiretrip.net
and Night Axis / mailto:na@wiretrip.net*/

/********* TFN detection defines *******************************/

/* how many DNS and ICMP requests to track */
#define DNS_REQUEST_MAX 5000
#define ICMP_REQUEST_MAX 1000

/* flood threshold is matches per 10 seconds */
#define FLOOD_THRESHOLD 20

/* IP of your DNS server */
#define DNS_SERVER_IP "10.9.100.8"

/* TFN syn uses ttl between 200-255. Assuming less than 50 hops,
flag stuff with ttl > TTL_THRESHOLD (other critera are used
as well) */
#define TTL_THRESHOLD 150

/**************************************************************/

#include <stdlib.h>
#include <string.h>
#include <signal.h>
#ifdef LINUX
#include <getopt.h>
#endif
#if defined(BSD)


【本站声明】本站刊载的部分内容全部来源互联网,对于此类文章本站仅提供交流平台,不为其版权负责。如涉及侵犯您的知识产权的文章,请联系我们,我们将尽快做出更正。并向您表示感谢!同时特别感谢对本站所有支持的网友。

 
 
综合搜索 百度 google 爱问 搜狗 中搜 雅虎 MP3 图片 flash 视频
您好!中国好用是残疾人创办站,欢迎你设为首页,你每一次的使用,就是一份爱心,对我们来说就是一份希望......