1、DDoS攻击:

DDOS(Distributed Denial of Service),又称分布式拒绝服务攻击。骇客通过控制多个肉鸡或服务器组成的僵尸网络,对目标发送大量看似合法请求,从而占用大量网络资源,瘫痪网络,阻止用户对网络资源的正常访问。

2、攻击类型及防御

Smurf攻击
攻击者向网关发送ICMP请求包,并将该ICMP请求报文的源地址伪造成受害主机IP地址,目的地址为广播地址。路由器在接受到该数据包,发现目的地址是广播地址,就会将该数据包广播出去,局域网内所有的存活主机都会受到一个ICMP请求包,源地址是受害主机IP。接下来受害主机就会收到该网络内所有主机发来的ICMP应答报文,通过大量返回的ICMP应答报文来淹没受害主机,最终导致网络阻塞,受害主机崩溃。下面是smurf攻击示意图

防护方案:

    • 禁止路由器广播ICMP请求包;
    • 禁止操作系统对广播发出的ICMP请求包做出响应;
    • 配置防火墙禁止来自你所处网络外部的ping包

Land Attack

攻击者发动Land Attack攻击时,需要先发出一个SYN数据包,并将数据包的源IP与目的IP都设置成要攻击的目标IP,这样目标在接收到SYN数据包后,会根据源IP回应一个SYN+ACK数据包,即和自己建立一个空连接,然后到达idel超时时间时,才会释放这个连接。攻击者发送大量这样的数据包,从而耗尽目标的TCP连接池,最终导致拒绝服务。攻击过程如下

防御方案参考如下:这种攻击对早期系统有效。通过设置防火墙和路由规则,检测源IP与目的IP相同的数据包,丢弃、过滤这种数据包。

SYN FLOOD攻击

SYN FLOOD攻击是在TCP三次握手过程中产生的。攻击者通过发送大量伪造的带有SYN标志位的TCP报文,与目标主机建立了很多虚假的半开连接,在服务器返回SYN+ACK数据包后,攻击者不对其做出响应,也就是不返回ACK数据包给服务器,这样服务器就会一直等待直到超时。这种攻击方式会使目标服务器连接资源耗尽、链路堵塞,从而达到拒绝服务的目的。SYN FLOOD攻击图示如下

防御:
SYNCheck:使用防护设备,3次握手变成了6次握手,由防护设备检测SYN请求是否合法,通过后再由防护设备将报文转发给服务器,后续报文仍由防护设备代理。
Micro blocks:管理员可以在内存中为每个SYN请求创建一个小索引(小于16字节),而不必把整个连接对象存入内存。
RST cookies:在客户端发起第一个SYN请求后,服务器故意回应一个错误的SYN+ACK报文。如果合法用户收到这个报文,就会给服务器响应RST报文。当服务器收到这个报文时,就将这个主机的IP记录进合法IP列表,下次该主机发起SYN请求时,就可以直接通过了。
STACK tweaking:管理员可以调整TCP堆栈以减缓SYN泛洪攻击的影响。这包括减小超时时间,等到堆栈存释内放时再分配连接,否则就随机性地删除传入的连接。

ACK FLOOD攻击

ACK FLOOD攻击是利用TCP三次握手过程。这里可以分为两种。
第一种:攻击者伪造大量的SYN+ACK包发送给目标主机,目标主机每收到一个SYN+ACK数据包时,都会去自己的TCP连接表中查看有没有与ACK的发送者建立连接 ,如果有则发送ACK包完成TCP连接,如果没有则发送ACK+RST 断开连接。但是在查询过程中会消耗一定的CUP计算资源。如果瞬间收到大量的SYN+ACK数据包,将会消耗服务器的大量cpu资源,导致正常的连接无法建立或增加延迟,甚至造成服务器瘫痪、死机。

第二种:利用TCP三次握手的ACK+SYN应答,攻击者向不同的服务器发送大量的SYN请求,这些SYN请求数据包的源IP均为受害主机IP,这样就会有大量的SYN+ACK应答数据包发往受害主机,从而占用目标的网络带宽资源,形成拒绝服务。

通常DDOS攻击会将ACK flood与SYN flood结合在一起,从而扩大威力。防御方案可参考如下:采用CDN进行流量稀释;避免服务器IP暴露在公网上;通过限速或动态指纹的方式;利用对称性判断来分析出是否有攻击存在;在连续收到用户发送的ACK包时,中断回话,让其重连。

更多请参考https://blog.csdn.net/Fly_hps/article/details/80940540

DDoS的类型及原理的更多相关文章

  1. 【转】Unicode utf8等编码类型的原理

    原文地址http://www.cnblogs.com/daxiong2014/p/4768681.html Unicode utf8等编码类型的原理 1.ASCII码  我们知道,在计算机内部,所有的 ...

  2. .NET中可空值类型实现原理

    为了让.Net中的值类型可以赋值为null,微软特地添加了Nullable<T>类型,也可简写为T?.但是Nullable<T>自身是结构体,也是值类型,那么它是如何实现将nu ...

  3. docker网络类型访问原理

    • bridge –net=bridge 默认网络,Docker启动后创建一个docker0网桥,默认创建的容器也是添加到这个网桥中. • host –net=host 容器不会获得一个独立的netw ...

  4. mysql数据库索引类型和原理

    索引初识: 最普通的情况,是为出现在where子句的字段建一个索引.为方便讲述,我们先建立一个如下的表. CREATE TABLE mytable ( id serial primary key, c ...

  5. 简述DDOS攻击的工作原理

    1.DDOS攻击:大量的肉鸡对服务器的不同端口发送巨型流量的UDP报文,无法通关关闭端口的方式来进行隔离,破坏力极强,严重会造成服务器当机. SYN/ACK Flood攻击:经典最有效的DDOS方法. ...

  6. [转]Unicode utf8等编码类型的原理

    FROM:http://www.cnblogs.com/daxiong2014/p/4768681.html 1.ASCII码          我们知道,在计算机内部,所有的信息最终都表示为一个二进 ...

  7. Unicode utf8等编码类型的原理

    1.ASCII码  我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte). ...

  8. 报错盲注之exp注入(double数值类型溢出原理详解)

    首先感谢原文博主,在此致敬.本文转自:http://www.cnblogs.com/lcamry/articles/5509124.html Exp()为以 e 为底的对数函数:MySQL版本在 5. ...

  9. DDOS常见攻击类型和防御措施

    DDOS 攻击类型: SYN Flood 攻击 ACK Flood 攻击 UDP Flood 攻击 ICMP Flood 攻击 Connection Flood 攻击 HTTP Get 攻击 UDP ...

随机推荐

  1. JavaScript简单了解

    一.JavaScript 的诞生历史 在最初的时候 JS 主要解决的问题是一些服务器端语言(perl)对数据的 验证功能,在js 出现之前要对表单的数据进行验证需要将数据提交到服务器 端之后才能验证数 ...

  2. 一本通 1223:An Easy Problem

    \[传送门qwq\] [题目描述] 给定一个正整数N,求最小的.比N大的正整数M,使得M与N的二进制表示中有相同数目的1. 举个例子,假如给定的N为78,其二进制表示为1001110,包含4个1,那么 ...

  3. odoo12.0 在Ubutu 18.04下环境的搭建

    sudo apt-get update sudo apt- postgresql nano virtualenv gcc python3.-dev libxml2-dev libxslt1-dev l ...

  4. ASP.NET Web API2返回值处理流程

    关于WebApi2控制器方法的四种返回类型请参考官方文档: https://docs.microsoft.com/zh-cn/aspnet/web-api/overview/getting-start ...

  5. 【Android】pidcat 不显示日志输出

    问题: 直接安装了 pidcat :  brew install pidcat ,装完以后执行 pidcat <package name> ,发现没有日志输出,adb devices 也能 ...

  6. 用pip下载的python模块怎么在PyCharm中引入报错

    在IDE中导入下载的模块,比如:numpy模块 你会发现虽然你安装了numpy模块,在CMD中python可以import numpy,但是你在PyCharm引不进去,为什么呢?你要是有注意的话,安装 ...

  7. Windows服务器【由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作】问题调查

    今天测试反应了一个问题,说接口返回的速度变慢了,并且返回的数据也不对.然后就找到了我o(╥﹏╥)o. 第一个反应就是查日志,不查不要紧,一查吓一跳,整个服务器上所有的站点都报错了.异常信息如下: Sy ...

  8. [十二省联考2019]异或粽子——可持久化trie树+堆

    题目链接: [十二省联考2019]异或粽子 求前$k$大异或区间,可以发现$k$比较小,我们考虑找出每个区间. 为了快速得到一个区间的异或和,将原序列做前缀异或和. 对于每个点作为右端点时,我们维护出 ...

  9. Django admin组件使用

    ADMIN 组件 介绍 admin 组件实现了更方便的WEB后台数据管理方式 settings.py 中第一个组件就是 : INSTALLED_APPS = [ 'django.contrib.adm ...

  10. magento 2 Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.%

    Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on h ...