第9章软件安全与恶意代码 ●本章学习要点: ·了解软件安全的概念以及当前软件安全威胁的主要来源: 熟悉软件安全风险分析的过程,特别是微软STRIDE威胁建模方法; 了解安全软件开发生命周期的构成方式以及主要步骤; 理解并掌握恶意软件的定义,特别是病毒,蠕虫和木马三者的机理与防治技术
第9章 软件安全与恶意代码 本章学习要点: • 了解软件安全的概念以及当前软件安全威胁的主要来源; • 熟悉软件安全风险分析的过程,特别是微软STRIDE威胁建模方法; • 了解安全软件开发生命周期的构成方式以及主要步骤; • 理解并掌握恶意软件的定义,特别是病毒,蠕虫和木马三者的机理与防治技术
9.1软件安全概述 。9.1软件安全概述 软件安全是指:采取工程的方法使得软件在敌对攻击的情况下仍继续正常 工作。 ·方法:采用系统化、规范化、数量化的方法来指导构建安全的软件。 软件安全是计算机安全问题中的一个关键问题。软件的缺陷,包括实现中的 错误,以及设计中的错误,已经出现很多年了。同时随着软件系统的不断增 加和越来越复杂,使得安全隐患也不断增多
9.1 软件安全概述 9.1 软件安全概述 • 软件安全是指:采取工程的方法使得软件在敌对攻击的情况下仍继续正常 工作。 • 方法:采用系统化、规范化、数量化的方法来指导构建安全的软件。 • 软件安全是计算机安全问题中的一个关键问题。软件的缺陷,包括实现中的 错误,以及设计中的错误,已经出现很多年了。同时随着软件系统的不断增 加和越来越复杂,使得安全隐患也不断增多
9.2软件体系安全分析 ·安全软件开发的体系安全需要考虑安全风险分析、威胁建模、 安全风险管理3 个方面。 ·软件体系安全分析方法主要有3个关键步骤,即抗攻击分析、不确定性分析、 弱点分析。 抗攻击分析主要分析对已知的攻击、攻击模式和弱点的抗攻击能力,通常采用 清单的方式。 不确定性分析主要针对发现新的风险,创造性要求较高,需要有经验的分析人 员参与。 ·弱点分析是指分析软件所依赖的外部软件的弱点
9.2 软件体系安全分析 安全软件开发的体系安全需要考虑安全风险分析、威胁建模、安全风险管理3 个方面。 软件体系安全分析方法主要有3个关键步骤,即抗攻击分析、不确定性分析、 弱点分析。 • 抗攻击分析主要分析对已知的攻击、攻击模式和弱点的抗攻击能力,通常采用 清单的方式。 • 不确定性分析主要针对发现新的风险,创造性要求较高,需要有经验的分析人 员参与。 • 弱点分析是指分析软件所依赖的外部软件的弱点
9.2.1基于标准的风险分析 ●1.NIST的ASSET 自动安全自评估工具ASSET由NIST提出。ASSET能自动完成信息系统安全自我评估指南中包含 的调查表,调查表的结果提供了一种评价特定系统安全的方法。通过对调查表的解释,用户可以 评估组织内的信息系统安全,以及组织安全项目规划的安全性。 ASSET包含两种工具:ASSET系统和ASSET管理者。 ASSET系统提供4种报告的能力,这4种报告是:根据有效性进行主题领域的总结、非可应用问 题列表、基于风险的决策列表、系统总结报告。 ASSET管理者也提供了4种报告:所有系统的总结、根据类型进行系统列表、系统敏感程度列表 、组织总结
1. NIST的ASSET • 自动安全自评估工具ASSET由NIST提出。ASSET能自动完成信息系统安全自我评估指南中包含 的调查表,调查表的结果提供了一种评价特定系统安全的方法。通过对调查表的解释,用户可以 评估组织内的信息系统安全,以及组织安全项目规划的安全性。 • ASSET包含两种工具:ASSET系统和ASSET管理者。 • ASSET系统提供4种报告的能力,这4种报告是:根据有效性进行主题领域的总结、非可应用问 题列表、基于风险的决策列表、系统总结报告。 • ASSET管理者也提供了4种报告:所有系统的总结、根据类型进行系统列表、系统敏感程度列表 、组织总结。 9.2.1 基于标准的风险分析
9.2.1基于标准的风险分析 2.CMU SEI(卡耐基梅隆大学软件工程研究院)的OCTAVE CMU SEI提出的操作型关键威肋,评级以及漏洞评估系统(OCTAVE)。它是一个标 识和管理信息安全风险的框架,由一套基于风险的信息安全策略评价和规划工具、技 术和方法组成。同时它定义了一种允许组织标识信息资产的综合评估方法从而设计和 实现保护策略来减少信息资产的整体风险。 OCTAVE方法使用三阶段方法来检查组织和技术问题。这种方法主要关注:发现关键 的评估标准以及对这些评估的威胁;发现人员组织上和技术上的弱点,面临的威胁、 风险。开发基于实践的保护策略,抵御风险的规划,优先级等
2. CMU SEI(卡耐基梅隆大学软件工程研究院)的OCTAVE • CMU SEI提出的操作型关键威胁,评级以及漏洞评估系统(OCTAVE)。它是一个标 识和管理信息安全风险的框架,由一套基于风险的信息安全策略评价和规划工具、技 术和方法组成。同时它定义了一种允许组织标识信息资产的综合评估方法从而设计和 实现保护策略来减少信息资产的整体风险。 • OCTAVE方法使用三阶段方法来检查组织和技术问题。这种方法主要关注:发现关键 的评估标准以及对这些评估的威胁;发现人员组织上和技术上的弱点,面临的威胁、 风险。开发基于实践的保护策略,抵御风险的规划,优先级等。 9.2.1 基于标准的风险分析
9.2.2 STRIDE威胁建模 。1.STRIDE威胁模型 STRIDE建模方法由微软提出,该方法通过审查系统设计或架构来发现或纠正设计级 (design-level))的安全问题。 软件开发人员认为安全主要是指代码质量,网络管理员认为安全主要是防火墙、以及 系统管理。学术界认为安全是指Saltzeri和Schroeder原则。 而安全的含义包括机密性、完整性、可用性、对用户正确进行身份验证和授权、以及 事务处理不可否认等,下表介绍了每个属性
1. STRIDE威胁模型 • STRIDE建模方法由微软提出,该方法通过审查系统设计或架构来发现或纠正设计级 (design-level)的安全问题。 • 软件开发人员认为安全主要是指代码质量,网络管理员认为安全主要是防火墙、以及 系统管理。学术界认为安全是指Saltzer和Schroeder原则。 • 而安全的含义包括机密性、完整性、可用性、对用户正确进行身份验证和授权、以及 事务处理不可否认等,下表介绍了每个属性。 9.2.2 STRIDE威胁建模
9.2.2 STRIDE威胁建模 常见安全属性 属性 说明 机密性(confidentiality) 数据只限应具有权限的人员访问。 完整性(integrity) 数据和系统资源只限适当的人员以适当的方式进行更改。 可用性(availability) 系统在需要时一切就绪,可以正常执行操作。 身份验证(authentication) 建立用户身份(或者接受匿名用户)。 授权(authorization) 明确允许或拒绝用户访问资源。 不可否认(nonrepudiation) 用户无法在执行某操作后否认执行了此操作
9.2.2 STRIDE威胁建模 常见安全属性 属性 说明 机密性(confidentiality) 数据只限应具有权限的人员访问。 完整性(integrity) 数据和系统资源只限适当的人员以适当的方式进行更改。 可用性(availability) 系统在需要时一切就绪,可以正常执行操作。 身份验证(authentication) 建立用户身份(或者接受匿名用户)。 授权(authorization) 明确允许或拒绝用户访问资源。 不可否认(nonrepudiation) 用户无法在执行某操作后否认执行了此操作
9.2.2 STRIDE威胁建模 针对这些安全属性,给出STRIDE威胁模型,STRIDE是6种威胁类型的英文首字母缩缩写,这6 种威胁如下: (1)欺骗证识(Spoofing identity),典型的例子是使用其他用户的认证信息进行非法访问。例 如利用用户名和口令等认证信息进行非法访问。 (2)篡改数据(Tempering with data),在未授权的情况下恶意地修改数据。这种修改可能是在 数据库中保存的数据,也可能是在网络中传输的数据 (3)可抵赖(Repudiation),用户从事一项非法操作,但该用户拒绝承认,且没有方法可以证明 他是在抵赖。例如某用户从事一项非法操作,但系统又缺乏跟踪非法操作的功能。 (4)信息泄露(Information disclosure),信息暴露给不允许对它访问的人。例如用户读到没有 给他赋予访问权限的文件的内容,信息在网络中传递时内容被泄密
针对这些安全属性,给出STRIDE威胁模型,STRIDE是6种威胁类型的英文首字母缩缩写,这6 种威胁如下: • (1) 欺骗证识(Spoofing identity),典型的例子是使用其他用户的认证信息进行非法访问。例 如利用用户名和口令等认证信息进行非法访问。 • (2) 篡改数据(Tempering with data),在未授权的情况下恶意地修改数据。这种修改可能是在 数据库中保存的数据,也可能是在网络中传输的数据。 • (3) 可抵赖(Repudiation),用户从事一项非法操作,但该用户拒绝承认,且没有方法可以证明 他是在抵赖。例如某用户从事一项非法操作,但系统又缺乏跟踪非法操作的功能。 • (4) 信息泄露(Information disclosure),信息暴露给不允许对它访问的人。例如用户读到没有 给他赋予访问权限的文件的内容,信息在网络中传递时内容被泄密。 9.2.2 STRIDE威胁建模
9.2.2 STRIDE威胁建模 (5)拒绝服务(Denial of Service),拒绝对正当用户的服务。例如Web服务器短时间不可以访问 ,可能是遭到拒绝服务攻击,因此需要提高系统的可用性和可靠性。 (6)权限提升(Elevation of privilege),一个没有特权的用户获得访问特权,从而有足够的权限 做出摧毁整个系统的事情。 将威胁映射为防护它们的安全属性 威胁 安全性属性 假冒(Spoofing) 身份验证 篡改(Tempering) 完整性 可抵赖(Repudiation) 不可否认 信息泄漏(Information disclosure) 机密性 拒绝服务(Denial of Service) 可用性 提升权限(Elevation of privilege) 授权
• (5) 拒绝服务(Denial of Service),拒绝对正当用户的服务。例如Web服务器短时间不可以访问 ,可能是遭到拒绝服务攻击,因此需要提高系统的可用性和可靠性。 • (6)权限提升(Elevation of privilege),一个没有特权的用户获得访问特权,从而有足够的权限 做出摧毁整个系统的事情。 9.2.2 STRIDE威胁建模 将威胁映射为防护它们的安全属性 威胁 安全性属性 假冒(Spoofing) 身份验证 篡改(Tempering) 完整性 可抵赖(Repudiation) 不可否认 信息泄漏(Information disclosure) 机密性 拒绝服务(Denial of Service) 可用性 提升权限(Elevation of privilege) 授权
9.2.2 STRIDE威胁建模 2.威胁建模的过程 威肋建模的过程主要有4个方面。 发现已知的对系统的威胁。 将威胁以风险从高到低排序。 确定减少威胁的技术。 选择合适的技术。 √以上过程可能反复进行多次,因为一次标识所有可能的威胁是很困难的
2. 威胁建模的过程 威胁建模的过程主要有4个方面。 • 发现已知的对系统的威胁。 • 将威胁以风险从高到低排序。 • 确定减少威胁的技术。 • 选择合适的技术。 以上过程可能反复进行多次,因为一次标识所有可能的威胁是很困难的。 9.2.2 STRIDE威胁建模