前言 “没有网络安全,就没有国家安全”,培养网络安全人才已经成为当前非常紧迫的事情。然而,目前网络空间安全教材的知识相对陈旧,课程体系还未完全形成统一共识。在软件安全领域,众多研究学者和授课教师逐步形成软件安全课程联盟,基本达成共识,将软件安全分为逆向基础篇、漏洞(挖掘和利用)篇和恶意代码(分析与防治)篇。其中,面向软件、系统和协议的漏洞挖掘和漏洞利用已经成为网络对抗的重要部分,震网病毒、比特币勒索病毒的永恒之蓝工具等都与0day漏洞紧密相关,得到了越来越多学者和机构的重视。 本教材是《漏洞利用及渗透测试基础》的修订版。《漏洞利用及渗透测试基础》已由清华大学出版社于2017年和2019年两次出版。第1版于2017年3月出版,得到广大读者喜爱。2019年出版第2版,增加了寻址方式、返回导向编程ROP技术、SQL盲注、文件包含漏洞、反序列化漏洞以及整站攻击示例等内容。在贯彻浅显易懂、案例丰富的一贯风格基础上,本次修订重在提升专业性、强化软件漏洞利用和漏洞挖掘方面的知识水平,主要丰富了堆溢出、SEH覆盖、攻击C++虚函数等漏洞案例,完善了Windows安全防护及其缺陷,丰富了shellcode编码、通用型shellcode编写、跳板指令、API函数自搜索技术等高级漏洞利用技术,强化和增加了数据流分析、程序切片、程序插桩、符号执行、污点分析和模糊测试等漏洞挖掘知识与案例。 本次教材更名为《软件安全: 漏洞利用及渗透测试》,如上所述,将在融合原有基础入门知识之余,增加内容和提升专业性。在编写过程中,编者参考了苏璞睿、彭国军、徐国胜等专家撰写的软件安全相关的书籍,以及部分同行编写的网络资料,再次对相关作者表示诚挚的谢意。由于编者水平有限,书中难免存在疏漏,敬请同行专家批评指正。 推荐两类讲授路线(32课时): ①精讲软件安全及漏洞利用知识,内容覆盖第1~9章,培养学生漏洞利用和漏洞挖掘的动手能力; ②以漏洞利用与渗透测试为路线,不讲第6章和第8章,讲授第10~12章。如果计划讲授所有内容,则大约需要48课时。 本课程相关慕课: 一门慕课是延续第2版教材,名称为《漏洞利用及渗透测试基础》,已经在“学堂在线”上线;另一门慕课是基于新版教材,名称为《软件安全: 漏洞利用及渗透测试》,计划近期在“学堂在线”上线。学生均可以通过慕课自修,教师可以通过慕课翻转课堂。 刘哲理2022年2月