小蔡
级别:精灵王 威望:0 经验:27 货币:3111 体力: 来源:四川 总发帖数:439 注册日期:2002-01-28 |
|
查看 邮件 主页 QQ 消息 引用 复制 下载
影响Unix系统的最危险的网络安全弱点
日期:2002-01-25 作者:Scott Lawler U1--RPC服务中的缓冲区溢出(U)
U1.1 描述
远端程序调用(RPCs)让计算机执行另一个计算机的程序。它们被广泛的用来访问网络服务,例如NFS文件共享和NIS。积极地使用RPC会引起多种弱点。有一个显著的证据,1999年和2000年早期很活跃的大多数由系统执行的分布式拒绝服务攻击,利用了RPC弱点。在Solar
Sunrise事件中,对美国军事系统的广泛和成功的攻击,也是利用了防御系统的数百个部门的RPC缺陷。
U1.2
影响的系统
大多数Unix版本
U1.3 检测方法
查看您是否在使用三个大多数公司使用的RPC服务之一:
rpc.ttdbserverd
rpc.cmsd rpc.statd
由于RPC程序不做适当的错误检查,利用缓冲区溢出攻击将是成功的。缓冲区溢出弱点让攻击者发送程序没有料想到的数据,而程序作很少的错误检查,于是程序就会处理这些数据。
U1.4 解决方法
使用下列步骤来防御RPC攻击:
1、如果可能,关掉并/或删除能从因特网直接访问的机器的这些服务。 2、如果您必须运行这些服务,安装最近的补丁:
对Solaris: http://sunsolve.sun.com/ 对IBM AIX
http://techsupport.services.ibm.com/support/
rs6000.support/downloads
http://techsupport.services.ibm.com/rs6k/fixes.html 对SGI:
http://suppport.sgi.com/ 对Compaq (Digital Unix):
http://www.compaq.com/support 对Linus:
http://www.redhat.com/support/errata/ RHSA-2000-039-02.html
http://www.debian.org/security/2000/20000719a
http://www.cert.org/advisories/CA-2000-17.html
3、经常搜索卖主补丁数据库,当搜到新补丁时,马上安装它。 4、阻塞边界路由器或防火墙的RPC端口(111端口)。
5、阻塞RPC“回滚”端口,32770-32789(TCP和UDP)。
一个针对三个主要的RPC弱点的防护摘要,能在下列地址找着:http://www.cert.org/incident_notes/IN-99-04.html
下面是针对每个弱点的防御信息:
statd:
http://www.cert.org/advisories/ CA-99-05-statd-automountd.html
ToolTalk: http://www.cert.org/advisories/CA-98.11.tooltalk.html
Calendar Manager:
http://www.cert.org/advisories/CA-99-08-cmsd.html
U2--Sendmail弱点
U2.1 描述
Sendmail是UNIX和Linux发送、接受和转发多数电子邮件的程序。Sendmail在因特网的广泛使用使它成为攻击者的目标。过去几年里发现了它的几个缺陷。实际上,在1988年,由CERT/CC出版的一篇咨询,对Sendmail的可被利用的弱点提出了建议。其中最普通的攻击方法之一,攻击者给运行Sendmail的机器发送精心构建的邮件信息,而Sendmail把这些信息解释成由受害者机器向攻击者机器(或另一个受害者)发送密码,这密码能破解。
U2.2 影响的系统
大多数Unix和Linux系统。
U2.3 检测方法
Sendmail有许多弱点,其中大部分是可升级和打补丁的。查看Sendmail的最新版本和补丁;如果您不是运行它,则您是危险的。
U2.4 解决方法
1、升级至Sendmail最新的版本并/或打最新的补丁:
http://www.cert.org/advisories/CA-97,05.sendmail.html
2、在既不是邮件服务器也不是邮件转发器的机器上,不要在daemon模式(关闭了-bd开关)中运行Sendmail。
U3--Bind弱点
U3.1 描述
Berkeley因特网域名系统(BIND)包,广泛运用于域名服务--它的准确含义为用名字来定位因特网(例如,www.sans.org)而不必知道确切的IP地址--这也成为攻击者喜欢的目标。不幸的是,依据1999年中部的测量表明,连接因特网的多达50%的DNS服务器运行着有弱点的BIND。在典型的BIND攻击里,入侵者抹去系统日志并安装了窃取系统管理权的工具。然后,他们编译并安装了IRC和网络扫描工具,来扫描别的运行带弱点的BIND的B类地址的系统。不到几分钟,他们控制着那些系统,向几百台远端系统发动攻击,结果攻陷了更多机器。这个例子说明了,一个软件的漏洞可能会导致因特网上普遍存在的服务如DNS发生混乱。过时的BIND版本,包括缓冲区溢出,能使攻击者得到未经授权的访问。
U3.2 影响的系统
很多UNIX和Linux系统。
U3.3 检测方法
运行漏洞扫描器,检查BIND版本,或者手工查看文件。如果对您的系统有怀疑,升级您的系统。
U3.4
解决方法
采取下列步骤来防御BIND漏洞:
1、停止所有未被证明能成为DNS服务器的系统的BIND域名服务(称为named)。一些专家甚至建议您删除DNS软件。
2、在被证明能成为DNS服务器的机器上,升级至最新的版本和补丁。遵循下列顾问们的指导:
3、对于NXT漏洞:http://www.cert.org/advisories/ CA-99-14-bind.html
对于QINV(反转查询)和NAMED漏洞:http://www.cert.org/advisories/
CA-98.05.bind_problems.html
http://www.cert.org/summaries/CS-98.04.html
4、以没有特权的用户身份来运行BIND。(只有拥有根权限的进程才能使用1024以下的端口--DNS的需要。所以,在您绑定端口后,您需要改变user-id。)
5、在子目录中运行BIND。 6、除了授权的主机外,阻止环路传输。
7、为了防止DNS缓存中毒,阻止递归和胶合传输。 8、隐藏您的版本字符串。
U4--R命令
U4.1 描述
在UNIX世界中,信任关系被广泛地使用着,特别在管理系统中。公司经常指派一个系统管理员来管理十几个甚至上百个系统。系统管理员经常使用信任关系和相应的UNIX
r命令来在系统之间转换。r命令能使人访问远端系统而不需要密码。远端机器使用信任的IP地址来鉴别,而不是用用户名/密码组合。如果攻击者获得了被信任的网络的任一台机器的管理权,则他可以访问信任这台机器的其它机器。下列是经常使用的r命令:
1、rlogin - 远端登录 2、rsh - 远端壳命令 3、rcp - 远端拷贝
U4.2 影响的系统
大多数Unix,包括Linux
U4.3 检测方法
信任关系由两个配置文件建立,/etc/hosts.equiv或~/.rhosts。检查您的Unix系统的这两个文件来确认信任关系是否已经配置。
U4.4 解决方法
不允许基于IP地址的信任关系,不使用r命令。基于IP的鉴定很容易被迂回通过。证明应该基于更可靠的,即至少采用密码。如果需要使用r命令,限制可访问的机器,并非常仔细地控制网络的边界。在“root”帐号中不允许存在“.rhosts”文件。您可以经常使用Unix
“find”命令来查找“.rhosts”文件,也许别的用户会建立它。
U5--LPD(远端后台打印协议)
U5.1 描述
在Unix中,in.lpd
为用户提供与本地打印机结合的服务。LPD在TCP端口515倾听。程序员,写出了代码将打印任务从一台机器传输到另一台机器,但也产生了一个缓冲区溢出错误。当后台在很短的时间内接到大量的打印任务是,后台或者瘫痪或者执行任意的权限提高的代码。
U5.2 影响的系统
下列系统是受影响的:
Solaris
2.6 for SPARC
Solaris 2.6 x86
Solaris 7 for SPARC
Solaris 7 x86
Solaris 8 for SPARC
Solaris 8
x86
大多数Linux
U5.3 检测方法
可以对您的系统运行漏洞扫描器,或手动进行检测。最简单的方法是检查您的系统是否在运行LPD并查看它的版本号。
如果您在运行有弱点的版本,而且没有打补丁,则您是容易受到攻击的。
U5.4 解决方法
Sun于2001年8月30日在Sun安全公告中发表了关于这个问题的补丁情况的#00206号公告。公告能在以下地址得到:http://sunsolve.sun.com/security
CERT关于这个问题的咨询能在下列地址得到:http://www.cert.ort/advisories/CA-2001-15.html
针对Linux的补丁能在下列地址找到:http://redhat.com/support/errata/
RHSA-2001-077.html
其它的抵御这种攻击的方法包括:
1、如果处理远端打印任务不是很必须,在/etc/inetd.conf文件中停止打印服务。
2、激活noexec_user_stack,在/etc/system文件中添加以下几行:
使
noexec_user_stack=1
使 noexec_user_stack_loq=1
3、阻塞通过TCP端口515的网络访问。
4、配置tcpwrappers,它是tcpd-7.6包的一部分,能在下列地址下载:http://www.sun.com/solaris/freeware.html#cd
U6--sadmind和mountd
U6.1 描述
sadmind能让远端管理员访问Solaris系统,提供了系统管理员功能的图形用户界面。mountd管理和决断UNIX主机的NFS帐号。这些应用中的缓冲区溢出,软件开发者的编程错误,能使攻击者获得访问根目录的权限。
注意:这是情况“U1-RPC服务中的缓冲区溢出”中的一种。投稿者发现这种情况出现太频繁,所以他们觉得有必要把它单列出来。
U6.2 影响的系统
许多版本的Unix。
U6.3 检测方法
运行漏洞扫描器。
U6.4 解决方法
下列行动能防御NFS漏洞,包括sadmind和mountd:
1、如果可能,关闭并/或直接连接因特网的机器上的sadmind和mountd。 2、安装最近的补丁:
对Solaris: http://sunsolve.sun.com/ 对IBM AIX:
http://techsupport.services.ibm.com/support/
rs6000.support/downloads
http://techsupport.services.ibm.com/ rs6k/fixes.html
对SGI: http://support.sgi.com/ 对Compaq(Digital Unix):
http://www.compaq.com/support 3、使用基于输出的host/ip列表。
4、建立只读的或无论什麽情况什麽都不许干的文件输出系统。 5、使用nfsbug来扫描漏洞。
更多的信息能在以下地址找到:
http://www.cert.org/advisories/
CA-99-16-sadmind.html http://www.cert.org/advisories/
CA-98.12.mountd.html
U7--默认的SNMP串
U7.1 描述
简单网络管理协议(SNMP),被网络管理员广泛使用于监视和管理所有类型的连接网络的设备,包括路由器、打印机、计算机等。SNMP使用一种没加密的“公有字符串”作为它唯一的认证机制。缺少加密已经够坏的了,但更坏的是,大多数SNMP设备使用的默认公有字符串为“public”,对于更敏感的信息,少数“聪明”的网络设备商把这个字符串改为“private”。攻击者能利用这个SNMP漏洞在远端重新装备或关闭这些设备。用sniff分析SNMP通信能暴露您的网络的结构,同时暴露出您的系统和设备。入侵者使用这些信息来挑选目标并计划攻击。
注意:SNMP不是Unix独有的。然而,把它列在Unix下,投稿者发现许多Unix系统的攻击是因为可怜的SNMP配置。投稿者没有发现这成为Windows系统的主要问题。
U7.2 影响的系统
所有Unix系统和网络设备。
U7.3 检测方法
查看您的设备是否运行SNMP。如果是,检查配置文件,查看是否存在下列普通的弱点:
1、默认的或空白的SNMP公有名。 2、容易猜测的SNMP公有名。
隐藏SNMP公有字符串。
U7.4 解决方法
下列步骤能帮助您防御SNMP漏洞:
1、如果您不是绝对需要SNMP,使它无效。
2、如果您必须使用SNMP,用使用密码的策略来使用公有名。确认它们很难被猜测或破解,并定时地修改。
3、使用snmpwalk来证实和检查公有名。额外信息能在以下地址得到:http://www.zend.com/manual/
function.snmpwalk.php 4、在边界路由器或防火墙过滤SNMP(端口
161/UDP),除非绝对有必要在本地网络外部运行或管理设备。
5、如果可能使MIBs只读。额外信息能在下列地址找到:www.cisco.com/univercd/cc/td/
doc/cisintwk/ito_doc/snmp.htm#xtocid210315
|