服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

【第2876期】XSS 攻击22年:全面调查及系统综述

日期: 来源:前端早读课收集编辑:unbug

前言

一分钟读论文系列。今日前端早读课文章由 @Unbug 授权分享。

@Unbug,Creator of Micropaper (https://unbug.github.io), CODELF (Github star 13k, https://unbug.github.io/codelf/), #MIHTool (Mentioned in Google I/O'13, https://mihtool.com)

正文从这开始~~

作为前端工程师你真的了解 XSS 吗?越来越多超级应用基于 Web 构建,如何系统的攻防 XSS 尤为重要。微软安全工程师 1999 年底披露了 XSS,22 年来 XSS 一直稳居 OWASP(开放 Web 应用程序安全 ) 报告的前 TOP10。阿尔及利亚的拉尔比特贝西大学、盖勒马大学和巴吉莫赫塔尔大学的 LRS 实验室的论文《Twenty-two years since revealing cross-site scripting attacks: a systematic mapping and a comprehensive survey》 调查了 147 份高质量研究,总结制定了一个全面的分类法,描述了用于预防、检测、保护和防御 XSS 攻击的不同技术。

XSS 攻击都有哪些类型?

基于应用的 XSS 攻击

1、反射 XSS (RXSS):当作为 HTTP 请求的⼀部分提供的恶意数据在未经过适当清理的情况下成为服务器响应的⼀部分时,就会发⽣ RXSS 攻击。因此,嵌⼊在 HTTP 响应中的恶意数据会返回客⼾端并在浏览器呈现时执⾏。RXSS 的典型⽬标是具有搜索功能的 Web 应⽤程序,其中嵌⼊的恶意数据成为搜索结果或错误消息的⼀部分。

2、存储型 XSS (SXSS):当以输⼊形式提供的恶意数据未经清理就存储在服务器应⽤程序数据库或⽂件中时,就会出现 SXSS 攻击。SXSS 攻击的典型⽬标是在线社交⽹络应⽤程序和论坛,恶意数据可以在其中发布、存储在数据库中,从⽽感染访问它们的每个⽤⼾。SXSS 攻击也称为持久性。

3、DOM XSS (DXSS):DXSS 攻击是渲染时攻击。与 RXSS 和 SXSS 相反, DXSS 攻击中使⽤的恶意数据⽤于动态更改浏览器在渲染阶段⽣成的 DOM 树。

4、JavaScript Mimicry XSS(JSM-XSS):攻击者不是注⼊恶意脚本,⽽是利⽤ Web 应⽤程序中已经使⽤的脚本来发起 JSM-XSS 攻击。JSM-XSS 攻击很难被检测到并且很容易通过基于⽩名单的过滤器。

5、XSS 蠕⾍(WXSS):WXSS 攻击是具有⾃我复制能⼒的 XSS 攻击。RXSS 和 SXSS 攻击被归类为 WXSS。WXSS 攻击更加危险,因为它们在 Web 应⽤程序⽤⼾之间传播,并随着时间的推移逐渐感染其他⽤⼾。此类攻击的典型⽬标是在线社交⽹络应⽤程序。

基于第三⽅的 XSS 攻击

1、通过脚本⼩⼯具重⽤代码 (CR-XSS):触发 CR-XSS 攻击基本上需要了解⽬标应⽤程序使⽤的库和 / 或框架中包含的脚本。成功的 CR-XSS 攻击是通过注⼊带有伪装负载(即不可执⾏形式)的 HTML 代码来实现的,这些负载匹配 DOM 元素并激发脚本⼩⼯具的执⾏。

2、通⽤ XSS (UXSS):UXSS 是由于浏览器本⾝或其扩展没有对 URL 进⾏适当的清理⽽引起的。⼊侵者可以利⽤浏览器或浏览器扩展中的漏洞,通过诱使⽤⼾单击⼀个链接,该链接会激发访问者浏览器中安装的插件的执⾏,该插件会触发链接中包含的恶意脚本的执⾏。

基于协作的 XSS 攻击

1、Mutation XSS (MXSS):MXSS 攻击主要是由浏览器利⽤ Web 应⽤程序中使⽤的 innerHTML 属性将格式化的 HTML 字符串转换为有效 DOM 元素的能⼒引起的。

2、Cross-API Scripting (XAS):XAS 是⼀种 XSS 攻击,针对为社交⽹络等第三⽅开发者提供 Restful API 的 Web 应⽤。攻击者在他们⾃⼰的应⽤程序配置⽂件中注⼊恶意脚本,因此第三⽅应⽤程序的⽤⼾容易受到 XAS 的攻击。恶意数据通过使⽤ API 从 Web 应⽤程序检索数据传输到受害者的浏览器。XAS 攻击的根本原因是缺乏对数据的适当清理:

  • Web 应⽤程序本⾝允许攻击者注⼊恶意数据,

  • 第三⽅ Web 应⽤程序在没有适当的情况下接受恶意 API 的响应。

3、Content-Sniffing XSS(CS-XSS):由于浏览器对⽂件内容类型的错误解析⽽引起的 XSS 攻击。恶意数据作为单独的媒体⽂件(例如 PDF、图像)的⼀部分被提供给易受攻击的 Web 应⽤程序。这些⽂件对每个在易受攻击的浏览器中加载它们的⽤⼾都是有害的。浏览器会将它们视为 HTML ⽂件,因此会在受害者浏览器执⾏注⼊脚本的位置展示。

如何预防、检测、防御 XSS 攻击?

XSS 预防技术

XSS 漏洞缓解技术:
  • 使⽤安全 API:浏览器通常带有内置 API,可以以⾼级⽅式执⾏复杂的操作,例如操纵 Web ⽂档的 DOM 结构。

  • 使⽤安全的 Web 模板:使⽤ Web 模板是⼀种常⻅的做法,它使 Web 设计⼈员和开发⼈员能够通过重新配置已设计的模板来⽣成他们定制的 Web 应⽤程序。

  • 使⽤适当的消毒程序:在所有敏感注⼊点消毒是防⽌ XSS 攻击的直观解决⽅案。如 WebSSARI、DOMPurify。

XSS 漏洞检测技术:

1、静态分析:静态分析⽅法和⼯具专注于探索 Web 应⽤程序源代码,⽽不是执⾏它们,以发现安全漏洞。纳⼊的研究提出了三种主要的静态分析⽅法:基于模型驱动、基于机器学习的代码审查和静态污点分析。

2、动态分析:动态分析与静态分析相反,动态分析⽅法和⼯具旨在发现 Web 应⽤程序运⾏时的缺陷。通过向服务器动态发送请求来检测基于 HTTP 响应的 XSS 漏洞的存在。纳⼊的研究提出了几种主要的动态分析⽅法:动态污点分析、安全测试(模糊测试,⾃适应随机测试,基于模型的测试,动态单元测试)、数据库流量拦截、混合动态测试

3、测试⽤例⽣成:基于静态分析的⽅法,以及所有基于动态分析的⽅法都需要输⼊数据的集合来执⾏它们的评估过程。该集合应包括各种不同且具有代表性的输⼊测试。为了系统地⽣成输⼊测试,探索了⼏种技术:组合安全测试、遗传算法 (GA)、机器学习、基于规则⽣成、基于混合的测试⽤例⽣成、基准测试

4、混合分析:混合分析混合分析包括结合或交替使⽤静态和动态分析。除了检测所有数据流路径外,它还旨在产⽣低误报率。

XSS 漏洞防御技术:

运⾏时数据代码分离:运⾏时数据代码分离为了防⽌已经注⼊易受攻击的 Web 应⽤程序的恶意脚本的执⾏,可以在服务器端提取 HTTP 响应敏感点的脚本,并以安全的⽅式单独发送到客⼾端响应每个 HTTP 请求。如果处理得当,可以防⽌⽹络浏览器执⾏恶意脚本。

输⼊参数类型推断和验证:输⼊参数类型推断和验证⼤多数⽤于开发复杂 Web 应⽤程序的脚本语⾔都是⽆类型语⾔。攻击者利⽤它向输⼊字段注⼊脚本⽽不是明确的值,从⽽导致 XSS 攻击。因此,对敏感数据值强制类型是防⽌ XSS 攻击的直观解决⽅案。

XSS 漏洞检测与修复技术:
  • 静态污点分析来从生成的 Web 应用程序页面的控制流图中识别输入和可能易受攻击的输出节点。

  • 模式匹配用于识别每个节点的 HTML 上下文。最后,通过匹配 OWASP XSS 预防规则并使用 ESAPI API7 进行检测,确定了 OWASP 的适当转义机制。

  • Pixy 工具的静态污点分析用于检查 Web 应用程序页面的源代码并生成相应的控制流图,从结果图中删除了不可行的路径。

  • 遗传算法 (GA) 用于从 XSS 攻击向量的初始种群生成不同的测试用例。

  • HTMLPurifier 用于在检测到的易受攻击路径处清理用户数据。

XSS 攻击检测技术

运⾏时检测构成了抵御⽹络中新的和未知攻击的最后⼀道防线。本综述确定了两种⽤于运⾏时攻击检测的探索技术:

  • HTTP 流量监控:通过运⾏时 HTTP 流量监控,捕获与正在运⾏的 Web 应⽤程序相关的每个请求和响应,并检查是否存在⾮受控⽤⼾数据的 潜在更改。表 8 总结了采⽤这种⽅法的五项研究。每个解决⽅案都根据采⽤的检测⽅案、安装位置、优缺点进⾏了描述。

  • 机器学习:各种机器学习的模型被建⽴来检测 XSS 攻击,这些模型的开发旨在学习攻击向量的隐藏属性并在运⾏时做出正确的预测。

XSS 攻击防御技术

过滤防御:

基于⽩名单 / ⿊名单的过滤:通过识别和列出所有良性 / 恶意脚本,系统可以区分和阻⽌ XSS 攻击。实际上,这是⼀个不可⾏的解决⽅案,因为在实践中⽆法列出所有恶意或良性脚本。为了缓解这个问题,除了开发⼈员⽤来构建⽬标 Web 应⽤程序的脚本外,所有脚本都被视为恶意脚本。

基于正则表达式的过滤:不是使⽤正则表达式来描述此类脚本的⼀般模式,客⼾端或服务器端过滤器使⽤这些模式在运⾏时匹配和阻⽌恶意脚本。

基于规则的过滤:规则可⽤于匹配可疑链接并检测输⼊数据中的异常。

内容安全策略 (CSP):CSP 是另⼀种类型的过滤功能。它是⼤多数现代浏览器实际上完全或部分⽀持的计算机安全标准。它可以限制浏览器可以加载和执⾏的资源。CSP 在服务器端指定,在 HTTP 响应中作为 HTTP 标头传输,并在客⼾端由浏览器执⾏。CSP 通常⽤于防御 XSS 攻击,但实际上⽤于防御多种代码注⼊攻击。
运⾏时污点跟踪:运⾏时污点跟踪可以控制攻击者在 URL 中注⼊的数据是否到达敏感接收器并导致浏览器执⾏其合并的脚本。

上传过滤上传过滤:当⽂件内容上传到服务器时检查⽂件内容是否存在潜在的恶意脚本注⼊。检测到的可疑⽂件要么通过删除注⼊的脚本进⾏修改,要么⼲脆拒绝。它是防御 CS-XSS 的强⼤技术。

移动⽬标防御(MTD):

MTD 技术旨在通过不断改变正在运⾏的应⽤程序的配置和参数值来降低攻击的成功率。这加强了对 Web 应⽤程序结构和⾏为的理解,从⽽增加了对⼿的不确定性并防⽌传统攻击。随机性是 MTD 技术的成功关键,因为攻击者可以学习确定性的变化,从⽽允许他们设计新的成功攻击向量。MTD 技术已经展⽰了它们抵御复杂⽹络攻击的能⼒。

沙盒防御:

沙盒是一种隔离技术,可以完全控制正在运行的应用程序并防止传播可疑操作。一种改进的沙盒技术可防止 WXSS 攻击。呈现的页面在客户端是隔离的。根据特定的策略,每个网页都被分成不同的、独立的部分,命名为视图。每个视图都有一个预定义的授权操作列表。可以通过 per-url 会话令牌和基于引用的视图验证等技术来实现。该技术具有合理的延迟和内存开销(分别约为 1% 和 4%)。

关于本文
作者:@unbug
原文:https://unbug.github.io/Twenty-two-years-since-revealing-cross-site-scripting-attacks/

这期前端早读课
对你有帮助,帮” 赞 “一下,
期待下一期,帮” 在看” 一下 。

相关阅读

  • SecWiki周刊(第469期)

  • 本期关键字:个人信息出境、研究安全公司、EDR能力、 ChatGPT应用、金融黑产、APT攻击溯源、供应链攻击、BOTNET趋势、应用分发、网空态势、互联网稳定性、威胁情报峰会等。20
  • 新产品:哆啦AI ,TA 来了 ~

  • 一、哆啦AI是什么?哆啦AI是一款智能问答和写作应用,你可以跟聊天,问 TA 各种问题,可以称得上是“百晓生”。“请写一封情书”案例:除此之外,还可以写拍摄创意脚本,写小说,做翻译,写年
  • 有密码自动解锁,一键播放确实快!

  • 不星标可能收不到消息,记得星标公众号回复QQ群获取群号前言今天给大家推荐两个油猴脚本插件,一个叫我是网盘管家婆,一个叫我只想好好观影,两个名字都有点意思,而功能也非常强我是
  • 安全宣传开启“云上模式”

  • 星沙时报讯(记者 王箫 通讯员 杨超)一键上传,及时上报。自2月起,长沙县金井镇创新思路,利用“每日安全宣传”微信小程序,率先在辖区内工贸企业开展安全宣传打卡活动,正式开启了小镇
  • .NET 8 预览版 1 发布!

  • 点击上方蓝字关注我们(本文阅读时间:20分钟).NET 8 是一个长期支持(LTS) 版本。这篇文章涵盖了推动增强功能优先级排序和选择开发的主要主题和目标。.NET
    8 预览版和发布候选
  • 国信研究 | 研究周刊(02.27-03.05)

  • No.1宏观从一般公共预算来看,大部分地区在预算报告中提高了 2023 年一般公共预算收入预计增速。不少省份判断今年经济运行有望总体回升,叠加各地产业等优势,预计带动财政收入出
  • 安天网络行为检测能力升级通告(20230305)

  • 点击上方"蓝字"关注我们吧!安天长期基于流量侧数据跟踪分析网络攻击活动,识别和捕获恶意网络行为,研发相应的检测机制与方法,积累沉淀形成了安天自主创新的网络行为检测引擎。安
  • 这才是适合程序员的T恤,吐血推荐!

  • 提到程序员的穿衣搭配,秋冬季容易想到的有冲锋衣、卫衣、格子衫,到了夏天程序员的专属衣柜里必不可少的,当然是日常又百搭的T恤。尤其是可以随心定制,自己设计的T恤,青春活力无限

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 阿米亥:精确的痛苦,模糊的欢乐

  • 耶胡达·阿米亥(Yehuda Amichai,1924—2000),以色列当代诗人,也是二十世纪最重要的国际诗人之一。阿米亥的诗透明而睿智,善于使用圣经和犹太历史作为诗歌意象,把日常与神圣、爱情
  • 【早说】势险和节短

  • It is not that in combat and competition, speed and rhythm is to be unconditionally fast. “Potential danger” and“Knot short”, one is the accumulation of ene
  • 叶嘉莹:我想在离开前,把即将失传的吟诵留下

  • 纪录片《掬水月在手》上映后,叶嘉莹先生开始走入更多人的视野。诗人痖弦在《掬水月在手》中回忆说:“到了端午节(诗人节),新旧两派诗人原本是不在一起吃粽子的。大家对屈原的解释
  • 赫鲁伯: 黑猫

  • 米洛斯拉夫·赫鲁伯(Miroslav Holub,1923.9.13-1998.7.14), 捷克著名诗人、作家,同时他是布拉格医学院一位著名的免疫学专家。赫鲁伯一生发表超过140篇科学论文,出版3本科学专著,出