计算机安全导论 深度实践
作者:杜文亮 著
出版时间:2020年版
丛编项: 高等学校网络空间安全系列教材
内容简介
《计算机安全导论:深度实践》是作者结合18年来在计算机安全教育和研发方面的经验编写而成的。《计算机安全导论:深度实践》涵盖计算机和网络空间安全的基础知识,包括软件安全、Web安全和网络安全。《计算机安全导论:深度实践》旨在帮助读者了解各种各样的攻击和防御的思想与原理。通过《计算机安全导论:深度实践》,读者可以养成良好的安全思维习惯,正确评估计算机和网络所面临的风险,提升发现和攻破软件及系统安全漏洞的能力,并提高设计实现软件的能力及系统防御能力。《计算机安全导论:深度实践》的特点是理论与实践相结合。对于每个涉及的理论,《计算机安全导论:深度实践》都使用一系列实验帮助读者加深对理论的理解,目的是让读者得到亲身体验。这些实验是作者花费16年心血精心设计的,它们已经在世界各地被广泛使用。《计算机安全导论:深度实践》适用于学生、计算机科学家、计算机工程师、程序员、软件开发人员、网络和系统管理员以及其他对计算机安全感兴趣的读者,可作为本科和研究生的计算机安全教材,也可作为自学者提高计算机安全技能的学习材料。《计算机安全导论:深度实践》特色:理论与实践相结合。既讲解攻击原理,又介绍攻击过程,提供完整的实验环境,每章都有对应的SEED实验,使读者身临其境体验攻击及防御过程。注重构建计算机安全知识体系。深入挖掘知识点的内在关联,深刻阐释攻击发生的共性原因及防御措施的本质特点,帮助读者建立扎实的计算机安全知识体系。深入细节、讲解透彻。从基础知识点入手,由浅入深、循序渐进地剖析攻击及防御的完整过程,直击重点难点,帮助读者快速提升实践能力。
目录
第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 可能出现的问题:超人的遭遇
j.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 通过程序本身的代码进行攻击
案例分析:在应用代码中使用getenv()函数
2.7 Set-UID机制和服务机制的比较
2.8 总结
动手实验
习题
第3章 Shellshock攻击
3.1 背景知识:shell函数
3.2 Shellshock漏洞
3.2.1 Shellshock漏洞
3.2.2 Bash源代码中的错误
3.2.3 Shellshock漏洞的利用
3.3 利用Shellshock攻击Set-UID程序
3.4 利用Shellshock攻击CGI程序
3.4.1 实验环境准备
3.4.2 Web服务器调用CGI程序
3.4.3 攻击者向Bash发送数据
3.4.4 实施Shellshock攻击
3.4.5 创建反向shell
3.5 针对PHP的远程攻击
3.6 总结
动手实验
习题
……
第4章 缓冲区溢出攻击
第2部分 Web安全
第3部分 网络安全
参考文献