购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 安全本质

每一个学科都有独立的世界观和方法论。比如用牛顿经典力学的思维逻辑就很难理解相对论里的一些原理,用相对论的思维逻辑来理解量子理论也会显得不合时宜,理解信息安全,也需要一种新的世界观和方法论。

世界上任何一种事物在初期都是简单的,甚至是简陋的,但是随着演化,就会越来越复杂,我们通常把这种状态叫作“专业”。专业形成了圈子,同时也阻隔了普通人想要找寻真相的权利,甚至发展到后来,各种乱象也会让圈内人找不到方向。

安全行业经过三十多年的发展,目前就处在这样一种状态,因此非常有必要从现在开始,回归安全本源,重新探寻一下安全的底层逻辑。

2.1.1 安全本质的分析

本书谈论的安全是我们常说的“信息安全”,是2015年7月1日第29号主席令颁布的《中华人民共和国国家安全法》里涉及的政治安全、国土安全、军事安全、经济安全、文化安全、社会安全、科技安全、信息安全、生态安全、资源安全、核安全等十一个安全分类中的一种。

同时我们看到,国家互联网信息办公室在2016年12月27日发布的《国家网络空间安全战略》里提到:网络空间已经成为与陆地、海洋、天空、太空同等重要的人类活动新领域,国家主权拓展延伸到网络空间,网络空间主权成为国家主权的重要组成部分。同时,网络安全会对政治安全、经济安全、文化安全、社会安全和国际竞争产生重要影响。《国家网络空间安全战略》中还列举了网络安全的五种表现形式,即网络渗透、网络攻击、网络有害信息、网络恐怖和违法犯罪以及网络空间国际竞争。

这里的信息并不是指“信息”本身,而是指整个信息技术产业,大家习惯称为IT(Information Technology),但是信息产业如今已是一个包罗万象的巨大产业群。谈及信息产业的安全又有诸多的分类,如终端安全、网关安全、应用安全、数据安全、内容安全、云安全、移动安全、工控安全、安全服务等,每一个分类下面又有众多子类,每个子类下面又有众多的厂商和产品。除此之外,不同时期又有不同的概念,比如现在流行的互联网安全、车联网安全、万物互联安全、大数据安全等概念,新旧杂陈让人眼花缭乱。所以我们最好先闭上眼睛,抛开眼前的乱象,将自身抽离来理解信息安全本身。

信息安全到今天为止还没有一个共识性的定义,但是大多数相关书籍谈及信息安全时都会谈到CIA三原则,即机密性(Confidenciality)、完整性(Integrity)、可用性(Availability),后来又在这个基础上扩展了真实性、可靠性、不可抵赖性、可控制性、责任性、可审计性等众多属性。这个维度其实是基于信息本身特性来考虑的安全特性,按照这个逻辑,随着信息技术的发展,将来会有更多的特性依附于信息安全之上,会让信息安全的概念变得越来越复杂,而事实上,这些形式化的描述对理解信息安全的定义并没有实质的帮助。

如果本书给信息安全下个定义,那么 信息安全 是指:以冯·诺依曼体系建立起来的计算机系统的安全和计算机系统之间构成的环境的安全。

为什么要提“冯·诺依曼体系”这个概念呢?因为如果单说计算机的话,我们脑海中大致想到的就是个人使用的“个人计算机”(Personal Computer, PC)和企业使用的“服务器”(Server)。但是智能手机、工业控制计算机、嵌入式计算机、物联网(Internet of Things, IoT)智能硬件等,这些计算机系统的安全目前也已经纳入了信息安全范畴,它们的形态和用途与我们平常生活中所指的“计算机”差异很大,硬件架构和应用环境也不同。但是不管它们之间差异多大,有一点是一致的,即都是基于二进制数制的,CPU指令运算+数据存储+I/O交互的“冯·诺依曼体系”。

网络空间安全 ,本质上是指在网络空间框架下的信息安全。网络空间框架是传统IT网络框架的外延化和泛化,跟传统的IT网络框架比主要体现在三个方面:一是从标准计算机系统扩展到移动计算机系统和各种嵌入式系统;二是从计算机网络环境扩展到涉及陆、海、空、天等所有信息环境;三是从物理设施扩展到人。因此, 网络空间安全 完整的定义是:所有类型的计算机系统和计算机网络环境、物理环境及相关人的安全。

我们之所以要抛弃传统的计算机系统框架或计算机网络框架,而要在网络空间的框架下谈论安全,是因为我们生理上依赖的物理世界和意识上依赖的数字世界之间的关系已经发生了根本性的变化。原来的数字世界是物理世界的一个补充,而信息技术也只是我们改造物理世界的一个工具,它们之间是一种“交互”关系:从物理世界给数字世界一个输入,通过数字世界的加工和处理,再把结果返回给物理世界。这时候信息技术的主要作用就是“信息处理”,而我们的生存空间的运转逻辑是“物理世界控制数字世界”。

随着信息技术的发展,人类社会所在的物理世界的正常运转都建立在数字世界之上,物理世界跟数字世界已经形成一种“你中有我,我中有你”的“共生”和“孪生”关系,数字世界里发生的异常,往往会导致物理世界的异常。例如“勒索病毒”导致医院系统的瘫痪、“震网病毒”导致伊朗核电站的停摆等安全事件都是这种情况。这时候信息技术的主要作用就从“信息处理”变成“信息控制”,而我们的生存空间的运转逻辑也变成“数字世界控制物理世界”。

当然,以上定义和描述只是建立起了信息安全与网络空间安全的初步概念,我们常常认为“定义”是用来更好地理解事物的,其实“定义”只是用来区分事物的。而为了能够被明确区分,冗长的描述反而会带来理解上的困难。

就拿“信息安全”这个概念举个例子来体会一下。百度百科援引国际标准化组织(International Standard Organization, ISO)的定义是:为数据处理系统建立和采用的技术、管理上的安全保护,为的是保护计算机硬件、软件、数据不因偶然和恶意的原因而遭到破坏、更改和泄露。

读完的感觉就好像是“你似乎说得很明白,但其实我依然很糊涂”。因为对每一个定义的理解都需要大量的专业背景知识做铺垫,就像当用一个人的名字、身高、体重、家庭成员、籍贯、性格等属性来描述这个人的时候,我们还是无法真正理解这个人一样,所以要想真正地快速理解安全,不能看定义,而是需要看本质。但是本质,会因为洞察的维度不同而产生不同的答案。

有的观点认为:安全的本质是人(红客)与人(黑客)的对抗。从根源上看,任何安全问题都可归因于人与物(技术、环境)的综合或部分欠缺。从另一个角度看,安全活动所追求的目标,也正是要保护人和物(技术、环境),修补相关欠缺。网络安全的核心就是研究黑客的“攻”与红客的“守”这对矛盾的运动变化和发展规律。

有的观点认为:安全的本质是信任问题。一切解决方案设计的基础,都是建立在信任关系上的,必须有一些基本的假设,安全方案才能得以建立;如果我们否定一切,安全方案就会如无源之水、无根之木,无法设计,也无法完成。从另一个角度来说,一旦我们作为决策依据的条件被打破、被绕过,那么就会导致安全假设的前提条件不再可靠,变成一个伪命题。

有的观点认为:安全的本质是风险管理,绝对安全本身就是一个笑话,原因是攻防不对等,防御者要防御所有的面,而攻击者只要攻破其中一个面上的一个点就可以了。理论上说可以在所有的面上重兵布防,但实际绝对做不到。计算机用0和1定义整个世界,而企业的信息安全目标是解决0和1之间的广大灰度数据。安全需要找到某个自己可以接受的“信任点”,并在这个点上取得成本和效益的平衡。

还有的观点认为:安全的本质是保障业务的正常运行。

“安全的本质是人与人的对抗”的观点强调了人的因素,但是忽略了病毒这类自动化攻击的因素。虽然病毒说到底也是人为制造的,但是病毒是可以独立于人而自动在网络空间里存活的,甚至被释放到网络空间之后,病毒的行为就处于失控状态。事实上安全相当一部分任务就是与病毒对抗,因此人与人对抗的特性并不能真实地反映安全的本质。

“安全的本质是信任问题”的观点有很大的局限性,因为很多时候安全恰恰是要以不信任为前提,安全方案也要基于不信任的假设来设计。比如2018年安全界提出的“零信任”概念,就是要将网络完全置于不信任的场景下来重新考虑安全建设的问题。

“安全的本质是风险管理”的观点目前在业内还算是一种共识。但是风险本身是一个泛概念,所有与预期不符的结果都可以定义成风险。另外,管理本身也是一个泛概念,它包括对资源进行有效的决策、计划、组织、领导、控制,以期高效地达到既定组织目标的过程。

从另一方面讲,很多时候风险是不需要处理的。比如说我们住在十五层的楼房里,阳台的窗户都有被打碎的风险,家庭成员都有从窗户掉下去的风险,但是我们却不需要把窗户上面都装上结实的栏杆,因为发生上述事故的概率几乎为零,所以没必要为概率几乎为零的风险来准备解决方案。当然,也有“风险的不管理也是一种管理”的说法。

“安全的本质是保障业务的正常运行”的观点跟上面类似,都是甲方视角的安全理解,这种视角虽然很好,但是不涉及本质,比如说,如果企业的办公终端中了“后门木马”,或者网站业务系统发现了“漏洞”,这些事实上都没有给业务的正常运行带来任何影响,但是很明显这些场景也是安全需要解决的重要问题。

上面罗列的观点,无论是“风险”还是“信任”,本质上都是基于物理世界里“人与人之间的关系”这样一个逻辑框架来描述安全本质的。事实上,在数字世界里,我们看到的却是程序与数据,它们借助终端、网络、服务器这样的信息载体来发生关系。而在网络空间安全的框架下,有一个变量已经变得越来越突出与重要,那就是“威胁”(Threat)。因此本书想提出一种公理性的描述,即 安全的本质 是威胁对抗。尽可能地发现威胁,消除威胁,处置威胁发生后遗留的问题,就成了 安全的基本任务

由于“对抗”是一个动态的动作,此消彼长,因此安全又被称为“魔道之争”,道高一尺,魔高一丈,永无止境。由于安全建设的结果完全不能做到“天下无毒”,因此安全建设的本质并不是消灭威胁,而是要在安全要求和安全建设成本之间进行平衡,要根据威胁发展的态势,进行有计划、分阶段的投入。因此,安全界有一种说法叫“攻防平衡”,就是指安全工作者的工作目标是要不断提高攻击成本,降低防御成本,以达到“不战而屈人之兵”的效果。

当然,如果对安全下一个更完整的定义, 安全 应该是:与信息世界产生的威胁进行对抗,对可能出现的风险进行管理,从而保障业务的正常运行。

2.1.2 安全行业到底有没有“银弹”

“没有银弹”(No Silver Bullet)是软件工程领域的一个经典说法,最早来自图灵奖的获得者、IBM大型机之父佛瑞德·布鲁克斯(Frederick P. Brooks)在1986年发表于第十届IFIP世界计算机大会的一篇受邀论文,论文题目为“没有银弹—论软件工程的本质性与附属性工作”(No Silver Bullet—Essence and Accident in Software Engineering)。

作者在该文中提到:在民间传说里,所有能让我们产生梦魇的怪物当中没有比狼人更可怕的了,因为它们会突然从一般人变成恐怖的怪兽。但是一发银弹就可以神奇地撂倒它们。这一点很像软件项目,至少以一个非技术管理者的角度来看是这样,平常看似单纯而率真,但很可能一转眼就变成一个工期延误、预算超支、产品充满瑕疵的“怪兽”。所以,我们听到了绝望的呼唤,渴望有一种银弹能够有效降低软件开发的成本,就像计算机硬件成本的快速下降一样。但是,我们预见从当前开始的十年之内,将不会看到任何银弹,无论在技术上或管理上,都不会有任何单一的重大突破能够保证在生产力、可靠度或简洁性上获得改善,甚至连一个数量级的改善都不会有。

简单地总结一下,“没有银弹”就是指在软件工程中,目前还找不到一种能够快速降低软件开发成本、提高软件开发质量的有效的技术或管理方法。

安全行业也有“没有银弹”的说法,意思是在解决安全问题的过程中,不可能一劳永逸,安全是一个持续的过程,攻防手段要升级,产品本身要升级,就连最基础的操作系统、硬件系统都要升级。

如果从动态这个角度把安全具象到工程实践上来看,安全既然是基于威胁对抗思想,本身就是动态的,不存在静态的安全。如果再往抽象去想,事实上,我们本身就处在一个动态世界中,一切都是动态的,因此整个世界都不存在静态的概念。对于现实世界来说,因为有国家形态、政府组织和治安机构的存在,所以许多安全问题是可控的。但是对信息世界来说,整个信息世界是无政府和无监管的,信息流动与演化的速度要比现实更快,因此这种动态性就更加明显。

我们再用稍微宏观的视角来看一下安全:虽然安全公司和安全产品越来越多,但是安全产品整体的大逻辑并没有太多的改变;虽然威胁跟安全厂商的对抗程度越来越高,但是整体威胁对抗技术在近十年也没有太大的突破;虽然风险越来越多,但是风险本身的逻辑复杂性并没有太大的提高。因此在威胁对抗的技术领域,理论上我们是有可能找到一种方法,来有效控制新威胁的产生。

另外,从安全体系建设的角度来看,虽然对于厂商来说产品种类越来越多且产品体系越来越庞大,对于一个企业来讲安全投入的成本越来越高且安全建设周期越来越长,但是其中有很多非技术的因素在里面,非技术因素往往扭曲了安全的建设本质,抛掉这些非技术因素的影响,理论上也应该存在一种安全体系建设方法来实现低成本和高效果。

在接下来的篇幅里,我们试图尽量不断回到安全这个“母体”,不断拆解和重构,从而帮助读者和用户找到这样的“安全银弹”。

2.1.3 学术、工程与方法论的区别

任何一个高科技细分领域,都可以分为工程界和学术界两大范畴。安全产业跟现在最火的人工智能产业不同,人工智能产业是先有了学术研究成果,成果的应用过程就产生了工程化的实践,形成了AI产业。安全从一开始就是一个工程化的课题,出现安全问题,解决安全问题,然后把解决问题的过程产品化,形成通用的产品解决方案,在产品演进的过程中进行抽象整理,逐步建立起一些安全的理论模型和方法论,然后再指导下一次的安全迭代。虽然“迭代”这种螺旋上升的发展脉络几乎是所有科技发展的通用模式,但是在安全领域则尤为明显,其中一个重要的原因在于:威胁事件变异速度极快,造成损失巨大,发展态势完全不收敛。

如果说安全领域里有学术概念的话,那就是基于数学的密码学体系,现在广泛应用的加解密、证书、PKI、软件签名等工程化的技术都是密码学体系理论成果的实际应用。我们知道,密码学算法都是公开的、免费的,但是基于密码学体系的工程化应用,就成了各种收费的安全产品,在多年的发展过程中,也形成了很好的商业模式。

如果把安全行业抽象并切片的话,工程与学术是安全的两极,在两极之间,还有一个“工程化学术”的中间层存在,这一层承载的是安全方法论,构成的三个要素是模型(Model)、架构(Architecture)和框架(Framework)。这三类要素能够很好地帮助我们思考,并将思考的结果进行抽象,然后用于分析,最终形成有价值的研究成果。

在指代安全方法论的场合,这三个词是可以混用的,比如在很多场合下,零信任模型、零信任架构和零信任框架表述的是一个意思。

为什么要提这一层呢?因为首先是安全领域有非常多的此类概念需要我们能够理解,其次是未来的安全建设、安全规划和安全设计都需要跟安全方法论打交道。

模型是指对某个实际问题或客观事物、规律进行抽象后的一种形式化表达,任何模型都由三部分组成,即目标、变量和关系。我们常说的有数学模型、程序模型、逻辑模型、结构模型、方法模型、分析模型、管理模型、数据模型、系统模型等。

架构指的是组成一个系统的不同元素之间的关系、设计和演化原则,或者一种组件结构和组件之间的相互关系、设计原则、指南,以及演化的原则和指南。我们常说的有逻辑架构、物理架构、系统架构、软件架构、硬件架构、数据架构、业务架构、技术架构、安全架构、企业架构等。

框架本来是建筑学概念,指的是一种约束性和支撑性,是一个基本概念上的结构,用来解决和处理复杂的问题。我们常说的有软件框架、应用框架、安全方法论框架等。

在日常的工作中,我们并不是仅仅为了分清这三者的概念,而是要具体应用以解决实际问题,因此更需要知道这三者的关系。但是由于这三者在概念上都是递归和迭代关系,模型里可以包含模型、架构、框架,架构里也能包含架构、模型和框架,因此很难把它们严格区分开来,或者说不同的人有不同的理解,很容易陷入争论。

这里对其关系提供了一个参考描述,并从实用角度给出了抽象程度和作用范畴两个比较尺度(如图2-1所示)。

从抽象程度高低来看,模型抽象程度高于架构,架构高于框架。从作用范畴大小来看,框架大于架构,架构大于模型。从实际应用角度来看,模型更适合描述单一问题,架构更适合描述复杂的关系,框架提供一种整体的系统化思维。因此其中的一种典型应用实例是先建立一个框架,明确约束和支撑条件,然后在框架里面设计相应的架构,在架构内部用模型来说明。

图2-1 模型、架构、框架的关系

安全方法论有三个作用:

一是实践的理论支撑。虽然安全建设是一个“亡羊补牢”式的解题思路,总是先出现威胁,再出现威胁解决方法,但是安全工作者也希望能够做到“未雨绸缪,防患于未然”,希望能够通过方法论来给自己的实践工作提供理论基础。

二是统一话语体系,降低沟通成本。方法论本身是一种分析现有问题的工具,掌握了工具的人们之间就形成了一套统一的话语体系,大家用同一套话语体系说话,可以极大地降低沟通成本,提高沟通效率,让沟通双方有更多的时间来关注更核心的问题。

三是开阔视野,体现专业性。方法论是一种集体智慧,通过这些成熟的模型、架构和框架可以快速看清你不了解的领域里的核心问题,同时当你基于方法论来阐述你的观点时,也能体现出专业性。而事实上,“有效性”和“先进性”是安全产品两大核心竞争力,当无法通过有效性来证明自己产品优秀的时候,往往可以通过方法论的匹配来证明自己产品的先进性,这也是目前安全产品的典型营销模式。

安全方法论的来源有三个:

一是国际知名机构或组织,如美国国家标准与技术研究院(National Institute of Standards and Technology, NIST)、美国国土安全部(Department of Homeland Security, DHS)、美国国防信息系统局(Defense Information Systems Agency, DISA)、国际标准化组织(International Standard Organization, ISO)等,像NIST、DHS、DISA、ISO这些机构或组织会经常推出一些安全参考架构或实践框架,具有很高的借鉴意义。

二是安全咨询或市场研究公司,如Gartner(高德纳公司)、IDC(国际数据公司)、Forrester(福雷斯特研究公司)等,它们有大量的研究员,会基于行业的技术现状进行理论化抽象和趋势预测,方法论本身已经相对完备和逻辑自洽。

三是行业领导厂商,如微软(Microsoft)、谷歌(Google)、思科(Cisco)等,它们也会根据自身实践和对安全的理解进行提炼和总结,如微软的安全开发生命周期(Security Development Lifecycle, SDL)流程、谷歌的BeyondCorp方法和思科的“自防御网络”架构。

一个能够得到行业认可的方法论就像围棋里的“定式”一样,往往要经过五到十年的打磨才能成为安全实践的理论指导。这些方法论非常抽象,在指导安全实践时要根据自身条件进行适配,实践效果取决于对安全和方法论的理解。因此更常见的用法是成为安全厂商市场端营销话术,借此提高自己的安全格调。 YSDbIVidwbwPE27TjgAZp7954fZPuVTH2zA3ofzXpv0j39l31MgeAYegoDHn6OP/

点击中间区域
呼出菜单
上一章
目录
下一章
×