Linux的系统漏洞有哪些?如何攻击?

Linux的系统漏洞有哪些?如何攻击?,第1张

看对外开放的服务和对应的server

端软件是否有bug了

对于系统本身来说该有的bug都被修的差不多了,本地溢出到还可以,远程攻击几无可能。

比如只开放

web服务

,对外端口只有80,如果server软件没有缓冲区漏洞的话,

我还没有想到有什么方法能够攻破系统,DOS不算。

就算缓冲区成功,大多也是一个普通权限用户,获取root还要看系统是否有本地

溢出漏洞

。。

有四种基本的方法保护缓冲区免受缓冲区溢出的攻击和影响。

1、通过 *** 作系统使得缓冲区不可执行,从而阻止攻击者植入攻击代码。

2、强制写正确的代码的方法。

3、利用编译器的边界检查来实现缓冲区的保护。这个方法使得缓冲区溢出不可能出现,从而完全消除了缓冲区溢出的威胁,但是相对而言代价比较大。

4、一种间接的方法,这个方法在程序指针失效前进行完整性检查。虽然这种方法不能使得所有的缓冲区溢出失效,但它能阻止绝大多数的缓冲区溢出攻击。分析这种保护方法的兼容性和性能优势。

非执行的缓冲区

通过使被攻击程序的数据段地址空间不可执行,从而使得攻击者不可能执行被植入被攻击程序输入缓冲区的代码,这种技术被称为非执行的缓冲区技术。在早期的Unix系统设计中,只允许程序代码在代码段中执行。

但是Unix和MS Windows系统由于要实现更好的性能和功能,往往在数据段中动态地放入可执行的代码,这也是缓冲区溢出的根源。为了保持程序的兼容性,不可能使得所有程序的数据段不可执行。

但是可以设定堆栈数据段不可执行,这样就可以保证程序的兼容性。Linux和Solaris都发布了有关这方面的内核补丁。因为几乎没有任何合法的程序会在堆栈中存放代码,这种做法几乎不产生任何兼容性问题,除了在Linux中的两个特例,这时可执行的代码必须被放入堆栈中:

⑴信号传递

Linux通过向进程堆栈释放代码然后引发中断来执行在堆栈中的代码来实现向进程发送Unix信号。非执行缓冲区的补丁在发送信号的时候是允许缓冲区可执行的。

⑵GCC的在线重用

研究发现gcc在堆栈区里放置了可执行的代码作为在线重用之用。然而,关闭这个功能并不产生任何问题,只有部分功能似乎不能使用。

非执行堆栈的保护可以有效地对付把代码植入自动变量的缓冲区溢出攻击,而对于其它形式的攻击则没有效果。通过引用一个驻留的程序的指针,就可以跳过这种保护措施。其它的攻击可以采用把代码植入堆或者静态数据段中来跳过保护。

扩展资料:

原理

通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数。

例如下面程序:

void function(char*str){char buffer[16]strcpy(buffer,str)}

上面的strcpy()将直接把str中的内容copy到buffer中。这样只要str的长度大于16,就会造成buffer的溢出,使程序运行出错。

存在像strcpy这样的问题的标准函数还有strcat()、sprintf()、vsprintf()、gets()、scanf()等。

当然,随便往缓冲区中填东西造成它溢出一般只会出现分段错误(Segmentation fault),而不能达到攻击的目的。最常见的手段是通过制造缓冲区溢出使程序运行一个用户shell,再通过shell执行其它命令。

如果该程序属于root且有suid权限的话,攻击者就获得了一个有root权限的shell,可以对系统进行任意 *** 作了。

缓冲区溢出攻击之所以成为一种常见安全攻击手段其原因在于缓冲区溢出漏洞太普遍了,并且易于实现。

而且,缓冲区溢出成为远程攻击的主要手段其原因在于缓冲区溢出漏洞给予了攻击者他所想要的一切:植入并且执行攻击代码。被植入的攻击代码以一定的权限运行有缓冲区溢出漏洞的程序,从而得到被攻击主机的控制权。

在1998年Lincoln实验室用来评估入侵检测的的5种远程攻击中,有2种是缓冲区溢出。而在1998年CERT的13份建议中,有9份是是与缓冲区溢出有关的,在1999年,至少有半数的建议是和缓冲区溢出有关的。在ugtraq的调查中,有2/3的被调查者认为缓冲区溢出漏洞是一个很严重的安全问题。

缓冲区溢出漏洞和攻击有很多种形式,会在第二节对他们进行描述和分类。相应地防卫手段也随者攻击方法的不同而不同,将在第四节描述,它的内容包括针对每种攻击类型的有效的防卫手段。

参考资料:

百度百科——缓冲区溢出攻击

Linux服务器上tomcat如果内存溢出,tomcat就有可能挂掉,直接就结束运行了,不会对服务器本身有影响(不过如果是Web服务器,那就无法继续提供服务了)。Linux程序如果内存溢出程序就直接异常退出了,如果是编程概念中的内存泄露才会对服务器内存有影响,内存泄露会逐渐耗尽服务器的内存,最终服务器会卡、当机。不过内存溢出也有一个影响到服务器的危害,那就是有很少一部分内存溢出是安全漏洞,可以被入侵者利用进而控制服务器,溢出漏洞是危害最大的一类安全漏洞,往往都是属于高危漏洞。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7515420.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存