- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
应用安全评估
全面的了解应用系统在网络上的“表现”,将有助于对应用系统的维护与支持工作了解XXX应用系统的现状,发现存在的弱点和风险,作为后期改造的需求。对于威胁建模,下面的输入非常有用:
用例和使用方案
数据流
数据架构
部署关系图
虽然这些都非常有用,但它们都不是必需的。但是,一定要了解应用程序的主要功能和体系结构。威胁建模活动的输出结果是一个威胁模型。威胁模型捕获的主要项目包括:
威胁列表
漏洞列表 五个主要的威胁建模步骤如图 1 所示。
目标清晰有助于将注意力集中在威胁建模活动,以及确定后续步骤要做多少工作。条列出应用程序的重要特征和参与者有助于在步骤 4 中确定相关威胁。全面了解应用程序的结构可以更轻松地发现更相关、更具体的威胁。使用步骤 2 和 3 中的详细信息来确定与您的应用程序方案和上下文相关的威胁。查应用程序的各层以确定与威胁有关的弱点。
业务目标是应用系统使用的相关目标和约束。安全目标是与数据及应用程序的保密性、完整性和可用性相关的目标和约束。
以约束的观点来考虑安全目标利用来指导威胁建模活动。请考虑这个问题,“您不希望发生什么?”例如,确保攻击者无法窃取用户凭据。
通过确定主要的安全目标,可以决定将主要精力放在什么地方。确定目标也有助于理解潜在攻击者的目标,并将注意力集中于那些需要密切留意的应用程序区域。例如,如果将客户帐户的详细信息确定为需要保护的敏感数据,那么您可以检查数据存储的安全性,以及如何控制和审核对数据的访问。
安全目标:一个应用系统的安全目标应该从如下几个方面入手进行分析:
系统的机密性:明确需要保护哪些客户端数据有特殊的服务质量要求
在本步骤中,概述应用系统的行为。确定应用程序的主要功能、特性和客户端。
创建应用系统概述步骤:
画出端对端的部署方案。
确定角色。
确定主要使用方案。
确定技术。
确定应用程序的安全机制。
下面几部分将对此逐一进行说明:
画出端对端的部署方案:
画出一个描述应用程序的组成和结构、它的子系统以及部署特征的粗略图。随着对身份验证、授权和通信机制的发现来添加相关细节。
部署关系图通常应当包含以下元素:
端对端的部署拓扑:显示服务器的布局,并指示 Intranet、Extranet 或 Internet 访问。从逻辑网络拓扑入手,然后在掌握详细信息时对其进行细化,以显示物理拓扑。根据所选的特定物理拓扑来添加或删除威胁。
逻辑层:显示表示层、业务层和数据访问层的位置。知道物理服务器的边界后,对此进行细化以将它们包括在内。
主要组件:显示每个逻辑层中的重要组件。明确实际流程和组件边界后,对此进行细化以将它们包括在内。
主要服务:确定重要的服务。
通信端口和协议。显示哪些服务器、组件和服务相互进行通信,以及它们如何进行通信。了解入站和出站信息包的细节后,显示它们。
标识:如果您有这些信息,则显示用于应用程序和所有相关服务帐户的主要标识。
外部依赖项:显示应用程序在外部系统上的依赖项。在稍后的建模过程中,这会帮助您确定由于您所作的有关外部系统的假设是错误的、或者由于外部系统发生任何更改而产生的漏洞。
随着设计的进行,您应当定期复查威胁模型以添加更多细节。例如,最初您可能不了解所有的组件。应根据需要细分应用程序,以获得足够的细节来确定威胁。
确定角色:
确定应用程序的角色:即,确定应用程序中由谁来完成哪些工作。用户能做什么?您有什么样的高特权用户组?例如,谁可以读取数据、谁可以更新数据、谁可以删除数据?利用角色标识来确定应当发生什么以及不应当发生什么。
确定主要的使用方案:
确定的应用程序的主要功能是什么?它可以做什么?利用应用程序的用例来获得这些信息。确定应用程序的主要功能和用法,并捕获 Create、Read、Update 和 Delete 等方面。
经常在用例的上下文中解释主要功能。可以帮助理解应用程序应当如何使用,以及怎样是误用。用例有助于确定数据流,并可以在稍后的建模过程中确定威胁时提供焦点。在这些用例中,您可以考察误用业务规则的可能性。例如,考虑某个用户试图更改另一个用户的个人详细资料。您通常需要考虑为进行完整的分析而同时发生的几个用例。
确定技术:
只要您能确定,就列出软件的技术和主要功能,以及您使用的技术。确定下列各项:
操作系统。
服务器软件。
数据库服务器软件。
在表示层、业务层和数据访问层中使用的技术。
开发语言。
确定技术有助于在稍后的威胁建模活动中将主要精力放在特定于技术的威胁上,有助于确定正确的和最适当的缓解技术。
步骤3:系统分解
通过分解应用程序来确定信任边界、数据流、入口点和出口点。对应用程序结构了解得越多,就越容易发现威胁和漏洞。
分解应用程序按如下步骤:
确定信任边界。
确定数据流。
确定入口点。
原创力文档


文档评论(0)