Rails 爆出严重安全漏洞

2012-03-05 04:04:25 +08:00
 blacktulip
Egor Homakov 这位俄罗斯黑客发现了 Rails 的严重安全漏洞。

他在 http://homakov.blogspot.com/2012/03/egor-stop-hacking-gh.html 这篇文章中声称,由于 Rails 的开发人员忽略他的意见,他决定进行一下试验,拿 Github 开刀。

他已经做到冒充其它用户发 post ,删除其他用户的 post ,以及对任意 repository 进行 pull/commit/push 操作。为了证明他的话,他在 Rails 的 Master 里头 commit 了一下,见截图。

http://img.ly/eMCI

他说不仅仅是 Github 。许多 Rails 开发的 app 都存在这个安全问题。
6913 次点击
所在节点    Ruby on Rails
25 条回复
YvetteM
2012-03-05 06:13:14 +08:00
太可怕了
blacktulip
2012-03-05 06:21:32 +08:00
可怜的家伙 github id 被 ban 了,他身上还有个 github logo 的纹身,结果没了账号 :S

于是他一气之下贴出了方法 在 http://homakov.blogspot.com/2012/03/how-to.html

不过据说 github 已经堵上了这个漏洞。
daqing
2012-03-05 09:13:23 +08:00
这个不是Rails的漏洞,而是开发者的问题:忘记保护user_id字段了。
sobigfish
2012-03-05 09:19:50 +08:00
怎么感觉是github 在ssh方面的漏洞啊
huacnlee
2012-03-05 09:22:51 +08:00
这个不是漏洞,而是开发人员在写的时候不够严谨导致:
http://huacnlee.com/blog/rails-attr-protected-or-attr-accesible-fields/
aidai524
2012-03-05 09:31:02 +08:00
收藏夹第四个, shu.im
cngithub
2012-03-05 09:33:33 +08:00
真心不是Rails的bug。

这种做法,其实Rails社区最佳实践以前讨论过。
felinx
2012-03-05 10:11:15 +08:00
注意看这段

Egor Homakov

About me
Salut, I am Egor Homakov.
born on 28 apr. 1993 in Russia.

Programming, business, a bit of cooking and dancing, travelling, sometimes straightXedge sometimes vodka-guru. Geek&nerd in the past.
Stay tuned, it is gonna be legen...
just wait
bhuztez
2012-03-05 10:18:01 +08:00
@daqing @huacnless @cngithub

也许可以换个思路来考虑下这个问题。

既然ORM默认生成的SQL不该是SELECT *,同样的,一个框架默认的生成表单在保存的时候也不该设计成这样。问题不在于该不该有这功能,而是默认该是Opt-In的被搞成了Opt-Out。

如果Rails不愿意改,那也只是表明Rails无意向对新手更友好的方向发展。可是每个人都有是新手的时候。
m1a0
2012-03-05 10:21:09 +08:00
daqing
2012-03-05 10:24:57 +08:00
@bhuztez 我认为ORM提供一种机制就可以了。
ShiningRay
2012-03-05 11:26:25 +08:00
@bhuztez 新手会考虑安全性?你想得太多了
explon
2012-03-05 11:31:48 +08:00
这人 93 年生的?
ywjno
2012-03-05 11:32:31 +08:00
@bhuztez 新手都是用scaffold来生成controller、model、view的,那时候model都还没保护字段那么一说
est
2012-03-05 11:50:17 +08:00
@ShiningRay 正因为新手不会考虑安全性,所以web framework应该把这些工作默认做好。

github都会犯的rails错误,不知道全世界有多少网站有类似的错误。
insraq
2012-03-05 11:51:44 +08:00
这是Rails处理Mass assignment的问题,现在的做法让许多新手容易造成漏洞,Homakov曾经在Rails@Github上提出这个问题,但是被关闭了,理由是:保证App的安全,不是Rails的责任,而是开发者的责任。于是Homakov用另外一种方法来告诉Rails即使是Github这种有许多优秀开发员的地方,都无法避免漏洞。当然之后Github的处理方法引来了不少争议,不过后来他们也及时的补救了。
mywaiting
2012-03-05 12:02:08 +08:00
我总觉得,太偷懒的地方都容易出Bug......

在向Db写入数据的时候,真心感觉自己有洁癖,没有一项项正则检查过,绝不会直接Model.save()
bhuztez
2012-03-05 12:48:54 +08:00
@greenymora github不值得你每个月给他们7美元。
mywaiting
2012-03-05 13:12:41 +08:00
@aidai524 这么赤裸裸的分享电子书的,迟早被清理.....低调.....
ywjno
2012-03-05 13:39:31 +08:00
对岸rails的牛人xdite在今天的blog中也说了这件事情,可以推荐看看, http://blog.xdite.net/posts/2012/03/05/github-hacked-rails-security/

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/28768

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX