数据安全架构设计与实战
上QQ阅读APP看书,第一时间看更新

第2章 安全架构

安全架构是架构在安全性这个方向上的细分领域,也是本书关注的重点。

本章主要介绍安全的基本概念与相关术语,并提出安全架构的5A方法论。

2.1 什么是安全

在提到安全架构之前,我们先看看安全的定义:安全是产品的质量属性,安全的目标是保障产品里信息资产的保密性(Confidentiality)、完整性(Integrity)和可用性(Availability),简记为CIA(如图2-1所示)。

图2-1 安全的目标:CIA三要素

保密性:保障信息资产不被未授权的用户访问或泄露。

完整性:保障信息资产不会未经授权而被篡改。

可用性:保障已授权用户合法访问信息资产的权利。

1.保密性

为了理解保密性,先来看几个简单的案例。

影响保密性最典型的一个场景就是内容被窃听,远在网络时代之前,保密性就广泛应用。比如1945年苏联送给美国大使馆的一枚精制美国国徽名为“The Thing”(被译为“金唇”),里面就藏着一个窃听器,被悬挂在大使馆长达8年之久,让苏联获知大量美国情报。

“The Thing”窃听器之所以没有被美国特工检测出来,是因为使用了一种当时非常先进的被动式调谐的无线电技术,窃听器本身不需要电源,不发射电磁波,只接受外面定向发射过来的电磁波,并在调谐后反射回去。这就超出当时美国特工的知识范围了,美国的反窃听设备没有检测到任何无线电信号,于是这枚国徽顺利地通过了检测。

以IT系统为例,假设某外企实施薪酬保密制度,员工张三在工资系统中查询自己工资的时候,利用系统缺陷(平行越权漏洞,后面会讲到),知道了其他员工的工资,这就属于保密性被破坏。也就是,信息被不该知道的人知道了!

其他可能导致保密性被破坏的场景包括:

海底光缆窃听。

使用嗅探工具(sniffer)嗅探网络流量,如图2-2所示。

图2-2 嗅探

射频辐射(20世纪90年代,有很多人遇到过家里黑白电视机被邻居家VCD播放机正在播放的节目所覆盖的情况)。

黑客攻击导致的数据泄露(SQL注入、拖库)。

2.完整性

在上面的例子中,如果张三不经过公司的加薪流程,就可以自行在工资系统中修改自己的工资,这属于完整性被破坏。也就是信息被未经授权的人篡改了!

其他导致完整性被破坏的场景包括:

主机感染病毒或木马,比如2017年WannaCry(想哭)木马横扫江湖,感染众多计算机。

操作系统内核文件被替换。

网站被入侵后,内容被篡改。

网络劫持篡改(很多HTTP网页中加塞的广告就是这么来的)

应用层越权操作。

文件下载被替换。

3.可用性

接着前面的例子,如果张三使用脚本持续高频地查询工资系统,并导致其他员工访问不了工资系统,这就属于可用性被破坏,也就是让大家都访问不了。

这就好比停车场堆满了石头、餐馆被不吃饭的人占满、高速公路停满了汽车,无法继续提供原来的服务了。

典型的破坏可用性的场景包括:

DDoS或CC攻击,导致网络拥塞、主机资源耗尽,从而网站无法打开。

缓冲区溢出导致服务异常中止。

除了CIA三要素,根据组织或实际业务需要,还可以添加更多的安全目标,如可追溯性(或称为可审计性)。在发生影响数据保密性、完整性、可用性的安全事件之后,可基于记录的日志追踪溯源,复盘事件发生的全过程,找到导致事件发生的根本原因,加以改进。但从根本上讲,追溯也不是最终的目的,通过追溯与改进,最终的目的还是保障数据的保密性、完整性、可用性。

此外,在实际工作中,我们最常使用的是网络安全、信息安全、数据安全等概念,作为业内人士,也经常赋予它们不同的含义,且有广义和狭义之分,为便于区分,下面简单介绍几个概念的区别。

2.2 为什么使用“数据安全”这个术语

在安全领域的发展历程中,使用了信息安全、网络安全、网络空间安全、数据安全等概念。那么本书为什么选择“数据安全”这个术语呢?让我们先来看看每个术语的含义。

1.信息安全

广义的信息安全(Information Security),是基于“安全体系以信息为中心”的立场,泛指整个安全体系,侧重于安全管理。例如ISO 27001信息安全管理体系就使用了广义的信息安全概念。

狭义的信息安全,在不同的组织内部,往往有不同的含义,主要有:

内容合规,防止有毒有害信息内容(黄赌毒等)的发布、传播。

DLP(Data leakage Prevention,数据泄露防护),防止内部数据泄露等,例如在技术手段上,通过综合性的DLP解决方案,防止内部保密资料流出公司;在管理政策上,防止员工有意或无意地泄露信息,如员工收集内部保密资料提供给竞争对手等。

2.网络安全

网络安全这个概念也是不断演化的,如图2-3所示,最早的网络安全(Network Security)是基于“安全体系以网络为中心”的立场,主要涉及网络安全域、防火墙、网络访问控制、抗DDoS(分布式拒绝服务攻击)等场景,特别是以防火墙为代表的网络访问控制设备的大量使用,使得网络安全域、边界、隔离、防火墙策略等概念深入人心。

图2-3 网络安全概念的演变

后来,网络安全的范围越来越大,向云端、网络、终端等各个环节不断延伸,发展为网络空间安全(Cyberspace Security),甚至覆盖到陆、海、空、天领域,但Cyberspace这个词太长,就简化为Cyber Security了。

所以,我们现在所说的网络安全,一般是指网络空间安全(Cyber Security),仍基于“安全体系以网络为中心”的立场,泛指整个安全体系,侧重于网络空间安全、网络访问控制、安全通信、防御网络攻击或入侵等。

3.数据安全

广义的数据安全(Data Security)是基于“安全体系以数据为中心”的立场,泛指整个安全体系侧重于数据分级及敏感数据全生命周期的保护。它以数据的安全收集或生成、安全使用、安全传输、安全存储、安全披露、安全流转与跟踪、安全销毁为目标,涵盖整个安全体系。

数据安全,也包括个人数据安全与法律合规,也就是隐私保护方面的内容。

狭义的数据安全往往是指保护静态的存储级的数据,以及数据泄露防护(DLP)等。

4.对比与小结

从信息安全到网络安全再到数据安全,体现了人们对安全认知的演变历程,也体现出使用者所在企业安全工作的侧重点(或立足点、视角)如图2-4所示。

图2-4 安全概念的演变

早期,信息安全的范围最大(有句话是“信息安全是个筐,什么都可以往里面装”),而网络安全(Network Security)是信息安全的子集,网络安全(Network Security)可看成是海关(或检查站),需要核对身份、检查物品(品类数量控制/检验检疫),是站在网络边界(以及重要的流量节点)看世界,如图2-5所示。

图2-5 早期的信息安全、网络安全、数据安全范围

现在,信息安全这个词仍有使用,不过使用场景不是很多了,且有狭义化的趋势,多数情况下可以被网络空间安全(Cyber Security)所覆盖,也就是说,Cyber Security范围最大。但Cyber Security并没有完全覆盖数据安全,如数据安全里面的长臂管辖权(治外法权),如图2-6所示。

图2-6 当前的网络空间安全与数据安全

数据安全更接近安全的目标,可看成是数据的随身保镖,随着数据流动,数据流到哪里,安全就覆盖到哪里。图2-6为安全概念由信息安全到数据安全的变迁。

大家其实不用纠结究竟应该使用哪个术语,我们完全可以根据企业的需要、侧重点,选择相应的术语。即使你所在企业使用的是其他术语,本书所介绍的相关实践也是可以参考的,因为它们之间存在大量的交集。

随着信息时代向数据时代的转变,本书将主要使用广义的数据安全这个概念,它更接近安全保护的目标,更适应业务发展的需要,并且这里的数据不仅包括静态的、存储层面的数据,也包括流动的、使用中的数据。我们需要在使用数据的过程中保护数据,在数据的全生命周期中保护数据,特别是保护涉及个人隐私的数据。也就是说,数据安全这个词,可以将信息安全、网络安全以及隐私保护的目标统一起来。

下面小结一下各种安全术语的差异和典型的使用场景,如表2-1所示。

表2-1 各种安全术语及适用场景

通常,如无特定的语境或上下文关联,以上三个术语都使用广义的含义,泛指整个安全体系,但在特定的环境,也可能使用狭义的含义。

有统计表明,全球数据量每两年翻一番,也就是说从现在开始,未来两年所产生的数据量将超过过去人类历史上数据量的总和。随着大数据时代的到来,数据无疑成为各企业以及用户个人最重要的数字资产,数据安全与隐私保护将成为安全体系建设中的重中之重。

2.3 什么是安全架构

安全架构是架构在安全性这个方向上的细分领域,其他的细分领域如运维架构、数据库架构等。在IT产品的安全性上,常见到三类安全架构,组成了三道防线:

产品安全架构:构建产品安全质量属性的主要组成部分以及它们之间的关系。产品安全架构的目标是如何在不依赖外部防御系统的情况下,从源头打造自身安全的产品,构建第一道防线。

安全技术体系架构:构建安全技术体系的主要组成部分以及它们之间的关系。安全技术体系架构的任务是构建通用的安全技术基础设施,包括安全基础设施、安全工具和技术、安全组件与支持系统等,系统性地增强各产品的安全防御能力,构建第二道防线。

审计架构:独立的审计部门或其所能提供的风险发现能力,但审计的范围是包括安全风险在内的所有风险,构建第三道防线。

在具备SDL(Security Development Lifecycle,安全开发生命周期)流程的企业中,通常会有系统架构师、安全架构师、运维架构师或数据库架构师(当然,在名称上不一定是架构师这种叫法)等人员参与产品的正式方案评审活动,其中安全架构师的职责就是对该产品的安全性进行评估。

本书主要介绍前两个方面的架构:

产品安全架构:如何打造一个安全的产品(本书第二部分)。

安全技术体系架构:如何构建并完善通用的安全技术基础设施(本书第三部分)。

2.4 安全架构5A方法论

无论是进行产品的安全架构设计或评估,还是规划安全技术体系架构的时候,都有几个需要重点关注的逻辑模块,它们可以在逻辑上视为安全架构的核心元素。

以应用/产品为例,核心元素包括:

身份认证(Authentication):用户主体是谁?

授权(Authorization):授予某些用户主体允许或拒绝访问客体的权限。

访问控制(Access Control):控制措施以及是否放行的执行者。

可审计(Auditable):形成可供追溯的操作日志。

资产保护(Asset Protection):资产的保密性、完整性、可用性保障。

本书将这5个核心元素称为安全架构5A(即5个以A开头的单词)或5A方法论。我们将其进一步扩展:

主体的范围不局限于用户,将其扩展到所有人员(用户/员工/合作伙伴/访客等)、设备、系统。

安全架构从应用层扩展到空间立体,覆盖物理和环境层、网络和通信层、设备和主机层、应用和数据层。

由此,安全架构5A可用图2-7来表示。

图2-7 安全架构5A

安全架构的5A方法论将贯穿全书,成为安全架构设计(无论是产品的架构设计,还是安全技术体系的架构设计)、风险评估等安全工作的思维方式(或共同语言)。

其中,资产包括但不限于(如图2-8所示):

图2-8 资产包括数据和资源

数据:即信息资产,包括结构化数据(数据库、缓存、Key-Value存储系统等)、非结构化数据(文档、图片、音频、视频等),不仅包括存储的数据,也包括使用、传输、流转中的数据。

资源:网络资源、计算资源、存储资源、进程、产品功能、网络服务、系统文件等。

为什么资源也是需要保护的资产呢?让我们来看如下例子:

DDoS攻击会占满网络带宽资源或主机计算资源,导致业务不可用。

病毒、木马会造成主机计算资源破坏或权限被外部控制,或造成攻击范围扩大,数据泄露等严重后果。

在这几个核心元素中,用户访问资产的主线如图2-9所示。

图2-9 用户访问资产的主线

访问控制的依据是授权,查询授权表或者基于设定的权限规则,拥有访问权限才允许继续访问。

用户首先需要通过身份认证,也就是要让系统知道用户是谁。

用户需要具备访问目标资产的权限。

访问控制模块会基于授权以及事先设定的访问控制规则,判断是否放行。

在访问资产之前,须经过必要的资产保护措施,如数据解密、加密传输、脱敏展示、防攻击以及防批量拉取措施、隐私保护等。

可审计一般是指可供追溯的操作审计记录(操作日志记录等),没有直接体现在上述主线中,但会覆盖到每一个模块,如图2-10所示。

图2-10 可审计的范围

身份认证方面:SSO系统需要记录用户的登录时间、源IP地址、用户ID、访问的目标应用。

授权方面:需要记录权限申请流程的每个审批环节的时间、IP地址、用户ID、理由、通过或驳回权限申请的动作。

访问控制方面:访问控制执行的结果是放行或驳回,通常来说,需要记录所有的驳回动作,以及对敏感资产的每一个请求及动作,便于追溯。

资产保护方面:记录用户访问的资产(特别是敏感资产)及操作(查询、添加、修改、删除等)。

2.5 安全架构5A与CIA的关系

在前面对安全的定义中提到,安全是产品的质量属性,安全的目标是保障产品里信息资产的保密性、完整性和可用性,简记为CIA。从这里可以看出,CIA是安全的目标,自然也是安全架构要达成的目标。

身份认证、授权、访问控制、审计、资产保护均是为了达成这个目标而采取的技术手段,如图2-11所示。技术手段运用得好,可以极大地降低管理成本,更好地达成安全目标。

图2-11 安全架构5A与CIA的关系

因此,安全架构5A与CIA的关系可总结为一句话:CIA是目标,安全架构5A是手段。不过,也需要注意到,安全架构5A只是为了达成CIA而采取的技术性手段,并不能完全保证达到CIA这个目标。