应用安全评估方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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、
中确定威胁时提供焦点。在这些用例中,您可以考察误用业务规则的可能性。例如,考虑某个用户试图更改另一个用户的个人详细资料。您通常需要考虑为进行完整的分析而同时发生的几个用例。
确定技术:
只要您能确定,就列出软件的技术和主要功能,以及您使用的技术。确定下列各项:
⏹操作系统。
⏹服务器软件。
⏹数据库服务器软件。
⏹在表示层、业务层和数据访问层中使用的技术。
⏹开发语言。
确定技术有助于在稍后的威胁建模活动中将主要精力放在特定于技术的威胁上,有助于确定正确的和最适当的缓解技术。
步骤3:系统分解
通过分解应用程序来确定信任边界、数据流、入口点和出口点。对应用程序结构了解得越多,就越容易发现威胁和漏洞。
分解应用程序按如下步骤:
⏹确定信任边界。
⏹确定数据流。
⏹确定入口点。
⏹确定出口点。
下面几部分将对此逐一进行说明。
确定信任边界:
确定应用程序的信任边界有助于将分析集中在所关注的区域。信任边界指示在什么地方更改信任级别。可以从机密性和完整性的角度来考虑信任。例如,在需要特定的角色或特权级别才能访问资源或操作的应用程序中,更改访问控制级别就是更改信任级别。另一个例子是应用程序的入口点,您可能不会完全信任传递到入口点的数据。
如何确定信任边界: