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

2023-12-28 19:52

本文主要是介绍【信息安全原理】——拒绝服务攻击及防御(学习笔记),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

📖 前言:拒绝服务攻击(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
博客链接:🔎 作者博客主页

这篇关于【信息安全原理】——拒绝服务攻击及防御(学习笔记)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/547102

相关文章

Java线程池核心参数原理及使用指南

《Java线程池核心参数原理及使用指南》本文详细介绍了Java线程池的基本概念、核心类、核心参数、工作原理、常见类型以及最佳实践,通过理解每个参数的含义和工作原理,可以更好地配置线程池,提高系统性能,... 目录一、线程池概述1.1 什么是线程池1.2 线程池的优势二、线程池核心类三、ThreadPoolE

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

Java 队列Queue从原理到实战指南

《Java队列Queue从原理到实战指南》本文介绍了Java中队列(Queue)的底层实现、常见方法及其区别,通过LinkedList和ArrayDeque的实现,以及循环队列的概念,展示了如何高效... 目录一、队列的认识队列的底层与集合框架常见的队列方法插入元素方法对比(add和offer)移除元素方法

SQL 注入攻击(SQL Injection)原理、利用方式与防御策略深度解析

《SQL注入攻击(SQLInjection)原理、利用方式与防御策略深度解析》本文将从SQL注入的基本原理、攻击方式、常见利用手法,到企业级防御方案进行全面讲解,以帮助开发者和安全人员更系统地理解... 目录一、前言二、SQL 注入攻击的基本概念三、SQL 注入常见类型分析1. 基于错误回显的注入(Erro

Spring IOC核心原理详解与运用实战教程

《SpringIOC核心原理详解与运用实战教程》本文详细解析了SpringIOC容器的核心原理,包括BeanFactory体系、依赖注入机制、循环依赖解决和三级缓存机制,同时,介绍了SpringBo... 目录1. Spring IOC核心原理深度解析1.1 BeanFactory体系与内部结构1.1.1

MySQL 批量插入的原理和实战方法(快速提升大数据导入效率)

《MySQL批量插入的原理和实战方法(快速提升大数据导入效率)》在日常开发中,我们经常需要将大量数据批量插入到MySQL数据库中,本文将介绍批量插入的原理、实现方法,并结合Python和PyMySQ... 目录一、批量插入的优势二、mysql 表的创建示例三、python 实现批量插入1. 安装 PyMyS

深入理解Redis线程模型的原理及使用

《深入理解Redis线程模型的原理及使用》Redis的线程模型整体还是多线程的,只是后台执行指令的核心线程是单线程的,整个线程模型可以理解为还是以单线程为主,基于这种单线程为主的线程模型,不同客户端的... 目录1 Redis是单线程www.chinasem.cn还是多线程2 Redis如何保证指令原子性2.

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node