谁才是流氓
July 17, 2015•196 words
a.k.a 开源系统 -> 流氓软件多?
不止一次,当Android上出现流氓软件的时候,我都会看见有人把流氓软件的事怪到 开源
这两个字上来,似乎对于这些人来说,闭源
才是真理,而 开源
只会导致别人什么权限都能获取,只会导致流氓软件遍地走。而能够查看源代码,似乎更让他们觉得自己的隐私完全没有保证,似乎看了源代码就能掌握 核心技术
秘密武器
,就能马上看见他们晚上做的什么事情,似乎开放源代码是只有犯傻才会干的一种事……
所以这篇文章只是一篇口水文,仅因为140字不足以表达本人的驳斥。各位看官请慎重点击 more
起因
既然要喷人,请待我将这件事情慢慢道来,我不喜欢一开篇就喷到底。
今早起床,按常规打开微博,看到了这么一条消息(由别人转发,转发者已自动去除)
照理说这种微博很常见,不过这家伙过了一会又发了个这样的
这句话出现在我的时间流里让我感觉很不舒服,莫非您老看见 不穿底裤
的人就去做一些什么奇怪的事情也不犯法?呜呼,真是可怕。于是我就回他说,Windows
不开源咋也有这么多流氓软件的?于是——
哦,原来是要拿 Windows Phone
和 Android
比才显得 有常识
哇。
流氓软件
要想继续,我们必须定义什么是流氓软件。我们先来看 Wikipedia 上对于 流氓软件(Malware)
的定义。注意,维基上将流氓软件和恶意软件作为同义词处理。
Malware, short for malicious software, is any software used to disrupt computer operation, gather sensitive information, or gain access to private computer systems. Malware is defined by its malicious intent, acting against the requirements of the computer user, and does not include software that causes unintentional harm due to some deficiency.
也就是说,流氓软件是带有恶意性目的的软件,比如毁坏系统、收集敏感信息、进入私人区域等等。流氓软件是有恶意目的并不能遵循用户要求的软件。e.g. 间谍程序(GPS定位等等)/后台偷偷上传下载/攻击他人计算机系统/获得ROOT后进行破坏等等。
条件
现在我们已经知道,流氓软件是这样一类软件。然而,没有操作系统,是不会有应用程序的,我们往往不会直接将一个操作系统定义为恶意软件。因而,我们这里讨论的 流氓软件
仅限于应用程序。
应用程序的实现要依赖操作系统的接口,流氓软件也并不例外。然而根据以上的描述,像是 收集敏感信息
等权限,每个操作系统都会提供一定的接口,否则 地图
通讯录
短信
之类的软件就无从实现。至于后台权限,那就更不用说了,甚至 iOS
也有办法执行后台程序。
因而,事实上系统开放的API,总足够一些流氓软件的实现,这对于任何系统也都是一样的。
开源?
所以,开源系统在这个问题上是否具有劣势呢?
事实上,的确具有一定的劣势。就比如说Android,有好多个BUG,就像那个 PackageInstaller
不对安装包进行检测的BUG,都是从源代码里面发现的。开放的源代码在某种程度上的确可以让人直接通过源代码而非通过逆向工程等方式找到潜在的BUG。但是,开源的另一个好处是,可以及时发现可能的漏洞并及时修补,AOSP
项目就经常有人提交修复错误的补丁等。这种安全性的劣势顶多在开源项目前期的几个版本体现出来。
另外,开源仅仅是对于操作系统的源代码开放,并不代表开源了以后你对该操作系统就有无限的权限。对于用户态程序,即使是开源操作系统,也可以作出严格的权限限制。开放仅限于源代码,而不限于其演绎作品。开源
并不意味着对其上运行的程序给予无限的权限。开源是给人看的,而不是程序。
权限
说到现在,问题所在已经很清楚了。有没有流氓软件,关键在于 权限 ,而不是什么开源不开源。一个开源的系统就算存在BUG,如果用户态程序拿不到对应的权限,那也无济于事。而一个封闭的系统即使没有BUG,如果用户态程序可以拿到所有的权限,你还觉得它能安全吗?就拿 Windows
举例,一大堆中国用户整天开着具有高权限的 Administrator
帐号上各种奇怪的网站,这要是都不中流氓软件,这世界还公平吗啊?
再拿Android举例,它的权限机制在 M
以前确实有很大的问题,用户只能接受app的权限或者不去安装这个app,这就导致一大堆国产app直接申请全部权限,然后鬼知道他们在后台服务里面做了些什么奇奇怪怪的事情。
谁叫Android开源
,你说说看,即使 Android
是个闭源系统,有这么蛋疼的权限逻辑,能安全吗?能安全吗?安全吗?全吗?吗??????把一个没有做好权限管理的系统的锅扣到开源头上来?
又比如说 Linux
,前几次曝出的 shell shock
一类的漏洞,实际上都是因为对不该有权限的人或程序赋予了对敏感数据的不正确的权限,无论是无意还是有意。
常识?
哦对了,人家还说了,Android
要和 Windows Phone
比才叫 有常识
,那么我们就再来说几个常识吧。
流氓软件和一个系统的用户量成正相关, 这很容易理解,一个没有用户的系统,你去做流氓软件,连装都不会有人装,你还想干什么?这就是问题的关键,你拿 Android
跟 Windows Phone
比,有可比性吗?
由 IDC 的统计数据可以明显地看出,Android
和 Windows Phone
的用户量显然不在一个数量级。如果我是流氓软件的制作者,我肯定会选择那用户占比接近80%的 Android
,而不是那个只有个位数百分比的 Windows Phone
有点常识的人都应该看的出来,你觉得这能比?你软的占中国用户大多数的 Windows
又怎么样了?
你跟我说把两个用户量差了一个数量级的系统作比较是 常识
?你骗谁呢?
哈哈哈哈恍恍惚惚红红火火
身世
说了这么多,这位仁兄又是什么来头呢?
其实在后来,他又说了这么一句话
呜呼,只是几个 Android
的粉而已,上来就说人是锤粉,莫非这家伙眼中 Android
= 锤子
? 诶等一下,锤子又不开源……
嗯,这可是黄V呢,来看看认证信息吧。
呜呼!人家可是你软的砖家呢!大概这辈子就没用过几个开源的系统吧?Linux
用过几天? {Open,Free}BSD
用过几天?用过一个 Android
就能把整个大帽子都扣到开源的头上么?这是不是典型的流氓逻辑?嗯,流氓说流氓,我也是微醺。
你 软 药 丸