对于Dos攻击的防御

对于Dos攻击的防御smurf、trinoo、tfn、tfn2k以及stacheldraht是比较常见的DoS攻击程序“smurf攻击”,如何抵御Smurf是一种简单但有效的DDoS攻击技术,它利用了ICMP(Int

大家好,又见面了,我是你们的朋友全栈君。

smurf、trinoo、tfn、tfn2k以及stacheldraht是比较常见的DoS攻击程序

“smurf攻击”,如何抵御

  • Smurf是一种简单但有效的DDoS攻击技术,它利用了ICMP(Internet控制信息协议)。ICMP在Internet上用于错误处理和传递控制信息。
  • 它的功能之一是与主机联系,通过发送一个“回音请求”(echorequest)信息包看看主机是否“活着”。最普通的ping程序就使用了这个功能。
  • Smurf是用一个偷来的帐号安装到一个计算机上的,然后用一个伪造的源地址连续ping一个或多个计算机网络,这就导致所有计算机所响应的那个计算机并不是实际发送这个信息包的那个计算机。
  • 这个伪造的源地址,实际上就是攻击的目标,它将被极大数量的响应信息量所淹没。对这个伪造信息包做出响应的计算机网络就成为攻击的不知情的同谋。

SmurfDDoS攻击的基本特性以及建议采用的抵御策略:

1、Smurf的攻击平台:smurf为了能工作,必须要找到攻击平台,这个平台就是:其路由器上启动了IP广播功能。
这个功能允许smurf发送一个伪造的ping信息包,然后将它传播到整个计算机网络中。

2、为防止系统成为smurf攻击的平台,要将所有路由器上IP的广播功能都禁止。一般来讲,IP广播功能并不需要。

3、攻击者也有可能从LAN内部发动一个smurf攻击,在这种情况下,禁止路由器上的IP广播功能就没有用了。
为了避免这样一个攻击,许多操作系统都提供了相应设置,防止计算机对IP广播请求做出响应。

4、如果攻击者要成功地利用你成为攻击平台,你的路由器必须要允许信息包以不是从你的内网中产生的源地址离开网络。
配置路由器,让它将不是由你的内网中生成的信息包过滤出去,这是有可能做到的。这就是所谓的网络出口过滤器功能。

5、ISP则应使用网络入口过滤器,以丢掉那些不是来自一个已知范围内IP地址的信息包。

6、挫败一个smurf攻击的最简单方法对边界路由器的回音应答(echoreply)信息包进行过滤,然后丢弃它们,
这样就能阻止“命中”Web服务器和内网。对于那些使用Cisco路由器的人,另一个选择是CAR(CommittedAccessRate,承诺访问速率)。
  • 丢弃所有的回音应答信息包能使网络避免被淹没,但是它不能防止来自上游供应者通道的交通堵塞。
  • 如果你成为了攻击的目标,就要请求ISP对回音应答信息包进行过滤并丢弃。如果不想完全禁止回音应答,那么可以有选择地丢弃那些指向你的公用Web服务器的回音应答信息包。
  • CAR技术由Cisco开发,它能够规定出各种信息包类型使用的带宽的最大值。例如,使用CAR,我们就可以精确地规定回音应答信息包所使用的带宽的最大值。

“trinoo”,如何抵御

  • trinoo是复杂的DDoS攻击程序,它使用“master”程序对实际实施攻击的任何数量的“代理”程序实现自动控制。
  • 攻击者连接到安装了master程序的计算机,启动master程序,然后根据一个IP地址的列表,由master程序负责启动所有的代理程序。
  • 接着,代理程序用UDP信息包冲击网络,从而攻击目标。
  • 在攻击之前,侵入者为了安装软件,已经控制了装有master程序的计算机和所有装有代理程序的计算机。

trinooDDoS攻击的基本特性以及建议采用的抵御策略:

1、在master程序与代理程序的所有通讯中,trinoo都使用了UDP协议。
入侵检测软件能够寻找使用UDP协议的数据流。

2、Trinoomaster程序的监听端口是27655,攻击者一般借助telnet通过TCP连接到master程序所在计算机。
入侵检测软件能够搜索到使用TCP并连接到端口27655的数据流。

3、所有从master程序到代理程序的通讯都包含字符串“l44”,并且被引导到代理的UDP端口27444。
入侵检测软件检查到UDP端口27444的连接,如果有包含字符串l44的信息包被发送过去,那么接受这个信息包的计算机可能就是DDoS代理。

4、Master和代理之间通讯受到口令的保护,但是口令不是以加密格式发送的,因此它可以被“嗅探”到并被检测出来。
使用这个口令以及来自DaveDittrich的trinot脚本,要准确地验证出trinoo代理的存在是很可能的。

一旦一个代理被准确地识别出来,trinoo网络就可以安装如下步骤被拆除:

  • 在代理daemon上使用”strings”命令,将master的IP地址暴露出来。
  • 与所有作为trinoomaster的机器管理者联系,通知它们这一事件。
    在master计算机上,识别含有代理IP地址列表的文件(默认名“…”),得到这些计算机的IP地址列表。
  • 向代理发送一个伪造“trinoo”命令来禁止代理。通过crontab文件(在UNIX系统中)的一个条目,代理可以有规律地重新启动,因此,代理计算机需要一遍一遍地被关闭,直到代理系统的管理者修复了crontab文件为止。
  • 检查master程序的活动TCP连接,这能显示攻击者与trinoomaster程序之间存在的实时连接。
  • 如果网络正在遭受trinoo攻击,那么系统就会被UDP信息包所淹没。Trinoo从同一源地址向目标主机上的任意端口发送信息包。探测trinoo就是要找到多个UDP信息包,它们使用同一来源IP地址、同一目的IP地址、同一源端口,但是不同的目的端口。

“TribalFloodNetwork”和“TFN2K”,如何抵御

  • TribeFloodNetwork与trinoo一样,使用一个master程序与位于多个网络上的攻击代理进行通讯。
  • TFN可以并行发动数不胜数的DoS攻击,类型多种多样,而且还可建立带有伪装源IP地址的信息包。
  • 可以由TFN发动的攻击包括:UDP冲击、TCPSYN冲击、ICMP回音请求冲击以及ICMP广播。

以下是TFNDDoS攻击的基本特性以及建议的抵御策略:

1、发动TFN时,攻击者要访问master程序并向它发送一个或多个目标IP地址,然后Master程序继续与所有代理程序通讯,指示它们发动攻击。

TFNMaster程序与代理程序之间的通讯使用ICMP回音应答信息包,实际要执行的指示以二进制形式包含在16位ID域中。

ICMP(Internet控制信息协议)使信息包协议过滤成为可能。

通过配置路由器或入侵检测系统,不允许所有的ICMP回音或回音应答信息包进入网络,就可以达到挫败TFN代理的目的。

但是这样会影响所有使用这些功能的Internet程序,比如ping。

TFNMaster程序读取一个IP地址列表,其中包含代理程序的位置。

这个列表可能使用如“Blowfish”的加密程序进行了加密。如果没有加密的话,就可以从这个列表方便地识别出代理信息。

2、用于发现系统上TFN代理程序的程序是td,发现系统上master程序的程序是tfn。

TFN代理并不查看ICMP回音应答信息包来自哪里,因此使用伪装ICMP信息包冲刷掉这些过程是可能的。

TFN2K是TFN的一个更高级的版本,它“修复”了TFN的某些缺点:

1、在TFN2K下,Master与代理之间的通讯可以使用许多协议,例如TCP、UDP或ICMP,这使得协议过滤不可能实现。
2、TFN2K能够发送破坏信息包,从而导致系统瘫痪或不稳定。
3、TFN2K伪造IP源地址,让信息包看起来好像是从LAN上的一个临近机器来的,这样就可以挫败出口过滤和入口过滤。
4、由于TFN2K是被识破的,因此还没有一项研究能够发现它的明显弱点。

在人们能够对TFN2K进行更完全的分析之前,最好的抵御方法是:

  • 加固系统和网络,以防系统被当做DDoS主机。
  • 在边界路由器上设置出口过滤,这样做的原因是或许不是所有的TFN2K源地址都用内部网络地址进行伪装。
  • 请求上游供应商配置入口过滤。

“stacheldraht”,如何防范

  • Stacheldraht也是基于TFN和trinoo一样的客户机/服务器模式,其中Master程序与潜在的成千个代理程序进行通讯。
  • 在发动攻击时,侵入者与master程序进行连接。Stacheldraht增加了以下新功能:攻击者与master程序之间的通讯是加密的,
  • 以及使用rcp(remotecopy,远程复制)技术对代理程序进行更新。
  • Stacheldraht同TFN一样,可以并行发动数不胜数的DoS攻击,类型多种多样,而且还可建立带有伪装源IP地址的信息包。
  • Stacheldraht所发动的攻击包括UDP冲击、TCPSYN冲击、ICMP回音应答冲击以及ICMP播放。

以下是StacheldrahtDDoS攻击的基本特征以及建议采取的防御措施:

1、在发动Stacheldraht攻击时,攻击者访问master程序,向它发送一个或多个攻击目标的IP地址。

Master程序再继续与所有代理程序进行通讯,指示它们发动攻击。

Stacheldrahtmaster程序与代理程序之间的通讯主要是由ICMP回音和回音应答信息包来完成的。

配置路由器或入侵检测系统,不允许一切ICMP回音和回音应答信息包进入网络,这样可以挫败Stacheldraht代理。

但是这样会影响所有要使用这些功能的Internet程序,例如ping。

2、代理程序要读取一个包含有效master程序的IP地址列表。这个地址列表使用了Blowfish加密程序进行加密。

代理会试图与列表上所有的master程序进行联系。如果联系成功,代理程序就会进行一个测试,以确定它被安装到的系统是否会允许它改变"伪造"信息包的源地址。

通过配置入侵检测系统或使用嗅探器来搜寻它们的签名信息,可以探测出这两个行为。
代理会向每个master发送一个ICMP回音应答信息包,其中有一个ID域包含值666,一个数据域包含字符串“skillz”。

如果master收到了这个信息包,它会以一个包含值667的ID域和一个包含字符串“ficken”的数据域来应答。

代理和master通过交换这些信息包来实现周期性的基本接触。通过对这些信息包的监控,可以探测出Stacheldraht。

一旦代理找到了一个有效master程序,它会向master发送一个ICMP信息包,其中有一个伪造的源地址,这是在执行一个伪造测试。

这个假地址是“3.3.3.3”。如果master收到了这个伪造地址,在它的应答中,用ICMP信息包数据域中的“spoofworks”字符串来确认伪造的源地址是奏效的。

通过监控这些值,也可以将Stacheldraht检测出来。

3、Stacheldraht代理并不检查ICMP回音应答信息包来自哪里,因此就有可能伪造ICMP信息包将其排除。

4、Stacheldraht代理程序与TFN和trinoo一样,都可以用一个C程序来探测。

笔记来源:https://blog.csdn.net/weixin_41924879/article/details/102582024

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155517.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • hive sql分页[通俗易懂]

    hive sql分页[通俗易懂]查出线上线下会员支付超过100的 select*from(  selecta.id,b.mobile,a.totalmoneyfrom (SELECTsum(totalmoney)totalmoney,idFROM  (SELECTt.totalmoney,d.idFROM(  SELECTsum(totalmoney)totalmoney,vipcardn…

    2022年10月21日
    1
  • python检查文件更新失败_恢复自动更新/更新失败解决方法个人汇总[通俗易懂]

    python检查文件更新失败_恢复自动更新/更新失败解决方法个人汇总[通俗易懂]步骤一:服务开启首先,打开任务管理器(快捷键Ctrl+shift+esc)(或者右键开始图标任务管理器(此方法只适应Win8Win10))(或者Ctrl+Alt+Del,点击任务管理器)打开服务选项卡+打开服务找到windowsupdate,右键,属性启动类型改为手动如果要关闭更新请改为禁用步骤二:组策略开启windows微标键+R键呼出【运行】2输入【gpedit.msc】组策略编辑器计算机配…

    2022年5月16日
    34
  • windows实现mysql读写分离[通俗易懂]

    一、主服务器(master)配置1、修改MySQL配置文件my.ini[mysqld]log-bin=mysql-bin#开启主从复制,主库的配置log-bin-index=mysql-bin.indexserver-id=1#指定主库serverid,主库的id要比从库的id小sync_binlog=1binlog_format=mixed

    2022年4月17日
    38
  • LCD 1602A

    LCD 1602A1.直接与Arduino相连2.通过转接板利用I2C的方式与Arduino相连1.直接与Arduino相连直接与Arduino相连的好处是不用现另外购买转接板,但这样造成的后果就是要大量占用Arduino的IO口。如果你的项目外接的传感器不多,那还好,但如果你需要外接很多个传感器或者其他配件,那你的IO口就会告急了~所需材料1xArduinoUNO1xLCD1…

    2022年9月22日
    2
  • Java cas 实例 客户端配置

    Java cas 实例 客户端配置

    2021年8月31日
    63
  • oracle 拼接字符串的函数写法

    oracle 拼接字符串的函数写法需求:首先根据角色ID(JSID) 查到角色组ID(JSZID),根据角色组ID(JSZID) 找到对应权限的文档ID(DOCID) 根据文档ID (DOCID) 找到附件的ID(FIEFLID) 根据附件ID找到附件编号(filebh)附件名称(filemc)附件后缀名(fileex)得到这三个字段的拼接字符串所以sql语句如下 stringse

    2022年9月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号