缓冲区溢出

✍ dations ◷ 2025-11-28 17:24:45 #电脑安全,计算机编程,保全漏洞

缓冲区溢出(buffer overflow),是针对程序设计缺陷,向程序输入缓冲区写入使之溢出的内容(通常是超过缓冲区能保存的最大数据量的数据),从而破坏程序运行、趁著中断之际并获取程序乃至系统的控制权。

缓冲区溢出原指当某个数据超过了处理程序回传堆栈地址限制的范围时,程序出现的异常操作。造成此现象的原因有:

因黑客在Unix的内核发现通过缓冲区溢出可以获得系统的最高等级权限,而成为攻击手段之一。也有人发现相同的问题也会出现在Windows操作系统上,以致其成为黑客最为常用的攻击手段,蠕虫病毒利用操作系统高危漏洞进行的破坏与大规模传播均是利用此技术。比较知名的蠕虫病毒冲击波蠕虫,就基于Windows操作系统的缓冲区溢出漏洞。

例如一个用途是对SONY的掌上游戏机PSP-3000的破解,通过特殊的溢出图片,PSP可以运行非官方的程序与游戏。同样在诺基亚智能手机操作系统Symbian OS中发现漏洞用户可以突破限制运行需要DRM权限或文件系统权限等系统权限的应用程序。

缓冲区溢出攻击从理论上来讲可以用于攻击任何有相关缺陷的程序,包括对杀毒软件、防火墙等安全产品的攻击以及对银行程序的攻击。在嵌入式设备系统上也可能被利用,例如PSP、智能手机等。

在部分情况下,当一般程序(除了驱动和操作系统内核)发生此类问题时,C++运行时库通常会终止程序的执行。

目前OpenBSD、Linux、Windows、Mac OS等操作系统都具有buffer overflow protection(缓存溢出保护/存储器位置重新定向)功能,在某种程度上可以保护操作系统,但仍还是有办法让溢出的代码到正确的位置上。其作用原理是:存储器跟进程在memory中受到保护。内对外的access memory对象位置会被核心(调度器)随机定向,使其无法正确溢出。

相关

  • 地图地图,是根据一定的数学法则,即某种地图投影,将地球或其他星球的自然现象和社会现象通过概括和符号缩绘在平面上的图形。按照统一的设计和要求编制的多幅地图的汇集被称作“地图
  • 水刑水刑是指使用水的刑罚的总称,通常是使用水来造成人窒息、水中毒、失温或是用热水浇灌造成烫伤。坐水凳,受刑者躺在一张特制的长凳,此种长凳为脚部略高于头部,固定其双手双脚,在头
  • 牛顿第二定律牛顿第二运动定律(Newton's second law of motion)表明,物体所受到的外力等于动量对时间的一阶导数(一次微分值)。当物体在运动中质量不变时,牛顿第二定律也可以用质量与加速度
  • 3-羟异丁酰辅酶A5-(6-Aminopurin-9-yl)-4-hydroxy-3-phosphonooxyoxolan-2-yl]methoxy-hydroxyphosphoryl] oxy-hydroxyphosphoryl]oxy-2-hydroxy-3,3-dimethylbutanoyl]amino]propanoylami
  • 波士顿屠杀波士顿大屠杀(英文:Boston Massacre),英国称之国王街事件(英文:Incident on King Street)是1770年发生在北美殖民地波士顿的国王街(King Street)的一个事件。美国则习惯称之为波士顿
  • 锎的同位素锎的同位素备注:画上#号的数据代表没有经过实验的证明,只是理论推测而已,而用括号括起来的代表数据不确定性。
  • 五岛勉五岛勉(日语:五島 勉/ごとう べん ,1929年11月17日-)是日本的作家、记者,以其作品宣传诺查丹玛斯预言而闻名。生于一个信仰正教会的家庭。本名为後藤 力 (ごとう つとむ)。曾就读于
  • KDEKDE(/ˌkeɪdiːˈiː/)是一个国际性的自由软件社区,开发运行在Linux、BSD、Solaris、Microsoft Windows 与 macOS 等平台上的一系列跨平台应用程序。它最著名的产品是 Plasma
  • 杨得礼杨得礼,字嘉甫,湖广应城人,明朝政治人物、进士出身。洪武十八年,登进士,授户部主事,后调工部营缮郎中,迁陕西参议,升任参政,死于任内。有元孙杨绍芳、杨继方。
  • 大风子科大风子科(学名:Flacourtiaceae Rich., 1815-1816)又名刺篱木科,共有约80属800余种,分布在全球各地的亚热带和热带地区,中国有约15属60余种,分布在南方各地。1981年的克朗奎斯特分类