Linux安全综述
由于Linux操作系统是一个开放源代码的免费操作系统, 因此受到越来越多用户的欢迎。随着Linux操作系统在我国的不断普及,Linux操作系统一直被认为是微软Windows软件系统的劲敌,因为它不仅安全、稳定、成本低,而且很少发现有病毒传播。但是,随着越来越多的服务器、工作站和个人电脑使用Linux软件,电脑病毒制造者也开始攻击这一系统。于1996年被发现的Ramen是Linux系统下的第一个病毒,如果说刚开始时Linux病毒向人们展示的仅仅是一个概念,那么,Ramen病毒的发现,则已经开始引起了人们的担心。虽然很多人认为,严格来讲,Reman并不能称为病毒,但是这已经让很多对Linux的安全性信心百倍的用户大吃一惊了。
可以看到,从1996年至今,新的Linux病毒屈指可数,这说明Linux是一个健壮的、具有先天病毒免疫能力的操作系统。当然除了其自身设计优秀外,年轻,也是Linux很少受到病毒攻击的原因之一。事实上,所有的操作系统(包括DOS和Windows)在其产生之初,也很少受到各种病毒的侵扰。然而正如Trend Micro的反病毒部门欧洲总裁Raimond Genes所说的,“当然我们将看到对于Windows的越来越多的攻击,但是Linux也将成为一个目标,因为它的使用正在变得越来越普及,这是一个稳定的操作系统,但并不是一个完全安全的系统而LINUX方面关于世界上第一个Linux病毒——reman已经出现的说法,我们得到该病毒的有关资料和样本之后发现,严格地说,reman并不能被称为病毒。实际上这是一个古老的,在UNIX/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
顶(0)
踩(0)
- 最新评论