前言
前言
软件是信息系统的灵魂,软件安全是网络空间安全的基石。随着网络空间安全威胁的日益增多,软件安全问题所引发的各种信息系统安全事件层出不穷,给国家、社会、单位和个人造成了巨大损失。软件安全对我国国计民生与国家安全的影响与日俱增。然而,目前我国的软件安全技术人才供不应求,软件产品的安全性普遍需要提升。因此,培养软件安全技术人才、提升软件开发者的安全开发技能具有极其重要的意义。
近年来,全国很多高校设立了网络空间安全专业和信息安全专业,软件安全是其核心课程之一;软件安全也是软件工程和计算机科学与技术等专业的选修课。但是,目前的软件安全教材还不够丰富。随着软件安全攻防不断升级,软件安全技术的发展非常迅速,软件安全教材的内容也需要适时更新。本书作为“面向新工科专业建设计算机系列教材”之一,读者对象主要为高等院校计算机类专业及相关专业的学生,本书也可作为软件工程师的参考书。
本书在编写过程中,力求具备以下特色。
(1) 知识结构系统完整。不仅包括面向源头安全的软件安全开发技术,而且覆盖针对三大软件安全问题(即软件漏洞、恶意软件和软件侵权问题)的分析与防治技术。
(2) 理论与实践有机结合。不仅系统阐述基础理论知识,而且讲述应用技术并提供实践练习,突出实践性案例,在每章中都包含若干实践性案例分析。
(3) 经典新颖内容融会。不但介绍经典的技术、工具和案例,而且讲解近年新出现的重要技术、主流工具以及新应用场景的案例。
本书包括五部分,共13章,其内容安排如下。在第一部分软件安全引论中,第1章概述软件安全的意义、概念和标准。在第二部分软件安全开发中,第2章介绍软件安全开发周期的过程和模型;第3章讲解软件安全分析与设计技术;第4章详述安全编程技术,包括基本安全编程、数据安全编程和应用安全编程技术;第5章阐述软件安全测试技术。在第三部分软件漏洞问题及防治中,第6章概述软件漏洞的定义、类型与管控;第7章详述几类重要软件漏洞的机理,包括内存漏洞、Web应用程序漏洞和操作系统内核漏洞的机理;第8章介绍软件漏洞的防治技术,涉及漏洞防护机制和漏洞挖掘技术。在第四部分恶意软件问题及防治中,第9章概述恶意代码的定义、类型与管控;第10章详解几种重要恶意代码的机理与可执行文件技术,涉及病毒、蠕虫、木马和Rootkit的机理;第11章详述恶意软件的防治技术,包括恶意样本逆向分析、传统的和基于人工智能的恶意软件检测技术。在第五部分软件侵权问题及权益保护中,第12章概述软件知识产权相关法律与软件侵权问题;第13章详细阐述软件权益保护技术,包括软件版权保护技术和软件破解防御技术。
本书的每一章都提供若干实践性案例及其分析,涉及近年出现的软件安全典型事件、软件安全新技术和新应用场景。全书共24个实践性案例分析,以下列出各章中实践性案例的名称。
〖3〗软件安全技术前言〖3〗(第1章)罗宾汉勒索软件事件实例
(第2章)某医疗行业软件安全开发方案实例
(第3章)软件安全需求分析实例
(第3章)软件威胁建模实例
(第4章)Web应用登录模块的安全编程实例
(第4章)某教务管理系统权限管理的安全编程实例
(第5章)某投资咨询公司系统的渗透测试实例
(第6章)区块链API鉴权漏洞事件实例
(第6章)Zerologon高危漏洞事件实例
(第7章)内存漏洞源码实例
(第7章)某设备管控系统的漏洞检测实例
(第7章)Windows本地提权漏洞实例
(第7章)Android签名验证绕过漏洞实例
(第8章)Windows漏洞防护技术应用实例
(第8章)基于模糊测试的二进制码漏洞检测实例
(第9章)GandCrab勒索软件实例
(第9章)Scranos Rootkit实例
(第10章)构造可执行PE文件实例
(第10章)灰鸽子木马机理实例
(第11章)基于IDA工具的静态逆向分析实例
(第11章)基于OD工具的动态逆向分析实例
(第12章)Oracle公司诉Google公司Java侵权案实例
(第13章)微信云开发模式下的软件版权保护实例
(第13章)Android App防破解实例
本书由暨南大学的孙玉霞、翁健和李哲涛主持编写,孙玉霞负责全书除第2章、第5章、第6章和第12章以外各章的编写;翁健负责编写第5章和第6章;李哲涛负责编写第2章;广东省科技基础条件平台中心、广东省高性能计算重点实验室的许颖媚和罗亮负责编写第12章和7.4.2节,与孙玉霞共同编写第9章。
在本书的编写过程中,暨南大学的陈诗琪、吕文建、崔颖贤、方洁凤、周兆南、谭子渊、陈钊、林松和霍紫莹以及广东省科技基础条件平台中心的曹强、贾伟凤和匡碧琴收集和整理了许多文献和资料,帮助校对了书稿,在此对他们表示由衷感谢!本书在编写时参考了来自书籍、学术刊物和互联网等的文献和资料,其中有些列入了参考文献,还有些可能因疏忽而未能查证引用,在此感谢所有这些文献资料的作者!感谢清华大学出版社的诸位编辑对本书的辛勤付出!暨南大学本科教材资助项目和“暨南双百英才计划”项目为本书的编写提供了支持,在此一并致谢。
软件安全攻防向来是“魔高一尺、道高一丈”,软件安全技术一直发展迅速。因编者学识有限,力有不逮,本书中的错谬遗漏之处虽几经修订仍在所难免。恳请诸位读者为本书提出宝贵的意见和建议,如蒙告知,将不胜感激。
作者2022年1月