您好,欢迎访问三七文档
基于.NET的需求分析和解决方案设计第1章商务解决方案设计第2章收集和分析信息第3章解决方案的构思第4章概念设计的创建第5章逻辑设计的创建第6章物理设计的创建第7章表示层的设计第8章数据层的设计第9章设计安全规范第10章完成计划阶段第11章稳定和部署方案第9章设计安全规范应用程序开发的安全性概述为应用程序安全性制定计划使用.NET框架中的安全性设计授权、验证和审核策略应用程序开发的安全性概述常见的安全漏洞类型传统安全模型的不足创建安全策略的原则主要安全性术语9.1应用程序开发的安全性概述常见的安全漏洞类型弱密码举例员工使用空密码或者自己的生日作为密码影响攻击者能通过不断尝试取得密码9.1.1常见的安全漏洞类型常见的安全漏洞类型未配置正确的软件举例网络如防火墙应用程序如应用程序配置文件主机如某些服务有过高的权限(超过正常运行所需的权限)、一些以系统账户启动的服务影响攻击者能利用这些服务取得访问系统的权限9.1.1常见的安全漏洞类型常见的安全漏洞类型社会工程陷阱举例攻击者装作技术支持人员骗取用户密码影响攻击者能利用骗来的密码或管理员账户进行破坏9.1.1常见的安全漏洞类型常见的安全漏洞类型未加密的数据传输举例验证包以明文方式传送重要数据通过互联网明文传播影响攻击者能方便的获取数据对企业或者应用程序进行攻击9.1.1常见的安全漏洞类型常见的安全漏洞类型缓存溢出举例受信任的进程运行未受信任的代码影响攻击者能让操作系统或应用程序崩溃通过出错信息发现更多的安全漏洞获取能运行任何程序的系统内存9.1.1常见的安全漏洞类型常见的安全漏洞类型代码注入举例跨站点脚本SQL注入利用缓存溢出注入恶意代码影响攻击者能在客户端、Web服务器、数据库服务器上注入恶意代码9.1.1常见的安全漏洞类型常见的安全漏洞类型代码中的秘密信息举例从代码中直接获取秘密信息在调试方式下运行不同的安全应用程序在客户端页面文件中获取秘密信息影响密码、密钥泄漏9.1.1常见的安全漏洞类型传统安全模型的不足没有对代码本身提供特定的限制访问机制病毒、蠕虫可通过以下途径感染受信任的用户打开电子邮件的附件运行Web页面内嵌的脚本打开从互联网上下载的文件9.1.2传统安全模型的不足创建安全策略的原则仅信任测试过并证明为安全的系统假设外部系统不安全应用最小权限原则减小数据暴露区域默认设置为安全模式不要信任外部输入不要信任未知的东西遵循STRIDE原则9.1.3创建安全策略的原则主要安全性术语验证主动识别客户端的身份(客户端包括最终用户、服务、进程或计算机)授权规定验证用户能看到或者能做什么9.1.4主要安全性术语主要安全性术语模拟服务器应用程序以客户端身份访问资源的方式委派一种扩展形式的模拟服务器进程代表客户端访问远程计算机的资源9.1.4主要安全性术语主要安全性术语安全通信确保通信过程中信息私密性和完整性安全上下文能影响进程、线程安全方面动作的设置集合由进程的登录会话和访问标志组成身份惟一表征用户、进程9.1.4主要安全性术语第9章设计安全规范应用程序开发的安全性概述为应用程序安全性制定计划使用.NET框架中的安全性设计授权、验证和审核策略为应用程序安全性制定计划MSF阶段和安全性措施STRIDE威胁模型创建威胁模型使用威胁模型安全策略9.2为应用程序安全性制定计划MSF阶段和安全性措施构思收集安全性方面的需求将这些需求写入文档中创建威胁模型规划安全性方面的功能减轻找出的威胁实施功能规格说明书中涉及的安全性方面的功能进行安全性测试监控对应用程序安全性方面的威胁规划开发稳定部署9.2.1MSF阶段和安全性措施STRIDE威胁模型伪造身份S否认R信息泄露I拒绝服务D权限提升E篡改数据(完整性)T9.2.2STRIDE威胁模型创建威胁模型组织集思广益的会议1使用STRIDE模型中的类别3记录笔记4调研5将威胁按照严重性分级6列出所有可能的威胁29.2.3创建威胁模型示例创建威胁模型浏览器LDAP:缓存在客户端或者在联机状态下从域中获得验证SSL通过Sockets的SQL基于Web的报销系统公司Web服务器数据库服务器员工数据时间报表信息用户验证信息审核信息9.2.3创建威胁模型使用威胁模型对每种威胁提出应对方案通知用户削减功能(Removefeatures)使用减轻威胁的技术9.2.4使用威胁模型使用威胁模型减轻安全性方面威胁可采用的技术验证和授权安全通信服务质量(QoS)限制(Throttling)审核筛选最小权限9.2.4使用威胁模型安全策略安全策略定义了保护企业计算机和网络安全性的需求决定了应用程序能做什么,哪些用户能使用该应用程序对比安全策略决定威胁的应对措施容忍威胁委派其他公司解决威胁采取保护措施9.2.5安全策略第9章设计安全规范应用程序开发的安全性概述为应用程序安全性制定计划使用.NET框架中的安全性设计授权、验证和审核策略使用.NET框架的安全特性类型安全验证代码签名加密和数据签名代码访问安全基于角色的安全性独立存储.NET的安全特性9.3使用.NET框架的安全特性类型安全验证类型安全代码仅能访问有权限的特定内存仅能访问对象可以访问的成员符合以下条件的运行时是类型安全的对类型的引用与引用的类型相一致对象仅被调用了适当定义后的操作通过定义好的接口调用方法,避免安全检测被跳过9.3.1类型安全验证代码签名代码签名保证了真实性和完整性.NET框架中的代码签名依靠强名称签名支持Authenticode数字证书和签名9.3.2代码签名加密和数据签名加密将明文转成密文使用哈希和数据签名哈希将任何长度的数据变换成惟一且长度固定的字节序列数据签名可包含通过哈希加密后的任何形式内容的签名数据哈希保证数据签名者的身份并且确保数据未经篡改9.3.3加密和数据签名代码访问安全好处限制了代码能做的事情示例:一个文件访问的应用程序可限制可访问的文件限制了哪些代码能访问你的代码示例:仅允许企业中开发的其他程序访问你的程序集识别代码示例:可通过强名称、URL或者哈希值来识别代码9.3.4代码访问安全代码访问安全组成部分代码证据(Evidence)权限策略代码组9.3.4代码访问安全基于角色的安全性防止未授权的用户进行特定操作用户名=Fred用户.NET框架Windows用户和组成员或普通身份和策略验证验证资源9.3.5基于角色的安全性独立存储为应用程序提供安全的数据存储使用虚拟文件系统允许设置大小对存储的访问许可基于下列身份用户程序集应用程序9.3.6独立存储.NET的安全特性技术验证授权安全通信ASP.NET无(自定义)、Windows、表单、Passport文件权限、URL权限、主体权限、.NET角色SSLWeb服务Windows、无(自定义)、消息级验证文件权限、URL权限、主体权限、.NET角色SSL和消息级加密远程处理Windows文件权限、URL权限、主体权限、.NET角色SSL和消息级加密企业服务Windows企业服务(COM+)角色、NTFS权限RPC加密SQLServerWindows(Kerberos/NTLM)、SQL验证服务器登录名、数据库登录名、数据库默认角色、自定义角色、应用程序角色SSL9.3.7.NET的安全特性第9章设计安全规范应用程序开发的安全性概述为应用程序安全性制定计划使用.NET框架中的安全性设计授权、验证和审核策略设计授权、验证和审核策略设计授权和身份验证策略为用户界面组件设计授权策略为业务组件设计授权策略为数据访问组件设计授权为用户界面组件设计身份验证策略为数据访问组件设计身份验证策略设计审核策略9.4设计授权、验证和审核策略应用程序级别操作系统级别表单、Passport、Windows集成(Kerberos或NTLM)、Basic、Digest确定哪些身份需要在整个应用程序中传递例如,一个后端资源管理器需要在每次调用时进行授权,调用者的身份必须传递给资源管理器调用者的身份进程身份服务账户自定义身份基于角色基于资源实例:•Web服务器资源如Web页面、Web服务和静态资源(HTML页面和图片)•数据库资源如每个用户的数据或应用程序的数据•网络资源如远程文件系统资源和活动目录中存储的数据设计授权和身份验证策略确定资源1选择访问资源的身份3确定身份是否需要在系统内流转4选择验证方式5确定身份如何在系统内流转6选择授权策略2确定资源1选择访问资源的标识3确定标识是否需要在系统内流转4选择身份验证方法5确定标识如何在系统内流动6选择授权策略29.4.1设计授权和身份验证策略为用户界面组件设计授权策略在用户界面组件上进行授权限制用户输入或查看用户界面组件授权指导方针用户进程组件授权指导方针仅显示给需要看到的用户设置用户界面程序集代码的访问权限按照用户不同在用户交互过程中添加删除步骤或者用户界面组件控制用户是否能开始一个用户界面交互进程9.4.2为用户界面组件设计授权策略为业务组件设计授权策略指导方针业务进程授权应独立于用户上下文尽可能使用基于角色的权限9.4.3为业务组件设计授权策略为数据访问组件设计授权对数据访问组件进行授权Windows验证情况下,使用企业服务角色和.NETPrincipalPermission属性Windows安全上下文情况下,使用.NET角色和相关属性限制用户仅能访问需要的程序集在数据存储中采用相同用户上下文的情况下,使用数据库授权功能9.4.4为数据访问组件设计授权为用户界面组件设计身份验证策略基于Web界面的验证方式根据情况选择验证机制基于Windows界面的验证方式自定义验证Windows登录用户进程组件的验证方式不进行验证通过在程序开始设置的安全上下文9.4.5为用户界面组件设计身份验证策略示例基于Web界面的验证方式用户一定需要登录?开始匿名+Cookie匿名+Passport是否需要个性化不需要知道用户身份是匿名否用户在操作系统中是否有账户用户通过登录访问服务和内容用户是否有Passport账户是否需要确保登录安全是否交互用户登录否否证书表单验证否是否通过SSL表单验证Passport验证是是系统是否运行于互联网是否需要委派安全上下文服务器和客户端是否只有Windows2000是否需要安全登录是是,运行在互联网上Basic/SSLDigest/SSL表单验证/SSL证书是表单验证BasicNTLM证书否否否自定义身份映射BasicKerberosBasicDigestNTLMKerberos证书否,只有局域网是是9.4.5为用户界面组件设计身份验证策略为数据访问组件设计身份验证策略使用服务账户在连接数据源时,对最初调用者的身份模拟无法进行对登录其他系统的账户只有很小的更改权利访问的数据存储与其他应用程序使用不同的验证机制使用调用者的身份模拟数据存储根据登录用户进行授权数据存储需要审核每个最终用户的活动安全计划示例9.4.6为数据访问组件设计身份验证策略设计审核策略确保恶意用户无法篡改审核日志用户界面和用户进程组件的审核审核全局事件,如登录、注销、修改密码和安全异常业务进程组件的审核对业务进程进行审核收集关于重要业务活动的执行者和时间的信息数据访问组件的审核实现审核的恰当位置在数据库中实现审核9.4.7设计审核策略课堂活动威胁模型和减轻威胁练习1识别潜在的威胁练习2使用减轻威胁的技术回顾学习完本章后,将能够:了解应用程序中常见的安全隐患和挑战掌握如何为应用程序安全性制定计划了解.NET框架中的安全性掌握设计授权、验证和审核策略的方法
本文标题:设计安全规范.
链接地址:https://www.777doc.com/doc-2024191 .html