![]()
内容推荐 本书是作者结合18年来在计算机安全教育和研发方面的经验编写而成的。本书涵盖计算机和网络空间安全的基础知识,包括应用软件安全、Web安全和网络安全。本书旨在帮助读者了解各种各样的攻击和防御的思想与原理。通过本书,读者可以养成良好的安全思维习惯,正确评估计算机和网络所面临的风险,提升发现和攻破软件及系统安全漏洞的能力,并提高设计实现软件的能力及系统防御能力。本书最大的特点是理论与实践相结合。对于每个涉及的理论,本书都使用一系列实验帮助读者加深对理论的理解,目的是让读者得到亲身体验。这些实验是作者花费16年心血精心设计的,它们已经在世界各地被广泛使用。 本书适用于学生、计算机科学家、计算机工程师、程序员、软件开发人员、网络和系统管理员以及其他对计算机安全感兴趣的读者,可作为本科和研究生的计算机安全教材,也可作为自学者提高计算机安全技能的学习材料。 作者简介 杜文亮,1993年从中国科学技术大学获得学士学位(软件专业),1996年从佛罗里达国际大学获得硕士学位。1996-2001年在普渡大学计算机系攻读博士,并于2001年获得博士学位(计算机安全方向)。毕业后,成为雪城大学(Syracuse University)的助理教授。目前是该校电气工程与计算机科学系教授(终身教授),同时也是浙江大学客座教授。2001年开始一直为本科生和研究生讲授计算机安全和网络安全课程。为了让学生获得动手实践的机会,从2002年起开始研发动手实验,目前已开发30多个名为SEED的动手实验。这些实验目前广为人知,全球有1000多所学校正在使用或已经使用过这些实验。2010年,美国国家科学基金会在递交给国会的报告中把SEED项目作为一个模范项目。该报告名为《新挑战,新战略:在本科STEM教育中追求卓越》,它挑选了“在全国STEM教育中尖端的具有创造力的17个项目”。2017年,由于SEED实验的影响力,获得第21届信息系统安全教育大会颁发的“学术领导”奖。2019年,被雪城大学授予Meredith教授名誉。这是一个终身的名誉,是雪城大学教学奖。在计算机和网络安全领域的研究兴趣主要集中在系统安全方面。研究成果曾10次获得美国国家科学基金会奖,也曾获得一次Google公司的研究奖。先后发表100多篇论文。截至2019年10月,论文总被引用数超过14600次(基于GoogleScholar)。2003年在ACM-CCS学术会议上发表的一篇论文于2013年获得该会议颁发的时间测试奖(Test-of-TimeAward)。该奖项颁发给10年前在该会议上发表的有影响力的文章。目前的研究重点是智能手机安全性,在Android(安卓)的设计和实现中发现了许多操作系统内部存在的安全问题,并开发了新的机制来增强智能手机的系统安全性。 目录 第1部分 软件安全 第1章 Set-UID特权程序原理及攻击方法 1.1 特权程序存在的必要性 1.1.1 密码困境 1.1.2 不同类型的特权程序 1.2 Set-UID机制 1.2.1 超人的故事 1.2.2 特权程序的工作原理 1.2.3 一个Set-UID程序的例子 1.2.4 Set-UID机制的安全性 1.2.5 Set-GID机制 1.3 可能出现的问题:超人的遭遇 1.4 Set-UID程序的攻击面 1.4.1 用户输入:显式输入 1.4.2 系统输入 1.4.3 环境变量:隐藏的输入 1.4.4 权限泄露 1.5 调用其他程序 1.5.1 不安全的方式:使用system() 1.5.2 安全的方式:使用execve() 1.5.3 用其他语言调用外部命令 1.5.4 经验教训:隔离的原则 1.6 最小特权原则 1.7 总结 动手实验 习题 第2章 通过环境变量实现攻击 2.1 环境变量 2.1.1 如何访问环境变量 2.1.2 进程获取环境变量的方式 2.1.3 环境变量在内存中的位置 2.1.4 shell变量和环境变量 2.2 环境变量带来的攻击面 2.3 通过动态链接器的攻击 2.3.1 静态和动态链接 2.3.2 案例分析:LD_PRELOAD和LD_LIBRARY_PATH 2.3.3 案例分析:OSX动态链接器 2.4 通过外部程序进行攻击 2.4.1 两种调用外部程序的典型方式 2.4.2 案例分析:PATH环境变量 2.4.3 减小攻击面 2.5 通过程序库攻击 案例分析:UNIX中的Locale程序 2.6 通过程序本身的代码进行攻击 …… 第2部分 Web安全 第3部分 网络安全 |