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

2016-01-29 16:39 16 1 收藏

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

【 tulaoshi.com - 防火墙的作用 】

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 / 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.tulaoshi.com)

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

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

把文件放在临时文件夹里并解包,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

  然后进行配

来源:http://www.tulaoshi.com/n/20160129/1499228.html

延伸阅读
MySQL+PHP产生乱码原因: ◆ MySQL数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MySQL乱码; ◆ MySQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MySQL乱码; ◆ MySQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MySQL乱码; ...
标签: windows 操作系统
从正确看待DoS与DDoS说起 相信大家都一定不会对这两个这个词感到陌生,是的,拒绝服务攻击(Denial of Service),以及分布式拒绝服务攻击(Distributed Denial of Service)。 所谓拒绝服务,是指在特定攻击发生后, 被攻击的对象不能及时提供应有的服务,例如本来应提供网站服务(HTTP Service)而不能提供网站服务,电子邮...
(四)一些问题的讨论 前面几章的内容都是服务的一些通用的编写原理,但里面隐含着一些问题,编写简单的服务时看不出来,但碰到复杂的应用就会出现一些问题,所以本章就是用来分析、解决这些问题的,适用于高级应用的开发人员。我这一章的内容都是经过实验得到的,很有实际意义。 我在第一章里面就说过,是由一个服务...
标签: 产后 怀孕
1、产后痛 怀孕后变大的子宫收缩到原有大小的过程中会产生疼痛。从临近分娩到产后第二天,腹部会感到规律性的阵痛。有的产妇甚至会出现持续一周的阵痛。哺乳的产妇会在催乳素的作用下加快宫缩,阵痛更强烈。强烈的阵痛表明子宫收缩能力良好,不必为此担心。但如果还伴有发烧、恶露不尽等症状就要找医生诊治。 2、子宫复旧不全 ...
标签: 电脑入门
为何之前都一切正常,现在出现问题了呢?还是先查看下事件日志。经过查看,原来是因为服务器自动重启时没有停止cwRsync server,如果突然重启就会造成这个错误,如何来处理呢? 解决: 删除C:Program FilesICWrsyncd-stdin.log文件和C:Program FilesICWrsyncd-stdin.pid 文件,再重启服务即可。 PS: 一般出现本地计算机上的RsyncServer ...

经验教程

815

收藏

49
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部