缓冲区溢出

✍ dations ◷ 2025-07-01 13:59:55 #电脑安全,计算机编程,保全漏洞

缓冲区溢出(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对象位置会被核心(调度器)随机定向,使其无法正确溢出。

相关

  • 贝部,为汉字索引中的部首之一,康熙字典214个部首中的第一百五十四个(七划的则为第八个)。就正体中文中,贝部归于七划部首,而简体中文则归四划。贝部通常从左、右、下方为部字。且
  • 格鲁伊纳岛格鲁伊纳岛(英语:'Gruinard Island',发音: /ˈɡrɪnjərd/ GRIN-yərd;苏格兰盖尔语:'Eilean Ghruinneard')是英国苏格兰西北部海岸附近的一座小岛,与大陆(不列颠岛)最近点距离仅1.1
  • 色域色域是对一种颜色进行编码的方法,也指一个技术系统能够产生的颜色的总合。在计算机图形处理中,色域是颜色的某个完全的子集。颜色子集最常见的应用是用来精确地代表一种给定的
  • tachycardia心跳过速(tachycardia、tachyarrhythmia),也称心动过速、心跳过快。是指心跳速度超出了正常范围,达到每分钟一百次以上的现象。剧烈的体育运动、紧张、焦虑或服用某些药物等可能
  • 土库曼斯坦中央银行坐标:37°55′56″N 58°22′29″E / 37.93222°N 58.37472°E / 37.93222; 58.37472土库曼斯坦中央银行 (英语:Central Bank of Turkmenistan,简称CBT),成立于1991年,系土库曼斯坦
  • 化学变化化学反应是一个或一个以上的物质(又称作反应物)经由化学变化转化为不同于反应物的产物的过程。化学变化定义为当一个分子接触另一个分子合成大分子;或者分子经断裂分开形成两个
  • 小鹈居岛小鹈居岛(日语:モユルリ島/モユルリとう Moyururi tō */?)是日本北海道根室半岛的太平洋侧,约离昆布盛海岸3千米外的无人岛,面积0.3平方千米,南方邻鹈居岛。行政区划属根室市。
  • 皇家内陆大道皇家内陆大道(西班牙语:El Camino Real de Tierra Adentro)是一个长达2560公里的贸易路线,连接墨西哥城和圣胡安普韦布洛(英语:San Juan Pueblo, New Mexico),从1598年到1882年。这
  • 评论家选择电影奖最佳電影配樂评论家选择电影奖最佳电影配乐 (Critics' Choice Movie Award for Best Original Score) 是颁发给年度最佳电影配乐,于1998年开始颁发。颁奖礼开初并不设立提名制度,而是直接
  • 马特·罗斯马修·布兰登·“麦特”·罗斯(英语:Matthew Brandon "Matt" Ross,1970年1月3日-)是一位美国男演员、导演、编剧、监制、剪辑师和摄影师。他最著名的作品是在HBO剧集《三栖大丈夫