OWASP 应用程序安全设计项目应用程序安全设计项目中文版本团队成员王颉王文君欢迎大家指正翻译错误或不恰当的地方我们将在后续版本中不断完善该项目原项目地址目录简介了解设计什么是应用程序设计为什么需要设计审核设计审核方法设计文档收集设计调研设计分析提出安全需求推荐设计变更团队讨论设计完成附件应用程序安全设计清单中文版简介我们都知道在应用程序开发过程中安全编码的重要性但是我们对安全设计会给予同等的重视吗相信我们大多数人可能会说不会应用程序安全设计项目突出了安全设计的重要性和其中的一些重要步骤虽然设计级别的缺陷并非为每个人所知但它们的存在对应用程序来说确实是一个非常大的风险这种缺陷很难通过静态或动态的应用程序扫描被发现而需要对应用程序架构和布局深入了解而进行手工发掘随着业务需求的增长应用程序设计和架构的复杂度也随之增加今天越来越多的应用程序使用定制和多样化技术这使得对设计迫切需要进行审核本项目的重点是突出一些重要的安全设计原则与步骤开发人员和架构师必须遵循它们来进行安全的应用程序设计通过设计审核我们可以发现其中的风险然后采取措施在设计中避免这种风险了解设计什么是应用程序设计设计是应用程序的蓝图是应用程序开发的基础设计展示了应用程序的结构并确定了应用程序需要的不同组件通常设计确定了应用程序执行流程的架构并且大多数的应用程序设计都基于的概念在这样的设计中不同的组件彼此交互并有序的处理任何用户请求服务为什么需要设计审核设计审核应当是软件安全开发过程中设计阶段的一个重要组成部分如果在设计阶段对应用程序进行安全性审核可以发现其中的很多后门漏洞另外设计审核还有利于以更好的方式实现安全需求中文版设计审核方法设计审核的流程如下图所示下面我们将对设计审核所采用的方法进行详细的分析设计文档收集设计调研设计分析提出安全需求设计完成团队讨论推荐设计修改设计文档收集本阶段需要收集进行安全设计所需的信息这将涉及到由开发团队维护的所有跟设计有关的文档如流程图序列图类图等另外还需要获得需求分析文档以了解所提出设计的目标设计调研在这个阶段中我们需要从数据流不同应用程序组件及它们之间的交互数据处理等方面进行深入了解与研究通过人工分析与设计或技术架构团队进行讨论来达到目的应用程序的设计和架构必须彻底理解以分析可能导致应用程序中存在安全漏洞的脆弱区域下面给出了在威胁分析时必须考虑的几个关键设计方面数据流或代码布局访问控制现有的或内置的安全控制非用户输入的入口点与外部服务的集成配置文件和数据源的位置插件和定制化展现在内置设计框架的情况下中文版以上设计内容将有助于确定应用程序的信任边界从而有助于对漏洞和对应用程序造成的风险等级做出判断设计分析在了解了设计内容之后下一个阶段是分析威胁此阶段包括威胁建模对在前一阶段确定的不同设计方面必须确定风险它包括从攻击者的角度分析设计并发现当前设计中存在的后门和不安全的地方该分析可以大致基于以下两个重要的方面完成不安全的开发这意味着设计存在漏洞并可能会成为应用程序中的安全漏洞例如对业务逻辑功能的不安全引用缺乏安全的开发这意味着设计中没有纳入安全实践例如在连接到外部服务器时没有使用不同的安全需求保护数据的机密性和完整性下面列出了类似的实例来说明在分析不同设计方面的同时应考虑数据流用户输入是否被直接用于引用业务逻辑的类或函数是否有一个数据绑定缺陷是否暴露任何后门参数来调用业务逻辑应用程序的执行流程是否正确身份验证和访问控制是否对所有文件实现访问控制是否安全地处理会话是否存在单点登录单点登录是否留下后门已有或内置的安全控制在现有任意安全控制中的弱点安全控制的部署是否正确架构对所有的输入是否有验证中文版到外部服务器的连接是安全的吗配置或代码文件和数据存储配置文件中是否含有敏感数据是否支持任何不安全的数据源详细的安全设计清单请见附件在本阶段结束时我们得到了一个关于威胁或不安全区域的列表提出安全需求在分析了设计中存在的不安全问题后必须在本步骤中创建一组对应的安全需求这些安全需求是高级别的变更或是在设计过程中需与设计合并的需求比如在处理来自服务响应的输入信息前进行验证任何需要对设计中确定的漏洞而提供的保护措施都将作为设计的安全需求这种基于风险的方法将有助于开发团队对安全需求确定优先级推荐设计变更在这个阶段中每个安全需求必须与一个安全控制相关联对于设计安全控制的最佳匹配被提出并被记录这些安全控制是对安全要求的详细说明在这里我们将明确需变更的内容或在设计中需合并的内容以满足需求或缓解威胁对设计推荐的变更或控制应当明确和详细类似于下面给出的实例从以下方面详细说明验证策略明确正确的应用程序组件比如过滤器拦截器验证器的类检查机制的部署验证机制使用第三方的安全或框架的内置设计功能加密技术设计模式中文版其它在设计中依赖的控制团队讨论安全需求列表和提出的控制必须与开发团队讨论来自团队的询问必须被解决并且安全控制的可行性必须被决定如果有例外的话必须被考虑并且备用方案的建议也应该提出在这个阶段中需要就最终的安全控制与团队达成一致设计完成与开发团队共同完成的最终设计必须被再次审核并为未来的开发过程最终确定设计中文版附件应用程序安全设计清单应用程序安全设计清单类别存在漏洞的地方后门参数功能文件的存在代码流基于的代码安全检查部署不安全的数据绑定机制设计不安全的身份认证和访问控制逻辑身份认证和访问控制机制多余的配置不安全的会话管理中文版分析内容是否有后门或没有暴露的业务逻辑类是否有与业务逻辑相关的但未使用的配置如果请求参数被用于确定业务逻辑的方法是否有一个用户权限与该权限允许使用的方法或活动的恰当匹配是否在处理输入的信息前部署安全检查检查未暴露的实参是否出现在表格对象中与用户输入绑定如果出现检查它们是否设有默认值检查未暴露的实参是否出现在表格对象中与用户输入绑定如果出现检查它们在与表格绑定前是否初始化身份认证和授权检查的部署是否正确在收到非法的请求时程序运行是否停止或被终止比如当身份验证或授权检查失败时安全检查是否被正确执行是否有后门参数在的根目录中是否对所有需要的文件和文件夹使用了安全检查是否有像这样的默认配置配置是否用于所有的文件和用户如有容器托管的身份认证是否只有基于的身份认证方法如有容器托管的身份认证是否对所有的资源使用了身份认证设计是否安全地处理会话脆弱的密码处理数据访问机制架构配置文件或代码中存在敏感数据存在或支持对不同不安全数据和它们相关的漏洞集中验证和截获器任何已有安全控制中的弱点入口点不安全的数据处理和验证外部一体化不安全的数据传输被提高的权限等级使用外部在第三方或功能中出现已知漏洞密码是否强制使用了密码复杂度检查密码是否以加密的形式被存储密码是否向用户泄漏或写入文件日志或控制台数据库凭证是否以加密的形式被存储设计是否支持弱数据存储如扁平文件集中验证是否应用于所有的请求和所有的输入集中验证检查是否阻止了所有的特殊字符验证过程中是否有特殊请求被忽略设计中是否对被验证的参数或功能维护特定列表所有不可信的输入数据是否得到验证数据是否在加密通道中传输应用程序是否使用进行外部连接设计是否包含组件或模块之间的会话共享在会话两端会话是否被正确验证设计是否对外部连接或命令使用了被提高的或系统权限在使用的或技术中是否含有已知漏洞如设计框架中是否提供内置的安全控制如中的配置内置安全控制中文版常见安全控制在已有的内置控制中是否有漏洞或弱点在设计中是否启用了所有的安全设置

pdf文档 OWASP 应用程序安全设计项目

安全报告 > OWASP > > 文档预览
9 页 0 下载 2 浏览 0 评论 0 收藏 3.0分
温馨提示:当前文档最多只能预览 7 页,若文档总页数超出了 7 页,请下载原文档以浏览全部内容。
本文档由 路人甲2022-05-26 20:10:17上传分享
给文档打分
您好可以输入 255 个字符
github5文库的中文名是什么?( 答案:github5 )
评论列表
  • 暂时还没有评论,期待您的金玉良言