最新应用安全评估方法资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.1.1应用安全评估

应用评估概述

针对企业关键应用的安全性进行的评估,分析XXX应用程序体系结构、设计思想和功能模块,从中发现可能的安全隐患。全面的了解应用系统在网络上的“表现”,将有助于对应用系统的维护与支持工作。了解XXX应用系统的现状,发现存在的弱点和风险,作为后期改造的需求。本期项目针对XXX具有代表性的不超过10个关键应用进行安全评估。

在进行应用评估的时候,引入了威胁建模的方法,这一方法是一种基于安全的分析,有助于我们确定应用系统造成的安全风险,以及攻击是如何体现出来的。

输入:

对于威胁建模,下面的输入非常有用:

⏹用例和使用方案

⏹数据流

⏹数据架构

⏹部署关系图

虽然这些都非常有用,但它们都不是必需的。但是,一定要了解应用程序的主要功能和体系结构。

输出:

威胁建模活动的输出结果是一个威胁模型。威胁模型捕获的主要项目包括:

威胁列表

漏洞列表

应用评估步骤

五个主要的威胁建模步骤如图 1 所示。

图1

我们把应用系统的安全评估划分为以下五个步骤:

1.识别应用系统的安全目标:其中包括系统业务目标和安全目标。目

标清晰有助于将注意力集中在威胁建模活动,以及确定后续步骤要做多少工作。11

2.了解应用系统概况:逐条列出应用程序的重要特征和参与者有助于

在步骤 4 中确定相关威胁。

3.应用系统分解:全面了解应用程序的结构可以更轻松地发现更相

关、更具体的威胁。

4.应用系统的威胁识别:使用步骤 2 和 3 中的详细信息来确定与您的

应用程序方案和上下文相关的威胁。

5.应用系统的弱点分析:查应用程序的各层以确定与威胁有关的弱

点。

步骤1:识别安全目标

业务目标是应用系统使用的相关目标和约束。安全目标是与数据及应用

程序的保密性、完整性和可用性相关的目标和约束。

以约束的观点来考虑安全目标利用安全目标来指导威胁建模活动。请考虑这个问题,“您不希望发生什么?”例如,确保攻击者无法窃取用户凭据。

通过确定主要的安全目标,可以决定将主要精力放在什么地方。确定目标也有助于理解潜在攻击者的目标,并将注意力集中于那些需要密切留意的应用程序区域。例如,如果将客户帐户的详细信息确定为需要保护的敏感数据,那么您可以检查数据存储的安全性,以及如何控制和审核对数据的访问。

业务目标:一个应用系统的业务目标应该从如下几个方面入手进行分析:

⏹信誉:应用系统发生异常情况以及遭到攻击造成的商业信

誉的损失;

⏹经济:对于应用系统,如果发生攻击或者其它安全时间造

成的直接和潜在的经济损失。

⏹隐私:应用系统需要保护的用户数据。

⏹国家的法律或者政策:例如:等级化保护要求、SOX法案

等。

⏹公司的规章制度。

⏹国际标准:例如:ISO17799、ISO13335等。

⏹法律协议。

⏹公司的信息安全策略。

安全目标:一个应用系统的安全目标应该从如下几个方面入手进行分析:

⏹系统的机密性:明确需要保护哪些客户端数据。应用系统

是否能够保护用户的识别信息不被滥用?例如:用户的信息被盗取

用于其它非法用途;

⏹系统的完整性:明确应用系统是否要求确保数据信息的有

效性。

⏹系统的可用性:明确有特殊的服务质量要求。应用系统得

可用性应该达到什么级别(例如:中断的时间不能超过10分钟/

年)?根据系统可靠性的要求,可以重点保护重点的应用系统,从

而节约投资。

通过访谈的方式确定应用系统业务目标和安全目标,对业务目标和安全目标进行细化,得到应用系统安全要求。

输入:访谈备忘录

输出:应用系统业务目标、安全目标和安全要求。

在本步骤中,概述应用系统的行为。确定应用程序的主要功能、特性和客户端。

创建应用系统概述步骤:

⏹画出端对端的部署方案。

⏹确定角色。

⏹确定主要使用方案。

⏹确定技术。

⏹确定应用程序的安全机制。

下面几部分将对此逐一进行说明:

画出端对端的部署方案:

画出一个描述应用程序的组成和结构、它的子系统以及部署特征的粗略图。随着对身份验证、授权和通信机制的发现来添加相关细节。

部署关系图通常应当包含以下元素:

⏹端对端的部署拓扑:显示服务器的布局,并指示Intranet、

Extranet 或 Internet 访问。从逻辑网络拓扑入手,然后在掌握详细信

息时对其进行细化,以显示物理拓扑。根据所选的特定物理拓扑来

添加或删除威胁。

⏹逻辑层:显示表示层、业务层和数据访问层的位置。知道物

理服务器的边界后,对此进行细化以将它们包括在内。

⏹主要组件:显示每个逻辑层中的重要组件。明确实际流程和

组件边界后,对此进行细化以将它们包括在内。

⏹主要服务:确定重要的服务。

⏹通信端口和协议。显示哪些服务器、组件和服务相互进行

通信,以及它们如何进行通信。了解入站和出站信息包的细节后,

显示它们。

⏹标识:如果您有这些信息,则显示用于应用程序和所有相

关服务帐户的主要标识。

⏹外部依赖项:显示应用程序在外部系统上的依赖项。在稍

后的建模过程中,这会帮助您确定由于您所作的有关外部系统的假

设是错误的、或者由于外部系统发生任何更改而产生的漏洞。

随着设计的进行,您应当定期复查威胁模型以添加更多细节。例如,最初您可能不了解所有的组件。应根据需要细分应用程序,以获得足够的细节来确定威胁。

确定角色:

确定应用程序的角色:即,确定应用程序中由谁来完成哪些工作。用户能做什么?您有什么样的高特权用户组?例如,谁可以读取数据、谁可以更新数据、谁可以删除数据?利用角色标识来确定应当发生什么以及不应当发生什么。

确定主要的使用方案:

确定的应用程序的主要功能是什么?它可以做什么?利用应用程序的用例来获得这些信息。确定应用程序的主要功能和用法,并捕获Create、Read、Update 和 Delete 等方面。

经常在用例的上下文中解释主要功能。可以帮助理解应用程序应当如何使用,以及怎样是误用。用例有助于确定数据流,并可以在稍后的建模过程

相关文档
最新文档