基于威胁建模的业务安全保障方法
11月23日 菩提门投稿 威胁建模用来分析系统可能存在的风险,通常可以从三个维度来建立模型:以资产为核心、以攻击者为核心、以软件系统为核心。
一、什么是威胁建模
所谓威胁,通常是指系统的安全漏洞,可能存在于系统的具体实现上,也可能存在于系统的安全策略配置上。安全漏洞往往给攻击者提供了非授权的访问和攻击系统的入口点,达成控制或者破坏系统的目的。
业务风险也是一种典型的威胁,如航旅业务往往面临机票爬取、恶意占座等业务风险,如不能对业务风险进行有效控制,会影响业务正常开展,增加经营成本。
威胁建模是使用抽象的概念来分析系统可能存在的风险。如在业务安全这个维度,通过定位攻击目标和可利用的业务安全漏洞来提高系统安全性,然后定义防范或减轻系统业务风险的对策的过程。
从某种意义上来说,在日常生活中,我们潜意识中也在不停的实践着威胁建模。我们会关注每天的天气和气温变化,如果气温骤降,就会做出添衣的决策,如果第二天下雨的概率很大,就会做出带把伞出门的决策,从而达到降低患上感冒的可能性。
二、为什么要做威胁建模
1。完善软件系统功能设计中的安全设计部分
绝大部分的开发团队都使用系统需求分析文档、软件系统设计文档以及功能模块详细设计文档来规范系统的开发和测试过程;整个开发周期中,只在测试阶段引入渗透测试或者安全代码审计来提高交付的系统的安全性。但是,因为设计阶段就缺少安全部分的分析设计工作,往往导致渗透测试和安全代码审计工作事倍功半,收效甚微。测试人员无法根据缺乏安全设计的设计文档来估算安全测试用例的覆盖度;研发人员也无法针对发现的威胁快速并高效的提供解决威胁的开发修复途径和安全产品采购需求。
2。系统化和量化威胁分析和解决过程
安全代码审计和渗透测试是两种最为常见的发现威胁以提高系统安全性的方式。但是这两种方式都具备类似的缺点:很难系统化和量化系统的安全性。威胁模型更关注哪些方面可能出现安全问题,通过建模的方式将威胁抽象化和结构化,以图表帮助确定威胁的范围,并利用表格和列表的方式来追踪和更新威胁,实现在开发过程或者运维过程中识别和管理威胁。
3。提供安全测试的设计和执行的指导
我们使用软件测试来对软件产品和阶段性的开发结果来进行质量检验,力求发现其中的各种缺陷,并督促缺陷得到修复,从而控制软件产品的质量。作为软件测试中的一个环节,安全测试的关注点是安全缺陷,保障的是软件产品的安全性质量。
软件测试可以使用软件的需求分析和定义、软件系统设计、模块详细功能设计甚至具体编码实现来指导测试的设计和执行。同样,通过威胁建模,可以在安全测试的设计和执行中获得以下指导:软件系统可能会面临哪些方面的安全威胁;系统正在遭遇哪些方面的威胁;以及系统现状能够抵御哪些方面的威胁。
4。提供安全缺陷修复验证的指导
威胁建模是为了交付安全性更高的软件、服务或者技术。因此,在找到和定位威胁之后,如何处理和管理威胁也是威胁建模不可或缺的一个部分。威胁建模能够权衡解决威胁的策略,并指导系统的开发者使用哪些技术和系统配置方式来处理发现的各类威胁。与功能测试报告相似,表格和列表也可以应用于整体威胁建模漏洞的跟踪。
三、如何做威胁建模
下图是微软通过实践过程提出的威胁建模的过程。首先需要预设场景,在场景中,我们需要考虑具体的业务特征、真实用例以及场景中所用的产品;图表化能够帮助我们理解业务场景和系统,以及定位威胁的攻击面;然后我们需要借助特定的模型和方法来发现威胁并对发现的威胁进行评级;在处理威胁阶段,我们优先处理攻击难度低并且危害程度的威胁;最后,验证阶段,需要测试是否已经对相关威胁进行有效的处理,达到威胁建模的结果收敛,系统的安全性有效提高。
从安全角度理解正在构建的系统
威胁建模通常从三个维度来建立模型:以资产为核心、以攻击者为核心、以软件系统为核心。在实践中使用哪种建模方式往往根据系统构建者的关注点来决定的。
风控或者业务部门关注的可能更多的是资产或者有价值的东西;安全部门关注的更多的是攻击者,通过利用攻击库列表来寻找系统威胁;研发部门关注的更多的是正在构建的软件或者部署的系统,将威胁模型作为常用的软件开发模型的补充,来提高软件系统的安全性。
图表是帮助我们理解系统的最为趁手的武器。我们通常使用数据流图(dataflowdiagram)、统一建模语言UML、状态图来理解正在构建的系统。
而当我们在进行威胁建模的时候,我们会将图表应用于以下三个步骤来理解系统:
确认系统数据流模型;
确认信任边界;
确认攻击面。
数据流模型是进行威胁建模的最佳模型,这是因为安全问题往往是在数据流中出现,而不是在控制流中。进程、数据流、数据存储和外部实体是数据流图的四个基本要素。下图显示的是一个典型的数据流图模型。
进程:运行中的代码,如服务、组件;用圆角矩阵或圆形图形表示。
数据流:外部实体与进程、进程与进程或者进程与数据存储之间的交互;用箭头表示。
数据存储:存储数据的内部实体,如数据库、消息队列、文件等;用中间带标签的两条平行线表示。
外部实体:系统控制范围之外的用户、软件系统或者设备;用直角矩阵表示。
航旅系统某应用场景数据流图
在数据流图确认后,我们需要引入信任边界对数据流图进行改进。信任边界是不同主体汇聚的位置,即实体与其他不同权限实体之间交互的位置。信任边界是识别威胁的最佳位置,因为大部分的威胁往往具备跨越边界的行为,划分信任边界的数据流是需要进行威胁分析的元素实例。
对某应用场景的数据流图引入信任边界
在确认数据流图的信任边界后,我们可以很容易就得到当前场景暴露的攻击面。攻击面往往就是一个信任边界,使攻击者可以发动攻击的地方。
1。找出系统中可能会出现的威胁
借助业务场景数据流图和信任边界的划分,我们已经对威胁最容易发生在那些地方有了一定的概念,接下去我们需要做的是找出这些威胁点可能会出现哪些具体的威胁。
STRIDE方法是由微软开发和推广的用于威胁建模的工具,该方法将威胁分为6个维度来进行评估,几乎能够覆盖目前的绝大部分安全问题。STRIDE是六个单词的缩写,分别为:
Spoofing:假冒,伪装,冒充他人身份;
Tampering:篡改,非法修改数据或者代码内容;
Repudiation:否认,否认自己的行为,宣称自己没有做过某事;
InformationDisclosure:信息泄露,获取到自身权限本不能获取的信息;
DenialofService:拒绝服务攻击,消耗系统资源,影响系统的可用性;
ElevationofPrivilege:提权,获取到更高的系统权限;
结合数据流图的基本元素,使用STRIDE方法作为威胁维度来对各基本元素进行威胁分析,可以得出以下表格:
表格所描述的是作为基本元素会面临哪些维度的威胁。比如外部实体可以被伪造,并否认自己发起的行为。数据存储几乎不会被伪造,但是往往面临数据被篡改,机密数据泄露以及被拒绝服务攻击使不能服务的威胁,同时,数据存储是否会面临否认的威胁需要根据数据存储的用途,当数据存储用于审计的场景下,可能会面临伪造的威胁。
接下去我们可以使用该表格对具体业务场景进行业务风险分析,如对本文上述航旅某业务场景中的各个要素进行潜在威胁定位,可以得出以下表格:
在使用STRIDE方法分析完特定业务场景下数据流图中的所有元素示例的潜在威胁以后,我们已经得到一个抽象的威胁定位图表。接下去我们需要根据攻击库来进行威胁枚举,对各个潜在威胁构建威胁描述和攻击方法,并输出一个威胁列表,对每一个威胁项进行描述。
顶象技术在航旅、电商等现实业务攻防中积累下来的数据和经验,累积了丰富的业务风险攻击库和相应的防护方法,以威胁编号T1和T4举例输出威胁项描述如下所示:
2。对可能会出现的威胁评级并处理
使用STRIDE方法对业务场景的数据流图分析完毕后,我们已经获取到当前系统在该业务场景下所面临的潜在威胁。接下去我们就需要一个个处理这些威胁。
在我们确认威胁处理方法之前,我们不得不以“妥协”的想法认清一些现实:首先,有一些威胁是无法根除的,我们只能降低这些威胁发生的机会,或者提高威胁发生的门槛;其次,有一些威胁虽然存在,但是发生的概率很低,而且一旦发生,带来的危害也很小。我们需要找到一些机制来判断是否真的需要投入成本去修复这些漏洞。
正因为如此,我们需要采用威胁评级的方式,对我们定位出的威胁项进行评分,然后根据系统的实际情况和评分结果来权衡处理威胁的方式,是解决威胁还是缓解威胁或者接受威胁。
威胁评级有很多种方式,如DREAD与CVSS(CommonVulnerabilityScoringSystem)方法。不同评级方法对威胁进行评级的维度和风险等级的计算方法会略有不同,但是总体来说,威胁的级别等于威胁发生的概率乘以威胁带来的潜在损失。在实际事件中可以根据系统或者业务场景特征选择合适的评级方法甚至对其进行调整使其适应实际情况。
DREAD风险模型的计算方式:
威胁等级:〔忽略(0),严重(10)〕(危害性〔0,4〕复现难度〔0,4〕利用难度〔0,4〕受影响用户〔0,4〕发现难度〔0,4〕)2
以威胁编号T4举例,其威胁等级计算过程如下:
危害性(Damage):3分:泄露机密数据,或资金损失较大;
复现难度(Reproducibility):1分:很难复现,复现成功率较低,需要多种因素限制并对技术有较高要求;
利用难度(Exploitability):2分:熟练攻击者可攻击,需自定制脚本或高级攻击工具;
受影响用户(AffectedUsers):1分:一般边缘业务的少量用户;
发现难度(Discoverability):1分:发现漏洞很困难,可以通过猜测或者监测网络活动来发现;
因此威胁编号T4的威胁等级(31211)24,中危级别,威胁的处理方法为使用HTTPS协议代替HTTP协议进行数据传输,或使用顶象技术设备指纹和风控引擎产品,对用户登陆事件获取实时安全防护。
输出威胁项中威胁级别和威胁处理方法如下所示:
类似过程可输出威胁编号T1的威胁级别和威胁处理方法如下所示:
在对所有的潜在威胁实例进行威胁评级和威胁处理方法举例之后,我们可以根据系统的业务特征,选择合适的方式来处理潜在威胁。
结语
威胁建模是一种方法论,也是一种分析模型,它并不是针对风险的解决方案。但是通过对软件或系统的威胁建模,可以帮助系统的构建者找出最适合系统和业务场景的风险解决方案。
威胁建模提供了一组规范的工具和方法用来帮助我们处理系统中潜在的安全风险,交付更安全的系统。最理想的情况是,我们在开始构建系统的时候,将安全需求分析引入系统需求分析步骤,在系统概要设计和详细涉及阶段引入威胁建模分析部分,并将其作为测试阶段安全测试工作的指导,输出测试报告的同时输出安全报告。
在现实中,很多已经上线的系统依然面临着各种的潜在威胁和业务风险,顶象技术在航旅、电商等现实业务攻防中依靠积累下来的数据和经验,累积了丰富的业务风险攻击库和相应的防护措施,通过对现有业务系统的威胁建模,输出全链路、多环节纵深风控体系,能有效保障业务的健康运营。
投诉 评论 关于国内程序化广告行业的入门了解(二)本篇文章介绍了目前程序化广告两个特点:程序化效率高和精准投放好。上一篇讲了关于国内程序化广告行业最基本的一些名词定义,以及目前国内程序化广告行业的一些情况。http:ww……
三四线城市的工薪家庭,更愿意购买什么样的教育产品?家庭教育投资能力的不同,对孩子未来的规划也就不同;相应的,对教育产品的期望和所能接受的形式也就形成了明显的差异。那么,三四线城市的工薪家庭,更愿意购买什么样的教育产品?当……
郭列:从脸萌到轻颜,这个90后创业者有点不一样!一款总评分高达4。9分,5星好评占比94的APP,由90后创业者郭列一手打造,这个90后与之前被贴上荒唐标签的90后不一样!90后开始逐渐走向商业舞台中央,不管过去大家如……
假设互联没了“网”。。2018年似乎是互联网的冬天,行情不好的阴霾笼罩在很多互联网人的心头;我们开个脑洞试想一下,如果没有互联网,我们的生活会如何?以及面对行业震荡,我们的出路又在何方?毫无疑……
连环15关,轻松玩转数据可视化本文从数据间的这三点关系:比较、构成、分布、联系进行讲解,告诉大家如何能使数据可视化更高效。大数据时代,数据驱动决策。处理不好庞大、复杂的数据,其价值将大打折扣。那……
抖音可能面临的几个问题继留住用户的三个回环、商业化及其趋势之后,再来讨论一下抖音可能面临的几个问题。本文多为笔者自己的想法与猜测,由于篇幅较长,分为上中下三篇《上篇:抖音留住用户的3个回环》对……
基于威胁建模的业务安全保障方法威胁建模用来分析系统可能存在的风险,通常可以从三个维度来建立模型:以资产为核心、以攻击者为核心、以软件系统为核心。一、什么是威胁建模所谓威胁,通常是指系统的安全漏洞……
今日头条和微信:两个平行的互联网世界本篇文章从三个方面:算法、理念、场景来说明微信和今日头条有什么不同,优势劣势各是什么。正如机器人能否代替人类这样一个全民挣得面红耳赤的话题一样,今日头条和微信大战成为新媒……
看懂90后肥宅一族:“9000岁”的宅不止于WIFI配外卖当今的“肥宅”一族生活状态、喜好特征是怎样的?作者经过大量数据统计后为你总结!宅是一种信仰。WIFI床低配宅。WIFI床零食网综进阶版肥宅。WIFI床零……
生态愿景与险企数字化进度保险科技生态建设(一)生态圈是不是最终商业愿景,为什么保险公司要布局以科技为基础的生态圈?以下是数字化转型的分享线路图,您现在所在的位置为序号的分享:生态圈建设。以下是正文:保险科……
十年人人网亲历者的社交产品复盘不知道大家对“找到老同学,认识新朋友,了解校园新动态”的那个人人网熟悉否?让前人人副总裁来带我们了解社交产品人人网的十年。注:本文根据迅雷首席产品官、前人人副总裁吴疆在4……
【天天问每周精选】第56期:我有些idea想找你聊聊每个人都有过自己看好的idea,这些有的被别人做了,成功了;有的被别人做了,失败了;有的还没被别人做。那么你的那些idea都怎么样了?来看看天天问小伙伴的idea吧问题清……
张小龙微信公开课PRO演讲:信息互联的7个思考又是一年微信公开的课的时候,一起来看看今年的张小龙给大家分享了哪些内容以下是演讲全文:大家好,又到了一年一度的微信公开课。很抱歉这次没有来到现场,在这里跟大家打个招……
日活4亿的抖音,能够孵化出第二个拼多多吗?抖音在短视频赛道尚未完全甩开其他竞争对手,在社交电商领域会有机会吗?在日活上,抖音大有追赶两大社交巨头Facebook和微信之势。但是从商业化角度来看,相对于Facebo……
Podcast市场全面分析:耳朵经济越来越受瞩目本文从Podcast行业的定义、行业趋势、行业阶段、市场格局、商业模式五个方面进行了分析。我是一个重度的音频服务使用者,我经常使用的服务有得到App、ApplePodca……
汽车后市场互联网:从冲突里看到机会汽车后市场的规模日益壮大,问题也伴随着大量需求蜂拥而至,互联网在冲突里看到机会。互联网是骑兵,骑兵贵在神速。从搜索、网购、外卖再到打车战无不胜;但在汽车界,汽车工业作为百……
有趣的关系强度、结构洞、制度理论好久以前发现了这三个有趣的理论,关系强度理论、结构洞理论、制度理论。它们源自社会学,今天已经广泛延伸到了商业经济领域。下面我想用最原汁原味的语言写它们,浓缩的、准确的、意……
打破信息孤岛,实现信息互通:企业服务走向全场景降本增效企业的共同需求,企业服务业务想要更好的发展,需要走出信息孤岛、冲破信息茧房,打响全场景战役。核心要点:进入产业互联网时代,信息互通融合是企业发展的重中之重。……
农商行崛起:借力金融科技,实现弯道超车本文总结了农村金融机构发展概况、优势劣势,以及它在未来的发展趋势。在茅山山脉之西,碧波荡漾的固城湖、石臼湖之东的高淳,高淳农商行客户经理李经理吃完早饭,开始了一天的工作:……
产业互联网浪潮已至,如何在新时代淘金?新变化的出现昭示着我们仅仅只是简单地复制互联网时代的发展模式已经难以奏效,找到产业互联网时代的淘金秘籍,才不会仅仅只是看客与跟风者,而是变成真正意义上的造风者。产业互联网……
刷脸支付可以,骗钱就不对了!2019年,刷脸支付频频刮风。2020年,刷脸支付的骗局还在上演。今天我不是来拆台的,也不是说刷脸支付怎么不好。而是时隔一年多时间,发现还有人拿着刷脸支付来骗钱,多少有些……
2019移动APP洞察报告:发现互联网新掘金地本篇报告聚焦2019年移动APP发展动向,并以此发现移动互联网新掘金地。随着中国互联网的普及率增高,流量红利消失,各大厂商开始纷纷转向下沉市场,四五线城市用户也开始敞开怀……
少儿培训市场风口变化,教育质量仍是关键对学前教育培训机构或者平台来说,应该把自身定位为教育行业而非是培训行业。少儿阶段启蒙决定着孩子人生的可能性,试错成本极高,潜力又极大,如何打磨好教学计划、设置科学的教学内容,重……
3个细节,聊聊虎牙直播的产品亮点虽然直播行业已经发展到了成熟期,各家直播巨头重点都放在了比拼运营手段上,但不可忽视的是,其中产品设计的细节仍然能给用户带来惊喜与便捷,要成为一款优秀的产品,细节不可忽略,接下来……