应用层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://xiahunao.cn/news/2774365.html

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

相关文章

【已解决】:pip is configured with locations that require TLS/SSL

在使用pip进行软件包安装的时候出现问题: WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. 解决: mkdir -p ~/.pip vim ~/.pip/pip.conf然后输入内容: [global] ind…

07-OpenFeign-HTTP压缩优化

gzip是一种数据格式,采用用deflate算法压缩数据;gzip是一种流行的数据压缩算法,应用十分广泛,尤其是在Linux平台。 当GZIP压缩到一个纯文本数据时,效果是非常明显的,大约可以减少70%以上的数据…

第九个知识点:内部对象

Date对象: <script>var date new Date();date.getFullYear();//年date.getMonth();//月date.getDate();//日date.getDay();//星期几date.getHours();//时date.getMinutes();//分date.getSeconds();//秒date.getTime();//获取时间戳&#xff0c;时间戳时全球统一&#x…

C++力扣题目494--目标和 474--一和零

494.目标和 力扣题目链接(opens new window) 难度&#xff1a;中等 给定一个非负整数数组&#xff0c;a1, a2, ..., an, 和一个目标数&#xff0c;S。现在你有两个符号 和 -。对于数组中的任意一个整数&#xff0c;你都可以从 或 -中选择一个符号添加在前面。 返回可以使…

Backtrader 文档学习- Plotting

Backtrader 文档学习- Plotting 虽然回测是一个基于数学计算的自动化过程&#xff0c;还是希望实际通过可视化验证。无论是使用现有算法回测&#xff0c;还是观察数据驱动的指标&#xff08;内置或自定义&#xff09;。 凡事都要有人完成&#xff0c;绘制数据加载、指标、操作…

PostgreSql与Postgis安装

POstgresql安装 1.登录官网 PostgreSQL: Linux downloads (Red Hat family) 2.选择版本 3.安装 ### 源 yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm ### 客户端 yum install postgresql14 ###…

Java面向对象 继承

目录 继承继承的好处继承具有传递性实例创建Person类Student继承Person类测试 继承 Java中的继承是面向对象编程的一个核心特性&#xff0c;它允许一个类&#xff08;子类或派生类&#xff09;继承另一个类&#xff08;父类或基类&#xff09;的属性和方法。通过继承&#xff0…

【HarmonyOS应用开发】HTTP数据请求(十四)

文章末尾含相关内容源代码 一、概述 日常生活中我们使用应用程序看新闻、发送消息等&#xff0c;都需要连接到互联网&#xff0c;从服务端获取数据。例如&#xff0c;新闻应用可以从新闻服务器中获取最新的热点新闻&#xff0c;从而给用户打造更加丰富、更加实用的体验。 那么…

【Spring】GoF 之工厂模式

一、GoF 23 设计模式简介 设计模式&#xff1a;一种可以被重复利用的解决方案 GoF&#xff08;Gang of Four&#xff09;&#xff0c;中文名——四人组 《Design Patterns: Elements of Reusable Object-Oriented Software》&#xff08;即《设计模式》一书&#xff09;&…

JavaEE作业-实验三

目录 1 实验内容 2 实验要求 3 思路 4 核心代码 5 实验结果 1 实验内容 简单的线上图书交易系统的web层 2 实验要求 ①采用SpringMVC框架&#xff0c;采用REST风格 ②要求具有如下功能&#xff1a;商品分类、订单、购物车、库存 ③独立完成&#xff0c;编写实验报告 …

Unity2D 学习笔记 0.Unity需要记住的常用知识

Unity2D 学习笔记 0.Unity需要记住的常用知识 前言调整Project SettingTilemap相关&#xff08;创建地图块&#xff09;C#脚本相关程序运行函数private void Awake()void Start()void Update() Collider2D碰撞检测private void OnTriggerStay2D(Collider2D player)private void…

猫头虎分享已解决Bug || docker: Error response from daemon: network not found

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

基于华为云欧拉操作系统(HCE OS)单节点容器化部署(Prometheus、node-exporter、Grafana)应用性能监控平台

写在前面 博文内容为 华为云欧拉操作系统入门级开发者认证(HCCDA – Huawei Cloud EulerOS)实验笔记整理认证地址&#xff1a;https://edu.huaweicloud.com/certificationindex/developer/9bf91efb086a448ab4331a2f53a4d3a1内容涉及&#xff0c;HCE OS 容器化部署(Prometheus、…

分布式springboot 3项目集成mybatis官方生成器开发记录

文章目录 说明实现思路实现步骤第一步&#xff1a;创建generator子模块第二步&#xff1a;引入相关maven插件和依赖第三步&#xff1a;编写生成器配置文件第四步&#xff1a;运行查看结果 说明 该文章为作者开发学习记录&#xff0c;方便以后复习和交流主要内容为&#xff1a;…

【精选】java继承进阶——构造方法的访问特点 this、super使用

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏…

算法导论 总结索引 | 第一部分 第三章:函数的增长

研究算法的 渐近效率 1、渐近记号&#xff08;40&#xff09; 1、Θ&#xff1a; 使得 对于足够大的n&#xff0c;函数 f(n) 能 夹入 c1g(n) 与 c2g(n) 之间&#xff0c;则 f(n) ∈ 集合Θ(g(n)) g(n) 是 f(n) 的一个渐近紧确界 g(n)本身 必为渐近非负 使用 Θ(1) 来意指 …

【Spring源码解读!底层原理进阶】【下】探寻Spring内部:BeanFactory和ApplicationContext实现原理揭秘✨

&#x1f389;&#x1f389;欢迎光临&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;特别推荐给大家我的最新专栏《Spring 狂野之旅&#xff1a;底层原理高级进阶》 &#x1f680…

[超分辨率重建]ESRGAN算法训练自己的数据集过程

一、下载数据集及项目包 1. 数据集 1.1 文件夹框架的介绍&#xff0c;如下图所示&#xff1a;主要有train和val&#xff0c;分别有高清&#xff08;HR&#xff09;和低清&#xff08;LR&#xff09;的图像。 1.2 原图先通过分割尺寸的脚本先将数据集图片处理成两个相同的图像…

c++之说_13|模板 折叠表达式

折叠表达式 可以通过形参包的的实际参数&#xff08;不是类型&#xff09; 展开式子 这是这里说的几种 实际上并还有一些写法 先介绍这几种吧 #include <cstdio> template<typename T,T... n> struct integer_sequence {T val; }; template<int idx,typenam…

GEE详细教程之:将Landsat8与Landsat9影像合成一个影像

1.前言 因项目需求&#xff0c;需要获取一个研究区的Landsat8影像&#xff0c;但Landsat8重复周期长&#xff0c;加之天气的影响&#xff0c;很难获取影像质量较好的影像。Landsat4/5/7的波段顺序与landsat8不同&#xff0c;除此之外&#xff0c;landsat7影像还需要工具进行条带…