转载本文需注明出处:微信公众号EAWorld,违者必究。
常常有技术人员收到这样的反馈:技术精通,但作方案的能力不强。其中一个缘由就是:咱们的方案一般只是论述了如何作,没有证实作法是正确的。例如,须要应用安全的方案,咱们的方案是作安全扫描,而安全扫描只是保证安全的一个作法,并无证实为何有了安全扫描就安全了(实际上仅仅作了安全扫描,也不意味着应用安全);再如,须要高可用的方案,咱们的方案是作双机热备,并无证实为何双机热备就能够实现高可用了。没有自证的方案,不是一个好的方案,这里我经过应用安全的例子,讲一讲在方案中如何证实本身。
首先说一个下图的示例,一个工资管理系统,如何设计这个系统的安全性:安全
安全的设计要从分解系统、进行威胁建模开始:
因为安全的内容比较多,分级威胁和缓和方案我就不具体介绍了,缓和方案就是具体的作法,这个相信你们都能作出一些,这里主要讲推导过程,即如何论证上图的缓和方案是正确的。
首先是分解系统(应用程序):
下面是上图的图例,主要有交互者(外部实体)、数据流、进程、数据存储、边界这几个部分。
分析了系统,下面分析威胁的各个种类,通常来讲,系统的威胁分为六个方面,简称 STRIDE(假冒、篡改、否定、信息泄露、拒绝服务、提高受权):
根据系统的分解,系统的每一个部分都有可能发生威胁,系统的各个部分包括外部实体、进程、数据存储、数据流,但不是每一个方面都有上述六方面,见下表:
针对威胁,就能够设计解决方案了,例如每一个进程均可能由于 SQL 注入漏洞,存在篡改(T)和信息泄露(I)的威胁,利用安全扫描的方式能够消除由于SQL注入产生的篡改和信息泄露威胁。再如:
咱们能够用下述方法,解决各类威胁:
用了这种几步分解、系统性描述的论证方式,囊括了系统分解、威胁建模、威胁评估和缓和方案,我认为,就是一个说服力的方案,也就是可以自我证实的解决方案。
关于做者:焦烈焱,普元信息CTO,致力于技术创新和金融创新解决方案研究。专一于企业技术架构领域,对分布式环境的企业计算、 企业信息架构的规划与实践有着丰厚经验,带领普元技术团队相继在云计算、大数据及移动开发领域取得多项突破,并主持中国工商银行、中国建设银行等多家大型企业技术平台的规划与研发。
关于EAWorld:微服务,DevOps,数据治理,移动架构原创技术分享。长按二维码关注!微信