写点什么

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:422398
用户头像

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

关注

评论

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

聊聊我对SCRM的理解

boshi

CRM 七日更

聊聊园区网中的专网架构

冯骐

运维 网络 VRF 虚拟路由表

2021 创新加速周蓄势待发,铆足牛劲再出发!

亚马逊云科技 (Amazon Web Services)

关于写作的一点小想法「Day 13」

道伟

28天写作

Elasticsearch Analyzer 分词器

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 3月日更

华云大咖说 | 高校混合云建设及应用

华云数据

SQL Server 删除正在使用数据库

田镇珲

建信金科大咖访谈:金融科技驱动业务创新,智慧运营引领发展转型

金科优源汇

AI数学基础之:概率和上帝视角

程序那些事

人工智能 AI 程序那些事 概率论

25个关键技术点,带你熟悉Python

华为云开发者联盟

Python

云小课丨网络好不好,ping一下就知道

华为云开发者联盟

网络 虚拟私有云 ping ICMP 安全组

KubeEdge 1.6发布:可靠的K8s原生边云API

华为云原生团队

开源 云原生 边缘技术 kubeedge

Shibboleth IdP4 升级指南

冯骐

认证 Shibboleth IdP 上海教育认证 上海教育

Nydia

从JVM底层原理分析数值交换那些事

秦怀杂货店

JVM 交换数值

不知不觉不假思索——可供性

Justin

心理学 28天写作 游戏设计

百分点数据科学实验室:产品生命周期管理创新应用落地实践

百分点大数据团队

MySQL数据库DDL、DML详解

若尘

MySQL

Kubectl Plugin 推荐(一)| 可观测性篇

郭旭东

kubectl kubectl plugin

百分点大数据技术团队:数据治理“PAI”实施方法论

百分点大数据团队

翻译:《实用的Python编程》03_05_Main_module

codists

Python

智汇华云 | ArcherOS Stack—软件定义数据中心“利器”

华云数据

笔记整理:技术架构涵盖内容和演变过程总结

小傅哥

Java 程序员 小傅哥 架构设计 架构图

滚雪球学 Python 第二轮开启,进阶之路,列表与元组那些事儿

梦想橡皮擦

28天写作 3月日更

详解NLP和时序预测的相似性(附赠AAAI21最佳论文INFORMER的详细解析)

华为云开发者联盟

自然语言处理 深度学习 时序预测 RNN Informer

互联网短平快下,DevCloud如何支撑软件开发的“转型”?

华为云开发者联盟

android 敏捷开发 软件开发 华为云 devcloud

人民网:亚马逊云科技,以这样姿势扎根中国!

亚马逊云科技 (Amazon Web Services)

是什么支持“毅力号”在火星上尽情摄影?

亚马逊云科技 (Amazon Web Services)

工作三年,小胖问我:什么是生产者消费者模式?菜到抠脚!

一个优秀的废人

Java 多线程 阻塞队列 生产者与消费者

《精通比特币》学习笔记(第二章)

棉花糖

区块链 读书笔记

Java的锁

并发编程

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