您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Unix系统安全管理
Unix系统安全管理内容简介UNIX/LINUX简介Unix安全问题分析Unix安全管理Unix发展过程Unix是在麻省理工学院(MIT)在1965年开发的分时操作系统Multics的基础上演变而来。1969年,在AT&T贝尔实验室,Thompson和Ritchie在其他的研究人员协助下在PDP-7上开发了一个小的16位分时系统1971年,UNIX移植到PDP-11上,第一次得到实用。此时的系统全部用汇编语言写成1973年用C语言重写UNIX核心,系统变得极为便于理解、修改和移植1980年贝尔实验室推出UNIX32V,Berkeley在此基础上推出了BSD4.0和BSD4.1版本,从此Unix分为AT&T和Berkeley两条道路1988年成立了以AT&T和Sun等公司为代表的UI(UNIXInternational)和以DEC、IBM等公司为代表的OSF(OpenSoftwareFoundation)两个Unix标准化组织Unix特点极强的可移植性可靠性强,可以每天24小时不间断运行一致的文件、设备和进程间的I/O可装卸的树型分层结构文件系统多用户的分时操作系统,即不同的用户分别在不同的终端上,进行交互式地操作,就好像各自单独占用主机一样。Unix结构硬件核心用户Unix系统基本知识(1)超级用户在Unix系统中有一个名为root的用户,这个用户在系统上拥有最大的权限,即不需授权就可以对其他用户的文件、目录以及系统文件进行任意操作。$su–然后输入passwd可以得到#文件属性为保护每个用户的私人文件不受他人非法修改,系统为每个文件和目录都设定了属性,如下所示:-rw-r--r--lrootwheel545Apr412:19file1r表示可读,w表示可写,x表示可执行。最前的-可以是d,表示是子目录。这里可以读为644。可以用chmod命令改变文件属性。Unix系统基本知识(2)ShellShell是用户和Unix系统内核之间的接口程序。在提示符下输入的每个命令都由Shell先解释然后传给Unix内核。可以简单地认为Shell就是Unix的命令解释器,相当于DOS中的COMMAND.COM。输入/输出重定向重定向用于改变一个命令的输入/输出源。“”和“”符号用于把当前命令的输入/输出重走向为指定的文件。如catpasswdmypasswd,相当cppasswdmypasswd管道管道可以把一系列命令连接起来。这意味着第一个命令的输出会通过管道传给第二个命令而作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,以此类推。如ls–al|more.Linux发展过程1990年,芬兰赫尔辛基大学学生LinusTorvalds用汇编语言在80386保护模式下写的Unix系统雏形,为Linux0.0.1版本1991年10月,Linuxv.0.0.2发布1993年,Linux1.0诞生Linux加入GNU并遵循公共版权许可证(GPL),大大加强了GNU和Linux,出现了许多Linux发行版:Slackware、Redhat、Suse、TurboLinux、OpenLinux等Linux特点(1)与Unix高度兼容Linux是一种完全符合POSIX.l等国际标准的操作系统,它和大部分商业Unix操作系统保持高度的兼容性,几乎所有的Unix命令都可以在Linux下使用。高度的稳定性和可靠性Linux是一种完全32位的操作系统,具备完善的多任务机制。Linux特点(2)完全开放源代码,价格低廉Linux符合GNU通用公共版权协议,是自由软件,它的源代码是完全开放的,可以免费得到,这对于系统安全人员来说是非常重要的,因为阅读源代码是发现系统漏洞的最主要方法。而且与各种商业操作系统相比,Linux发行版价格低廉,还可以免费获得其他版本的Linux。安全可靠,绝无后门由于源代码开放,用户不用担心Linux中会存在秘密后门,而且任何错误都会被及时发现并修正,因此Linux可以提供极高的安全性。内容简介UNIX/LINUX简介Unix安全问题分析Unix安全管理Unix安全问题-环境变量(1)程序员在编写具有一些特殊用户权限的代码(如超级用户权限)时要用到许多技术。本质上,要确保用户不能控制程序执行的环境,而且所有返回的错误状态都应给予适当的处理。这些技术也不仅限于特权代码的编写,它更是良好的编程习惯。这些技术包括初始化操作环境、检查所有系统调用的返回码以及内部分析检查所有的参数。Unix安全问题-环境变量(2)输入域分隔符IFS一种攻击的方法是通过输入域分隔符(IFS)Shell变量得逞的。该变量用于决定传给Shell的字符串的分隔符。例如一个程序调用函数system()或popen()来执行一个命令,那么该命令首先由Shell来分析。如果执行的用户可以控制IFS环境变量,这可能会导致不可预测的结果。典型的例子是:如果程序执行代码system(/bin/ls-l),同时IFS变量被设置为包含“/”的字符,而一个恶意的程序被命名为bin并放在用户的PATH内,则该命令会被解释成binls-l,它执行程序bin并带有两个参数ls和-l。因此一个程序不该用system(),popen(),execlp()或execvp()函数来运行其他程序。Unix安全问题-环境变量(3)HOME另外一个环境攻击的方法是通过使用HOME环境变量。通常,csh和ksh在路径名称中用字符“~”代替该变量。因此,如果一个入侵者能改变该值,就能利用一个使用字符“~”作为HOME命令的Shell文件业得逞。例如,如果一个Shell文件用~/.rhosts或$HOME/.rhosts指向用户指定的文件,就有可能通过在执行命令前重置HOME来搞破坏活动。Unix安全问题-环境变量(4)PATH用PATH的攻击方法特征是利用PATH环境变量文件路径的值和顺序。不合理的路径顺序会导致意外的结果——如果执行的命令不是以绝对路径方式执行。例如下面的PATH指定方法:PATH=./:/usr/bin:/bin:/sbin。如果有人在当前路径,它就会比/bin/ls的执行优先级高。如果该文件包括以下内容:#!/bin/sh(/bin/cp/bin/sh/tmp/.secret2/dev/nullrm-f$0exec/bin/ls$0该段代码会暗中创建一个/bin/sh的拷贝,它在执行时会以执行该文件的用户的身份被执行。此外,它消除证据,使用户在执行该命令时感觉不到是在执行另外一个程序。Unix安全问题-环境变量(5)umask值umask(默认的文件保护掩码)的设置经常是不正确的。许多程序没有检查umask的值,而且经常忘记指定新建文件的保护掩码值。即使该程序创建了一个文件,也忘记改变其保护模式而使之安全。入侵者可以利用这一点,更改可写的文件。因此,在建立任何文件之前,要先建立一个umask值。Unix安全问题-程序代码漏洞(1)许多入侵者通过研究一些程序的源代码而达到攻击目的。通常,这种源代码可以免费下载得到,这使得许多人可以研究它,并找到里面潜在的漏洞。这种攻击方法在6年前还很少见,如今却非常普遍。从某种意义上讲,这也是一种好事。因为它促进一些软件错误的改正,也使一些软件编程方法为人们所了解。Unix安全问题-程序代码漏洞(2)缓冲区的溢出不好的编程习惯也会导致软件的安全漏洞。一个典型的利用该漏洞的例子是Morris蠕虫。该漏洞是系统调用gets()在执行时不检查参数的长度,而fgets()系统调用没有这个问题。这使得在用户的控制下缓冲区会溢出,因此程序会出现不可预测的结果。另外还有几个系统调用也存在同样的漏洞,它们是:scanf(),sscanf(),fscanf()和sprintf()Unix安全问题-程序代码漏洞(3)状态返回值另一个经常存在的漏洞是不检查每个系统调用的返回值。这意味着入侵者如果可以控制程序运行环境,就能调用一个失败的系统,而调用在用户程序中却认为是永远会正确招待的。这会使用户的程序出现不确定的结果。Unix安全问题-程序代码漏洞(4)捕捉信号在很多情况下,程序员编写的程序不捕捉它可以接收的信号,因此执行的结果会有异常情况。这允许一个入侵者设置其umask为某个值,之后向一个特权(具有特殊用户权限)程序发送一个信号——该信号使特权程序产生core文件(有的系统不允许产生core文件)。此时该core文件的所有者是执行该程序的UID,但是它的保护掩码是由umask设置的。Unix安全问题-特洛伊木马特洛伊木马与一般用户想要执行的程序从外观上看(如文件名)很相似,例如:编辑器、登录程序、或者游戏程序。这种程序与一般用户想要执行的程序很相似,而它实际上完成其他操作(例如删除文件、窃取口令和格式化磁盘等)。等用户发现,却为时已晚。特洛伊木马可以出现在许多地方。它们可以出现在被编译过程序中,也可以出现在由系统管理员执行的系统命令文件中。其他的特洛伊木马包括作为消息(例如电子邮件或发给终端的消息)的一部分发送。一些邮件头(mailheader)允许用户退到外壳(shell)并执行命令,该特性能在邮件被阅读的时候被激活。给终端发送特定的消息能在终端上存储一个命令序列,然后该命令被执行,就好象从键盘上敲入一样。编辑器初始化文件(如,vi对应的.exrc文件)也是经常存放特洛伊木马的地方。Unix安全问题-网络监听和数据截取计算机安全面临的一个威胁是计算机之间传输的数据可以是很容易被截取到的。过去在大型主机时代,这不是威胁,因为在这种系统上数据传输是处于系统控制之下的。但由于异构系统互联,敏感数据的传输会处于系统的控制之外。有许多现成的软件可以监视网络上传输的数据。特别脆弱的是总线型网络(例如:以太网),这种网络上发送给每个特定机器的数据可以被网络通路上的任何机器截取到。这意味着任意数据可以被截取并用于不同的目的。这里不仅仅包括敏感数据,还协议交换(例如登录顺序,包括口令)。数据截取并不一定要从网络本身截取。通过在网络软件上或应用程序上安装特洛伊木马,就能截取数据并保存到磁盘上以备后用。Unix安全问题-软件之间的相互作用和设置本质上,计算机安全受威胁的根本原因是计算机系统和运行的软件越来越复杂。任何一个人都不可能编写整个系统,因此也无法预测系统内部每个部分之间的相互作用。例如:/bin/login接收其他一些程序的非法参数的问题。除了系统内软件相互作用的复杂性,程序员也为系统管理员提供了多种选择。配置系统是如此复杂,以至于简单的配置错误可能导致不易觉察的安全问题。目前有一种趋势,即用电子方法来检测攻破系统的能力——既从系统外部又从系统内部检测。但是,这种方法只能检测已知安全问题,而不能测出新的安全问题。内容简介UNIX/LINUX简介Unix安全问题分析Unix安全管理Unix安全管理-综述(1)Unix系统的安全管理主要分为四个方面:(1)防止未授权存取:这是计算机安全最重要的问题,即未被授权使用系统的人进入系统。用户意识、良好的口令管理(由系统管理员和用户双方配合)、登录活动记录和报告、用户和网络活动的周期检查、这些都是防止未授权存取的关键。(2)防止泄密:这也是计算机安全的一个重要问题。防止已授权或未授权的用户存取相互的重要信息。文件系统查帐,su登录和报告,用户意识,加密都是防止泄密的关键。Unix安全管理-综述(2)(3)防止用户拒绝系统的管理:这一方面的安全应由操作系统来完成。一个系统不应被一个有意试图使用过多资源的用户损害。不幸的是,UNIX不能很好地限制用户对资源的使用,一个用户能够使用文件系统的整个磁盘空间,而UNIX基本不能阻止用户这样做。系统管理员最好用PS命令,记帐程序df和du周期地检查系统。查出过多占用CPU的进程和大量占用磁盘的文件。(4)防止丢失系统的完整性:这一安全方面与一个好系统管理员的实际工作(例如:周期地备份文件系统,系统崩溃后运行fs
本文标题:Unix系统安全管理
链接地址:https://www.777doc.com/doc-3398769 .html