GitHub遭遇Mass Assignment漏洞攻击

标签: github mass assignment | 发表时间:2012-03-19 21:42 | 作者:
出处:http://pipes.yahoo.com/pipes/pipe.info?_id=10560380f804c7341f042a2b8a03e117

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

相关 [github mass assignment] 推荐:

GitHub遭遇Mass Assignment漏洞攻击

- - InfoQ cn
GitHub最近遭遇了一场Ruby on Rails漏洞攻击,该漏洞被称为mass assignment. 此漏洞被认为不仅影响了大量基于Ruby的网站,还对使用 ASP.NET MVC和其他ORM Web框架的网站造成了破坏. Mass assignment用于将表单数据映射为对象,它在单独使用时是一项安全且高效的技术.

從 Github 被 hack,談 Rails 的安全性( mass-assignment )

- - Blog.XDite.net
關於 Github 被入侵這件事,目前在國外開發圈傳的沸沸揚揚. 看來中文圈還沒有消息,我來報導一下到底發生了什麼事好了. 順便宣導一下開發 Rails 程式碼需要注意的其中一個觀念... Rails 的 master 被某個 hacker 塞上這一段 commit. 以證明 Github 是可以被入侵的.

说说静态单赋值(SSA,Static Single-Assignment)

- delphij - 编译点滴
精确的数据流分析是让编译优化能高效进行的基础. SSA就是一种高效的数据流分析技术,目前几乎所有的现代编译器,如GCC、Open64、LLVM都有将SSA技术的支持, 不仅仅是编译器,Jikes RVM, HotSpot JVM, .Net的Mono,Python的Pypy, Andoroid的Dalvik,这些虚拟机/解释器中的Just-in-Time Compiler也有了SSA的支持.

好用的Google漏洞爬虫:Google Mass Explorer

- - FreeBuf.COM | 关注黑客与极客
这是一款基于谷歌搜索引擎的自动化爬虫. 先进行一次谷歌搜索,将结果解析为特定格式,然后再提供给exp使用. 大家可以尝试使用–help来列出所有参数. 这个项目笔者会持续更新,以后再添加新的exp进行升级. 此外,它会利用google_parsers模块去构建exp解析搜索结果,所以当你开始搜索时,可以选择“–exploit parser”参数来指定相应exp.

Home · JohnLangford/vowpal_wabbit Wiki · GitHub

- -
There are two ways to have a fast learning algorithm: (a) start with a slow algorithm and speed it up, or (b) build an intrinsically fast learning algorithm.

GitHub - jgraph/drawio: Source to www.draw.io

- -
draw.io supports IE 11, Chrome 32+, Firefox 38+, Safari 9.1.x, 10.1.x and 11.0.x, Opera 20+, Native Android browser 5.1.x+, the default browser in the current and previous major iOS versions (e.g.

git和github简介(上)

- linyehui - 没做完,没准备好
在此贴上本人在Web标准化交流会6月25日北京站的主题分享. 在线PPT:http://jinjiang.github.com/slides/learning-git/. PPT源码:https://github.com/Jinjiang/slides/tree/gh-pages/learning-git.

Github使用指南(转)

- - CSDN博客推荐文章
来自:https://github.com/neuola/neuola-legacy/wiki/github%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97. 如果你只是想了解 github 的使用,请跳到 Github 简介一节. 作为程序员大军之一,想必大家有这样的经历吧.

github 上的好东西

- - 收集分享互联网资源
基于HTML5的专业级图像处理开源引擎.

Windows 下 使用TortoiseGit GitHub

- - CSDN博客研发管理推荐文章
TortoiseGit依赖msysgit,首先下载: http://code.google.com/p/msysgit/downloads/detail?name=msysGit-fullinstall-1.8.1.2-preview20130201.exe&can=2&q=. 再下载TortoiseGit: http://code.google.com/p/tortoisegit/wiki/Download?tm=2.