写点什么

GitHub 遭遇 Mass Assignment 漏洞攻击

  • 2012-03-19
  • 本文字数:728 字

    阅读完需:约 2 分钟

GitHub 最近遭遇了一场 Ruby on Rails 漏洞攻击,该漏洞被称为 mass assignment。此漏洞被认为不仅影响了大量基于 Ruby 的网站,还对使用 ASP.NET MVC 和其他 ORM Web 框架的网站造成了破坏。

Mass assignment 用于将表单数据映射为对象,它在单独使用时是一项安全且高效的技术。这与 ASP.NET 中的数据绑定异曲同工,并且后者在单独使用时也同样很安全。其实,真正的漏洞是由于粗心大意地混用了 mass assignment 和 ORM。

考虑这样的场景:数据库包含一张“用户”表,其中混杂了敏感和非敏感数据,例如可能有些列代表用户显示姓名、电子邮件地址以及是否为管理员。开发人员希望创建一个页面修改显示姓名及电子邮件地址。为了达到这个目的,他们使用 Rails 或 MVC 脚手架自动生成了域对象,或许还有 view 本身。接下去,他们将用户无法编辑的字段,如“是否为管理员”复选框从 view 中移除。

如果开发人员忘记将 IsAdministrator 属性从域对象中移除,那么一个安全漏洞便就此产生。如果他们没有进行移除,那么 mass assignment 或数据绑定器可能会陷入某种圈套,它们会在合法改动中更新不该修改的属性。接下去,当记录保存时,ORM 库会悄无声息地存储新值。

有三种靠谱的方案可以解决该问题:

  • 标记不可被更新的属性,让 mass assignment/ 数据绑定器将其忽略;
  • 彻底清除业务对象中实际不需要的属性;
  • 创建模型专门接受更新请求,并手工将它们映射到 ORM 对象或存储过程调用。

应当指出,这并不是一个新的漏洞。我们可以很容易地找出 4、5 年前关于mass assignment 的警告,例如标题为“ Mass Assignment,黑客们的最爱”以及“不想被黑就使用attr_protected ”的文章。这次唯一不同的是受害站点知名度较高。

查看英文原文: http://www.infoq.com/news/2012/03/GitHub-Compromised

2012-03-19 08:422868
用户头像

发布了 125 篇内容, 共 44.6 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

使用Kubernetes部署应用

Rayzh

Kubernetes 云原生

Spring Cloud Alibaba 2.2.7 版本正式发布

阿里巴巴中间件

云计算 开源 微服务 中间件 spring cloud ali

以 Kubernetes 的方式来运行极狐GitLab Runner

极狐GitLab

Apsara Stack 技术百科|标准化的云时代:一云多芯

云计算 芯片 科技 混合云

突破底层基础架构瓶颈,揭秘TDSQL存储核心技术

腾讯云数据库

tdsql 国产数据库

游戏用户LTV预测实践

bilibili游戏技术

中科柏诚:加速银行数字化转型的新引擎

联营汇聚

开源社庄表伟:开源要出圈了,推坑文化、沉浸式养鱼塘,社区建设心法了解一下 I OpenTEKr 大话开源 Vol.5

OpenTEKr

大话开源

ARMS 应用安全-你的应用运行时的隐形安全卫士

阿里巴巴中间件

云原生 中间件 RASP Arms

Cube 技术解读 | Cube 小程序技术详解

阿里巴巴终端技术

小程序 ios android 移动开发 客户端

Java中的深拷贝和浅拷贝

Ayue、

深拷贝

RocketMQ Streams:将轻量级实时计算引擎融合进消息系统

阿里巴巴中间件

阿里云 RocketMQ 云原生 中间件

性能工具之代码级性能测试工具ContiPerf

zuozewei

单元测试 性能测试 测试工具 12月日更

KubeCon China 2021 阿里云专场来了!这些首日亮点不容错过

阿里巴巴中间件

阿里云 云原生 中间件 cncf KubeCON

作业帮检索服务基于 Fluid 的计算存储分离实践

阿里巴巴中间件

云计算 云原生 中间件 存储分离 Fluid

不用任何框架,Java 就能实现定时任务的 3 种方法!

CRMEB

高效工作?畅快游戏?来开发者Meetup探索AI技术新玩法

OpenI启智社区

人工智能 飞桨领航团

接口文档自动更改?百度程序员开发效率MAX的秘诀

百度Geek说

百度 前端 工具 后端 软件开发

腾讯云分布式数据库TDSQL在东吴证券新一代核心交易系统中成功落地

腾讯云数据库

tdsql 国产数据库

『SphereEx 年终贺礼』专注为用户提供更好的使用体验

SphereEx

开源 ShardingSphere 一键部署 SphereEx-Boot 开源公司

一年又要过去了!盘点2021年区块链的6个关键词

CECBC

年底考勤管理汇总难?织信OA管理系统无缝对接外部应用助你解决

优秀

低代码 考勤管理 OA管理系统

首个国产分布式数据库调研:TDSQL产品技术及服务能力排名

腾讯云数据库

tdsql 国产数据库

迷雾中的自动化测试体系建设

CODING DevOps

自动化测试 接口测试 业务驱动测试

百度智能云产业智能化新生态,新在哪里?

百度开发者中心

人工智能

设计消息队列存储消息数据的MySQL 表格

Steven

架构实战营

为什么说绿色区块链是未来金融范式的必要底层?

CECBC

一周信创舆情观察(12.20~12.26)

统小信uos

腾讯云容器安全获得云安全守卫者计划优秀案例

腾讯安全云鼎实验室

容器安全

Kubernetes常见组件

Rayzh

Docker Kubernetes 云原生

TDengine在水电厂畸变波形分析及故障预判系统中的应用

TDengine

数据库 大数据 tdengine 物联网 时序数据库

GitHub遭遇Mass Assignment漏洞攻击_Ruby_Jonathan Allen_InfoQ精选文章