此条目可参照英语维基百科相应条目来扩充。 (2020年7月28日)若您熟悉来源语言和主题,请协助参考外语维基百科扩充条目。请勿直接提交机械翻译,也不要翻译不可靠、低品质内容。依版权协议,译文需在编辑摘要注明来源,或于讨论页顶部标记{{Translated page}}标签。
“buffer overflow”的各地常用名称中国大陆缓冲区溢出 台湾缓冲区溢位
缓冲区溢出(buffer overflow),在电脑学上是指针对程序设计缺陷,向程序输入缓冲区写入使之溢出的内容(通常是超过缓冲区能保存的最大数据量的数据),从而破坏程序运行、趁著中断之际并取得程序乃至系统的控制权。
缓冲区溢出原指当某个数据超过了处理程序回传堆叠位址限制的范围时,程序出现的异常操作。造成此现象的原因有:
存在缺陷的程序设计
尤其是C语言,不像其他一些高级语言会自动进行数组或者指针的堆叠区块边界检查,增加溢出风险。
C语言中的C标准库还具有一些非常危险的操作函数,使用不当也为溢出创造条件。
不当的堆积操作可能造成迷途指针,可以透过特殊的堆排布(heap feng shui)取得缓冲区的堆区块(heap chunk),改变缓冲区边界并创造堆溢出的条件。
因黑客在Unix的内核发现通过缓冲区溢出可以控制内核空间劫持控制流程获得系统的最高等级权限,而成为攻击手段之一。也有人发现相同的问题也会出现在Windows操作系统上,以致其成为黑客最为常用的攻击手段,蠕虫病毒利用操作系统高危漏洞进行的破坏与大规模传播均是利用此技术。比较知名的蠕虫病毒冲击波蠕虫,就基于Windows操作系统的缓冲区溢出漏洞。
例如一个用途是对SONY的掌上游戏机PSP-3000的破解,通过特殊的溢出图片,PSP可以运行非官方的程序与游戏。同样在诺基亚智能手机操作系统Symbian OS中发现漏洞用户可以突破限制运行需要DRM权限或文件系统权限等系统权限的应用程序。
缓冲区溢出攻击从理论上来讲可以用于攻击任何有相关缺陷的程序,包括对杀毒软件、防火墙等安全产品的攻击以及对银行程序的攻击。在嵌入式设备系统上也可能被利用,例如PSP、智能手机等。
在部分情况下,当一般程序(除了驱动和操作系统内核)发生此类问题时,C++运行时库通常会终止程序的执行。
作业系统层级的保护[编辑]
目前OpenBSD、Linux、Windows、Mac OS等作业系统都具有buffer overflow protection(缓冲区溢位保护/记忆体位置重新定向)功能[来源请求],Linux 提供了参数 CONFIG_CC_STACKPROTECTOR 来启用 stack canary 的对内核进行保护[1],这类机制可以用于检测堆叠缓冲区是否发溢出,其他的保护机制基于记忆体位址重新定向,如Linux在4.12版本预设启用核心位址空间组态随机载入(KASLR)[2],在某种程度上可以保护作业系统,但仍还是有办法让溢出的代码到正确的位置上。其作用原理是:记忆体跟处理程序在memory中受到保护。内对外的access memory对象位置会被核心(排程器)随机定向,使其无法正确溢出。
参见[编辑]
溢位
电脑蠕虫
僵尸网络
程序错误
堆叠缓冲区溢位
堆溢出
冲击波蠕虫
NX位,一种对抗缓冲区溢出攻击的硬件层面技术
参考文献[编辑]
^ Kernel Self-Protection. kernel.org. [2024-07-17]. (原始内容存档于2024-07-17).
^ Linux 4.12 To Enable KASLR By Default - Phoronix. [2017-12-25]. (原始内容存档于2022-06-25).
外部链接[编辑]
An Overview and Example of the Buffer-Overflow Exploit. pps. 16-21.
CERT Secure Coding Standards (页面存档备份,存于互联网档案馆)
CERT Secure Coding Initiative (页面存档备份,存于互联网档案馆)
Secure Coding in C and C++ (页面存档备份,存于互联网档案馆)
SANS: inside the buffer overflow attack
More Security Whitepapers about Buffer Overflows
(PDF) Chapter 12: Writing Exploits III (页面存档备份,存于互联网档案馆) from Sockets, Shellcode, Porting & Coding: Reverse Engineering Exploits and Tool Coding for Security Professionals by James C. Foster (ISBN 1-59749-005-9). Detailed explanation of how to use Metasploit to develop a buffer overflow exploit from scratch.
查论编电脑入侵事件
2003年骤雨计划
2009年极光行动
2010年澳大利亚网络攻击(英语:February 2010 Australian cyberattacks)
2010年偿还行动(英语:Operation Payback)
2011年DigiNotar黑客入侵事件
2011年突尼斯行动(英语:Operation Tunisia)
2011年PSN个人信息泄露事件
2011年反安全行动(英语:Operation AntiSec)
2012–2013年斯特拉特福公司电邮泄露事件
2012年领英黑客入侵事件(英语:2012 LinkedIn hack)
2013年南韩网路攻击
2013年Snapchat黑客入侵事件
2014年Tovar行动(英语:Operation Tovar)
2014年日本文殊核电站电脑病毒事件
2014年名人照片泄露事件
2014年心脏出血漏洞
2014年破壳漏洞
2014年贵宾犬漏洞
2014年索尼影业黑客入侵事件
2015年FREAK漏洞
2015年美国联邦人事管理局资料外泄案
伟易达集团
孟加拉银行遭黑客入侵事件
Dyn网络攻击
俄罗斯干预美国总统选举
WannaCry勒索病毒
2017年威斯敏斯特网络攻击(英语:2017 Westminster cyberattack)
Petya勒索病毒
2017年乌克兰受网络攻击事件(英语:2017 cyberattacks on Ukraine)
Equifax数据泄露
德勤
熔毁/幽灵漏洞
美国中央情报局被指对中国大陆网络渗透攻击
Zoom轰炸
Twitter比特币骗局
2020年美国联邦政府数据泄露事件
殖民管道网络攻击
Log4j2漏洞事件
2022年俄罗斯对乌克兰的网络攻击
2022年哥斯达黎加政府遭勒索软件攻击
上海公安数据库泄露事件
2022年西北工业大学遭网络攻击事件
2023年美国五角大楼文件泄露事件
2024年角川与Niconico被入侵瘫痪
安洵文件泄露事件
2024年美国电信黑客入侵
2024年美国财政部黑客入侵
2025年亚洲冬季运动会遭受网络攻击事件
政府机构
美国网络司令部
美国国家安全局特定入侵行动办公室
美国互联网犯罪投诉中心(英语:Internet Crime Complaint Center)
中华人民共和国国家计算机网络与信息安全管理中心
中国人民解放军战略支援部队(已撤销)
61398部队
61486部队
中国人民解放军网络空间部队
朝鲜网络部队(日语:北朝鮮サイバー軍)(朝鲜人民军第121局)
叙利亚电子军(英语:Syrian Electronic Army)
日本网络防卫队(日语:自衛隊サイバー防衛隊)
国际打击网络威胁多边伙伴(英语:International Multilateral Partnership Against Cyber Threats)
欧洲网络犯罪中心
中华民国数位发展部
中华民国国防部资通电军指挥部
乌克兰资讯科技军
新加坡共和国数码部队
黑客组织
匿名者
乌克兰战争期间的行动(英语:Anonymous and the 2022 Russian invasion of Ukraine)
匿名者64
网络金雕(英语:CyberBerkut)
Derp(英语:Derp (hacker group))
Goatse安全(英语:Goatse Security)
Hacking Team
蜥蜴小队(英语:Lizard Squad)
LulzRaft(英语:LulzRaft)
LulzSec
NullCrew(英语:NullCrew)
RedHack(英语:RedHack)
TeaMp0isoN(英语:TeaMp0isoN)
地下纳粹(英语:UGNazi)
混沌计算机俱乐部
死牛崇拜
红客
韩国网络外交使节团
L0pht重工
方程式
隐形人安全集团
DarkSide
APT 27
网络游击队
个人
陈盈豪
约翰·德雷珀(英语:John Draper)
凯文·米特尼克
下村努
罗伯特·泰潘·莫里斯
凯文·波尔森
阿德里安·拉莫
Donncha O'Cearbhaill(英语:Donncha O'Cearbhaill)
杰里米·哈蒙德(英语:Jeremy Hammond)
乔治·霍兹
古驰法(英语:Guccifer)
阿尔伯特·冈萨雷斯(英语:Albert Gonzalez)
赫克特·蒙赛格 (萨布)(英语:Hector Monsegur)
杰克·戴维斯 (绿色雕塑)(英语:Topiary (hacktivist))
小丑(英语:The Jester (hacktivist))
weev(英语:weev)
加里·麦金农(英语:Gary McKinnon)
恶意软件
Careto (面具)(英语:Careto (malware))
CryptoLocker
Dexter(英语:Dexter (malware))
毒区(英语:Duqu)
FinFisher(英语:FinFisher)
火焰
Gameover ZeuS(英语:Gameover ZeuS)
Mahdi(英语:Mahdi (malware))
Metulji僵尸网络(英语:Metulji botnet)
NSA ANT产品目录(英语:NSA ANT catalog)
R2D2(英语:R2D2 (trojan))
Shamoon(英语:Shamoon)
Stars(英语:Stars virus)
震网
黑暗幽灵 (DCM)
震荡波蠕虫
手机恶意软件(英语:Mobile malware)
TeslaCrypt
VPNFilter
WannaCry
Petya
瑞晶
peacenotwar
概念·思想
《黑客宣言》
网络战
网路恐怖主义
黑客行动主义
骇客
电脑犯罪
软件破解(逆向工程)
手段·技术
安全漏洞
漏洞利用
高级长期威胁(APT)
零日攻击
DNS污染
缓冲区溢出
堆风水(英语:Heap feng shui)
堆喷射(英语:Heap spraying)
穷举攻击/蛮力攻击
跨站脚本攻击(XSS)
水坑攻击
偷渡式下载
SQL注入
中间人攻击
中途相遇攻击
谷歌骇侵法
查论编记忆体管理
操作系统的内存管理功能(英语:Memory management (operating systems))
手动内存管理(英语:Manual memory management)
静态内存分配
C动态内存分配
new (C++)
delete (C++)(英语:new and delete (C++))
虚拟内存
按需分页(英语:Demand paging)
分页表
分页
虚拟内存压缩(英语:Virtual memory compression)
硬件内存管理
内存管理单元
转译后备缓冲区
垃圾回收
贝姆垃圾收集器
Cheney算法
终止器(英语:Finalizer)
垃圾(英语:Garbage (computer science))
标记压缩算法(英语:Mark–compact algorithm)
引用计数
强引用
弱引用
追踪垃圾回收
记忆体分段
保护模式
真实模式
虚拟8086模式
X86记忆体区段
记忆体安全
缓冲区溢出
缓冲区过读
迷途指针
堆叠溢位
针对的问题
内存碎片化
内存泄漏
不可访问内存
其它
自动变量
内存管理国际研讨会(英语:International Symposium on Memory Management)
基于区域内存管理(英语:Region-based memory management)
规范控制数据库:各地
德国