首页 > 系统相关 >内存泄漏

内存泄漏

时间:2022-10-15 17:44:24浏览次数:66  
标签:泄漏 操作系统 应用程序 内存 使用 攻击者

内存泄漏:当应用程序请求使用一段内存时,操作系统会为其分配特定的内存空间。当应用程序使用完内存后,应该通知操作系统释放内存,以便其他应用程序继续使用。但有些应用程序编写得不够规范,不会向操作系统表明该内存已不再使用。如果这种情况多次出现,操作系统可能出现“急需”内存的情况,这将严重地影响操作系统性能。

当攻击者发现内存泄漏(Memory Leak)场景时,也意味着有了发动新的拒绝服务(Denial of Service,DoS)攻击的机会。例如,当发现UNIX应用程序和Telnet 协议的某个特定版本存在内存泄漏时,攻击者将无限放大问题的严重性。攻击者会不断地向这些存在脆弱性的操作系统发送Telnet 请求。而操作系统不停地为这些网络请求分配资源,这将导致越来越多的内存被分配出去,却不会释放任何资源以归还给操作系统。最终,操作系统将耗尽内存资源并进入停顿状态。

注意:内存泄漏可能发生在操作系统、应用程序和软件驱动程序中。

有两种主要的安全对策可以防止内存泄漏问题∶撰写更规范的代码,正确释放内存;使用垃圾收集器(Garbage Collector),这类软件可运行特定算法来识别未真正使用却宣称已占用的内存资源,然后通知操作系统将该内存标记为“可用”状态。不同类型的垃圾收集器适用于不同的操作系统和编程语言。

标签:泄漏,操作系统,应用程序,内存,使用,攻击者
From: https://www.cnblogs.com/imyingzi/p/16794640.html

相关文章

  • 动态内存分布
    在C中,不同数据在内存中分配说明: 动态内存分配的相关函数:   void*只是提供一个纯地址,不指向任何数据,如下图的*p3void指针类型: 即指针类型为void,不能用*p的......
  • Flink内存模型
    一、内存布局1、直观图2、树状图 二、内存解释1、Flink使用的内存(1)JVM堆上内存说明:堆上内存管理序列化之后的数据,如果需要处理的数据超出了内存限制,则会将部......
  • C/C++ 为什么要使用动态内存?
    为什么要使用动态内存?1.按需分配,根据需要分配内存,不浪费;2.被调用函数之外需要使用被调用函数内部的指针对应的地址空间;3.突破栈区的限制,可以给程序分配更多的内存......
  • C++程序的内存分区
    1、栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量值等。2、堆区(heap):一般由程序员分配释放,随叫随到,挥之即走。3、全局/静态区(static):全局变量和静态变量的存储是......
  • linux查看内存&磁盘
    查看内存空间使用“free”命令可以查看服务器的内存空间,选项“-m”表示以MB(兆字节)的数据存储单位进行显示。执行结果如下所示:[root@localhost~]#free-m......
  • Python在计算内存时应该注意的问题?
    我之前的​​一篇文章​​​,带大家揭晓了Python在给内置对象分配内存时的5个奇怪而有趣的小秘密。文中使用了​​sys.getsizeof()​​来计算内存,但是用这个方法计算时,可......
  • Java基础(四)| 数组及内存分配详解
    ⭐本专栏旨在对JAVA的基础语法及知识点进行全面且详细的讲解,完成从0到1的java学习,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握JAVA编程,同时为后续的框架学习,进阶开......
  • HugePages(大内存页)实现完全解析
    在《一文读懂HugePages的原理》一文中介绍了HugePages(大内存页)的原理和使用,现在我们来分析一下Linux内核是怎么实现HugePages分配的。本文使用Linux内核2.6.23......
  • 一文读懂 HugePages(大内存页)的原理
    在介绍HugePages之前,我们先来回顾一下Linux下虚拟内存与物理内存之间的关系。物理内存:也就是安装在计算机中的内存条,比如安装了2GB大小的内存条,那么物理内存......
  • 驱动开发:运用VAD隐藏R3内存思路
    在进程的_EPROCESS中有一个_RTL_AVL_TREE类型的VadRoot成员,它是一个存放进程内存块的二叉树结构,如果我们找到了这个二叉树中我们想要隐藏的内存,直接将这个内存在二叉树中抹......