|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
开发linux发行版的人都是通读过linux内核代码,对linux原理极其精通的人。
固然Linux病毒不计其数,可是基于缓冲区溢出(BufferOverflow)毛病的打击仍是让浩瀚Linux用户年夜吃一惊。
所谓“天下上第一个Linux病毒”??reman,严厉地说并非真实的病毒,它本色上是一个陈旧的、在Linux/Unix(也包含Windows等体系)天下中早已存在的“缓冲区溢出”打击程序。reman只是一个十分一般的、主动化了的缓冲区溢出程序,但即使云云,也已在Linux界引发很年夜的发急。
缓冲区溢露马脚是一个困扰了平安专家30多年的困难。复杂来讲,它是因为编程机制而招致的、在软件中呈现的内存毛病。如许的内存毛病使得黑客能够运转一段歹意代码来损坏体系一般地运转,乃至取得全部体系的把持权。
Linux体系特征
使用缓冲区溢出改写相干内存的内容及函数的前往地点,从而改动代码的实行流程,仅能在必定权限局限内无效。由于历程的运转与以后用户的登录权限和身份有关,仅仅可以打造缓冲区溢出是没法冲破体系对以后用户的权限设置的。因而只管能够使用缓冲区溢出使某一程序往实行别的被指定的代码,但被实行的代码只具有特定的权限,仍是没法完成超出权限的义务。
可是,Linux(包含Unix)体系自己的一些特征却能够被使用来打破这类权限的范围性,使得可以使用缓冲区溢出取得更高的、乃至是完整的权限。次要表现在以下两方面:
1.Linux(包含Unix)体系经由过程设置某可实行文件的属性为SUID或SGID,同意别的用户以该可实行文件具有者的用户ID或用户组ID来实行它。假如该可实行文件的属性是root,同时文件属性被设置为SUID,则该可实行文件就存在可使用的缓冲区溢露马脚,能够使用它以root的身份实行特定的、被别的布置的代码。既然可以使得一个具有root权限的代码得以实行,就可以够发生一个具有超等用户root权限的Shell,那末把握全部体系的把持权的伤害就发生了。
2.Linux(包含Unix)中的很多保卫历程都是以root权限运转。假如这些程序存在可使用的缓冲区溢出,便可间接使它以root身份往实行别的布置的代码,而不必修正该程序的SUID或SGID属性。如许取得体系的把持权将加倍简单。
跟着古代收集手艺的开展和收集使用的深切,盘算机收集所供应的远程登录机制、远程挪用及实行机制是必需的。这使得一个匿名的Internet用户无机会使用缓冲区溢露马脚来取得某个体系的部分或全体把持权。实践上,以缓冲区溢露马脚为打击手腕的打击占了远程收集打击中的尽年夜多半,这给Linux体系带来了极为严峻的平安威逼。
路子剖析
一般情形下打击者会先打击root程序,然后使用缓冲区溢出时产生的内存毛病来实行相似“exec(sh)”的代码,从而取得root的一个Shell。为了取得root权限的Shell,打击者必要完成以下的事情:
1.在程序的地点空间内布置得当的特定代码。一样平常利用以下两种办法在被打击的程序地点空间内布置打击代码。
2.经由过程得当地初始化存放器和存储器,使程序在产生缓冲区溢出时不克不及回到本来的实行处,而是跳转到被布置的地点空间实行。
当打击者找到一种路子能够变原程序的实行代码和流程时,打击的伤害就发生了。
提防措施
Linux下的缓冲区溢出打击威逼既来自于软件的编写机制,也来自于Linux(和Unix)体系自己的特征。实践上,缓冲区溢出打击及各类盘算机病毒放肆的基本缘故原由在于古代盘算机体系都是接纳冯?诺依曼“存储程序”的事情道理。这一基础道理使得程序和数据都能够在内存中被滋生、拷贝和实行。因而,要想无效地提防缓冲区溢出打击就应当从这两个方面双管其下。
</p>
买一本命令参考手册是必要的,遇到不知道怎么用的命令可以随时查询,这要比查man文档快.特别适合英语不好。 |
|