应用层DoS

 

应用层(application layer)是七层OSI模型的第七层。应用层直接和应用程序 对接并提供常见的网络应用服务,能够在实现多个系统应用进程相互通信的同

时,完成一系列业务处理所需的服务。位于应用层的协议有很多,常见的包括

HTTP 、FTP 、DNS 、DHCP等。其中应用层中的每一个协议都有可能被用来发起 拒绝服务攻击。不同于其他层,应用层拒绝服务攻击已经完成了TCP的三次握

手,建立起了连接,所以发起攻击的IP地址都是真实的。常见的应用层拒绝服务 攻击有CC(Challenge Collapasar)攻击、Slowloris攻击、Server Limit DOS等。下 面就这几种常见的攻击进行简单介绍:

·CC攻击:对一些资源消耗(查询数据库、读写硬盘文件等)较大的应用页 面不断发起正常的请求,以达到消耗服务资源的目的。

· Slowloris攻击:以极低的速度向服务器发送HTTP请求。由于Web Server对于 并发的连接数都有一定的上限,因此若恶意地占用这些连接不释放,那么Web

Server的所有连接都将被恶意连接占用,从而无法接受新的请求,导致拒绝服 务。

· Server Limit DoS:在发送HTTP POST包时,指定一个非常大的Content-

Length值,然后以很低的速度发包,这样当客户端连接数过多以后, 占用了Web Server的所有可用连接,从而导致DoS。

本节以Slowloris攻击为例进行详细介绍。Slowloris是在2009年由著名Web安  全专家RSnake提出的一种攻击方法,其原理是通过恶意占用有效连接,从而导致 无法接受新的请求,达到目标服务器拒绝服务的效果。

HTTP协议,HTTP Request以“\r\n\r\n” 结尾表示客户端发送结束,服务器端开 始处理。那么,如果永远不发送“\r\n\r\n”会如何?Slowloris就是利用这一点来做  DDoS攻击。攻击者在HTTP请求头中将Connection设置为Keep-Alive ,要求Web

Server保持TCP连接不断开,随后缓慢地每隔几分钟发送一个key-value格式的数据 包到服务器端,例如a :b\r\n ,导致服务器端认为HTTP头部没有接收完成而一直  等待。如果攻击者使用多线程或者僵尸主机来做同样的操作,服务器的Web容器  很快就被攻击者占满了TCP连接而不再接受新的请求。不过,Apache官方否认

Slowloris 的攻击方式是一个漏洞,他们认为这是Web Server的一种特性,通过调 整参数能够缓解此类问题,这使得Slowloris攻击今天仍然很有效。

Slowloris有现成的工具脚本,通过pip安装以后就能直接使用。但要在

Windows系统下使用slowloris命令时,注意要切换到当前Python环境的Scripts目 录,要么将该目录加入环境变量。在Linux系统则可直接使用。

 

 

 

 

 

安装之后可以直接输入slowloris-h命令查看帮助信息,效果如下所示:

dcf849e4fe8d497d9ce14c3299cf8c24.png
a0fcde6a6c7245ebadb875aaab8e2382.png

通过帮助信息也可以发现Slowloris工具使用起来也很简单,只需要执行如下 指令即可:

>>> slowloris ip

但是默认情况下Slowloris有150个连接,效果可能不明显。可以使用-s参数指 定连接数,如1500:

>>> slowloris 10 .0 .2 .16 -s 1500

执行效果如下所示:

 

 

 

 

 

2f04ce700a9f4fe4a34bad14d66d741d.png

在Slowloris脚本执行结束后,通过Wireshark捕获流量信息,其捕获效果如图 9-20所示,源IP地址为10.0.2.15 , 目的IP地址为10.0.2.16。

图9-20    Wireshark流量捕获效果

95fdd407f178459abd191ab0ed349dd4.png

如图9-21所示,通过Wireshark捕获到的流量可以发现,HTTP发送结尾的字 符为4026\r\n ,这样导致服务器端认为HTTP头部没有接收完成而一直等待。如果 多个僵尸主机一同这样操作,很容易就会使目标主机宕机。

图9-21    HTTP发送结尾字符

 

a65712a41aab48e4b0d0b7394cadf923.png

 

 

 

 

防御策略

 

怎么样可以确保在遭受拒绝服务攻击的情况下,让服务器系统正常运行呢? 或者如何减轻拒绝服务攻击的危害?下面列出了几个常见的防御策略:

· 关闭不需要的服务和端口,实现服务最小化,让服务器提供专门服务。

· 安装查杀病毒的软硬件产品,及时更新病毒库。尽量避免因为软件漏洞而引 起的拒绝服务,定期扫描现有的主机和网络节点,对安全漏洞和不规范的安全配 置进行及时整改,对先前的漏洞及时打补丁。

· 经常检测网络和主机的脆弱性,查看网上漏洞数据库,以减少或避免主机成 为“ 肉鸡” 的可能性。

· 建立多节点的负载均衡,配备高于业务需求的带宽,建立多个网络出口,提 高服务器的运算能力。

 

 

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

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

相关文章

SpringBoot实现统一异常处理

文章目录 前言实现步骤定义统一响应对象类定义业务异常枚举接口和实现定义业务异常基类定义全局异常处理切面测试和验证 总结 前言 近日心血来潮想做一个开源项目,目标是做一款可以适配多端、功能完备的模板工程,包含后台管理系统和前台系统&#xff0c…

Android CMakeLists.txt语法详解

一.CMake简介 你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MSnmake,BSD Make(pmake),Makepp,等等。这些 Make 工具遵循着不同的规范和标准,所执行的…

设计模式2-对象池模式

对象池模式,Object Pool Pattern,当你的应用程序需要频繁创建和销毁某种资源(比如数据库连接、线程、socket连接等)时,Object Pool 设计模式就变得很有用。它通过预先创建一组对象并将它们保存在池中,以便在…

Python datetime 模块的高级应用

Python datetime 模块的高级应用 介绍方法时区处理日期格式化日期计算常见问题及解决方案代码日历应用时间序列分析 介绍 datetime 模块是 Python 中用于处理日期和时间的标准库模块。它提供了日期和时间类型(date、time、datetime)以及与日期和时间相关…

机器人运动学林沛群——变换矩阵

对于仅有移动,由上图可知: A P B P A P B o r g ^AP^BP^AP_{B org} APBPAPBorg​ 对于仅有转动,可得: A P B A R B P ^AP^A_BR^BP APBA​RBP 将转动与移动混合后,可得: 一个例子 在向量中&#xff…

「递归算法」:二叉树剪枝

一、题目 给你二叉树的根结点 root ,此外树的每个结点的值要么是 0 ,要么是 1 。 返回移除了所有不包含 1 的子树的原二叉树。 节点 node 的子树为 node 本身加上所有 node 的后代。 示例 1: 输入:root [1,null,0,0,1] 输出&…

grafana+prometheus+hiveserver2(jmx_exporter+metrics)

一、hiveserver2开启metrics&#xff0c;并启动jmx_exporter 1、修改hive-site.xml文件开启metrics <property><name>hive.server2.metrics.enabled</name><value>true</value> </property> <property><name>hive.service.m…

ChatGPT高效提问—prompt常见用法(续篇三)

ChatGPT高效提问—prompt常见用法&#xff08;续篇三&#xff09; 1.1 多选项 ​ 多选项技术为模型提供了一个清晰的问题或任务&#xff0c;并附带一组预先定义的潜在答案。这种方法在生成仅限于特定选项集的文本方面表现出色&#xff0c;适用于问答、文本补全和其他任务。利…

MySQL 日志管理

4.6&#xff09;日志管理 MySQL 支持丰富的日志类型&#xff0c;如下&#xff1a; 事务日志&#xff1a;transaction log 事务日志的写入类型为 "追加"&#xff0c;因此其操作为 "顺序IO"&#xff1b; 通常也被称为&#xff1a;预写式日志 write ahead…

《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)

文章目录 1.1 MySQL 概览&#xff1a;版本、特性和生态系统1.1.1 基础知识1.1.2 重点案例1.1.3 拓展案例 1.2 安装和配置 MySQL1.2.1 基础知识1.2.2 安装步骤1.2.3 重点案例1.2.4 拓展案例 1.3 基础命令和操作1.3.1 基础知识1.3.2 重点案例1.3.3 拓展案例 1.1 MySQL 概览&#…

【Web】vulhub Fastjson反序列化漏洞复现学习笔记

目录 1.2.24 RCE CVE-2017-18349 复现流程 原理分析 1.2.47 RCE CNVD-2019-22238 复现流程 原理分析 漏洞探测 1.2.24 RCE CVE-2017-18349 复现流程 vulhub启动靶场 用marshalsec启动LDAP/RMI服务 java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRef…

Redis篇之redis是单线程

一、redis是单线程 Redis是单线程的&#xff0c;但是为什么还那么快&#xff1f;主要原因有下面3点原因&#xff1a; 1. Redis是纯内存操作&#xff0c;执行速度非常快。 2. 采用单线程&#xff0c;避免不必要的上下文切换可竞争条件&#xff0c;多线程还要考虑线程安全问题。 …

联合体的深入了解

1.联合体类型的声明 像结构体一样&#xff0c;联合体也是由一个或者多个成员构成&#xff0c;这些成员可以不同的类型。 但是编译器只为最大的成员分配足够的内存空间。联合体的特点是所有成员共用同一块内存空间。所以联合体也叫&#xff1a;共用体。 给联合体其中一个成员赋值…

SpringBoot + Tess4J 实现本地与远程图片的文字识别

1 前言 1.1 概要 在本文中&#xff0c;我们将探讨如何在Spring Boot应用程序里集成Tess4J来实现OCR&#xff08;光学字符识别&#xff09;&#xff0c;以识别出本地和远程图片中的文字。 我们将从添加依赖说起&#xff0c;然后创建服务类以实现OCR&#xff0c;最后展示如何处…

Linux操作系统基础(一):操作系统概述

文章目录 操作系统概述 一、计算机分类 二、计算机组成 三、操作系统概述 四、操作系统分类 操作系统概述 一、计算机分类 计算机一般分为个人计算机&#xff08;笔记、台式机&#xff09;与 企业级服务器&#xff08;1U、2U、机柜、塔式、刀片&#xff09;两种形式。 二…

探索NLP中的N-grams:理解,应用与优化

简介 n-gram[1] 是文本文档中 n 个连续项目的集合&#xff0c;其中可能包括单词、数字、符号和标点符号。 N-gram 模型在许多与单词序列相关的文本分析应用中非常有用&#xff0c;例如情感分析、文本分类和文本生成。 N-gram 建模是用于将文本从非结构化格式转换为结构化格式的…

跨境电商新风潮:充分发挥海外云手机的威力

在互联网行业迅速发展的大环境下&#xff0c;跨境电商、海外社交媒体营销以及游戏产业等重要领域都越来越需要借助海外云手机的协助。 特别是在蓬勃发展的跨境电商领域&#xff0c;像亚马逊、速卖通、eBay等平台&#xff0c;结合社交电商营销和短视频内容成为最有效的流量来源。…

cmd卸载软件

如果使用的是Win 10&#xff0c;并且需要在磁盘内释放一些空间&#xff0c;可以直接在命令提示符里卸载不再使用的应用程序&#xff0c;和小编一起来看看详细的步骤吧。 步骤如下&#xff1a; 以管理员身份运行命令提示符来卸载程序。在Windows搜索框中&#xff0c;键入“ cm…

【Unity】重力场中的路径预测方法

前言 笔者前些天参加完了一场72小时的GameJam游戏开发比赛。这次比赛的主题是“探索”&#xff0c;笔者做了一个名为《探索者号》的探索宇宙的游戏&#xff08;游戏名一开始叫做《星际拾荒者》&#xff0c;但这不重要&#xff09;。 在开发过程中&#xff0c;笔者遇到了一些问…

006集——where语句进行属性筛选——arcgis

在arcgis中&#xff0c; dBASE 文件除了 WHERE 语句以外&#xff0c;不支持 其它 SQL 命令。选择窗口如下&#xff1a; 首先&#xff0c;我们了解下什么是where语句。 WHERE语句是SQL语言中使用频率很高的一种语句。它的作用是从数据库表中选择一些特定的记录行来进行操作。WHE…