Linux 与 Windows安全漫谈

在专业的测试中,Windows与Linux的安全性并没有太大的差别,然而现实是Windows中病毒的几率比Linux多得多。很多人将之归功于Linux用的人少,所以病毒不容易流行。当然,这是原因之一,然而却不是主要的原因。下面仅以我个人的经验谈谈两者的安全性对比。我不是业内人士,甚至连安全爱好者都不是,所以我所讨论的角度仅仅是从一个普通电脑用户的经验出发,说得不对请路过的朋友指教。

我认为Windows下病毒泛滥的最主要原因在于用户的不良习惯。然而这是一个很复杂的现实,并不能仅仅责怪用户。

用户权限控制是操作系统安全最基础的策略,然而大部分Windows用户却无视这一点,将所有的安全预期全部寄托在并不可靠的杀毒软件身上。直到最近,大部分的杀毒软件依然依靠特征码来识别恶意程序,给病毒加一个不常见的壳或是加一些无用的花指令就能逃避检查。于是病毒制作者可以公然挑衅杀毒软件厂商的工程师:上午放出的变种被收录到病毒库以后,制作者修改一下代码又在下午放出另一个变种,更为严重的是制作者将病毒源代码卖给很多期望用病毒获利的人,于是病毒的新变种象生产香肠一样被制造出来。杀毒软件厂商的工程师不得不疲于应付,进而寄希望于公安叔叔能将某个胆大包天的小子从电脑前铐走。

在被病毒蹂躏了一次又一次后用户意识到杀毒软件是不可靠的,于是各种非常规的防毒方式被发明:硬盘还原、影子系统、Ghost备份。有经验的个人用户开始绕过杀毒软件自己动手处理病毒,而没有经验的用户只得反反复复地在论坛上求各位大虾推荐一款NB的杀毒软件。杀毒软件也进化到主动防御,一些杀毒软件厂商开始有意识地将自己的产品称为防病毒软件或安全软件而非杀毒软件。然而现实总是不完美,病毒让用户知道,硬盘还原也是不可靠的,而缺德的病毒作者更是赶尽杀绝连GHOST备份也不放过。主动防御的提示也让一部分没有经验的用户无所适从,因为总是有一些软件的操作被安全软件认为可疑,而这些软件却是正常的。我在使用了一段时间的Linux后意识到,撇开操作系统的权限控制去谈系统安全的做法是舍本逐末的。

提升权限理应是每一个黑客所要突破的第一个难题,但是Windows病毒制作者却很少为此费心,因为有大量的Windows用户使用administrators组的账号上网。当黑客制作的恶意代码从IE或是其它什么途径潜入这些用户的系统后天生就具有administrator的权限,可以不受限制地修改系统设置。比如:可以修改注册表把自己弄成服务程序,或是以驱动的方式启动;可以通过键盘勾子监视用户的输入;可以明目张胆地将自己的DLL注入到每一个进程;可以在C:\windows\system32下面生成一堆文件。而这一切,本不该发生。

WindowsXP作为一个继承了NT内核的操作系统是一个真正意义上的多用户系统,每个用户在文件系统和注册表中都有自己独立空间。基于NTFS文件系统,每一个用户只能改变属于自己的那部分空间而无法对整个系统造成影响(administrators组成员除外)。因为进程的权限是有继承性的,以一个users级别的用户启动的病毒进程没有对关键目录和关键的注册表键值的写入权限,自然也就不能感染整个系统。所以,安全的做法是安装完操作系统后应当创建一个普通用户(users组),然后用这个帐号登陆系统进行日常操作(包括上网),只有在需要改变系统设置时才登陆到administartor账号。

在Linux下面正是这样的情况,任何一个新手开始学习Linux的第一件事就是被老鸟告戒不要滥用root帐号。所以很少有人会在Linux下面使用root来上网(Linux的root帐号相当于Windows的administrator帐号,对整个系统具有完全的控制权限),有能力使用溢出或是别的办法来提升权限的黑客毕竟是少数,况且Linux发现和修补漏洞的速度都远胜于Windows,所以Linux下病毒少也就可以合理地解释了。

在Linux下面使用普通级别的帐号进行工作和娱乐并不会遇到什么麻烦,绝大多数应用程序在设计时就考虑到多用户环境这一点,二进制代码和配置文件分开存放,/etc下的配置文件对所有用户有效,但是又不能被普通用户修改,大多数程序会在/home/username目录下生成用户独有的配置文件,用户有权限改变这些文件,但是不会对另外的用户产生影响,当需要改变系统时可以使用su或者sudo方便地做到。这是很合理的安排,然而在Windows下面却没有这么美好。原因是大部分用户日常要用到的应用程序在设计时压根就没有考虑到多用户环境这一点,配置文件总是和exe放在一起,很少有作者愿意将它放到“Documents and Settings”下面;一部分软件使用过程中会在安装目录或是某个毫不相干的目录下生成一堆文件,而不是把它们放到temp目录。当用户以administrator登陆系统时并不会遇到问题,然而当以users级别的用户登陆系统时一堆问题就出现了。一些软件运行不正常,另外一些软件压根不能运行。对于一部分需要管理员权限才能运行的应用程序可以按住shift键单击右键,再选“运行方式”来以其它用户的权限启动,但是这并不能解决所有问题。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzyyfy.html