April 3, 2007

Apollo是危险的吗?(上)

ActionScript3天地会公测中...

(欢迎转载本文,但请留下我的博客链接:www.kingda.org,thx ^ ^)

善意的警告,目前所有发布的Apollo(alpha1)的air文件都可能是你系统潜在的杀手。有可能是作者无意间所犯的编程错误,也有可能是有意而为之。敬告所有Apollo爱好者请勿要乱下air文件安装执行。应该只从值得信赖的网站下载,或者只下载有源码的Apollo程序,自行编译。

Apollo不是Flash,它的功能所及远远超过Flash,它的危险也远远超过Flash。

一年多前Apollo的传言漫天飞时,在激动之余,黑羽不禁就在想Apollo提供的安全模型会是怎样。任何一个可以和用户本地系统打交道,又可以和网络打交道的东西,在我看来都是危险分子或是潜在的威胁。所以我就在想Adobe能解决好这个问题吗?当然在目前的情况下,是不可能完全消除这种类型程序的危险性的。我所要求的是,能有一个合理的安排,换句话说,区分不同的程序访问权限,给于不同的权力。

而现在,毋庸讳言,Apollo Alpha 1是危险的。等到将来的Apollo正式版会有安全权限的区分,但现在Alpha1的程序是有潜在危险的。

从安全策略上

Apollo alpha1对所有Apollo程序只提供一种安全沙箱——Security.APPLICATION。这是目前除了LOCAL_TRUSTED、LOCAL_WITH_FILE、LOCAL_WITH_NETWORK、REMOTE之外提供的第五种安全沙箱。按危险性大小来排序,就是REMOTE<LOCAL_WITH_NETWORK<LOCAL_WITH_FILE<LOCAL_TRUSTED <<< APPLICATION。 嵌入Apollo程序中的SWF,属于APPLCIATION沙箱。不受cross domain的限制,不需要Security.allowDomain()语句。换言之,只要是属于Apollo程序里面的swf可以随心所欲的和任何域名下的swf文件进行脚本交互,也可以随意从任何域名装载数据。
不受限制的从外部载入数据,这一点本身就是危险的。要小心在载入的超链接中有代码注入(code injection),下载的swf含有敌意的操作,处理缓存json数据时恶意代码僵尸复活。

从客户端系统访问上

Apollo程序可以访问本地文件。我们所有Apollo的粉丝都在欢呼这一点。但是,从来不可忘记,这东西是双刃剑,可以攻城也可自伤。 目前的Apollo alpha 1编译出来的apollo程序(打包文件是air),都是可以访问本地所有文件的。 对Windows系统而言,使用Apollo,可以轻松访问到你本地电脑上所有文件,包括Windows, system,system32,以及你所有的机密目录。有意编写一个apollo,来故意误导用户、改写或覆盖你现有的文件,是容易办到的事情。电脑新手注意,用Apollo覆写文件,就和C#等其他语言一样,是不会弹出警告窗口的。


Apollo 程序的实质


Apollo是真正的程序,是真正的exe文件。不要忘了这一点。再做个不很恰当的描述,Apollo实际上是一个swf+exe。当然它们都受到Apollo Runtime的限制。
随便安装一个air文件,然后右键单击它安装在桌面上的快捷方式,选择查找目标,你会看到Apollo真正的面目。一个exe文件,加一些目录,一般在bin目录下静静躺着swf文件。再加上系统预先安装的Apollo Runtime,这就构成了完整的Apollo程序。对Apollo工作的机理,我可以打个简单的比喻,swf和包装的exe打交道,exe再和runtime打交道,然后runtime才和客户系统打交道。(实际当然远远不止这么简单,供新手理解,老手勿笑)

(未完待续)

广告:哈哈,现在刚好是阿里妈妈推广期哦,你是站长吗?推荐注册阿里妈妈赚广告费

TrackBack

TrackBack URL for this entry:
http://www.kingda.org/mt/mt-tb.cgi/171

Comments (6)

vkt:

原来还有安全问题隐患~汗,那没有出正版已经被封杀了。

changhefirst:

无聊.....

按你这么个说法,python不是安全的,ruby不是安全的,java不是安全的(java的砂箱只在applet中作用)。。。。。。。

人家已经说了,是个run-time,以后actionscript和所有其他的解释语言是一样的。

你认为mfc安全吗?装葱。

对了解Runtime的人当然知道你说的这些。
可是大多数Flash爱好者,还并不清楚Apollo和Flash 相比已经有了这些差别。

另外,讨论问题就是讨论问题,有必要骂人吗?

doolar life:

谢谢黑羽,THX。

应该说是一把双刃剑,关键是现在我们要把flash的安全不应该说到apollo上面,这个说法是错误的。如此这样说,还不如说:apollo有漏洞吗?:)

呵呵,对,应该说的更详细一点。
光说Apollo,有点模糊。不知道到底是指Apollo Runtime,还是指开发者用Apollo开发的Apollo应用程序。
标题改成“Apollo应用程序有危险吗?”

留下高见,发表评论

个人信息不会外泄,请放心填写。

姓名和Email必填。

发表评论后,请耐心等待,不要频繁刷新。提交完成后,刷新一下本页即可看到您的评论。^_^

请输入验证字符"n" :
文字广告:你是站长吗?注册阿里妈妈赚广告费

最近发表

归档

全部
Creative Commons License
此 Blog 中的日记
遵循以下授权:
Creative Commons
(创作共用) 授权
.
Google PageRank
本站被Adobe官方MXNA新闻聚合器收录
本站被蓝色理想BXNA收录