Linux操作系统的漏洞及防范措施
Linux操作系统的漏洞及防范措施
Linux操作系统的漏洞威胁会被黑客利用,从而危害到系统安全。下面由学习啦小编为大家整理了Linux操作系统的漏洞及防范措施的相关知识,希望对大家有帮助!
Linux操作系统的漏洞及防范措施一
1. 安全漏洞:Linux VMLinux 任意内核执行拒绝服务漏洞
漏洞描述:
Linux 是 UNIX 操作系统的变种,目前已经出现了很多版本,其中某些版本的内核存在安全问题,可能导致拒绝服务攻击。如果本地用户从命令行执行第二种内核时,该内核通常会被正在运行的内核杀死,但是对于某些版本的内核来说,第二种内核会使正在运行的内核崩溃,从而导致拒绝服务。
防范措施:
如果不能立刻安装补丁或者升级,建议采取以下措施以减少风险: 禁止用户运行第二种内核。建议使用Linux系统的用户立刻升级到2.4.12或更新内核
2. 安全漏洞:SuSE Linux SuSEHelp CGI 脚本执行任意命令漏洞
漏洞描述:
SuSE Linux由SuSE发布的免费、开放源代码的UNIX操作系统的变种。susehelp是SuSE用户帮助文档的一部分,用来快速解决用户遇到的常见问题。该程序存在一个安全问题,可能允许攻击者执行任意命令。这是由于susehelp所带的几个CGI脚本在打开文件时没有过滤用户输入的元字符造成的。
防范措施:
如果不能立刻安装补丁或者升级,建议采取以下措施以减少风险:暂时去掉这些CGI脚本的执行权限。厂商已经发布了补丁以修复该安全问题。
3. 安全漏洞:RedHat Linux IPTables 保存选项无法恢复规则漏洞
漏洞描述:Red Hat Linux 是免费、开放源代码的UNIX操作系统的变种,是由Red Hat 公司发布和维护的。该系统的防火墙存在一个安全问题,可能导致管理员在不知情的情况下将系统暴露在危险之中。这是由于“-c”选项创建了一个iptables无读权限的文件,当系统重新启动,iptables试图加载这个文件时会失败,这样该系统就会失去保护。
防范措施:目前厂商已经发布了补丁程序,可安装补丁或者升级,或手工修改该文件的权限,使其可以被iptables读取。
4. 安全漏洞: RH Linux Tux HTTPD 拒绝服务漏洞
漏洞描述:
Tux 是内核空间的HTTP Server,可以最大地提高系统性能,能够与用户空间的HTTPServer如Apache同时工作,缺省情况下是禁止的。该软件存在一个安全问题,可能导致拒绝服务。通过向远程服务器发送超长的“Host:”头,就可以导致远程服务器拒绝服务,只有重新启动才能恢复正常工作。
如果运行以下命令:
perl -e "print qq(GET / HTTP/1.0 Accept: */* Host:). qq(A) x 6000 .qq( )" |nc
这将会导致远程主机发生下列信息:
Code: Bad EIP Value.(0)Kernel Panic: Aiee, killing interrupt handler!In interrupt handler - not syncing!
防范措施:
如果不能立刻安装补丁或者升级,建议采取以下措施:禁止运行Tux厂商补丁。
5. HP Secure OS Software for Linux 文件系统保护漏洞
漏洞描述:
HP Secure OS Software for Linux 是一个软件包,同时也是一个提供了多种安全增强的Linux内核,包括附加的文件系统控制。该软件包被发现存在一个安全问题:可能允许用户访问到部分通过文件系统保护规则保护的文件。
防范措施:
目前厂商已经发布了针对该问题的补丁,请安装厂家提供的补丁。
6. Linux kernel ptrace提升权限漏洞
受影响的系统: Linux kernel 2.2.x, x<=19 Linux kernel 2.4.y, y<=9
漏洞描述:Linux kernel的某些版本在处理ptrace时存在一些实现上的漏洞。本地用户可能非法提升权限,比如获取root权限。问题在于当一个进程被ptrace跟踪后,如果它再启动某个setuid程序时,系统仍然认为它是一个被跟踪的进程。这可能导致普通用户的进程可以修改特权进程的执行流程,从而提升权限。
防范措施:Linux kernel 2.4.12已经解决了这一问题,可以在厂商主页下载最新升级版本,注意升级到新版本需要重新编译并替换原有内核,并重新启动系统才能生效。
7. Linux kernel 深层链接拒绝服务漏洞
受影响的系统:Linux kernel 2.2.x, x<=19 Linux kernel 2.4.y, y<=9
漏洞描述:
Linux kernel的某些版本中存在一个漏洞,当处理一个深层链接的目录时,将消耗大量的CPU时间,其他进程将无法继续运行。这可能允许本地攻击者进行拒绝服务攻击。
防范措施:
下载安装最新的补丁。
Linux操作系统的漏洞及防范措施二
8. Linux Util-Linux Login Pam 权限提升漏洞
漏洞描述:
util-Linux 软件包中提供了很多标准 UNIX 工具,例如 login.。它存在一个问题可能允许本地用户提升权限。如果某些用户的 login 访问数目收到受到 pam_limits 控制的话,就可能导致一些不可预料的结果:登录的用户可能获取控制台或者pts/0用户的权限。
防范措施:
如果已经在 pam 配置文件中设置允许使用 pam_limits.so 对登录session 进行限制,并且在/etc/security/limits.conf 中对某些用户或者组设置了最大登录限制的话,最好暂时注释掉这些选项。目前各个Linux厂商正在着手开发相应的补丁。
9. Linux 2.4 iptables MAC地址匹配绕过漏洞
受影响的系统:Linux kernel 2.4
漏洞描述:
Linux 2.4 内核中包含一个新的功能强大的防火墙体系——Netfilter。它的主要组件是 iptables.,Iptables中包含了一个扩展模块MAC,它可以基于MAC地址来匹配经过防火墙的报文。这个模块主要是用来防止恶意的内部用户通过修改IP地址进行欺骗攻击。然而,MAC模块没有正确匹配长度很小的报文,例如4个字节的ICMP或者UDP报文。这使得内部攻击者可能利用这一漏洞来探测受iptables保护的主机是否存活。
防范措施:
下载安装最新的补丁包。
10. Mandrake Linux Kernel devfs实现漏洞
受影响的系统: Mandrake Linux 8.1
漏洞描述:
Mandrake Linux 8.1 内核中的devfs实现中存在一个安全问题,目前还没有此问题的细节公布。
防范措施:
如果正在使用 8.1,在启动时请使用 devfs=nomount 参数来禁止 devfs 加载,其厂商也着手开发补丁(www.Linux-mandrake.com/en/security/)。
11. RedHat Linux setserial脚本条件竞争漏洞
受影响的系统:RedHat Linux 6.xRedHat Linux 7.x
漏洞描述:RedHat Linux的setserial包的文档目录中带了一个初始化脚本。如果这个脚本被手工拷贝到/etc/init.d目录中,并且内核被重新编译为支持模块化串口支持,那么这个脚本执行时会使用一个可以预测的临时文件名。攻击者可能猜测临时文件名并利用符号链接攻击来覆盖系统文件。
这个问题在缺省配置下并不存在。如果执行下列命令:/bin/ls /etc/rc.d/init.d/serial 返回“/et /rc.d/init.cd/serial”,说明这个脚本已经被手工安装了。再执行命令:/sbin/modprobe -l | grep "/serial.o,如果有返回,这说明你的系统是受影响的。
防范措施:RedHat 的安全公告中建议用户禁止串口支持或者使用不支持串口模块的内核。
12. Red Hat Linux Apache 远程列举用户名漏洞
受影响的系统:RedHat Linux 7.0
漏洞描述:
随同Red Hat Linux 7.0一起发布的Apache存在一个这样的配置错误:导致远程攻击者可能列举该主机上存在的用户。如果远程攻击者发送一个请求,那么一般会有以下三种情况:
(1)如果用户存在,并且配置好了自己的个人主页,那么服务器返回该用户的首页;
(2)如果用户存在,但是还没有配置自己的个人主页,那么服务器返回:“You don"t have permission toaccess /~username on this server.”;
(3)如果用户不存在,那么服务器返回:“The requested URL /~username was not found on this server.”,
利用不同情况返回不同错误信息,导致远程攻击者可能列举主机用户名。
防范措施:
建议安装厂商补丁。安装补丁程序之前,可采用如下临时解决方法:
(1)关闭缺省打开的“UserDir”选项% echo "UserDir Disabled" >>/var/www/conf/httpd.conf
(2)替换路径名URL% echo "ErrorDocument 404 http://localhost/sample.html" >>/var/www/conf/httpd.conf%echo "ErrorDocument 403 http://localhost/sample.html" >>/var/www/conf/httpd.conf% sudo apachectl restart
13. Linux LPRng rhs-printfilters远程执行命令漏洞
受影响的系统: RedHat Linux 7.0
漏洞描述:
果系统安装了tetex-dvips,而且在调用dvips命令时没有指定“-R”开关(安全本模式),那么攻击者可能利用LPRng来远程执行任意命令。dvips程序用来将一个.dvi文件转换成“.ps”文件。在远程用户向目标系统的LPRng打印守护进程提交一个“.dvi”文件的打印请求时,LPRng会将此请求交给过滤器“dvi-to-ps.fpi”来将“.dvi”文件转换成“.ps”文件。攻击者可以构造一个恶意的“.dvi”文件,并在psfile部分中输入包含shell元字符的任意命令,在dvips进行转换时,就会以lp用户的身份执行这些命令。上述问题只有在dvips没有指定“-R”开关时才会存在。
14. Linux ColdFusion CFReThrow 标签拒绝服务漏洞
受影响的系统:Allaire ColdFusion Server 5.0 for Linux、 Allaire ColdFusion Server 4.5.1 for Linux
漏洞描述:
ColdFusion是由Allaire发布和维护的WEB应用软件包。如果ColdFusion服务器是安装在Linux系统的话,CFRETHROW标签就可能导致ColdFusion服务器崩溃,这时ColdFusion就会在安装目录下的“log”子目录生成一个“core”文件。这个漏洞只影响 Linux 下的 ColdFusion,攻击者要利用这个漏洞,必须有权限上传文件。利用这个漏洞,攻击者可以使ColdFusion服务器崩溃,还可能访问到该服务器上的敏感信息。
防范措施:
编辑文件/usr/lib/rhs/rhs-printfilters/dvi-to-ps.fpi,找到下列语句:dvips -f $DVIPS_OPTIONS < $TMP_FILE将其变成:dvips -R -f $DVIPS_OPTIONS < $TMP_FILE。目前厂商还没有提供补丁或者升级程序。
防范措施:
使用CFTHROW标签厂商补丁。目前厂商还没有提供补丁或者升级程序,建议使用此软件的用户随时关注厂商的主页以获取最新版本:www.allaire.com/Products/index.cfm。
15. SuSE Linux sdbsearch.cgi执行任意代码漏洞
受影响的系统:SuSE Linux 6.x、SuSE Linux 7.1、SuSE Linux 7.2
漏洞描述:
SuSE Linux发行版中带了一个名为“sdbsearch.cgi”的Perl脚本。它存在一个安全问题,可能导致攻击者执行任意命令。这个脚本信任客户端发送的HTTP请求中的HTTP_REFERER变量的内容。“"sdbsearch.cgi”利用它来作为关键字来定位文件。如果攻击者可以设法上传一个包含特定内容的文件,“sdbsearch.cgi”将会使用open()调用来打开匹配的文件。如果文件中包含管道符等shell元字符,攻击者就可能以httpd身份执行任意命令。
测试方法:
Maurycy Prodeus (z33d@eth-security.net)提供了如下测试方法。
首先攻击者要设法上传一个"keylist.txt"的文件。 如果在本机测试可以执行如下操作:
$ echo -e "keywordtouch exploitable|"> /tmp/keylist.txt
将向目标主机发送如下HTTP请求:
GET /cgi-bin/sdbsearch.cgi?stichwort=keyword HTTP/1.0Referer:http://szachy.org/../../../../../tmp
这将会在/tmp/下创建"exploitable"文件。
防范措施:
暂时禁止 CGI 脚本的执行权限。或者将其移出/cgi-bin/目录。建议使用此软件的用户随时关注厂商的主页获取最新版本。
补充:Linux操作系统查找漏洞的兵器
(1) sXid
sXid是一个系统监控程序,软件下载后,使用“make install”命令即可安装。它可以扫描系统中suid和sgid文件和目录,因为这些目录很可能是后门程序,并可以设置通过电子邮件来报告结果。缺省安装的配置文件为/etc/sxid.conf,这个文件的注释很容易看懂,它定义了sxid 的工作方式、日志文件的循环次数等;日志文件缺省为/var/log/sxid.log。出于安全方面的考虑,我们可以在配置参数后把sxid.conf 设置为不可改变,使用 chattr 命令把sxid.log文件设置为只可添加。此外,我们还可以随时用sxid -k加上 -k 选项来进行检查,这种检查方式很灵活,既不记入日志,也不发出 email。
(2)LSAT
Linux Security Auditing Tool (LSAT) 是一款本地安全扫描程序,发现默认配置不安全时,它可以生成报告。LSAT由Triode开发,主要针对基于RPM的Linux发布设计的。软件下载后,进行如下编译:
cndes$ tar xzvf last-VERSION.tgz
cndes$ cd lsat-VERSION
cndes$ ./configure
cndes$ make
然后以root身份运行:root# ./lsat。默认情况下,它会生成一份名字叫lsat.out的报告。也可以指定一些选项:
-o filename 指定生成报告的文件名
-v 详细输出模式
-s 不在屏幕上打印任何信息,只生成报告。
-r 执行RPM校验和检查,找出默认内容和权限被改动的文件
LSAT可以检查的内容很多,主要有:检查无用的RPM安装;检查inetd和Xinetd和一些系统配置文件;检查SUID和SGID文件;检查777的文件;检查进程和服务;开放端口等。LSAT的常用方法是用cron定期调用,然后用diff比较当前报告和以前报告的区别,就可以发现系统配置发生的变化。下面是一个测试中的报告片断:
****************************************
This is a list of SUID files on the system:
/bin/ping
/bin/mount
/bin/umount
/bin/su
/sbin/pam_timestamp_check
/sbin/pwdb_chkpwd
/sbin/unix_chkpwd
****************************************
This is a list of SGID files/directories on the system:
/root/sendmail.bak
/root/mta.bak
/sbin/netreport
****************************************
List of normal files in /dev. MAKEDEV is ok, but there
should be no other files:
/dev/MAKEDEV
/dev/MAKEDEV.afa
****************************************
This is a list of world writable files
/etc/cron.daily/backup.sh
/etc/cron.daily/update_CDV.sh
/etc/megamonitor/monitor
/root/e
/root/pl/outfile
(3)GNU Tiger
这是扫描软件可以检测本机安全性,源自TAMU的Tiger(一个老牌扫描软件)。Tiger程序可以检查的项目有:系统配置错误;不安全的权限设置;所有用户可写的文件;SUID和SGID文件;Crontab条目;Sendmail和ftp设置;脆弱的口令或者空口令;系统文件的改动。另外,它还能暴露各种弱点并产生详细报告。
(4)Nabou
Nabou是一个可以用来监视系统变化的Perl 程序,它提供文件完整性和用户账号等检查,并将所有数据保存在数据库里。此外,用户也可以在配置文件中嵌入Perl代码来定义自己的函数,执行自定义测试,操作其实十分方便。
(5)COPS
COPS是可以报告系统的配置错误以及其他信息,对Linux系统进行安全检查。其检测目标有:文件、目录和设备文件的权限检查;重要系统文件的内容、格式和权限;是否存在所有者为root的SUID 文件;对重要系统二进制文件进行CRC校验和检查,看其是否被修改过;对匿名FTP、Sendmai等网络应用进行检查。需要指出的是,COPS只是监测工具,并不做实际的修复。这个软件比较适合配合其他工具使用,其优点在于比较擅长找到潜在的漏洞。
(6)strobe
Strobe是一个TCP端口扫描器,它可以记录指定的机器的所有开放端口,运行速度非常快。它最初用于扫描局域网中公开的电子邮件,从而得到邮件用户信息。Strobe的另一个重要特点是它能快速识别指定机器上正在运行什么服务,不足之处是这类信息量比较有限。
(7)SATAN
SATAN可以用来帮助系统管理员检测安全,也能被基于网络的攻击者用来搜索脆弱的系统。SATAN是为系统和管理员设计的一个安全工具。然而,由于它的广泛性,易用性和扫描远程网络的能力,SATAN也可能因为好奇而被用来定位有弱点的主机。SATAN包括一个有关网络安全问题的检测表,经过网络查找特定的系统或者子网,并报告它的发现。它能搜索以下的弱点:
NFS——由无权限的程序或端口导出。
NIS-——口令文件访问。
Rexd——是否被防火墙阻止。
Sendmail——各种弱点。
ftp——ftp、wu-ftpd或tftp配置问题。
远程Shell的访问——它是否被禁止或者隐藏。
X windows——主机是否提供无限制的访问。
Modem——经过tcp没有限制拨号访问。
(8)IdentTCPscan
IdentTCPscan是一个比较专业的扫描器,可以在各种平台上运行。软件加入了识别指定TCP端口进程的所有者的功能,也就是说,它能测定该进程的UID。这个程序具有很重要的功能就是通过发现进程的UID,很快识别出错误配置。它的运行速度非常快,可以称得上是入侵者的宠物,是一个强大、锐利的工具。