应用安全评估方法

上传人:枫** 文档编号:470282145 上传时间:2023-01-07 格式:DOCX 页数:18 大小:114.23KB
返回 下载 相关 举报
应用安全评估方法_第1页
第1页 / 共18页
应用安全评估方法_第2页
第2页 / 共18页
应用安全评估方法_第3页
第3页 / 共18页
应用安全评估方法_第4页
第4页 / 共18页
应用安全评估方法_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《应用安全评估方法》由会员分享,可在线阅读,更多相关《应用安全评估方法(18页珍藏版)》请在金锄头文库上搜索。

1、1.1.1 应 用安全评估应用评估概述针对企业关键应用的安全性进行的评估,分析 XXX 应用程序体系结构、设计思想和功能模块,从中发现可能的安全隐患。全面的了解应用系统在网络上的 “表现 ”,将有助于对应用系统的维护与支持工作。了解XXX 应用系统的现状,发现存在的弱点和风险,作为后期改造的需求。本期项目针对XXX 具有代表性的不超过10 个关键应用进行安全评估。在进行应用评估的时候,引入了威胁建模的方法,这一方法是一种基于安全的分析,有助于我们确定应用系统造成的安全风险,以及攻击是如何体现出来的。输入:对于威胁建模,下面的输入非常有用:用例和使用方案数据流数据架构部署关系图虽然这些都非常有用

2、,但它们都不是必需的。但是,一定要了解应用程序的主要功能和体系结构。输出:威胁建模活动的输出结果是一个威胁模型。威胁模型捕获的主要项目包括:威胁列表漏洞列表应用评估步骤五个主要的威胁建模步骤如图 1 所示。图1我们把应用系统的安全评估划分为以下五个步骤:1 .识别应用系统的安全目标:其中包括系统业务目标和安全目标。目 标清晰有助于将注意力集中在威胁建模活动,以及确定后续步骤要 做多少工作。112 . 了解应用系统概况:逐条列出应用程序的重要特征和参与者有助于 在步骤4中确定相关威胁。3 .应用系统分解:全面了解应用程序的结构可以更轻松地发现更相 关、更具体的威胁。4 .应用系统的威胁识别:使用

3、步骤 2和3中的详细信息来确定与您的 应用程序方案和上下文相关的威胁。5 .应用系统的弱点分析:查应用程序的各层以确定与威胁有关的弱 点。步骤1:识别安全目标业务目标是应用系统使用的相关目标和约束。安全目标是与数据及应用程序的保密性、完整性和可用性相关的目标和约束。以约束的观点来考虑安全目标利用安全目标来指导威胁建模活动。请考虑这个问题, “您不希望发生什么? ”例如,确保攻击者无法窃取用户凭据。通过确定主要的安全目标,可以决定将主要精力放在什么地方。确定目标也有助于理解潜在攻击者的目标,并将注意力集中于那些需要密切留意的应用程序区域。例如,如果将客户帐户的详细信息确定为需要保护的敏感数据,那

4、么您可以检查数据存储的安全性,以及如何控制和审核对数据的访问。业务目标: 一个应用系统的业务目标应该从如下几个方面入手进行分析:信誉: 应用系统发生异常情况以及遭到攻击造成的商业信誉的损失;经济:对于应用系统,如果发生攻击或者其它安全时间造成的直接和潜在的经济损失。隐私:应用系统需要保护的用户数据。国家的法律或者政策 :例如:等级化保护要求、 SOX 法案等。公司的规章制度。国际标准:例如:ISO17799、ISO13335等。法律协议。公司的信息安全策略。安全目标: 一个应用系统的安全目标应该从如下几个方面入手进行分析:系统的机密性: 明确需要保护哪些客户端数据。应用系统是否能够保护用户的识

5、别信息不被滥用?例如:用户的信息被盗取用于其它非法用途;系统的完整性:明确应用系统是否要求确保数据信息的有效性。系统的可用性:明确有特殊的服务质量要求。应用系统得可用性应该达到什么级别(例如:中断的时间不能超过10 分钟 / 年)?根据系统可靠性的要求,可以重点保护重点的应用系统,从 而节约投资。通过访谈的方式确定应用系统业务目标和安全目标,对业务目标和安全 目标进行细化,得到应用系统安全要求。输入:访谈备忘录输出:应用系统业务目标、安全目标和安全要求资料来源:分类在舁 厅P目标安全要求备注业务目标123安全目标1234步骤2:应用系统概述在本步骤中,概述应用系统的行为。确定应用程序的主要功能

6、、特性和 客户端。创建应用系统概述步骤:画出端对端的部署方案。确定角色。确定主要使用方案。确定技术。确定应用程序的安全机制。下面几部分将对此逐一进行说明:画出端对端的部署方案:画出一个描述应用程序的组成和结构、它的子系统以及部署特征的粗略图。随着对身份验证、授权和通信机制的发现来添加相关细节。部署关系图通常应当包含以下元素:端对端的部署拓扑:显示服务器的布局,并指示Intranet、Extranet 或 Internet 访问。从逻辑网络拓扑入手,然后在掌握详细信息时对其进行细化,以显示物理拓扑。根据所选的特定物理拓扑来添加或删除威胁。逻辑层 : 显示表示层、业务层和数据访问层的位置。知道物理

7、服务器的边界后,对此进行细化以将它们包括在内。主要组件: 显示每个逻辑层中的重要组件。明确实际流程和组件边界后,对此进行细化以将它们包括在内。主要服务: 确定重要的服务。通信端口和协议。 显示哪些服务器、组件和服务相互进行通信,以及它们如何进行通信。了解入站和出站信息包的细节后,显示它们。标识: 如果您有这些信息,则显示用于应用程序和所有相关服务帐户的主要标识。外部依赖项: 显示应用程序在外部系统上的依赖项。在稍后的建模过程中,这会帮助您确定由于您所作的有关外部系统的假设是错误的、或者由于外部系统发生任何更改而产生的漏洞。随着设计的进行,您应当定期复查威胁模型以添加更多细节。例如,最初您可能不

8、了解所有的组件。应根据需要细分应用程序,以获得足够的细节来确定威胁。确定角色:确定应用程序的角色:即,确定应用程序中由谁来完成哪些工作。用户能做什么?您有什么样的高特权用户组?例如,谁可以读取数据、谁可以更新数据、谁可以删除数据?利用角色标识来确定应当发生什么以及不应当发生什么。确定主要的使用方案:确定的应用程序的主要功能是什么?它可以做什么?利用应用程序的用例来获得这些信息。确定应用程序的主要功能和用法,并捕获Create、Read Update 和 Delete 等方面。经常在用例的上下文中解释主要功能。可以帮助理解应用程序应当如何使用,以及怎样是误用。用例有助于确定数据流,并可以在稍后的

9、建模过程中确定威胁时提供焦点。在这些用例中,您可以考察误用业务规则的可能性。例如,考虑某个用户试图更改另一个用户的个人详细资料。您通常需要考虑为进行完整的分析而同时发生的几个用例。确定技术 :只要您能确定,就列出软件的技术和主要功能,以及您使用的技术。确定下列各项:操作系统。服务器软件。数据库服务器软件。在表示层、业务层和数据访问层中使用的技术。开发语言。确定技术有助于在稍后的威胁建模活动中将主要精力放在特定于技术的威胁上,有助于确定正确的和最适当的缓解技术。步骤3:系统分解通过分解应用程序来确定信任边界、数据流、入口点和出口点。对应用程序结构了解得越多,就越容易发现威胁和漏洞。分解应用程序按

10、如下步骤:确定信任边界。确定数据流。确定入口点。确定出口点。下面几部分将对此逐一进行说明。确定信任边界:确定应用程序的信任边界有助于将分析集中在所关注的区域。信任边界指示在什么地方更改信任级别。可以从机密性和完整性的角度来考虑信任。例如,在需要特定的角色或特权级别才能访问资源或操作的应用程序中,更改访问控制级别就是更改信任级别。另一个例子是应用程序的入口点,您可能不会完全信任传递到入口点的数据。如何确定信任边界:1. 从确定外部系统边界入手。例如,应用程序可以写服务器X 上的文件,可以调用服务器Y 上的数据库,并且可以调用 Web 服务Z 。这就定义了系统边界。2. 确定访问控制点或需要附加的

11、特权或角色成员资格才能访问的关键地方。例如,某个特殊页可能只限于管理人员使用。该页要求经过身份验证的访问,还要求调用方是某个特定角色的成员。3. 从数据流的角度确定信任边界。对于每个子系统,考虑是否信任上游数据流或用户输入,如果不信任,则考虑如何对数据流和输入进行身份验证和授权。了解信任边界之间存在哪些入口点可以使您将威胁识别集中在这些关键入口点上。例如,可能需要在信任边界处对通过入口点的数据执行更多的验证。确定数据流:从入口到出口,跟踪应用程序的数据输入通过应用程序。这样做可以了解应用程序如何与外部系统和客户端进行交互,以及内部组件之间如何交互。要特别注意跨信任边界的数据流,以及如何在信任边

12、界的入口点验证这些数据。还要密切注意敏感数据项,以及这些数据如何流过系统、它们通过网络传递到何处以及在什么地方保留。一种较好的方法是从最高级别入手,然后通过分析各个子系统之间的数据流来解构应用程序。例如,从分析应用程序、中间层服务器和数据库服务器之间的数据流开始。然后,考虑组件到组件的数据流。确定入口点:应用程序的入口点也是攻击的入口点。入口点可以包括侦听前端应用程序。这种入口点原本就是向客户端公开的。存在的其他入口点(例如,由跨应用程序层的子组件公开的内部入口点)。考虑访问入口点所需的信任级别,以及由入口点公开的功能类型。确定出口点:确定应用程序向客户端或者外部系统发送数据的点。设置出口点的

13、优先级,应用程序可以在这些出口点上写数据,包括客户端输入或来自不受信任的源(例如,共享数据库)的数据。步骤4:威胁识别在本步骤中,确定可能影响应用程序和危及安全目标的威胁和攻击。这些威胁可能会对应用程序有不良影响。可以使用两种基本方法:1. 从常见的威胁和攻击入手。 利用这种方法,您可以从一系列按应用程序漏洞类别分组的常见威胁入手。接下来,将威胁列表应用到您自己的应用程序体系结构中。2. 使用问题驱动的方法。 问题驱动的方法确定相关的威胁和攻击。STRIDE 类别包括各种类型的威胁,例如,欺骗、篡改、否认、信息泄漏和拒绝访问。使用 STRIDE 模型来提出与应用程序的体系结构和设计的各个方面有

14、关的问题。这是一种基于目标的方法,您要考虑的是攻击者的目标。例如,攻击者能够以一个虚假身份来访问您的服务器或Web 应用程序吗?他人能够在网络或数据存储中篡改数据吗?当您报告错误消息或者记录事件时会泄漏敏感信息吗?他人能拒绝服务吗?确定威胁时,要逐级、逐层、逐功能地进行检查。通过关注漏洞类别,将注意力集中在那些最常发生安全错误的区域。在本步骤中,您要完成下列任务:确定常见的威胁和攻击。根据用例来确定威胁。根据数据流来确定威胁。利用威胁 /攻击树研究其他威胁 .下面几部分将对此逐一进行说明。确定常见的威胁和攻击:许多常见的威胁和攻击依赖于常见的漏洞,根据应用程序安全框架确定威胁、根据用例确定威胁、根据数据流确定威胁和利用威胁/ 攻击树研究其他威胁。应用程序安全框架下面的漏洞类别是由安全专家对应用程序中数量最多的安全问题进行调查和分析后提取出来的。本部分为每个类别都确定了一组主要问题。1. 身份验证通过提出下列问题,对身份验证进行检查:攻击者如何欺骗身份?攻击者如何访问凭据存储?攻击者如何发动字典攻击?您的用户凭据是如何存储的以及执行的密码策略是什么?攻击者如何更改、截取或回避用户的凭据重置机制?2. 授权通过提出下列问题,对授权进行检查:攻击者如何影响授权检查来进行特权操作?攻击者如何提升特权?3. 输入和数据验证通过提出下列问题,对输入和数据验证进行检查:攻击者如何注入 S

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号