DDoS攻击与防御(一)

news2025/1/10 1:27:56

前言
这章主要讲述DDoS攻击与防御方式

理论知识来源于 https://www.microsoft.com/zh-cn/security/business/security-101/what-is-a-ddos-attack
1:攻击
一般来说,DDoS 攻击分为三大类:容量耗尽攻击、协议攻击和资源层攻击。

1>容量耗尽攻击通过最初似乎是合法的流量来使网络层不堪重负。这种类型的攻击是最常见的 DDoS 攻击形式。DNS(域名服务器)放大就是一种容量耗尽攻击,它使用开放的 DNS 服务器向目标发送海量 DNS 响应流量。
2>协议攻击通过利用第 3 层和第 4 层协议堆栈中的弱点导致服务中断。SYN 攻击就是此类攻击的一个示例,该攻击会消耗所有可用服务器资源(从而使服务器不可用)。
3>资源(或应用程序)层攻击针对 Web 应用程序数据包并破坏主机之间的数据传输。此类攻击的示例包括 HTTP 协议违规、SQL 注入、跨站脚本和其他第 7 层攻击。
网络攻击者可能对一个网络使用一种或多种类型的攻击。例如,攻击可能从一类攻击开始,然后演变为另一种威胁或与其相结合,进而对系统造成严重破坏。

此外,每个类别中都包含多种网络攻击。随着网络犯罪分子的技术越来越复杂,新网络威胁的数量正在增加,并且预计还会攀升。
如果怀疑网络受到攻击,那么必须快速采取行动,因为除了导致故障外,DDoS 攻击还会使组织容易受到其他黑客、恶意软件或网络威胁的攻击。

2:检测
如何检测和响应 DDoS 攻击
虽然没有一种方法可以检测 DDoS 攻击,但有一些迹象可能提示网络正受到攻击:

1>看到网络流量激增但来源不明,这些流量实际来自同一个 IP 地址或范围。
2>网络性能缓慢或异常。
3>网站、在线商店或其他服务完全离线。
现代软件解决方案可以帮助确定潜在威胁。网络安全和监视服务可以就系统变化发出提醒,以便你可以快速响应。

你还需要制定 DDoS 攻击行动计划(包含明确的角色和程序),以便团队能够针对这些威胁采取迅速而果断的行动。务必记住,并非所有 DDoS 攻击都是相同的;需要制定不同的响应协议来缓解不同的攻击。

3:预防与防护
《预防》
在发现网络威胁之前,需要先制定应对流程。准备是及时发现和应对攻击的关键。

需要执行以下操作:

1>制定拒绝服务防御策略,以帮助检测、预防和减少 DDoS 攻击。
2>识别安全漏洞并评估针对设置的潜在威胁。
3>更新任何保护软件或技术并确保其正常工作。
4>成立相关团队并针对应对攻击分配角色。
务必使用有助于保护业务安全的产品、流程和服务来进一步增强安全性。这样一来,一旦检测到威胁,团队便会有知识储备并有能力采取行动。
《防护》
保护网络免受未来攻击。为帮助保护业务,需要执行以下操作:

1>定期进行风险分析,以了解组织的哪些部分需要威胁防护。
2>成立 DDoS 攻击响应团队,专门负责识别和缓解攻击。
3>在你的在线运营中纳入检测和预防工具,并培训用户需要注意什么事项。
4>评估防御策略的有效性(包括开展演习)并确定后续措施。
DDoS 攻击防护有多种形式,从在线资源到监视软件,再到威胁检测工具。了解如何在行业领先且值得信赖的 Microsoft 安全专家的帮助下阻止恶意攻击

4:具体案例分析
1>DDOS攻击(SYNFoold)
客户端一直发送tcp syn包,但是不回复第三次握手的ACK。那服务端就会有大量的SYN_RECV状态的连接
在这里插入图片描述
查看最大syn 队列(半连接队列)大小
cat /proc/sys/net/ipv4/tcp_max_syn_backlog
OR sysctl -a|grep max_syn
查看系统当前半连接队列大小
ss -s
在这里插入图片描述

查看 ss -antp | grep SYN-RECV | wc -l
如果返回比较大比如256
间隔执行 netstat -s | grep “SYNs to LISTEN” 查看累加值
如果上面返回的累计值在不断增加,就说明 SYN 队列已经满了。

防御
内核对于半连接队列的限制是有三个逻辑的:
1 半连接队列满了且没有开启tcp_syncookies,丢弃
2全连接队列满了,且有多个(大于1个)连接没有重传syn+ack,则丢弃
3 如果没有开启tcp_syncookies,并且max_syn_backlog减去半连接队列的长度小于某个值(sysctl_max_syn_backlog >> 2)时,则丢弃

1:cat /proc/sys/net/ipv4/tcp_syncookies #查看是否开启
如下PROC文件tcp_syncookies默认值为1,表明在套接口的SYN backlog队列溢出时,将开启SYNCOOKIES功能,抵御SYN泛洪攻击。如果tcp_syncookies设置为2,将会无条件的开启SYNCOOKIES功能。
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

2 ::如何增大半连接队列
在这里插入图片描述

查看cat /proc/sys/net/ipv4/tcp_max_syn_backlog # 一般默认是128 或256(ubuntu18)
建议调整为1024及以上

查看cat /proc/sys/net/core/somaxconn # 4096 已经可以了

3:减少SYN+ACK重传次数
默认是5次,可以修改为1
echo 1 > /proc/sys/net/ipv4/tcp_synack_retries
在这里插入图片描述

4: 使用iptables
1>屏蔽攻击者IP
netstat -an | grep “:端口” | grep ESTABLISHED
来查看哪些IP可疑~比如:xxx.xxx.xxx.xxx 这个ip连接较多,并很可疑,并不希望它再次与xxx.xxx.xxx.xxx有连接。可使用命令:
iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp -j DROP
2>防止同步包洪水(Sync Flood)
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
–limit 1/s 限制syn并发数每秒1次,可以根据自己的需要修改防止各种端口扫描

Ping洪水攻击(Ping of Death)
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

5:使用工具
使用DDoS deflate自动屏蔽攻击ip
DDoS deflate是一款免费的用来防御和减轻DDoS攻击的脚本。它通过netstat监测跟踪创建大量网络连接的IP地址,
在检测到某个结点超过预设的限 制时,该程序会通过APF或IPTABLES禁止或阻挡这些IP.
DDoS deflate官方网站:http://deflate.medialayer.com/

5:模拟工具
Hping3 是面向命令行的,用于生成和解析 TCP/IP 协议数据包汇编/分析的开源工具
sudo apt install hping3 #安装
命令下面还有自己安装后查看
在这里插入图片描述
常见的应用是:扫描端口、伪造地址和洪水攻击
hping3中的参数如下:
-h --help 显示帮助
-v --version 显示版本
-c --count 发送数据包的数目
-i --interval 发送数据包间隔的时间 (uX即X微秒, 例如: -i u1000)
–fast 等同 -i u1000 (每秒10个包)
–faster 等同 -i u100 (每秒100个包)
–flood 尽最快发送数据包,不显示回复
-n --numeric 数字化输出,象征性输出主机地址
-q --quiet 静默模式,只显示最后的统计数据
-I(大i) --interface 指定需要使用的网络接口 (默认路由接口)
-V --verbose 详细模式
-D --debug 调试信息
-z --bind 将“ctrl+z”组合键与发送包的TTL值绑定,按一次TTL值加1
-Z --unbind 取消绑定 ctrl+z 键
–beep 对于接收到的每个匹配数据包蜂鸣声提示
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
DOS攻击:hping3 -q --rand-source --id 0 --icmp -d 56 --flood xxx.xxx.xxx.xxx
hping3 -c 10000 -d 120 -S -w 64 -p 80 --flood --rand-source IP地址或域名
-q 使用静默模式
–rand-source 伪造源地址
-d 56 发送到目的PC的每个数据包的大小
–id 0 ID值0
–icmp 发送icmp包
-flood 洪水模式
-c 10000 发送的数据包的数量
-S 只发送SYN数据包
-w 64 TCP窗口大小
-p 80 端口号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/567789.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

shiro基于redis实现分布式权限管理,在加入shiro的缓存管理后,项目报错

shiro基于redis实现分布式权限管理,在加入shiro的缓存管理后,项目报错 报错信息概括解决其他详细报错信息 报错信息概括 2023-05-24 16:27:56.374 ERROR 28740 --- [nio-8092-exec-6] o.a.s.web.servlet.AbstractShiroFilter : session.touch() method …

水处理计算常用表格大全

第二章 设计方案城市污水处理厂的设计规模与进入处理厂的污水水质和水量有关,污水的水质和水量可以通过设计任务书的原始资料计算。2.1 厂址选择在污水处理厂设计中,选定厂址是一个重要的环节,处理广的位置对周围环境卫生、基建投资及运行管理…

加强密码安全,保护您的账户——ADSelfService Plus

在当今数字化时代,密码安全成为了每个人都需要关注的重要问题。随着越来越多的个人和组织依赖于互联网和电子系统进行业务和通信,确保账户的安全性变得尤为关键。在这方面,ADSelfService Plus是一个功能强大的解决方案,为用户提供…

版图设计工具解析-virtuoso的display.drf文件解析

1. display.drf文件解析 virtuoso的版图颜色定义分析 下图为virtuoso的版图颜色,包括填充,轮廓,彩点,线形 本文以smic18mmrf的display.drf文件进行解析 smic18的PDK包下存在display.drf文件 打开文件display.drf文件后看到如下…

ApiKit 简介安装以及如何使用

一、介绍 ApiKit 是接口管理、开发、测试全流程集成工具,定位 API 管理 Mock 自动化测试 异常监控 团队协作。 1、开发测试过程中的现状 yapi -- 管理接口文档 rap -- 前端开发mock数据 postman -- 开发调试接口、测试调用接口 jmeter -- 基本的压力测试 2…

1个普通Java程序员需要具备什么样的素质和能力才可以称得上高级工程师?

1个Java程序员具备什么样的素质和能力才可以称得上高级工程师? 这个问题也引发了我的一些思考,可能很多人会说,“作为高级工程师,基础得过硬、得熟练掌握一门编程语言、至少看过一个优秀开源项目的源代码、有过高并发/性能优化的…

【RocketMQ】RocketMQ入门

【RocketMQ】RocketMQ入门 文章目录 【RocketMQ】RocketMQ入门1. 消费模式2. 发送/消费 消息2.1 同步消息2.2 异步消息2.3 单向消息2.4 延迟消息2.5 批量消息2.6 顺序消息 1. 消费模式 MQ的消费模式大致分为两种,一种是推Push,一种是拉pull。 Push模式…

在变压器厂中使用 ISA-95 应用程序进行调度集成

介绍 在工业批量和连续生产/运营环境中,调度涉及将诸如罐、反应器和其他加工设备之类的资源分配给生产/运营任务。第 4 层生产/运营计划确定要制造什么产品、要制造多少产品以及何时制造。根据设备、物料、人员和班次的可用性,随着时间的推移分配资源。…

CSDN中如何获得铁粉(用心篇)

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

快速实现pytest自定义配置项,让Web自动化测试更便捷!

目录 前言: 一、什么是pytest.ini 二、在pytest.ini中添加自定义配置项 三、使用自定义配置项 四、结论 前言: WEB自动化测试是一个重要的环节,需要结合框架和工具进行开发。在WEB自动化测试中,常用的是pytest框架&#xff…

go sync包

官方文档:https://pkg.go.dev/sync 临界区 临界区(critical section)是指包含有共享数据的一段代码,这些代码可能被多个线程访问 或修改。临界区的存在就是为了保证当有一个线程在临界区内执行的时候,不能有其他任何线程被允许在临界区执行…

workquue

参考 讲解Linux内核工作队列workqueue源码分析 - 知乎 浅谈Linux内核中断下半部——工作队列(work queue) - 知乎 kernel/workqueue.c 初始化 /** 6004 * workqueue_init_early - early init for workqueue subsystem 6005 * 6006 * This is th…

字节测开5年经验之谈,1分钟了解自动化测试..

引子 写在最前面:目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够明白自动化测试并很好落地实施的团队还不是非常多,我们接来下用通俗的方式来介绍自动化测试…… 本文共有2410…

WebSocket全双工通信SpringBoot实现

【IT老齐238】十分钟上手WebSocket全双工通信协议_哔哩哔哩_bilibili【IT老齐238】十分钟上手WebSocket全双工通信协议, 视频播放量 8348、弹幕量 23、点赞数 318、投硬币枚数 157、收藏人数 257、转发人数 30, 视频作者 IT老齐, 作者简介 老齐的个人V: itlaoqi001 ~~欢迎前来交…

kubernetes01

kubernetes基础 kubernetes介绍 Kubernetes是Google在2014年开源的一款容器集群系统,简称k8s Kubernetes用于容器化应用程序部署、扩展和管理,目标是让容器化应用简单高效 官方网站:https://kubernetes.io/ 官方文档:https://ku…

PFC(Priority Flow Control)及PFC Storm介绍

文章目录 PFCPFC Storm PFC PFC是一种流量控制机制,用于保证网络中的无损传输,常用于RDMA网络中,以下具体介绍其机制。 如图所示,发送方的出端口发送数据包给接收方的入端口。在发送方的出端口,数据包在至多八个队列中…

AI智能照片编辑:AI Photo for Mac

AI Photo是一款Mac平台上的智能照片编辑软件,它基于人工智能技术,可以帮助用户快速、轻松地对照片进行编辑和美化。AI Photo提供了多种智能修复和美化功能,包括自动调整色彩、对比度、亮度、清晰度等,使得照片的质量得到有效提升。…

二叉树:填充每个节点的下一个右侧节点指针(java)

leetcode116:填充每个节点的下一个右侧节点指针 leetcode原题链接:题目描述递归解法一递归方法二(效率更高)二叉树专题 leetcode原题链接: 116题:填充每个节点的下一个右侧节点指针 题目描述 给定一个 完美二叉树 &a…

【STL模版库】vector介绍及使用 {构造函数,迭代器,容量相关接口,增删查改;动态二维数组}

一、vector的介绍 vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它…

Shell iptales防火墙设置

文章目录 Linux 防火墙1.Linux包过滤防火墙概述2.四表五链四表五链 3.规则链之间的匹配顺序主机型防火墙网络型防火墙 4.规则链内的匹配顺序 Linux 防火墙 1.Linux包过滤防火墙概述 Linux 系统的防火墙: IP信息包过滤系统,它实际上由两个组件netfilter 和 iptable…