owasp top10之不安全的反序列化

这篇具有很好参考价值的文章主要介绍了owasp top10之不安全的反序列化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

更多网络安全干货内容:点此获取

———————

一、什么是反序列化

Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。

将序列化对象写入文件之后,可以从文件中读取出来,并且对它进行反序列化,也就是说,对象的类型信息、对象的数据,还有对象中的数据类型可以用来在内存中新建对象。

序列化的实现方法:

  • 把一个Java对象写入到硬盘、数据库、文件中,或者传输到网路上面的其它计算机,这时我们就需要自己去通过java把相应的对象转换成字节流。
  • 在Java的OutputStream类下面的子类ObjectOutputStream类就有对应的WriteObject(Object object)其中要求对应的object实现了iava的序列化的接口。

反序列化

  • 将字节流(二进制数据)换回原对象
  • 构造方法:ObjectInputStream(InputStream in)
  • 方法:Object readObject(),从 ObjectInputStream 读取对象

通俗的说,就是现在流行面向对象开发,万物皆对象。比如一个student对象有着很多属性,我们在用的时候可以这么赋值,以PHP为例一个stu对象,有很多属性,name,sex等等,是json格式,如下:

$stu1 = new Stu();

$stu1->name=“GGG'

$stu1->sex= true;

$stu1->age = 18;

$stu1->score = 89.9;

这样的数据,很占空间,所以在临时存储时,会序列化成一种便于存储的字符串格式,如:Array{ “name":"GGG",“age” :18,“SEX” :true,“score” :89.9}。这样用的时候,再序列化回来,使用serialize()和unserialize()函数来来回回转这就是序列化和反序列化。

序列化通常被用于:

  • 远程通信和进程间通信(RPC/IPC)
  • 连线协议、Web服务、消息代理
  • 缓存/持久性
  • 数据库、缓存服务器、文件系统
  • HTTP cookie、HTML表单参数、API身份验证令牌

二、不安全的反序列化

对反序列化的利用是有点困难的。因为在不更改或调整底层可被利用代码的情况下,现成的反序列化漏洞很难被使用。

这一问题包括在Top 10的行业调查中,而不是基于可量化的数据。

有些工具可以被用于发现反序列化缺陷,但经常需要人工帮助来验证发现的问题。希望有关反序列化缺陷的普遍性数据将随着工具的开发而被更多的识别和解决。

反序列化缺陷的影响不能被低估。它们可能导致远程代码执行攻击,这是可能发生的最严重的攻击之一。业务影响取决于应用程序和数据的保护需求。

1. 漏洞产生的原因

序列化和反序列化本身并不存在问题,但当输入的反序列化的数据可被用户控制,那么攻击者即可通过构造恶意输入,让反序列化产生非预期的对象,在此过程中,执行构造的任意代码漏洞代码。

示例如下:

//读取输入流,并转换对象

InputStream in=request.getlnputStream();

ObjectlnputStream ois = new ObjectlnputStream(in):

//恢复对象

ois.readObject();

ois.close();

2. 漏洞产生的影响

可能导致两种主要类型的攻击:

  • 与对象和数据结构相关的攻击,如果应用程序中存在可在反序列化期间,或之后更改行为的类,则攻击者可以修改应用程序逻辑或实现任意远程代码执行。
  • 典型的数据篡改攻击,例如使用现有数据结构但内容发生该改变的访问控制相关攻击

反序列化缺陷还可能导致拒绝服务、访问控制攻击。

3. 如何防御?

唯一安全的架构模式是不接受来自不受信源的序列化对象,也不使用只允许原始数据类型的序列化介质。如果做不到以上要求,可以考虑使用下述方法——

  • 执行完整性检查,如: 在序列化对象上实现完整性检查,例如数字签名,以防止恶意对象创建或数据篡改。
  • 在对象创建之前的反序列化期间强制执行严格的类型约束,因为代码通常需要一组可定义的类。
  • 隔离运行在低特权环境中反序列化的代码。
  • 记录反序列化的异常情况和失败信息,如: 传入的类型不是预期的类型,或者反序列处理引发的例外情况。
  • 限制或监视来自于容器或服务器传入和传出的反序列化网络连接。
  • 监控反序列化,当用户持续进行反序列化时,对用户进行警告。

 

  更多内容:​​​​​​OWASP TOP 10 之敏感数据泄露

OWASP TOP 10 之失效的访问控制

​​​​​​OWASP TOP 10 之失效的身份认证

OWASP TOP 10之跨站脚本攻击文章来源地址https://www.toymoban.com/news/detail-815329.html

到了这里,关于owasp top10之不安全的反序列化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java反序列化:URLDNS的反序列化调试分析

    URLDNS链子是Java反序列化分析的第0课,网上也有很多优质的分析文章。 笔者作为Java安全初学者,也从0到1调试了一遍,现在给出调试笔记。 Java原生链序列化:利用Java.io.ObjectInputStream对象输出流的writerObject方法实现Serializable接口,将对象转化成字节序列。 Java原生链反序列化

    2024年02月15日
    浏览(37)
  • Java反序列化(0):URLDNS的反序列化调试分析

    URLDNS链子是Java反序列化分析的第0课,网上也有很多优质的分析文章。 笔者作为Java安全初学者,也从0到1调试了一遍,现在给出调试笔记。 Java原生链序列化:利用Java.io.ObjectInputStream对象输出流的writerObject方法实现Serializable接口,将对象转化成字节序列。 Java原生链反序列化

    2024年02月16日
    浏览(49)
  • 网安云知识 | OWASP TOP 10之安全配置错误

    这些漏洞使攻击者能经常访问一些未授权的系统数据或功能。有时,这些漏洞导致系统的完全攻破。业务影响取决于您的应用程序和数据的保护需求。 安全配置错误可能发生在应用程序堆栈的任何级别,包括网络服务、平台、Web服务器应用服务器、数据库、框架、自定义代码

    2024年03月09日
    浏览(43)
  • Java安全基础之Java序列化与反序列化

    目录 ObjectInputStream 和 ObjectOutputStream java.io.Serializable 自定义序列化和反序列化 Java 的序列化(Serialization)是指将对象转换为字节序列的过程,而反序列化(Deserialization)则是将字节序列转换回对象的过程。 序列化和反序列化通常用于在网络上传输对象或者将对象持久化到文

    2024年04月22日
    浏览(39)
  • 网络安全入门必知的OWASP top 10漏洞详解

    0、OWASP Top10是什么? 首先介绍下OWASP,开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)是一个非营利组织,不附属于任何企业或财团,它提供有关计算机和互联网应用程序的公正、实际、有成本效益的信息。其目的是协助个人、企业和机构来发现和使用可信

    2024年02月08日
    浏览(39)
  • 从OWASP API Security TOP 10谈API安全

    应用程序编程接口(API)是当今应用驱动世界创新的一个基本元素。从银行、零售、运输到物联网、 自动驾驶汽车、智慧城市,API 是现代移动、SaaS 和 web 应用程序的重要组成部分,可以在面向客 户、面向合作伙伴和内部的应用程序中找到。 从本质上讲,API 暴露了应用程序

    2024年04月25日
    浏览(48)
  • TWO DAY | WEB安全之OWASP TOP10漏洞

    TWO DAY | WEB安全之OWASP TOP10漏洞 OWASP:开放式Web应用程序安全项目(Open Web Application Security Project),OWASP是一家国际性组织机构,并且是一个开放的、非盈利组织,它致力于协助政府、企业开发、升级各类应用程序以保证其可信任性。所有OWASP的工具、文档、研讨以及所有分会都对

    2024年02月12日
    浏览(44)
  • WEB十大安全漏洞(OWASP Top 10)与渗透测试记录

            每年 OWASP(开放 Web 应用程序安全项目)都会发布十大安全漏洞。它代表了对 Web 应用程序最关键的安全风险的广泛共识。了解十大WEB漏洞种类并善于在渗透测试中发现漏洞是安全行业人员的基本要求。 1.失效的访问控制 2.加密机制失效 3.注入 4.不安全的设计 5.安

    2024年02月02日
    浏览(59)
  • 读数据压缩入门笔记10_通用压缩和序列化

    1.2.3.1. 如果今天多云,那么明后两天会下雨的概率是多少? 1.2.5.1. 要使马尔可夫链算法变得实用,就必须要解决内存消耗问题与计算性能问题,即使用最佳链来编码 1.4.3.1. 在PPMZ算法中,对于符号如何去响应匹配,人们尝试了多种类型的上下文 1.4.6.1. 缺点是在进行数据压

    2024年02月16日
    浏览(40)
  • Javaweb安全——Dubbo 反序列化(一)

    Apache Dubbo 是一款 RPC 服务开发框架。提供三个核心功能: 面向接口的远程方法调用 、 智能容错和负载均衡 ,以及 服务自动注册和发现 。 节点角色 节点 角色说明 Provider 暴露服务的服务 提供者 Consumer 调用远程服务的服务 消费者 Registry 服务注册与发现的 注册中心 Monitor 统

    2024年02月01日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包