缓冲区溢出攻击与防御:代码植入与流程控制详解

需积分: 43 1 下载量 12 浏览量 更新于2024-08-14 收藏 909KB PPT 举报
本资源是一份关于缓冲区溢出攻击及其防御技术的PPT讲义,由李席广教授在沈阳航空航天大学计算机学院于2019年5月24日讲解。内容涵盖了缓冲区溢出攻击的基本概念、原理、过程以及历史上重要的相关事件。 首先,章节6.1介绍了缓冲区的概念,它是程序运行时在内存中预留的一段连续区域,用于存储各种数据类型,包括字符数组。缓冲区溢出是指当向缓冲区写入的数据超过了其预分配的大小,导致数据溢出并覆盖了周围内存,为黑客提供了修改程序流程的机会,通过精心构造的填充数据,使得程序执行非预期代码,进而可能获取系统控制权。 早期的缓冲区溢出攻击案例可以追溯到1988年的Morris蠕虫,它利用fingerd程序的漏洞。Spafford在1989年的报告进一步引起了安全社区的关注。随后,AlephOne在1996年的文章详细阐述了Unix/Linux下栈溢出攻击的原理和技术,而MattConover在1999年的著作则深入探讨了堆缓冲区溢出。 在Windows系统中,缓冲区溢出问题尤为严重。例如,2001年的"红色代码"蠕虫利用IIS WebServer的漏洞攻击了大量计算机,而Slammer蠕虫(2003年)和"振荡波"(2004年)分别利用SQL Server和活动目录服务的缓冲区溢出漏洞。2005年的"狙击波"更是因利用即插即用服务漏洞而以极快的速度传播。2008-2009年间,Conficker蠕虫利用Wi-Fi漏洞,显示了这一问题的持续性和危害性。 该讲义不仅展示了缓冲区溢出攻击的历史背景,还强调了防御技术的重要性,因为随着攻击手段的不断升级,防御策略也需要不断更新和完善。防御措施可能包括但不限于输入验证、使用安全编译器选项、定期软件更新和安全编程实践等,以减少此类漏洞的发生和影响。通过对这部分内容的学习,读者能够深入理解这种常见但危险的攻击方式,并采取有效措施来保护系统安全。