首先,什么是缓冲区?

buffer的本义是“缓冲区”。缓冲区溢出缓冲区是指“缓冲区内存”,临时存储数据的区域那就是我的意思。

程序具有的区域是存储可执行指令的代码区域、存储程序执行的临时信息(例如程序返回目的地)的堆栈区域和存储用于计算和操作的数据的堆区域,共有三个。这所房子,组合堆栈和堆空间缓冲叫做。

什么是缓冲区溢出

在用 C、C++ 等编写的程序中,如果输入的数据超出缓冲区容量,溢出内存区域的错误那就是我的意思。
如果受到缓冲区溢出攻击,有可能会强制停止正在运行的程序,执行恶意代码并作为 DoS 攻击的垫脚石,劫持管理员权限。

■ 与Dos 攻击的区别
DoS 攻击是一种发送大量数据的攻击。
简单地说,“缓冲区溢出”是用来攻击计算机内部的,而“DoS”则是从外部使计算机过载的攻击。

如前所述,“缓冲区溢出”是一种利用软件漏洞的攻击,发送超出计算机保留的内存区域的数据,并且该数据包含恶意代码,导致程序失败。这些是导致故障的攻击.
另一方面,“DoS”是一种发送大量数据以加载外部服务器的攻击方法。

缓冲区溢出造成的损坏示例

  • 2000 修改中央部委主页
    从科技厅网站改版和数据删除开始,共计24个部委网站进行了改版。这似乎是由于缓冲区溢出而劫持了管理权限造成的。
  • Facebook 于 2015 年 1 月关闭

措施

■ 开发者对策:

  • 小心使用可能导致缓冲区溢出的函数(如C语言scanf函数)
  • 使用函数检查缓冲区的大小(如C中的strncpy)
  • 编写源代码时始终考虑数据长度
  • 使用缓解的运行时库
  • 使用可视化和源代码搜索工具进行漏洞检查
  • 深度调试以检测空间溢出问题

似乎采取了诸如此类的措施

目前大多数Web应用程序使用的语言如PHP和Java都不能直接操作内存,据说受缓冲区溢出漏洞影响的可能性较小。

■ 用户对策:

  • 使您的操作系统和应用程序保持最新
  • 立即应用补丁
  • 具有网络监控功能的安全软件介绍

等似乎工作!

最后

我通常不接触 C 或 C++,但我认为在直接操作内存区域时应该小心!


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308624120.html

相关文章: