软件安全原理
课程编码:1802030839X5P2002H
英文名称:Principle of Software Security
课时:50
学分:2.50
课程属性:专业核心课
主讲教师:龚晓锐
教学目的要求
本课程是网络空间安全学科研究生的专业核心课,讲授软件安全的基本原理、安全威胁与攻击手段、安全防御机制,以及脆弱性分析基本方法。讲解在软件技术发展过程中安全威胁与防御机制的博弈演进,以及确保软件安全性的最佳实践方法。通过课堂学习与课程实践, 同学将理解软件安全的基本原理,掌握围绕软件攻防的“白帽”与“黑帽”思维方法,了解软件的安全内构(building security in)方法,为进一步研习系统安全与网络攻防奠定基础。
预修课程
程序设计语言、操作系统、编译方法、汇编语言
大纲内容
第一章 软件与网络空间 2.0学时 龚晓锐
第1节 课程简介
第2节 重新认识软件
第3节 软件技术发展历程
第二章 网络安全观 1.0学时 龚晓锐
第1节 国家网络安全观
第2节 网络安全观
第3节 软件安全与网络安全的关系
第三章 软件与安全 6.0学时 龚晓锐
第1节 网络空间安全概述
第2节 软件安全
第3节 软件攻防技术的演进
第4节 软件的生成
第5节 软件的运行
第6节 【课程实践:程序生成与运行实验】
第四章 软件安全原则 4.0学时 龚晓锐
第1节 软件与系统安全基本原则
第2节 隔离
第3节 最小权限
第4节 威胁模型
第5节 【课程实践:威胁建模实践】
第6节 缺陷与漏洞
第五章 内存与类型安全 2.0学时 龚晓锐
第1节 指针的功效
第2节 内存安全
第3节 类型安全
第六章 软件安全攻击手段 6.0学时 龚晓锐
第1节 拒绝服务
第2节 信息泄漏
第3节 困惑代理人(Confused deputy)问题
第4节 提权
第5节 【课程实践:提权攻击实验】
第七章 软件安全防御策略 6.0学时 龚晓锐
第1节 软件验证
第2节 基于编程语言的安全
第3节 软件漏洞发现
第4节 威胁消减
第5节 【课程实践:程序攻防实践】
第八章 软件安全测试与分析方法 6.0学时 龚晓锐
第1节 逆向分析
第2节 人工分析
第3节 【课程实践:逆向分析实践】
第4节 模糊测试
第5节 符号执行
第6节 【课程实践:自动分析实验】
第九章 移动App的安全 3.0学时 龚晓锐
第1节 Android平台App安全
第2节 iOS平台App安全
第3节 【课程实践:移动安全实践】
第十章 智能软件系统脆弱性 3.0学时 龚晓锐
第1节 智能软件系统简介
第2节 脆弱性与对抗样本攻击
第3节 对抗样本防御
第十一章 智能软件系统后门 3.0学时 龚晓锐
第1节 智能软件系统后门攻击
第2节 智能软件系统后门防御
第3节 智能软件系统后门检测
第十二章 软件开发与安全 2.0学时 龚晓锐
第1节 内构安全与安全的软件开发SDL
第2节 SDL支柱Ⅰ- 风险管理
第3节 SDL支柱Ⅱ - 安全接触点
第4节 SDL支柱Ⅲ - 安全知识
第十三章 软件安全开发方法 2.0学时 龚晓锐
第1节 软件安全开发实践
第2节 【案例分析】微软SDL实践
第3节 【案例分析】华为SDL实践
第十四章 软件供应链安全 2.0学时 龚晓锐
第1节 软件全球供应链
第2节 软件供应链安全
第3节 【总复习】
第十五章 【期末考试】 2.0学时 龚晓锐
第1节 【期末考试】
参考书
1、
软件安全@Geekonomics: The Real Cost of Insecure Software(中译本:软件安全败局启示录)@Secrets and Lies: Digital Security in a Networked World(中译本: 网络信息安全的真相)@Building Secure Software: How to Avoid Security Problems the Right Way(中译本: 安全软件开发之道-构筑软件安全的本质方法)@Exploiting Software: How to Break Code(中译本: 软件剖析—代码攻防之道)@Software Security: Building Security In(中译本: 软件安全:使安全成为软件开发必需的部分)
Gary McGraw@Gary McGraw
2015年09月@2007年11月@2000年8月@2001年9月@2004年2月@2006年1月
武汉大学出版社@Addison-Wesley Professional@Wiley@Addison-Wesley Professional@Addison-Wesley Professional@Addison-Wesley Professional
课程教师信息
龚晓锐,男,中国科学院大学网络空间安全学院岗位教授、博士生导师,中国科学院信息工程研究所正高级工程师。主要围绕网络攻防、软件逆向分析、恶意代码对抗等方向开展研究,先后主持国家重点研发计划、国家保密局重点项目、北京市科技计划等项目或课题,申请发明专利十余项,已获授权12项。在网安学院创办网络攻防特长班,指导特长班学生组建的NeSE战队在2021年全球排名前十,是中国排名最高的战队。。近年来担任多个国内网络攻防类竞赛的技术专家或裁判,包括全国大学生信息安全竞赛创新实践能力赛、公安部“网鼎杯”网络安全大赛、国家关键信息基础设施网络攻防实战演习等。在中国科学院大学主讲研究生课程《软件安全原理》、《高级网络攻防》,2021年获中国科学院大学教学成果领雁银奖——振翅奖。