阅读更多

0顶
0踩

编程语言
近日,Ruby的Hash算法被爆出了一个安全漏洞,攻击者可以据此发起DoS(拒绝服务)攻击。

该漏洞和计算复杂性相关,攻击者通过碰撞字符串hash值,可以发现一些字符串序列,使用这些序列,攻击者可以发起拒绝服务攻击,例如,可以将它们作为你的Rails应用HTTP请求的POST参数。

详细说明

该情况与2003年在Perl中发现的漏洞类似。在Ruby 1.8分支中,使用了一个确定性的hash函数用于hash字符串,“确定性”的意思是除了输入的字符串自身外没有其他的位参与生成hash值,因此你可以预先计算一个字符串的hash值。

通过收集一系列有相同hash值的字符串,攻击者可以让Ruby进程碰撞hash表(包括hash类实例)。Hash表的amortized O(1)属性取决于hash值分布的均匀性。通过有针对性的输入,攻击者可以让hash表工作比预期慢得多,也就是说构造一个n元素表的复杂度是O(n2)。

受影响的版本

Ruby 1.8.7-p352 及所有之前的版本。

Ruby 1.9系列不会受到这种攻击,它们的哈希实现与Ruby 1.8系列不同。

解决方案

目前的解决方案是通过一些PRNG(伪随机数发生器)生成的随机位来扰乱字符串hash函数。通过这样做,字符串的hash值将不再是确定的。这样,String#hash结果只和当前进程的生命周期一致,并会在下次启动时产生一个不同值。针对这种情况,攻击者必须创建一组针对这种混杂方式的健壮的字符串,但这是十分困难的。

请将Ruby升级到1.8.7 - P357或更高版本。

Ruby 1.8.7 - P357 下载:http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/391606

Via ruby-lang.org
0
0
评论 共 2 条 请登录后发表评论
2 楼 skandhas 2012-01-04 11:19
PHP Python也中招了 :<
1 楼 skandhas 2012-01-04 11:18
这可不是单单Ruby的问题。
应是这个:
Apache曝HashTable碰撞拒绝服务漏洞,Java、PHP、Asp.Net及v8引擎等都受影响
http://www.iteye.com/news/23859

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 总结下几个有漏洞第三方插件

    总价中间件漏洞

  • 《磐石计划:Web安全漏洞与渗透测试》笔记

    课程:磐石计划:Web安全漏洞与渗透测试 主讲老师:陈殷 课程详情:https://www.cnblogs.com/xuanhun/p/12849767.html 本文内容:磐石计划课堂笔记 引用:课程讲义(作者:陈殷),课程PPT 1.安全概念 1.1初探安全 ...

  • 大型网站架构

     服务的分类(核心业务功能服务,数据服务,展现服务等),以及各类服务的设计原则和建议  接口标准 (JMS, RMI, HTTP 等),建议的接口样式(例如:尽量采用粗粒度、异步的服务调用模式),可靠性要求等 ...

  • 网络安全专业名词解释

    1.Burp Suite 是一款信息安全从业人员必备的集成型的渗透测试工具,它采用自动测试和半自动测试的方式,通过拦截HTTP/HTTPS的Web数据包,充当浏览器和相关应用程序的中间...作动词解释时理解为恶意软件与攻击者进行交互

  • redis数据库使用03、redis集群

    如下 --//zlib.o: ../../include/ruby.h --//这一步如果不修改,make时会爆出另外一个错误 --//make:*** No rule to make target `/include/ruby.h', needed by `zlib.o'. Stop make && make install --yum install ...

  • wuyun知识库目录

    1269.利用Office宏及Powershell的针对性攻击样本分析2016-06-24 1268.SQL注入关联分析2016-06-24 1267.Android安全开发之ZIP文件目录遍历2016-06-23 1266.search-guard 在 Elasticsearch 2.3 上的运用2016-06-23 ...

  • 渗透测试 ( 1 ) --- 相关术语、必备 工具、导航、全流程总结、入侵网站思路

    其它端口服务漏洞 通信安全 4、漏洞验证: 自动化验证:结合自动化扫描工具提供的结果。 手动验证:根据公共资源进行验证。 试验验证:自己搭建模拟环境进行验证。 登陆猜解:有时可以尝试猜解一下登陆的账号密码等...

  • 【小迪安全】红蓝对抗 | 网络攻防 | V2022全栈培训笔记(信息打点 1-11)

    1、名词解释-渗透测试-漏洞&攻击&后门&代码&专业词2、必备技能-操作系统-用途&命令&权限&用户&防火墙3、必备技能-文件下载-缘由&场景&使用-提权&后渗透4、必备技能-反弹命令-缘由&场景&使用-提权&后渗透前后端,Poc/...

  • 「干货」Web安全红队外围信息收集「详细总结」

    没有统一的安全管理,由于庞大系统需要多个管理员一起维护,一旦有重大漏洞爆出往往会出现响应不及时的现象。例如:在互联网上传播最新漏洞信息,防守比较强的行业能在第一时间内修复漏洞或者找到临时应对的方法。...

  • [NOTE] WebGoat v8.2.2学习笔记

    JWT使用注意事项 锁定算法,确保用户不能修改算法 当使用对称密钥签名时,请确保密钥的长度 尽量不要在JWT主体中添加敏感信息,除非经过加密 请确保足够的测试案例被使用,使用第三方测试服务并不意味自己无需测试;...

  • vue面试题(自用)

    vue路由是基于SPA单页面应用思想去开发的 利用BOM API 来使用 hash模式 通过 BOM location对象的hash属性来改变路由 history模式 通过BOM history对象的pushState属性来改变路由 那你说下什么是单页面应用SPA优缺点...

  • WebGoat之JWT部分攻略

    环境搭建 使用docker容器搭建webgoat...JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直

  • Centos7 安装配置MySQL5.7

    CentOS安装rpm安装MySQL时爆出警告: 根本原因:这是由于yum安装了旧版本的GPG keys造成的 解决办法:后面加上 --force --nodeps 即可 rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm --force --nodeps ...

  • jvm的类加载和运行时数据区和垃圾回收

    类加载过程 加载(loading) 引导类加载器 扩展类加载器 系统类加载器 1.通过一个类的全限定名获取此类的二进制字节流 2.将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 3.在内存中生成一个代表这个...

  • C/C++ 开源库及示例代码

    算法2.1 容器2.1.1 标准容器2.1.2 Lockfree 的容器2.1.3 环形缓冲2.1.4 多维数组2.1.5 图2.2 对容器的操作2.3 字符串处理2.3.1 字符集2.3.2 字符串格式化2.3.3 正则表达式2.3.4 (其它)2.4 内存相关2.4.1 智能指针...

  • 基于springboot大学生就业信息管理系统源码数据库文档.zip

    基于springboot大学生就业信息管理系统源码数据库文档.zip

  • 基于java的驾校收支管理可视化平台的开题报告.docx

    基于java的驾校收支管理可视化平台的开题报告

  • 原木5秒数据20241120.7z

    时间序列 原木 间隔5秒钟 20241120

  • 毕业设计&课设_基于 Vue 的电影在线预订与管理系统:后台 Java(SSM)代码,为毕业设计项目.zip

    毕业设计&课设_基于 Vue 的电影在线预订与管理系统:后台 Java(SSM)代码,为毕业设计项目.zip

Global site tag (gtag.js) - Google Analytics