下载此文档

应用安全评估方法.docx


文档分类:行业资料 | 页数:约17页 举报非法文档有奖
1/17
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/17 下载此文档
文档列表 文档介绍
该【应用安全评估方法 】是由【碎碎念的折木】上传分享,文档一共【17】页,该文档可以免费在线阅读,需要了解更多关于【应用安全评估方法 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。应用安全评估
应用评估概述
针对企业关键应用的安全性进展的评估,分析XXX应用程序体系构造、设计思想和功能模块,从中觉察可能的安全隐患。全面的了解应用系统在网络上的“表现”,将有助于对应用系统的维护与支持工作。了解XXX应用系统的现状,觉察存在的弱点和风险,作为后期改造的需求。本期工程针对XXX具有代表性的不超过10个关键应用进展安全评估。
在进展应用评估的时候,引入了威逼建模的方法,这一方法是一种基于安全的分析,有助于我们确定应用系统造成的安全风险,以及攻击是如何表达出来的。
输入:
对于威逼建模,下面的输入格外有用:
用例和使用方案
数据流
数据架构
部署关系图
虽然这些都格外有用,但它们都不是必需的。但是,肯定要了解应用程序的主要功能和体系构造。
输出:
威逼建模活动的输出结果是一个威逼模型。威逼模型捕获的主要工程包括:
威逼列表漏洞列表
应用评估步骤
五个主要的威逼建模步骤如图1所示。
图1
我们把应用系统的安全评估划分为以下五个步骤:
识别应用系统的安全目标:其中包括系统业务目标和安全目标。目标清楚有助于将留意力集中在威逼建模活动,以及确定后续步骤要做多少工作。11
了解应用系统概况:逐条列出应用程序的重要特征和参与者有助于在步骤4中确定相关威逼。
应用系统分解:全面了解应用程序的构造可以更轻松地觉察更相关、更具体的威逼。
应用系统的威逼识别:使用步骤2和3中的具体信息来确定与您的应用程序方案和上下文相关的威逼。
应用系统的弱点分析:查应用程序的各层以确定与威逼有关的弱点。
步骤1:识别安全目标
业务目标是应用系统使用的相关目标和约束。安全目标是与数据及应用
程序的保密性、完整性和可用性相关的目标和约束。
以约束的观点来考虑安全目标利用安全目标来指导威逼建模活动。请考虑这个问题,“您不期望发生什么?”例如,确保攻击者无法窃取用户凭据。通过确定主要的安全目标,可以打算将主要精力放在什么地方。确定目
标也有助于理解潜在攻击者的目标,并将留意力集中于那些需要亲热留意的应用程序区域。例如,假设将客户帐户的具体信息确定为需要保护的敏感数据,那么您可以检查数据存储的安全性,以及如何掌握和审核对数据的访问。
业务目标:一个应用系统的业务目标应当从如下几个方面入手进展分析:
信誉:应用系统发生特别状况以及遭到攻击造成的商业信
誉的损失;
经济:对于应用系统,假设发生攻击或者其它安全时间造成的直接和潜在的经济损失。
隐私:应用系统需要保护的用户数据。
国家的法律或者政策:例如:等级化保护要求、SOX法案等。
公司的规章制度。
国际标准:例如:ISO17799、ISO13335等。
法律协议。
公司的信息安全策略。
安全目标:一个应用系统的安全目标应当从如下几个方面入手进展分析:
系统的机密性:明确需要保护哪些客户端数据。应用系统
是否能够保护用户的识别信息不被滥用?例如:用户的信息被盗取用于其它非法用途;
系统的完整性:明确应用系统是否要求确保数据信息的有效性。
系统的可用性:明确有特别的效劳质量要求。应用系统得
可用性应当到达什么级别〔例如:中断的时间不能超过 10分钟/
年〕?依据系统牢靠性的要求,可以重点保护重点的应用系统,从而节约投资。
通过访谈的方式确定应用系统业务目标和安全目标,对业务目标和安全目标进展细化,得到应用系统安全要求。
输入:访谈备忘录
输出:应用系统业务目标、安全目标和安全要求。资料来源:
分类序号
1
目标 安全要求 备注
业务
2
目标
3
1
安全 2
目标 3
4
步骤2:应用系统概述
在本步骤中,概述应用系统的行为。确定应用程序的主要功能、特性和
客户端。
创立应用系统概述步骤:
画出端对端的部署方案。
确定角色。
确定主要使用方案。
确定技术。
确定应用程序的安全机制。下面几局部将对此逐一进展说明:画出端对端的部署方案:
画出一个描述应用程序的组成和构造、它的子系统以及部署特征的粗略图。随着对身份验证、授权和通信机制的觉察来添加相关细节。
部署关系图通常应当包含以下元素:
端对端的部署拓扑:显示效劳器的布局,并指示Intranet、
Extranet或Internet访问。从规律网络拓扑入手,然后在把握具体信息时对其进展细化,以显示物理拓扑。依据所选的特定物理拓扑来添加或删除威逼。
规律层:显示表示层、业务层和数据访问层的位置。知道物
理效劳器的边界后,对此进展细化以将它们包括在内。
主要组件:显示每个规律层中的重要组件。明确实际流程和组件边界后,对此进展细化以将它们包括在内。
主要效劳:确定重要的效劳。
通信端口和协议。显示哪些效劳器、组件和效劳相互进展通信,以及它们如何进展通信。了解入站和出站信息包的细节后,显示它们。
标识:假设您有这些信息,则显示用于应用程序和全部相
关效劳帐户的主要标识。
外部依靠项:显示应用程序在外部系统上的依靠项。在稍后的建模过程中,这会帮助您确定由于您所作的有关外部系统的假设是错误的、或者由于外部系统发生任何更改而产生的漏洞。
随着设计的进展,您应当定期复查威逼模型以添加更多细节。例如,最初您可能不了解全部的组件。应依据需要细分应用程序,以获得足够的细节来确定威逼。
确定角色:
确定应用程序的角色:即,确定应用程序中由谁来完成哪些工作。用户能做什么?您有什么样的高特权用户组?例如,谁可以读取数据、谁可以更数据、谁可以删除数据?利用角色标识来确定应当发生什么以及不应当发生什么。
确定主要的使用方案:
确定的应用程序的主要功能是什么?它可以做什么?利用应用程序的用例来获得这些信息。确定应用程序的主要功能和用法,并捕获Create、Read、Update和Delete等方面。
常常在用例的上下文中解释主要功能。可以帮助理解应用程序应当如何使用,以及怎样是误用。用例有助于确定数据流,并可以在稍后的建模过程
中确定威逼时供给焦点。在这些用例中,您可以考察误用业务规章的可能性。例如,考虑某个用户试图更改另一个用户的个人具体资料。您通常需要考虑为进展完整的分析而同时发生的几个用例。
确定技术:
只要您能确定,就列出软件的技术和主要功能,以及您使用的技术。确定以下各项:
操作系统。
效劳器软件。
数据库效劳器软件。
在表示层、业务层和数据访问层中使用的技术。
开发语言。
确定技术有助于在稍后的威逼建模活动中将主要精力放在特定于技术的威逼上,有助于确定正确的和最适当的缓解技术。
步骤3:系统分解
通过分解应用程序来确定信任边界、数据流、入口点和出口点。对应用程序构造了解得越多,就越简洁觉察威逼和漏洞。
分解应用程序按如下步骤:
确定信任边界。
确定数据流。
确定入口点。
确定出口点。
下面几局部将对此逐一进展说明。确定信任边界:
确定应用程序的信任边界有助于将分析集中在所关注的区域。信任边界指示在什么地方更改信任级别。可以从机密性和完整性的角度来考虑信任。例如,在需要特定的角色或特权级别才能访问资源或操作的应用程序中,更改访问掌握级别就是更改信任级别。另一个例子是应用程序的入口点,您可能不会完全信任传递到入口点的数据。
如何确定信任边界:
从确定外部系统边界入手。例如,应用程序可以写效劳器X上的文
件,可以调用效劳器Y上的数据库,并且可以调用Web效劳Z。这就定义了系统边界。
确定访问掌握点或需要附加的特权或角色成员资格才能访问的关键地方。例如,某个特别页可能只限于治理人员使用。该页要求经过身份验证的访问,还要求调用方是某个特定角色的成员。
从数据流的角度确定信任边界。对于每个子系统,考虑是否信任上游数据流或用户输入,假设不信任,则考虑如何对数据流和输入进展身份验证和授权。了解信任边界之间存在哪些入口点可以使您将威逼识别集中在这些关键入口点上。例如,可能需要在信任边界处对通过入口点的数据执行更多的验证。
确定数据流:
从入口到出口,跟踪应用程序的数据输入通过应用程序。这样做可以了解应用程序如何与外部系统和客户端进展交互,以及内部组件之间如何交互。要特别留意跨信任边界的数据流,以及如何在信任边界的入口点验证这些数据。还要亲热留意敏感数据项,以及这些数据如何流过系统、它们通过网络传递到何处以及在什么地方保存。一种较好的方法是从最高级别入手,然后通过分析各个子系统之间的数据流来解构应用程序。例如,从分析应用程序、中间层效劳器和数据库效劳器之间的数据流开头。然后,考虑组件到组件的数据流。
确定入口点:
应用程序的入口点也是攻击的入口点。入口点可以包括侦听前端应用程序。这种入口点原本就是向客户端公开的。存在的其他入口点〔例如,由跨应用程序层的子组件公开的内部入口点〕。考虑访问入口点所需的信任级别,以及由入口点公开的功能类型。
确定出口点:
确定应用程序向客户端或者外部系统发送数据的点。设置出口点的优先级,应用程序可以在这些出口点上写数据,包括客户端输入或来自不受信任的源〔例如,共享数据库〕的数据。
步骤4:威逼识别
在本步骤中,确定可能影响应用程序和危及安全目标的威逼和攻击。这
些威逼可能会对应用程序有不良影响。可以使用两种根本方法:
从常见的威逼和攻击入手。利用这种方法,您可以从一系列按应用程序漏洞类别分组的常见威逼入手。接下来,将威逼列表应用到您自己的应用程序体系构造中。
使用问题驱动的方法。问题驱动的方法确定相关的威逼和攻击。STRIDE类别包括各种类型的威逼,例如,哄骗、篡改、否认、信息泄漏和拒绝访问。使用STRIDE模型来提出与应用程序的体系构造和设计的各个方面有关的问题。这是一种基于目标的方法,您要考虑的是攻击者的目标。例如,攻击者能够以一个虚假身份来访问您的效劳器或Web应用程序吗?他人能够在网络或数据存储中篡改数据吗?当您报告错误消息或者记录大事时会泄漏敏感信息吗?他人能拒绝效劳吗?
确定威逼时,要逐级、逐层、逐功能地进展检查。通过关注漏洞类别,将留意力集中在那些最常发生安全错误的区域。
在本步骤中,您要完成以下任务:
确定常见的威逼和攻击。
依据用例来确定威逼。
依据数据流来确定威逼。
利用威逼/。确定常见的威逼和攻击:
很多常见的威逼和攻击依靠于常见的漏洞,依据应用程序安全框架确定威逼、依据用例确定威逼、依据数据流确定威逼和利用威逼/攻击树争论其他威逼。
应用程序安全框架
下面的漏洞类别是由安全专家对应用程序中数量最多的安全问题进展调查和分析后提取出来的。本局部为每个类别都确定了一组主要问题。
身份验证
通过提出以下问题,对身份验证进展检查:
攻击者如何哄骗身份?
攻击者如何访问凭据存储?
攻击者如何发动字典攻击?您的用户凭据是如何存储的以及执行的密码策略是什么?
攻击者如何更改、截取或回避用户的凭据重置机制?
授权
通过提出以下问题,对授权进展检查:
攻击者如何影响授权检查来进展特权操作?
攻击者如何提升特权?
输入和数据验证
通过提出以下问题,对输入和数据验证进展检查:
攻击者如何注入SQL命令?
攻击者如何进展跨站点脚本攻击?
攻击者如何回避输入验证?
攻击者如何发送无效的输入来影响效劳器上的安全规律?
攻击者如何发送特别输入来使应用程序崩溃?
配置治理
通过提出以下问题,对配置治理进展检查:
攻击者如何使用治理功能?
攻击者如何访问应用程序的配置数据?
敏感数据
通过提出以下问题,对敏感数据进展检查:
您的应用程序将敏感数据存储在何处以及如何存储?
敏感数据何时何地通过网络进展传递?
攻击者如何查看敏感数据?
攻击者如何使用敏感数据?
会话治理
通过提出以下问题,对会话治理进展检查:
您使用的是一种自定义加密算法并且信任这种算法吗?
攻击者如何攻击会话?
攻击者如何查看或操纵另一个用户的会话状态?
加密
通过提出以下问题,对加密进展检查:
攻击者需要获得什么才能破解您的密码?
攻击者如何获得密钥?
您使用的是哪一种加密标准?假设有,针对这些标准有哪些攻击?
您创立了自己的加密方法吗?
您的部署拓扑如何潜在地影响您对加密方法的选择?
参数治理
通过提出以下问题,对参数治理进展检查:
攻击者如何通过治理参数来更改效劳器上的安全规律?
攻击者如何治理敏感参数数据?
特别治理
通过提出以下问题,对特别治理进展检查:
攻击者如何使应用程序崩溃?
攻击者如何获得有用的特别细节?
审核与记录
通过提出以下问题,对审核与记录进展检查:
攻击者如何掩盖他或她的踪迹?
您如何证明攻击者〔或合法用户〕执行了特定的动作?依据用例确定威逼:
检查以前确定的每个应用程序的主要用例,并检查用户能够恶意或无意
地强制应用程序执行某种未经授权的操作或者泄漏敏感数据或私人数据的方法。
提出问题并尝试从攻击者的角度进展思考。您提出的问题类型应当包括:
客户端在这里如何注入恶意输入?
写出的数据是基于用户输入还是未验证的用户输入?
攻击者如何操纵会话数据?
当敏感数据在网络上传递时,攻击者如何获得它?

应用安全评估方法 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息