分析HTTP请求以降低HTTP走私攻击HTTP数据接收不同步攻击的风险

2024-02-28 06:10

本文主要是介绍分析HTTP请求以降低HTTP走私攻击HTTP数据接收不同步攻击的风险,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在前面的话

HTTP/1.1自1991年至2014年,已经走过了一段很长的发展历程:

  • HTTP/0.9– 1991
  • HTTP/1.0– 1996
  • HTTP/1.1
  • RFC 2068– 1997
  • RFC 2616- 1999
  • RFC 7230- 2014

这也就意味着,互联网中各种各样的服务器和客户端,可能会存在很多安全问题,这也会给HTTP走私攻击(HTTP数据接收不同步攻击)创造了机会。

\

遵循最新的RFC建议似乎很简单。然而,对于已经存在一段时间的大型系统,它可能会带来很多在系统可用性方面令人无法接受的影响。

http_desync_guardian这个工具库便应运而生,该工具可以帮助广大研究人员分析HTTP请求,以防止HTTP走私攻击(HTTP数据接收不同步攻击)的发生,同时还能够兼顾安全性和可用性。该工具可以将请求进行分类,并并提供针对每一层的处理建议。

该工具既可以分析原始的HTTP请求Header,也可以对那些已经被HTTP引擎分析过的请求数据进行二次分析。

工具特性

1、服务的统一性是关键。这意味着请求分类、日志记录和度量必须在后台进行,并使用最少的可用设置(例如,日志文件目的地址)。

2、关注可审查性。测试套件不需要关于库/编程语言的知识,而只需要关于HTTP协议的知识即可。因此,它很容易审查、贡献代码和重复使用。

3、安全性对于用户来说是最重要的。

4、轻量级,开销非常小,并且处理请求不需要额外开销。

支持的HTTP版本

该工具主要针对的是HTTP/1.1,具体可以参考提供的覆盖测试用例。

HTTP/1.1的前身不支持连接重用,这限制了HTTP去同步的机会,但是一些代理可能会将此类请求升级到HTTP/1.1,并重新使用后端连接,这可能会导致恶意HTTP/1.0请求。这也就是为什么我们选择使用与HTTP/1.1相同的标准来分析它们。对于其他协议版本,可以参考这篇【文档】。

工具下载

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/aws/http-desync-guardian.git
复制代码

C代码使用

这个工具库主要使用的是C/C++开发的HTTP引擎,工具安装配置方法如下:

1、安装cbindgen:

cargo install --force cbindgen
复制代码

2、生成Header文件:

C:

cbindgen --output http_desync_guardian.h --lang c
复制代码

C++:

cbindgen --output http_desync_guardian.h --lang c++
复制代码

3、运行下列命令,其中相关代码位于“
./target/release/libhttp_desync_guardian.*”文件:

cargo build --release
复制代码
#include "http_desync_guardian.h"/** http_engine_request_t - already parsed by the HTTP engine*/static int check_request(http_engine_request_t *req) {http_desync_guardian_request_t guardian_request = construct_http_desync_guardian_from(req);http_desync_guardian_verdict_t verdict = {0};http_desync_guardian_analyze_request(&guardian_request, &verdict);switch (verdict.tier) {case REQUEST_SAFETY_TIER_COMPLIANT:// The request is good. green lightbreak;case REQUEST_SAFETY_TIER_ACCEPTABLE:// Reject, if mode == STRICTEST// Otherwise, OKbreak;case REQUEST_SAFETY_TIER_AMBIGUOUS:// The request is ambiguous.// Reject, if mode == STRICTEST// Otherwise send it, but don't reuse both FE/BE connections.break;case REQUEST_SAFETY_TIER_SEVERE:// Send 400 and close the FE connection.break;default:// unreachable codeabort();}}
复制代码

许可证协议

本项目的开发与发布遵循Apache-2.0开源许可证协议。

了解更多

了解讨论网络安全和领取网络安全的学习资料
添加专属网络安全学习资料辅导
QQ:2853028582;
备注:T1

  

这篇关于分析HTTP请求以降低HTTP走私攻击HTTP数据接收不同步攻击的风险的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南

《SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南》本文将基于开源项目springboot-easyexcel-batch进行解析与扩展,手把手教大家如何在SpringBo... 目录项目结构概览核心依赖百万级导出实战场景核心代码效果百万级导入实战场景监听器和Service(核心

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

pandas数据的合并concat()和merge()方式

《pandas数据的合并concat()和merge()方式》Pandas中concat沿轴合并数据框(行或列),merge基于键连接(内/外/左/右),concat用于纵向或横向拼接,merge用于... 目录concat() 轴向连接合并(1) join='outer',axis=0(2)join='o

Linux线程同步/互斥过程详解

《Linux线程同步/互斥过程详解》文章讲解多线程并发访问导致竞态条件,需通过互斥锁、原子操作和条件变量实现线程安全与同步,分析死锁条件及避免方法,并介绍RAII封装技术提升资源管理效率... 目录01. 资源共享问题1.1 多线程并发访问1.2 临界区与临界资源1.3 锁的引入02. 多线程案例2.1 为

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致