如何有效的防范缓冲区溢出

缓冲区溢出是一种系统攻击的手段,通过往程序的缓冲区写入超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行非预期指令,以达到攻击的的。

操作方法

  • 01

    首先在编写程序过程中,程序员有责任和义务养成安全编程的思想,应该熟悉那些可能会产生漏洞或需慎用的函数,清楚那些在编程中要小心使用的函数(特别是在使用C语言时),例如:gets()、strcpy()等等。在软件测试阶段,要专门对程序中的每个缓冲区作边界检查和溢出检测。但是,由于程序编写者的经验不足和测试工作不够全面、充分,目前还不可能完全避免缓冲区溢出漏洞,因此这些漏洞在已经使用以及正在开发的软件中还是有存在的可能,还需要在使用软件时,对它做实时的监测。

  • 02

    其次是使用安全语言编写程序,应使用Java等安全的语言编写程序,因为Java在对缓冲区进行操作时,有相应的边界检查,所以可以有效地防止缓冲区溢出漏洞的产生。但是,Java也并非绝对安全,Java的解释器是用C语言编写的,而C并不是一种安全的语言,所以Java解释器还是可能存在缓冲区溢出漏洞并受到攻击。

  • 03

    最后可以通过改进编译器,它的主要思想是在编译器中增加边界检查以及保护堆栈的功能,使得含有漏洞的程序和代码段无法通过编译。针对gcc编译器的很多补丁就提供了这些功能,比如说Stackguard等等。

(0)

相关推荐

  • 关于C++代码缓冲区溢出

    缓冲区溢出通常表现为一个最为常见的漏洞而存在于今天的各种软件之中,黑客可以用恶意的输入,从而更改程序的执行流程,由此入侵相应的进程.电脑.或整个域.如果进程运行于一个高度受信的账户之下,如管理员或本地 ...

  • 缓冲区溢出:实战Dcom Rpc漏洞

    因为种种原因,很多计算机都开放了远程管理功能.特别是一些局域网内的计算机,更是喜欢使用此项功能对计算机进行管理.下面系统之家将为读者们剖析此功能引发的安全溝洞,以及相应的攻防知识. 操作方法 01 1 ...

  • 内存溢出一词是什么意思?从专业术语去解释

    最近,小编某在电脑论坛看到一个比较陌生的词汇---内存溢出,很有论坛朋友在讨论关于内存溢出一系列问题。小编当时有点找不到北额,从字面还可以勉强理解内存溢出是什么意思。但是从什么专业术语去解释额,无法保 ...

  • 网页提示堆栈溢出解决方法

    一些用户在浏览网页时浏览器弹出堆栈溢出的提示窗口,这个窗口需要手动点击关闭,为什么会遇到堆栈溢出呢?是因为计算机向缓冲区填充数据的时候数据长度超过了缓冲区的长度,就会出现堆栈溢出的提示.下面小编为大家 ...

  • 怎么解决IIS.printer缓冲区漏洞问题

    缓冲区溢出问题,[曽经]是一个普遍问题,如果有效的消除缓冲区漏洞,则很大一部分 安全威胁能够得到缓解. 操作方法 01 缓冲区溢出攻击是远程攻击中最常见的一种攻击方式,这种攻击可以使得一个匿名的Int ...

  • 关于CPU内嵌的防病毒技术

    可以从两个角度对此类问题进行解释: 1、CPU内嵌的防病毒技术 2、缓冲区溢出(buffer overrun) CPU内嵌的防病毒技术:是一种硬件防病毒技术,与操作系统相配合,可以防范大部分针对缓冲区 ...

  • Windows系统中你必须要了解的安全漏洞知识

    在微软所开发的系统中都存在着多多少少的安全漏洞,这些安全漏洞时时威胁着用户们的操作系统安全,今天大家就一起来认识下这些常见的安全漏洞,这样我们才有办法去治治它们。 一、LSASS相关漏洞是本地安全系统 ...

  • 黑客攻击常见方式和安全策略制订功效

    我们常见攻击类型和特征及方法 攻击特征是攻击的特定指纹。入侵监测系统和网络扫描器就是根据这些特征来识别和防范攻击的。下面简要回顾一些特定地攻击渗透网络和主机的方法。 常见的攻击方法 您也许知道许多常见 ...

  • Apache Web服务器安全设置注意事项

    HTTP拒绝服务攻击 攻击者通过某些手段使服务器拒绝对http应答,这使Apache对系统资源(cup时间与内存)需求巨增,最终造成系统变慢甚至完全瘫痪,Apache服务器最大的缺点是,它的普遍性使它 ...