Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1821736
  • 博文数量: 116
  • 博客积分: 9934
  • 博客等级: 上将
  • 技术积分: 1881
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-22 09:16
文章分类

全部博文(116)

文章存档

2007年(43)

2006年(73)

我的朋友

分类: 系统运维

2006-04-28 08:30:51

注:本文档为我在2004年初给一个公司简单做的风险分析报告。请大家支持
 
 
 

第1章           本地检测项目

本次检测内容主要包括系统与应用程序的安全检查,具体为:

 

l         主机系统相关的hostnameIPOSPATH、编译器等

l         TCP/IP路由与安全设置

l         Passwdgroup及用户环境设置

l         启动文件lilo.conf及登陆文件login.defs

l         TCP_WRAPPERS设置

l         NFSNIS检查

l         DNS系统检查

l         Syslogd.conf 日志文件设置

l         控制台程序

l         SendmailFTPApache等应用系统

l         PAM验证

l         SUID/SGID程序

l         Hosts.equiv.rhosts等信任关系

l         RPC信息

l         文件系统检查

l         进程、开放的服务及套接字的检查

l         应用程序安装信息及其存在的安全风险


注:因包含有公司服务器重要信息,因此省略。这部分内容主要包括检查到的信息,如配置文件等

风险类型:攻击型

   风险等级:低

   详细信息:  系统开放了末使用的服务portmapper,其 默认监听端口为111

可能造成的影响:系统可能受到D.o.S攻击。

解决方案:关闭RPC Portmap服务或者使用防火墙屏蔽这些端口。

风险类型:攻击型

   风险等级:中

   详细信息:  login.defs为安装默认设置,没有制定可行的密码策略,使密码容易被猜测或破解。

可能造成的影响:系统可能受到D.o.S攻击。

解决方案:关闭RPC Portmap服务或者使用防火墙屏蔽这些端口。

风险类型:攻击型

   风险等级:高

详细信息:      Aliases文件如果管理错误或管理得太粗心了就会造成安全隐患。例如:很多的软件产商都把“decode”这个别名放在aliases文件里。这样做的目的是为了方便通过email传送二进制文件。在发送邮件的时候,用户把二进制文件用“uuencode”转成ASCII文件,然后把结果发给接收端的“decode”。由这个别名让邮件信息通过“/usr/bin/uuencode”程序把二进制文件重新转换成ASCII文件。如果允许“decode”出现在aliases文件中,入侵者可能利用此安全隐患执行任意代码。

可能造成的影响:系统可能被更改或入侵者获得管理员的权限。

解决方案:把定义“decode”等别名的行从aliases文件中删除。同样地,每一个会运行程序的别名都要好好查看一下,很有可能要把它们删除掉。

原路径路由

风险类型:攻击型

   风险等级:高

详细信息:     路由和路由协议会导致一些问题。IP原路径路由(IP source routing),也就是IP包包含到达底目的地址的详细路径信息,是非常危险的,因为根据RFC 1122规定目的主机必须按原路径返回这样的IP包。如果黑客能够伪造原路径路由的信息包,那么它就能截取返回的信息包,并且欺骗你的计算机,让它觉得正在和它交换信息的是可以信任的主机。

可能造成的影响:IP欺骗攻击。

解决方案:禁止IP原路径路由以避免这个安全漏洞或者安装防火墙。

风险类型:攻击型

   风险等级:中

详细信息:    Linux系统中就提供这样一些你可能不需要的预置帐号。如果确实不需要这些帐号,就把它们删掉。系统中有越多的帐号,就越容易受到攻击。

可能造成的影响:系统攻击。

解决方案:删除多佘的内置账号。

版本信息泄露

风险类型:信息型

   风险等级:低

详细信息:    sendmail.cf配置文件中的# SMTP initial login message (old $e macro)    O SmtpGreetingMessage=$j Sendmail $v/$Z; $b,从而入侵者可以查看sendmail的版本号等相关信息。

可能造成的影响:泄露sendmail系统版本号等相关信息,使入侵者可以利用已知的漏洞进行攻击。

解决方案:   改变这个文件中的提示信息设置,屏蔽版本信息或者自定义提示信息。

风险类型:攻击型

   风险等级:中

详细信息:   限制用户对系统资源的使用,可以避免拒绝服务(如:创建很多进程、消耗系统的内存,等等)这种攻击方式。这些限制必须在用户登录之前设定

可能造成的影响:拒绝服务攻击。

解决方案:修改/etc/security/limits.conf/etc/pam.d/login文件。

风险类型:攻击型

   风险等级:中

详细信息:    LILOLinux上一个多功能的引导程序。它可以用于多种文件系统,也可以从软盘或硬盘上引导Linux并装入内核,还可以做为其它操作系统的“引导管理器”。根(/)文件系统对LILO来说很重要,有下面这两个原因:第一:LILO要告诉内核到那里去找根文件系统;第二:LILO要用到的一些东西,如:引导扇区、“/boot”目录和内核就存放在根文件系统中。引导扇区包括LILO引导程序的第一部分,这个部分在引导阶段的后半部分还要装入更大的引导程序。这两个引导程序通常存在“/boot/boot.b”文件中。内核是由引导程序装入并启动的。在RedHat Linux系统中,内核通常在根目录或“/boot”目录下。因为LILOLinux系统非常重要,所以我们要尽可能地保护好它。LILO最重要的配置文件是“/etc”目录下的“lilo.conf”文件。用这个文件我们可以配置或提高LILO程序以及Linux系统的安全性。

可能造成的影响:系统可能被更改或入侵者获得管理员的权限。

解决方案:   修改lilo.conf文件加入timeout=00restrictedpassword=等相关设置参数。

风险类型:信息型

   风险等级:低

详细信息:    /etc/issue.net”文件是用户从网络登录计算机时(例如:telnetSSH),看到的登录提示。同样在“/etc”目录下还有一个“issue”文件,是用户从本地登录时看到的提示。这两个文件都是文本文件,可以根据需要改变。

可能造成的影响:泄露系统发行版的名字、版本号、内核版本和服务器名称等相关信息,使入侵者可以利用已知的漏洞进行攻击。

解决方案:   删掉这两个文件,把“/etc/rc.d/rc.local”脚本中的那些相关行注释掉。

存在远程缓冲溢出漏洞

   风险类型:攻击型

   风险等级:高

   详细信息: Apache http服务器程序在对数据块解码的时候数据大小计算不严格,容易导致缓冲区溢出,远程攻击者可以对服务器实施拒绝服务攻击或在主机上执行任意指令。Mod_SSL Apache-SSL APACHE服务程序对SSL的实现。
其中Mod_SSL Apache-SSL中存在一个缓冲溢出落动可以导致攻击者执行任意代码,当模块尝试接收缓冲SSL会话的时候存在此漏洞,因为有漏洞的Mod_SSL Apache-SSL不能很好的处理超大的会话请求。要利用这个漏洞,攻击者必须以某种方式增加会话请求的数据,这可以通过使用超大的客户端证书来完成,而这个只能在于客户端证书验证方法使能和证书由CA信任站点认证,所以此漏洞比较难利用,但建议管理员还是进行升级

可能造成的影响:远程入侵者可获得系统的普通用户权限。

解决方案:升级到1.3.22-5.7.1版本以上

头字段远程缓冲区溢出漏洞

风险类型:攻击型

   风险等级:高

   详细信息: Sendmail远程漏洞发生在SMTP传输阶段处理邮件头字段时发生。当邮件包含地址或者地址列表("From","To","CC"字段)时,Sendmail会尝试检查地址是否合法,这个过程由crackaddr()函数完成,此函数位于Sendmail源代码树的headers.c文件中。静态缓冲区在处理过程中用于存储数据,Sendmail当探测到缓冲区满的时候,会停止增加字符而来保护发生缓冲区溢出,Sendmail实现包含多个安全检查来确保字符过滤正确,但是其中有一个安全检测存在漏洞,攻击者发送恶意地址字段可触发缓冲区溢出。这个漏洞可导致远程攻击者控制SENDMAIL服务器。且可以通过构建特殊的邮件来触发,由于此邮件属于正常邮件性质,因此即使有防火墙或过滤设备保护的网络也很难被发现,并且如果成功利用,不会留下任何日志。

可能造成的影响:远程入侵者可获得系统的管理员权限。

解决方案:升级到sendmail 8.12.8以上版本或安装系统补丁。

地址预扫描内存破坏漏洞

风险类型:攻击型

   风险等级:高

   详细信息: 此漏洞存在于prescan()过程中,此函数用于处理SMTP头中的EMAIL地址,由于在转换字符到整数时存在一个逻辑错误,导致能充分的检查email地址的长度。而创建地址的email消息可能触发一个栈溢出。

可能造成的影响:远程入侵者可获得系统的管理员权限。

解决方案:升级到sendmail 8.12.9以上版本或安装系统补丁。

缓冲区溢出

风险类型:攻击型

   风险等级:高

   详细信息: telnet Daemontelrcv功能选项对用户输入缺少正确边界检查,可导致远程攻击者提交格式字符串而覆盖堆栈中的任意内存地址,通过精心构建格式字符串数据可以导致以ROOT权限执行任意代码,Telnet是一个广泛使用的明文的远程连接虚拟终端协议,可以用来对远程计算机进行操作。目前使用最多的telnetd版本都是源于BSD telnetd的某个派生。在处理telnet协议选项的函数中没有进行有效的边界检查,当使用某些选项('AYT')时,可能发生缓冲区溢出。由于攻击者可以控制的字符是有限的而且溢出发生在BSS区,因此,攻击受到一定限制。但是发现者报告说至少在某些系统(FreeBSD/BSDI/NetBSD)下攻击是切实可行的,一个可用的攻击程序已经广泛流传。在Linux系统下,如果用户可以获取对系统的本地访问权限。

可能造成的影响:远程入侵者可获得系统的管理员权限。

解决方案:升级telnet程序到0.17.6x-18以上或者安装厂商补本,不用时可关闭此服务。

远程堆栈溢出

风险类型:攻击型

   风险等级:高

   详细信息:PHPHTML可嵌入式的脚本语言,发现它存在安全漏洞,影响multipart/form-data POST请求。允许攻击者在远程系统执行任意程序。

可能造成的影响:远程入侵者可获得系统的普通用户的权限。

解决方案:将PHP升级到4.3.0或者php.ini中关闭文件上传功能或者关闭WEB服务。

欺骗漏洞

风险类型:攻击型

   风险等级:中

   详细信息: PHP是服务器端脚本语言,实际用来嵌入到HTML文件,使用在多种操作系统下。其中PHPmove_uploaded_file函数缺少对open_basedir的检查,可以导致这个函数用来执行open_basedir设置指定目录之外的文件操作。

可能造成的影响:读取受限文件。

解决方案:可以通过PHPCVS处得到升级修补程序或者关闭此服务。

3.2.7   堆破坏漏洞

风险类型:攻击型

   风险等级:中

   详细信息: PHP中的wordwrap()函数存在缓冲区溢出,会导致触发基于堆的破坏。
wordwrap()
函数对参数检查不正确,利用这个漏洞攻击者可以覆盖内存中一个任意字字节,通过重定向程序流程而执行任意恶意代码。

可能造成的影响:远程入侵者可获得系统的普通用户的权限。

解决方案:PHP升级到4.3.0以上版本。

远程缓冲溢出漏洞

风险类型:攻击型

   风险等级:高

   详细信息: OpenSSH报告OPENSSH程序存在漏洞,此漏洞允许未验证用户获得ROOT权限。在OpenSSH SSH2 challenge-response机制中,当OpenSSH服务程序编译时支持BSD_AUTH或者SKEY可能导致缓冲溢出,当SSH服务器存在如下配置选项的情况下系统存在漏洞:PAMAuthenticationViaKbdInt
ChallengeResponseAuthentication
攻击者可以通过构建恶意Challenge-Response响应而触发缓冲溢出,由于此操作发生在验证进程之前,远程攻击者就可以无需认证利用此漏洞,进行缓冲溢出攻击,或者SHELLCODE执行。

可能造成的影响:远程入侵者可获得系统管理员的权限。

解决方案:升级Openssh3.4以上的版本,或者在sshd_config中使用如下配置选项:UsePrivilegeSeparation yes使用权限分离功能。

存在安全漏洞

风险类型:攻击型

   风险等级:中

   详细信息: OpenSSH被发现存在漏洞可以通过授权用户利用而登陆到有漏洞的OpenSSH服务器,或者通过使用恶意的SSH服务器攻击有漏洞的OpenSSH客户端

可能造成的影响:远程入侵者可获得普通用户访问的权限。

解决方案:升级Openssh3.4以上的版本。

存在文件扩展导致HEAP破坏漏洞

风险类型:攻击型

   风险等级:高

   详细信息: Wu-Ftpd是一款基于BSD ftpd的服务程序,其中存在一个远程Heap破坏漏洞可以
导致远程攻击在目标服务器上执行任意命令。wu-ftpd支持文件扩展,程序会根据用户提供的一个文件扩展模式,把需要处理的文件提取出来,而正是在这个处理文件扩展模式的过程中存在一个堆破坏问题,使攻击者从远程执行任意命令成为可能。在处理扩展模式的过程中,程序会根据扩展模式生成一个需要处理文件的列表,这个列表被放入由malloc()调用得到的一个位于堆的缓冲区中。扩展函数只是简单地向调用函数返回这个缓冲区的指针,缓冲区的释放由调用函数完成。当扩展过程出现错误,扩展函数会设置一个变量指示过程出错,调用函数会在使用已经过扩展的文件名列表(之后会释放缓冲区)以前检查这个变量。当扩展函数处理某些扩展模式失败时,可能会没设置那个信号变量,这会导致wu-ftpd去释放并未使用的内存。如果在释放调用之前,那块内存中有用户可控制数据存在,可能导致内存中的任意一个字被任意的值覆盖,如果覆盖的是一个函数的返回地址就可以执行任意命令。

可能造成的影响:远程入侵者可获得系统的管理员权限。

解决方案:升级wu-ftp2.6.2或安装厂商提供的补丁或者关闭匿名用户访问。

提升权限漏洞

风险类型:攻击型

   风险等级:高

   详细信息: 攻击者可以利用这个漏洞在MySQL的数据目录创建my.cnf文件,并且在'[mysqld]'选项段中包含'user=root'项,那么MySQL重新启动的时候就导致mysqld服务是以root身份运行。

可能造成的影响:提升权限。

解决方案:安装MySQL系统补丁程序。

两次堆释放堆破坏漏洞

风险类型:攻击型

   风险等级:中

   详细信息: MySQL中存在漏洞,mysql_change_user()函数处理中进行了两次内存释放,并可以造成拒绝服务。在某种环境下,恶意的MySQL客户端可以导致MySQL释放相同的内存两次。

可能造成的影响:获得普通用户权限。

解决方案:安装相应的MySQL系统补丁程序。

口令认证内存破坏漏洞

风险类型:攻击型

   风险等级:中

   详细信息: MySQL在处理COM_CHANGE_USER命令时存在漏洞,由于没有对用户提交的口令认证回应信息做充分的边界检查,远程入侵者如果提交恶意数据,可能发生内存破坏,导致堆栈中保存的指令指针被程序认证算法产生的随机数据重写,理论上有执行任意指令的可能。因为入侵者必须利用COM_CHANGE_USER命令来利用此漏洞,所以入侵者一般需要有一个合法的数据库帐号。

可能造成的影响:获得普通用户权限。

解决方案:安装相应的MySQL系统补丁程序或把服务器软件升级到3.23.54及其以后版本。

口令认证缺陷漏洞

风险类型:攻击型

   风险等级:中

   详细信息: MySQL的口令认证机制存在漏洞,利用此漏洞一个经过认证的数据库用户可以劫持其他的数据库用户帐号。漏洞的原因在于当客户端发送COM_CHANGE_USER命令后服务器使用客户端提交的一个串来比较进行口令认证。入侵者如果能猜到其他帐号口令的第一个字母就可能以那个帐号认证成功。口令的合法字符集是32个字符,也就是说恶意用户最多只要尝试32次就能攻击成功。

可能造成的影响:控制应用程序系统。

解决方案:安装相应的MySQL系统补丁程序或把服务器软件升级到3.23.54及其以后版本。

程序库中的函数缓冲区溢出漏洞

风险类型:攻击型

   风险等级:中

   详细信息: MySQLlibmysqlclient程序库的read_rows read_one_row函数实现上存在一个缓冲溢出漏洞,MySQL客户端程序没有正确地验证从服务器端读取的行内容大小是否小于目标缓冲区,从而可能造成缓冲区溢出,此漏洞极有可能造成对于MySQL客户端的拒绝服务攻击。

可能造成的影响:远程拒绝服务。

解决方案:    安装相应的MySQL系统补丁程序或把服务器软件升级到3.23.54及其以后版本。

 


本次检测后发现,公司网络中重要服务器均存在默认安装配置,没有进行必要的安全相关的系统设置,应用程序也存在着严重的安全漏洞。极易遭受黑客入侵,应采取措施予以防护。(图已经省略)

 

 

 

 

 

 

阅读(3172) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~