请选择 进入手机版 | 继续访问电脑版

设为首页 收藏本站
思科服务支持社区 点击关注
思科服务支持社区

  
 找回密码
 立即注册

扫一扫,访问微社区

搜索
热搜: 邮件服务器
查看: 320|回复: 0

【小目标,一个“译”】+ Web应用程序威胁建模 (2)

[复制链接]
发表于 2018-7-31 17:21:53 | 显示全部楼层 |阅读模式
应用程序的排查:
该步骤涉及到Web应用程序的功能、通信和安全机制等,因此这里应该尽可能多地获取目标应用的信息。通过收集应用程序的主要功能、特点、作用、关键用途、技术和安全机制等,来辅助识别出相关的威胁。
下面就是在创建应用程序排查时所需要考虑的事项:
•详细收集部署的拓扑结构、关键服务的逻辑层次、通信端口和各种协议。
•识别应用程序中的用户角色,比如:谁可以做什么、有哪些特权用户组、内部用户、管理员、来宾用户和互联网普通用户,以同样的方法去标识Web服务和数据库的各个角色。
•识别应用程序的关键使用场景也是非常重要的。主要是找出应用程序的重要功能和它是如何实现的。其中一些典型的应用场景包括:用户浏览和搜索各种产品,将它们放入购物车;已注册用户登录,并通过购物车下订单。通过识别应用程序的功能和使用,将有助于您更好地区分它们是如何被正常使用,还是被误用了。
•识别并罗列出应用程序所用到的技术和软件。例如:操作系统的类型、Web服务器与数据库的类型与版本。比如:.NetC#或其他。这不仅有助于把更多的注意力放在特定技术的威胁上,也能帮助我们确定正确的、且最为合适的缓解技术。
•识别应用程序正在使用哪些安全机制。此方面所涉及到的要点包括:
                o 输入数据的有效性
                o 认证与授权机制
                o 会话管理
                o 使用到的加密技术
                o 审计与日志
系统建模:
在威胁建模过程的开始阶段,安全设计者们需要对系统有足够的了解。应用系统的模型是在用例和架构模型的基础上创建的。因此,您对应用程序的了解越多,就越容易揭露威胁和发现漏洞。可见,在该步骤中,应用程序会被彻底解析,以创建出一个安全的配置原型。
在对应用程序的解析过程中,会涉及对每个组件(网站,web服务或数据库),及其相互连接的解读,定义使用场景,以及识别各种前提条件与内外部依赖关系(如AD、邮件系统等)。
我们可以用不同的技术来对计算系统进行建模。下面就是在创建应用程序和系统模型时需要考虑的事项:
•识别系统的信任边界,如:边界防火墙,或Web应用程序与第三方服务的边界点。
•绘制应用程序的数据流程图(Data Flow DiagramDFD),它能将应用程序分解为不同的功能部件,并标注出进出系统组件各个部分的数据流向,其中包括有:用户登录的方式,Web应用程序、数据库服务器、第三方服务或Web服务之间的数据流。
•识别应用程序的接入点,当然它们可能也是攻击的入口。比如说:通过端口80或端口443Web请求,内、外部用户的登录页面,管理界面等。
•识别退出点,因为它们也可能就是攻击的向量。比如说:一个搜索页面可以记录用户的搜索字符串和相应的结果、以及包含能够显示产品细节的索引页。
我们所要建立的系统模型是一个能反映系统本质特征,并有助于识别各种由于应用程序用到了特殊逻辑或技术而引发的威胁。可以说我们的建模越完整、越详细,就越有助于其他阶段的成功实现。
威胁识别:
在这一阶段,那些可能会影响到系统、并攻击资产的威胁会识别出来。可以说威胁的识别正是系统安全的关键。威胁的识别一般包括:分析每一个入/出口,逐层逐步地检查应用程序及其各种特性。
下面列出了可能会影响到应用程序的各种威胁:
•基于字典的蛮力攻击。
•发生在浏览器和Web服务器之间的网络窃听,进而捕获客户端的信任凭证。
•攻击者可能捕获的具有身份信息的cookies
SQL注入,即:攻击者能够利用输入验证上的漏洞,在数据库中执行命令,从而访问和/或修改各种数据。
•通过注入脚本代码生成的跨站点脚本。
•信息的泄漏。
•攻击者控制Web服务器,获取对数据库的非授权访问,通过运行针对数据库的命令,从而未经授权地访问Web服务器资源和静态文件。
•发现数据库中用于加密敏感数据的密钥(包含有客户的信用卡号码)
漏洞的识别:
为了找出与上述威胁相对应的漏洞,我们应当对应用的各个层面进行审查。通过既定的漏洞类别,对错误经常出现的领域予以关注。
下面是常见的应用程序漏洞:
•与漏洞相关的身份验证,如:缺乏密码的复杂性、或是缺少密码重试的逻辑管理。
•无效数据的输入
o所有输入是否都有效?
o如何进行验证?
o是否对类型、长度、格式和取值范围进行验证?
o良好的数据参照标准是什么?
o哪个模块负责验证?
•异常处理
o哪些信息需要被用作故障处理?
o哪些信息应该呈现给最终用户?
o攻击者能获取到的有用异常信息细节。
o向最终用户/客户提供的详细错误消息。
•被用在错误算法中的弱加密密钥
•通过Web应用程序暴露的管理功能模块
•远程代码执行的漏洞
SQL注入、跨站脚本
•用户名枚举
•参数调整
•特殊授权操作和用户权限升级
•会话和cookie

  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分4 (2 评价)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver | 思科服务支持社区  

GMT+8, 2018-8-22 07:45 , Processed in 0.091681 second(s), 29 queries .

京ICP备09041801号-187

版权所有 :copyright:1992-2019 思科系统  重要声明 | 保密声明 | 隐私权政策 | 商标 |

快速回复 返回顶部 返回列表