0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鉴源实验室·HTTP协议网络安全攻击

上海控安 来源:上海控安 作者:上海控安 2024-07-30 13:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者 | 李芷若上海控安可信软件创新研究院工控网络安全组

来源 |鉴源实验室

社群 |添加微信号TICPShanghai”加入“上海控安51fusa安全社区”

01

背 景

随着互联网的迅猛发展,HTTP(HyperText Transfer Protocol,超文本传输协议)已经成为网页传输的基础协议。它在客户端(如浏览器)和服务器之间传递信息,使得我们能够浏览网页、提交表单、下载文件等。然而,HTTP 的普及也使其成为黑客攻击的主要目标之一。HTTP 协议本身是无状态的,这种特性虽然简化了网络通信,但也带来了不少安全隐患。

网络安全攻击利用了 HTTP 协议的各种漏洞和特性,试图在数据传输过程中获取未授权的信息、操纵数据、扰乱服务甚至窃取敏感信息。这些攻击不仅对用户隐私构成威胁,还可能导致严重的经济损失和声誉损害。因此,了解和防范 HTTP 网络安全攻击显得尤为重要。

02

HTTP协议介绍

2.1 HTTP协议概念

HTTP(HyperText Transfer Protocol,超文本传输协议)[1]是万维网(World Wide Web)的核心协议之一。HTTP协议初期运行在TCP/IP协议之上,后期运行在QUIC协议之上,是应用层协议。它定义了客户端(如浏览器)和服务器之间如何传输文本、图像、视频及其他多媒体内容。同时,也是一种客户端-服务端(client-server)协议,也就是说,请求是由接收方—通常是浏览器发起的,客户端与服务端之间通过交换一个个独立的消息(而非数据流)进行通信。由客户端——通常是个浏览器——发出的消息被称作请求(request),由服务端发出的应答消息被称作响应(response)。

wKgZomaofj6AGf6fAAIk38esgWM993.png

图1

2.2 HTTP协议报文格式

HTTP 报文是面向文本的,报文中的每个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP 有两类报文:请求报文和响应报文。

wKgaomaofkyAFBetAAGnimNmUVw544.png

图2HTTP请求报文

HTTP 请求报文由以下内容组成:

请求行

· 请求方法

· 请求URL

· HTTP协议版本

请求头部:请求头部包含了多个头字段,每个字段包含一个名称和一个值,用于传递客户端的额外信息和指示。每个头字段占一行。

空行:空行用于分隔请求头部和请求主体。它仅包含回车符和换行符(CRLF),即 rn。

请求主体:请求主体包含了实际发送的数据,仅在某些方法(如 POST、PUT)中存在。它可以是任意二进制数据或文本数据,格式没有固定要求。

wKgaomaoflqAQnioAAGqtbsVP_I723.png

图3 HTTP响应报文

HTTP响应报文由以下内容组成:

状态行

· HTTP协议版本

· 状态码

· 状态短语

响应头部:响应头部包含了多个头字段,每个字段包含一个名称和一个值,用于传递服务器的额外信息和指示。每个头字段占一行。

空行:空行用于分隔响应头部和响应主体。它仅包含回车符和换行符(CRLF),即 rn。

响应主体:

响应主体包含了实际返回的数据,通常是 HTML 文档、图像、JSON 数据等,格式没有固定要求。

2.3 HTTP协议发展

HTTP/1.0(于1996年发布)最初是由Tim Berners-Lee[2]在1989年提出,是“无状态”的:每个客户端的新请求都建立了一个新连接,而不是通过特定客户端和服务器之间的相同连接处理所有类似的请求。

HTTP/1.1(于1997年发布)包括持久连接、客户端浏览器对HTML文件的解压缩,以及多个域名共享相同的IP地址。

HTTP/2(于2015年发布)旨在解决网页加载缓慢的问题,并且是一种二进制协议,其中使用二进制值而不是像以前版本中那样使用纯文本。

HTTP/3 (于2020年发布)依赖于更快的QUIC协议而不是TCP,受大多数浏览器支持。

2010 年代,许多网站开始使用HTTPS(安全 HTTP),这是由 Netscape Communications Corporation 在1994年开发的,其中添加了SSL(安全套接字层)协议到HTTP中,为浏览器和服务器之间提供加密层。

2.4 HTTP协议性质

(1)无状态

HTTP是一个基于请求-响应模型的无状态协议。无状态意味着每个请求都是独立的,服务器不会保留之前请求的状态信息。这种设计虽然简化了协议,但也需要引入额外的机制来维护状态,如cookies、sessions等。

(2)无连接

HTTP 是一种无连接协议。每次请求和响应都通过独立的连接完成,服务器处理完请求后即关闭连接。这种特性简化了服务器设计,但也带来了连接频繁创建和关闭的开销。

(3)灵活性

HTTP 可以传输任意类型的数据,只要两端能处理数据的内容类型。通过MIME类型(Content-Type)进行标识和处理。例如,文本数据可以是 HTML、JSON、XML 等,二进制数据可以是图像、视频、应用程序数据等。

(4)可扩展性

HTTP 协议支持通过添加新的方法、头字段来扩展功能。例如,HTTP/1.1 引入了许多新的头字段和方法,HTTP/2 和 HTTP/3 引入了更多优化和功能改进。

03

常见攻击方式

3.1 SQL Injection(SQL 注入)

原理:SQL注入[3]是一种将恶意代码插入到程序SQL语句中,从而误导数据库执行恶意逻辑的攻击技术。通过SQL注入,攻击者可以达到获取敏感信息,窃取访问权限等目的。

比如后端有SQL如下,需要前端传入一个id值,以进行信息查询:

SELECT * FROM `MyTable` WHERE `id`="{0}"

而此时,如果前端传入“1” OR TRUE。后端没有校验便传入参数值并对SQL进行拼接。那么直接拼接的SQL为:

SELECT * FROM `MyTable` WHERE `id`="1" OR TRUE

此时将所有数据全部取出。如果后端SQL是DELETE,影响更是不可估量。

防范:SQL 注入得以实施的因素是:网页应用使用 SQL 来控制数据库,用户传入的数据直接被写入数据库。因此,防御 SQL 注入的关键在于:永远不要相信用户的输入;

在此理念的指导下,对于用户提交的输入信息,我们需要进行充分的校验,避免其对后端服务系统造成攻击。相关手段可以是正则式检验参数合法性、html元素校验、SQL元素校验,对用户输入的内容进行转义(escape)处理,不让特殊符号破坏SQL语句的原本结构等,并且可以在前端/后端执行。

如果校验逻辑在前端执行,确实不会对后端性能造成影响,但对于有经验的攻击者,可以修改前端代码,此屏障就形同虚设;而如果在后端进行校验,多少会损耗后端性能,如果校验算法比较复杂耗时,也许又会成为攻击者的另一个攻击点。

根据 OWASP,下面看看具体的预防措施:

◆ Prepared Statements(with Parameterized Queries): 参数化的查询语句可以强制应用开发者首先定义所有的sql代码,之后再将每个参数传递给查询语句。

◆ Stored Procedures:使用语言自带的存储程序,而不是自己直接操纵数据库。

◆ White List Input Validation:验证用户的输入。

◆ Escaping All User Supplied Input:

对用户提供的所有的输入都进行编码。

3.2 Distributed Denial of Service(DDoS,分布式拒绝服务)

原理:HTTP DDoS攻击[4]是一种特定类型的DDoS攻击,旨在通过大量HTTP请求淹没目标Web服务器,使其无法正常处理合法用户的请求。总体而言,DDoS 攻击好比高速公路发生交通堵塞,妨碍常规车辆抵达预定目的地。

大致分为以下几类:

HTTP Flood攻击:攻击者通过发送大量合法的HTTP GET或POST请求来耗尽目标服务器的资源,如CPU、内存和带宽。GET请求通常用于获取资源(如网页、图片等),而POST请求则用于提交数据(如表单数据)。

Slowloris攻击:这种类型的攻击更多是面向连接层面,以基于线程的Web服务器为目标,通过慢速请求来捆绑每个服务器线程,从而消耗服务器的线程&连接资源。攻击者与服务器建立大量连接,每个连接只发送部分请求头,并在接近超时之前继续发送更多的头部数据,从而保持连接活跃。

Large Payload POST requests攻击:一般通过POST方法发送容量大、结构复杂的请求体到目标服务器,使得目标服务器在解析这些请求内容的过程发生过载(CPU或内存);攻击者通过构造特定的序列化请求体,如xml、json等,在服务端执行反序列化操作时引起服务过载。

HTTP请求随机化攻击:攻击者使用各种随机化技术,改变User-Agent头、Referer头、URL参数等,使请求难以被简单地识别和过滤,使每个HTTP请求看起来都是唯一的,从而绕过基于签名的防御机制。

DDoS攻击一般会根据攻击目标的情况,针对性的把技术手法混合,以达到最低的成本最难防御的目的,并且可以进行合理的节奏控制,以及隐藏保护攻击资源。

防范:

Web应用防火墙(WAF):过滤和阻止恶意HTTP请求。

CDN(内容分发网络):使用CDN将流量分散到多个节点,提高整体抗攻击能力。

流量清洗服务:使用专门的DDoS防护服务来识别和清洗恶意流量。

速率限制(Rate Limiting):

对单个IP地址或用户的请求速率进行限制,防止过多的请求来自同一来源。

3.3 Cross Site Script(XSS, 跨站脚本攻击)

原理:XSS是一种安全漏洞。攻击者可以利用这种漏洞在网站上注入恶意的客户端代码。当受害者运行这些恶意代码时,攻击者就可以突破网站的访问限制并冒充受害者。根据开放式Web应用安全项目(OWASP)的数据,XSS是 2017年第七名[5]最常见的Web应用程序漏洞。

如果 Web 应用程序没有部署足够的安全验证,那么,这些攻击很容易成功。浏览器无法探测到这些恶意脚本是不可信的,所以,这些脚本可以任意读取cookie、session token,或者其他敏感的网站信息,或者让恶意脚本重写HTML内容。

大致分为以下几类:

存储XSS:注入的脚本永久的存在于目标服务器上,每当受害者向服务器请求此数据时就会重新唤醒攻击脚本。

反射型XSS:当用受害者被引诱点击一个恶意链接,提交一个伪造的表单,恶意代码便会和正常返回数据一起作为响应发送到受害者的浏览器,从而骗过了浏览器,使之误以为恶意脚本来自于可信的服务器,以至于让恶意脚本得以执行。

DOM型XSS:有点类似于存储型XSS,但存储型XSS是将恶意脚本作为数据存储在服务器中,每个调用数据的用户都会受到攻击。但DOM型XSS则是一个本地的行为,更多是本地更新DOM时导致了恶意脚本执行。

防范:

输入验证:从客户端和服务器端双重验证所有的输入数据,这一般能阻挡大部分注入的脚本。

数据编码:

对所有的数据进行适当的编码。

3.4 Cross Site Request Forgery(CSRF,跨站请求伪造)

原理:CSRF攻击[6]是一种利用用户在已登录网站上的身份来伪造用户请求的攻击方式,造成用户数据的损失或网络安全的风险。也是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。

CSRF 攻击一般是攻击者通过某些手段,伪造用户请求,让用户在不知情的情况下,达到攻击者预期的目的,主要涉及以下步骤:

a. 攻击者获取用户已登录的Cookie信息。

b. 攻击者构造一些恶意代码,将这些代码注入到受害者的浏览器中。

c. 受害者在未经过任何提示的情况下,被恶意代码引导访问攻击者的网站,其中URL中包含了攻击者构造的恶意参数。

d. 受害者浏览器访问攻击网站时,将自动向受害者之前已登录过的网站发送请求(上面存在的请求)。

e. 被恶意代码引导,受害者访问攻击者的网站,正在被他人攻击造成的后果并不为受害者所知,而浏览器会自动发送包含受害者的Cookie信息的请求,造成CSRF攻击。

当攻击者伪造了用户的请求后,服务器端将无法准确判断这个请求的合法性,导致用户数据被篡改、删除、操作等,产生极大的安全风险。因此,在设计Web应用程序时,需要充分考虑CSRF防御策略以保护用户的信息安全。

防范:那怎么预防CSRF攻击呢?OWASP推荐了两种检查方式来作为防御手段。

检查标准头部,确认请求是否同源:检查source origin和target origin,然后比较两个值是否匹配。

检查 CSRF Token:主要有四种推荐的方式

·Synchronizer Tokens:在表单里隐藏一个随机变化的token,每当用户提交表单时,将这个token提交到后台进行验证,如果验证通过则可以继续执行操作。

·Double Cookie Defense:当向服务器发出请求时,生成一个随机值,将这个随机值既放在cookie中,也放在请求的参数中,服务器同时验证这两个值是否匹配。

·Encrypted Token Pattern:对token进行加密。

· Custom Header:使用自定义请求头部,这个方式依赖于同源策略。其中最适合的自定义头部便是:"X-Requested-With: XMLHttpRequest"。

参考文献:

[1]Gourley D, Totty B. HTTP: the definitive guide[M]. " O'Reilly Media, Inc.", 2002.

[2] 李康,陈清华,卢金星. HTTP协议研究综述[J]. 信息系统工程,2021(5):126-129. DOI:10.3969/j.issn.1001-2362.2021.05.050.

[3] 刘文生, 乐德广, 刘伟. SQL注入攻击与防御技术研究[J]. 信息网络安全, 2015, 15(9): 129-134.

[4] Prajapati P, Patel N, Shah P. A review of recent detection methods for http ddos attacks[J]. International Journal of Scientific, 2019.

[5]Rodríguez G E, Torres J G, Flores P, et al. Cross-site scripting (XSS) attacks and mitigation: A survey[J]. Computer Networks, 2020, 166: 106960.

[6]Blatz J. Csrf: Attack and defense[J]. McAfee® Foundstone® Professional Services, White Paper, 2007.

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 网络安全
    +关注

    关注

    11

    文章

    3449

    浏览量

    62957
  • HTTP
    +关注

    关注

    0

    文章

    531

    浏览量

    34849
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    华为防火墙通过武汉云黄鹤实验室首批安全公测评级

    今日,武汉云黄鹤实验室(以下简称 “黄鹤实验室”)发布防火墙产品公测的测评结果。华为HiSecEngine防火墙在安全功能与性能测试中整体表现突出,成功通过黄鹤实验室公测,斩获最高“推
    的头像 发表于 11-25 15:07 380次阅读
    华为防火墙通过武汉云黄鹤<b class='flag-5'>实验室</b>首批<b class='flag-5'>安全</b>公测评级

    DEKRA德凯全新网络安全评估实验室正式启用

    DEKRA德凯正式启用位于西班牙马拉加全新的网络安全评估实验室,专注于数字产品与半导体的网络安全测试与认证服务。作为专业的第三方检验检测认证机构,这一重要里程碑进一步巩固了DEKRA德凯在全球嵌入式
    的头像 发表于 11-19 17:41 996次阅读

    攻击逃逸测试:深度验证网络安全设备的真实防护能力

    攻击逃逸测试通过主动模拟协议混淆、流量分割、时间延迟等高级规避技术,能够深度验证网络安全设备的真实防护能力。这种测试方法不仅能精准暴露检测引擎的解析盲区和策略缺陷,还能有效评估防御体系在面对隐蔽
    发表于 11-17 16:17

    是德科技获得欧盟通用标准网络安全计划认证

    是德科技(NYSE: KEYS )正式获得欧盟通用标准网络安全认证计划(EUCC)认证,成为IT安全评估机构(ITSEF),可依据欧盟网络安全认证开展产品评估。该认证使是德设备安全
    的头像 发表于 10-28 15:04 342次阅读

    光峰科技与深圳技术大学签署联合实验室合作协议

    10月16日,光峰科技公告官宣,与深圳技术大学拟签署《光峰科技与深圳技术大学联合实验室合作协议》,围绕半导体激光前沿领域进行合作研发,共同建立联合实验室,预计在协议有效期的6年内,向联
    的头像 发表于 10-17 17:32 1175次阅读

    天合储能获得衡目击实验室资质认可

    近日,天合储能正式获得北京衡认证中心(CGC) 颁发的目击实验室资质。在北京衡认证中心专家的现场审核下,公司自主研发的“储能专用天合芯及电池系统“,于常州AES先进储能技术研究院完成了一系列严格的性能与
    的头像 发表于 09-03 18:16 668次阅读

    实验室智慧配电房建设方案:打造安全高效的电力保障

    文章由山东华科信息技术有限公司提供在实验室环境中,电力供应的稳定性和安全性至关重要。智慧配电房作为现代电力管理的新模式,能够实现对配电系统的实时监测、智能分析和自动化控制,为实验室提供安全
    的头像 发表于 06-10 09:40 564次阅读
    <b class='flag-5'>实验室</b>智慧配电房建设方案:打造<b class='flag-5'>安全</b>高效的电力保障

    DEKRA德凯在网络安全测试与认证领域实现新突破

    2025年5月,DEKRA德凯CBTL实验室成功获得IECEE CYBR(Cybersecurity,网络安全)类别全部标准的CBTL(CB Testing Laboratory)资质认证,成为中国
    的头像 发表于 06-09 17:45 1146次阅读

    实验室安全管理成焦点,汉威科技赋能实验室安全升级

    实验室是国家科技创新体系的重要组成部分,是国家组织高水平基础研究和应用基础研究、聚集和培养优秀科学家、开展学术交流的重要基地。近年来,各高校、研究院所、科创园区、高新产业园区相关企业的实验室呈现爆发
    的头像 发表于 04-10 10:41 701次阅读
    <b class='flag-5'>实验室</b><b class='flag-5'>安全</b>管理成焦点,汉威科技赋能<b class='flag-5'>实验室</b><b class='flag-5'>安全</b>升级

    国家重点实验室建设:智能配电装置如何筑牢科研用电安全底线

    程瑜 187 0211 2087 安科瑞电气股份有限公司 上海嘉定 202410 摘要: 本文探讨了智能安全配电装置在实验室场所中的应用及其重要性。实验室作为科研、教学的重要场所,其配电设计不仅关乎
    的头像 发表于 03-31 10:46 673次阅读
    国家重点<b class='flag-5'>实验室</b>建设:智能配电装置如何筑牢科研用电<b class='flag-5'>安全</b>底线

    实验室·HTTPS对于网络安全的重要性

    本文旨在深入解析HTTPS的工作原理、安全性以及其在网络安全中的重要性
    的头像 发表于 02-19 14:31 781次阅读
    <b class='flag-5'>鉴</b><b class='flag-5'>源</b><b class='flag-5'>实验室</b>·HTTPS对于<b class='flag-5'>网络安全</b>的重要性

    Lansweeper:强化网络安全与资产管理

    使用 Lansweeper 全面了解您的 IT 资产清单 保护任何东西的第一步是知道你拥有什么 全可见性 发现您甚至不知道的资产并消除盲点。 风险缓解 通过审计预防措施预测潜在的网络安全攻击。 威胁
    的头像 发表于 02-19 13:59 1013次阅读

    DEKRA德凯网络安全实验室荣获ISO 17025认可资质

    近日,全球领先的检验检测认证机构DEKRA德凯宣布,其上海网络安全实验室正式获得了EN 18031-1, EN 18031-2, EN 18031-3系列标准的ISO/IEC 17025实验室认可
    的头像 发表于 01-22 14:45 1263次阅读

    NVIDIA推出DRIVE AI安全检测实验室

    全新 NVIDIA 实验室获得美国国家标准学会国家认可委员会(ANAB)的认证,可执行自动驾驶汽车的功能安全网络安全和 AI 检测。
    的头像 发表于 01-09 16:01 1174次阅读

    高校实验室智能安全配电装置

    ,高校实验室安全事故时有发生,这不仅严重威胁师生的生命财产安全,而且扰乱了学校正常的教学科研秩序、影响了社会的和谐稳定。 2019年5月15日,某高校化学实验室发生一起电气火灾事故。当
    的头像 发表于 12-26 16:22 796次阅读
    高校<b class='flag-5'>实验室</b>智能<b class='flag-5'>安全</b>配电装置