网络 电子商务 编程
另外一种较为简洁的方法是始终保持使静态数据段中的函数地址指针存放地址低于其他数据的存放地址。但是这个方法仅仅是防止了静态数据段中的缓冲区溢出攻击,而不能避免堆的缓冲区溢出攻击,因为编译器和操作系统并不知道用户申请的内存是用来存放函数地址指针还是其他数据,从而无法为其隔离分配内存。表1是针对静态数据段、堆栈和堆的缓冲区溢出的防范策略,其中没有把边界检查包括在内,因为它能有效地防止所有的缓冲区溢出,但其运行开销也是惊人的。表的最上面一行是攻击代码所植入的内存空间,表的最左面一列是溢出方法,而中间单元就是相应的防范策略。
为了防止静态数据段、堆栈和堆这三种数据段中的一个缓冲区溢出覆盖另一个段中的函数地址指针,我们应该为这三种数据段隔离分配线形地址空间。
四 总结
缓冲区溢出是当今很流行的一种网络攻击方法,它易于攻击而且危害严重,给系统的安全带来了极大的隐患。因此,如何及时有效地检测出计算机网络系统入侵行为,已越来越成为网络安全管理的一项重要内容。缓冲区溢出的漏洞一般有以下几种情况:
(1) 系统漏洞
如操作系统、服务器程序、数据库程序等,这种漏洞可以通过升级软件、打安全―补丁‖等方法来解决。
(2) 应用软件
在软件开发过程中,如果程序员没有很强的安全意识和良好的编程习惯,也会产生很多安全漏洞。
本文从上面的系统环境及程序设计语言角度,对目前主要的网络攻击方式:缓冲区溢出攻击的出现和原理进行了详细的分析,并根据缓冲区溢出攻击的类型提出了相应的防范策略。
然而,飞速发展的网络技术还需要我们继续对各种黑客攻击系统的方法做更多的关注和应付措施的探索,为