当前位置: 首页 > news >正文

【信息安全原理】——拒绝服务攻击及防御(学习笔记)

📖 前言:拒绝服务攻击(Denial of Service, DoS)是一种应用广泛、难以防范、严重威胁网络安全(破坏可用性)的攻击方式。本章主要介绍DoS的基本概念、攻击原理及防御措施。

在这里插入图片描述


目录

  • 🕒 1. 定义
  • 🕒 2. 分类
  • 🕒 3. 攻击原理
    • 🕘 3.1 剧毒包型DoS攻击
    • 🕘 3.2 风暴型DoS攻击
      • 🕤 3.2.1 直接风暴型DDoS
      • 🕤 3.2.2 反射风暴型DDoS
      • 🕤 3.2.3 其他风暴型DDoS
    • 🕘 3.3 重定向DoS攻击
    • 🕘 3.4 案例分析
  • 🕒 4. 防御
    • 🕘 4.1 检测
    • 🕘 4.2 响应
    • 🕘 4.3 防范

🕒 1. 定义

定义:攻击者通过某种手段,有意地造成计算机或网络不能正常运转从而不能向合法用户提供所需服务或者使服务质量降低

  • 服务(Service):系统提供的,用户在对其使用中会受益的功能
  • 拒绝服务(DoS: Denial of Service):任何对服务的干涉如果使得其可用性降低或者失去可用性称为拒绝服务, 如: 计算机系统崩溃;带宽耗尽;硬盘被填满
  • 攻击方式:消耗系统或网络资源; 阻断访问路径;更改系统配置

DDoS(Distributed Denial of Service):如果处于不同位置的多个攻击者同时向一个或多个目标发起拒绝服务攻击,或者一个或多个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施拒绝服务攻击。

  • 特点: 攻击来源的分散性、协同性,攻击力度的汇聚性
  • 1999年11月,在由CERT/CC组织的分布式系统入侵者工具研讨会(DSIT Workshop)上,与会专家首次概括了DDoS攻击技术 。

DDoS与DoS的关系

  • 广义上讲, DDoS属于DoS攻击,且是DoS主流的攻击模式
  • 狭义上讲, DoS指的是单一攻击者针对单一受害者的攻击(传统的DoS), 而DDoS则是多个攻击者向同一受害者的攻击

Q:分布式攻击一定是DDoS吗?
A:分布式扫描、分布式口令破解严格意义上只是分布式计算,不能算攻击。

DDoS为什么能成功?

  • TCP/IP协议存在漏洞,可以被攻击者利用
  • 网络提供Best-Effort服务,不区分数据流量是否是攻击流量
  • 网络带宽和系统资源是有限的

在这里插入图片描述

🔎 案例:“中美黑客大战”20周年纪念回顾

🕒 2. 分类

攻击种类来分

  • 物理的(Physical DoS):偷窃、破坏物理设备、破坏电源
  • 逻辑的(Logic DoS)

攻击的目标来分

  • 节点型
    • 主机型:CPU、磁盘、OS等
    • 应用型:Email、DNS、Web等
  • 网络连接型

攻击方式来分

  • 资源消耗:耗尽带宽、内存、CPU、磁盘
  • 物理破坏:雷击、电流、水火等
  • 服务中止:攻击导致服务崩溃或中止

受害者类型来分

  • 服务端DoS:攻击Web服务器,影响大,主要的DoS
  • 客户端DoS:游戏、聊天室中的“踢人”

按攻击是否直接针对受害者来分

  • 直接DoS:直接攻击某个Email帐号使之不可用(如邮件炸弹攻击)
  • 间接DoS:通过攻击Email服务器来间接攻击某个Email帐号(使某个帐号不可用)

攻击地点来分

  • 本地 DoS:与受害者同处一地
  • 远程 DoS:通过网络

攻击机制来分

  • 剧毒包型:利用协议木身或其软件实现中的漏洞
  • 风暴型:通过大量的“无用”数据包占用过多的资源
  • 重定向型:通过修改网络中的一些参数或ARP表等,使得数据包被重定向到了其它地方

🕒 3. 攻击原理

🕘 3.1 剧毒包型DoS攻击

剧毒包或杀手包(Killer Packet) DoS攻击:利用协议本身或其软件实现中的漏洞,通过一些畸形的数据包使受害者系统崩溃,也称为“漏洞攻击”或“协议攻击”。

  • WinNuke攻击
  • 泪滴(Teardrop)攻击
  • Land攻击
  • Ping of death 攻击
  • 循环攻击

上述攻击方式虽已过时,但其思路仍值得借鉴!

🕘 3.2 风暴型DoS攻击

风暴型DoS攻击:通过大量的“无用”数据包占用过多的资源以达到拒绝服务的目的,也称为“带宽攻击”

  • 直接风暴型攻击
  • 反射攻击(DRDoS)

DDoS原理图释:
DDoS攻击将造成骨干网络资源浪费、链路堵塞、业务中断。
在这里插入图片描述

用于攻击的分组类型有:

  • TCP 洪流(floods)。向目标主机发送大量设置了不同标志的TCP分组。常被利用的标志包括:SYN, ACK, RST。其中,TCP SYN攻击导致目标主机不断地为TCP连接分配内存,从而使其它功能不能分配到足够的内存。Trinoo就是一种分布式的TCP SYN DoS攻击工具。
  • ICMP Echo 请求/响应报文(如,Ping floods)。向目标主机发送大量的ICMP分组。
  • UDP洪流。向目标主机发送大量各种基于UDP协议的应用协议包(如NTP,SSDP,DNS等)。

🕤 3.2.1 直接风暴型DDoS

现在不是主流,但曾经很风光!

攻击原理:
在这里插入图片描述

  • PING风暴攻击(直接型)
  • SYN风暴攻击(直接型)
  • TCP连接耗尽攻击(直接型)
  • UDP风暴攻击(直接型)
  • HTTP风暴攻击(直接型)
  • HTTP/2 PING Flood
  • 对邮件系统的DoS攻击(直接型)

🕤 3.2.2 反射风暴型DDoS

攻击者直接利用控制的僵尸主机向攻击自标发送攻击报文。

攻击原理:
在这里插入图片描述

在这里插入图片描述

SSDP、NTP、DNS和CHARGEN是最常见的反射攻击向量。
在这里插入图片描述

用作反射型DDoS的协议一般具有的特点

  • 互联网上有很多可探测到的支持该协议的服务器
  • 部分协议的请求报文大小远小于响应报文的大小
  • 协议具有无连接特性

NTP(Network Time Protocol,网络时间协议):用于计算机间的时间同步。
在这里插入图片描述

NTP 包含一个 monlist 功能,也被成为 MON_GETLIST,主要用于监控 NTP 服务器,NTP 服务器响应 monlist 后就会返回与 NTP 服务器进行过时间同步的最后 600 个客户端的 IP,响应包按照每 6 个 IP 进行分割,最多有 100 个响应包。
在这里插入图片描述

  • 回复报文长度是申请报文长度的:482 * 100 /234 = 206 倍
  • 使用UDP协议,很容易伪造源地址给NTP服务器发请求。

在这里插入图片描述

SSPD(Simple Service Discovery Protocol,简单服务发现协议)主要用于在局部网里发现通用即插即用(Universal Plug-and-Play,UPnP)网络设备

UPnP是一种用于 PC 机和智能设备(或仪器)的常见对等网络连接的体系结构,尤其是在家庭中。UPnP 以 Internet 标准和技术(例如 TCP/IP、HTTP 和 XML)为基础,使这样的设备彼此可自动连接和协同工作。

在设计上,它支持 0 设置、网络连接过程“不可见”和自动查找众多供应商提供的多如繁星的设备的类型。

  • 一个 UPnP 设备能够自动跟一个网络连接上、并自动获得一个 IP 地址、传送出自己的功能并获悉其它已经连接上的设备及其功能。最后,此设备能自动顺利地切断网络连接,并且不会引起意想不到的问题。
  • 在 UPnP 架构中没有设备驱动程序,取而代之的是普通协议。

在这里插入图片描述

攻击过程:
在这里插入图片描述

🔎 常见DDoS攻击

如何避免被攻击?

  • 大多数人甚至不知道企业或家庭环境中启用了SSDP,而他们很可能都没有使用过这个协议。如果你不使用一个协议或应用程序或服务,最好是关掉。
  • 其次是确保在网络外围,只允许用户应该连接的协议被使用。从安全的角度来看,这是一个良好的习惯。

多选题:
1、下列协议,可用作拒绝服务攻击的有()
A. ICMP B. HTTP C. TCP D. DNS
答案:ABCD
2、下列协议,可用作反射型拒绝服务攻击的有()
A. UDP B. SSDP C. TCP D. NTP
答案:BD

🕤 3.2.3 其他风暴型DDoS

🔎 RangeAmp attacks can take down websites and CDN servers

🔎 CDN Backfired: Amplification Attacks Based on
HTTP Range Requests

🔎 RangeAmp攻击:将CDN变成DDoS加农炮

🕘 3.3 重定向DoS攻击

通过修改网络中的一些参数或ARP表、DNS缓存,使得受害者发出的或者发向受害者的数据包被重定向到了其它地方。

常被用于窃听或中间人攻击。因此,通常在网络窃听中研究,很多人不把它当作DoS攻击。

🕘 3.4 案例分析

🔎 5.19 DNS大规模攻击事件

🕒 4. 防御

🕘 4.1 检测

检测难点

  • 不容易定位攻击者的位置
    • Internet上绝大多数网络都不限制源地址,也就使伪造源地址非常容易
    • 通过攻击代理的攻击,只能找到攻击代理的位置
    • 各种反射式攻击,无法定位源攻击者
  • 依据DDoS攻击工具的特征标志检测
    • 特定端口。例如,著名的DDoS工具trinoo使用的端口分别为:TCP端口27655, UDP端口27444和31335;NTP DRDoS检测123端口。
    • 标志位。例如,Shaft攻击所用的TCP分组的序列号都是0x28374839。
    • 特定数据内容。
  • 统计检测
  • 主机网络连接特征检测
  • 根据异常流量来检测:
    • 当DDoS攻击一个站点时,会出现明显超出该网络正常工作时的极限通信流量的现象。现在的技术能够分别对不同的源地址计算出对应的极限值。当明显超出此极限值时就表明存在DDoS攻击的通信。因此可以在主干路由器端建立ACL访问控制规则以监测和过滤这些通信。
    • 特大型的ICMP和UDP数据包
    • 不属于正常连接通信的TCP和UDP数据包。隐蔽的DDoS工具随机使用多种通信协议(包括基于连接的和无连接协议)发送数据。优秀的防火墙和路由规则能够发现这些数据包。
    • 数据段内容只包含文字和数字字符(例如,没有空格、标点和控制字符)的数据包 。
    • DoS工具产生的网络通信信息有两种:控制信息(在DoS管理者与攻击代理之间)和攻击时的网络通信(在DoS攻击代理与目标主机之间)。根据以下异常现象在入侵检测系统中建立相应规则,能够较准确地监测出DoS攻击
      • 根据分析,攻击者在进行DDoS攻击前总要解析目标的主机名。BIND域名服务器能够记录这些请求。由于每台攻击服务器在进行一个攻击前会发出PTR反向查询请求,也就是说在DDoS攻击前域名服务器会接收到大量的反向解析目标IP主机名的PTR查询请求。

🕘 4.2 响应

到目前为止,对付风暴型DDoS攻击的方案主要有四种:

  • 通过丢弃恶意分组的方法保护网络;
  • 在源端控制DDoS攻击;
  • 追溯 (Traceback) 攻击的源端, 然后阻止它发起新的攻击;
  • 路由器动态检测流量并进行控制。

最有效的对抗风暴型DDoS的方法是:流量清洗

🔎 秒极黑洞 解决大规模DDoS攻击导致的“躺枪”

DDoS攻击防御就是对DDoS攻击与正常业务数据混合在一起的流量进行净化,净化掉DDoS攻击流量,保留正常业务流量,保证客户业务7×24小时的不间断提供。

DDoS攻击阻断过程一般包括攻击监测和判断、流量牵引、清洗过滤、流量回送四个关键环节。

流量清洗服务是提供给租用IDC服务的政企客户,针对对其发起的DOS/DDOS攻击的监控、告警和防护的一种网络安全服务

  • 第一步,利用专用的检测设备对用户业务流量进行分析监控。
  • 第二步,当用户遭受到DDoS攻击时,检测设备上报给专用的业务管理平台生成清洗任务,将用户流量牵引到流量清洗中心。
  • 第三步,流量清洗中心对牵引过来的用户流量进行清洗,并将清洗后的用户合法流量回注到城域网。同时上报清洗日志到业务管理平台生成报表。

绿盟科技:三位一体解决方案
在这里插入图片描述

🕘 4.3 防范

  • 限制带宽
    • 限制特定协议占用的带宽,但并不是完善的方法
  • 终端防御:
    • 及时安装厂商补丁,减少被攻击的机会
    • 运行尽可能少的服务
    • 增强容忍性
  • 入口过滤:只允许必要的通信
    • 设置严格的防火墙策略
    • 封锁所有无用的数据
  • 完全阻止是不可能的,防范可减少被攻击的机会

OK,以上就是本期知识点“拒绝服务攻击及防御”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~

❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页

相关文章:

  • 相机内参标定理论篇------张正友标定法
  • gem5学习(7):内存系统中创建 SimObjects--Creating SimObjects in the memory system
  • Docker六 | Docker Compose容器编排
  • 【Java中序列化的原理是什么(解析)】
  • [每周一更]-(第40期):GIT更换远程仓库地址
  • 八股文打卡day15——计算机网络(15)
  • Spring AOP—深入动态代理 万字详解(通俗易懂)
  • 组合[中等]
  • 医院绩效考核系统源码,java源码,商业级医院绩效核算系统源码
  • docker-compose部署kafka
  • [Angular] 笔记 8:list/detail 页面以及@Input
  • 嵌入式开发网络配置——windows连热点,开发板和电脑网线直连
  • 从a类到b类理解原型链
  • Python开发GUI常用库PyQt6和PySide6介绍之三:交互和通信方式讲解
  • 第八章 创建Callout Library - ZFentry 链接选项
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • C++类的相互关联
  • IP路由与转发
  • node-glob通配符
  • passportjs 源码分析
  • tab.js分享及浏览器兼容性问题汇总
  • 多线程事务回滚
  • 马上搞懂 GeoJSON
  • 深入浏览器事件循环的本质
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 为什么要用IPython/Jupyter?
  • 问题之ssh中Host key verification failed的解决
  • 《码出高效》学习笔记与书中错误记录
  • 树莓派用上kodexplorer也能玩成私有网盘
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #162 (Div. 2)
  • #if 1...#endif
  • #include<初见C语言之指针(5)>
  • #pragma pack(1)
  • #QT(一种朴素的计算器实现方法)
  • (20050108)又读《平凡的世界》
  • (4)Elastix图像配准:3D图像
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (接口自动化)Python3操作MySQL数据库
  • (转)scrum常见工具列表
  • .aanva
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET Core跨平台微服务学习资源
  • .NET应用架构设计:原则、模式与实践 目录预览
  • @NestedConfigurationProperty 注解用法
  • [autojs]autojs开关按钮的简单使用
  • [Avalon] Avalon中的Conditional Formatting.
  • [C#]winform部署yolov5-onnx模型
  • [C++][基础]1_变量、常量和基本类型