首页 观点正文

唠唠数据与数据安全

  近些年来,关于数据安全的文章很多,许多人都在关注“数据安全”。一些业内人士说,人们从关注网络安全正在转向数据安全。特别是《网络安全法》出台之后,2021年又密集地出台了《数据安全法》、《个人信息保护法》等法律法规,似乎与业内人士的说法很一致。为此笔者也想凑凑热闹,唠唠自己对数据安全的认知,把自己的一些理解分享给大家,当然更欢迎拍砖。

  1.关于数据

  数据这个概念非常好,实际上我们常说的数据,都是默认为在计算机科学中的数据,并没有考虑现实社会中其他领域中的数据,这一点是很重要的。搜狗百科中给这个领域中的数据的定义是:“在计算机科学中,数据的定义是指所有能输入到计算机并被计算机程序处理的符号的介质的总称,是用于输入电子计算机进行处理,具有一定意义的数字、字母、符号和模拟量等的通称。”这个定义是否为学术界的科学定义?笔者不得而知,但是笔者认可这个定义。

  1.1数据与信息

  从美国国防部的橘皮书开始,人们讨论计算机及网络系统安全时,常常使用“信息”安全的概念,笔者觉得这个概念远没有“数据”安全的概念准确。笔者并不清楚“Information”这个英文单词在英语语境下的全部含义,只知道它是一个不可数名词,翻译成汉语就是“信息”。

  信息有准确的定义吗?笔者上个世纪八十年代初曾认真读过几本有关信息论的著作。特别是北京邮电大学钟义信教授的著作。美国人香农作为信息论的开拓者,对信息的定义是“负熵参考资料1”,即“不确定性的减少”。但许多后来的学者对此提出批评,认为香农只是给出了“信息量”概念的定义,而非“信息”的定义。钟义信的著作中说,在当时(上个世纪的八十年代)关于信息的定义超过了百种之多,但是被学术界普遍认可的定义则没有。钟义信给信息的定义是“事物存在与运动方式的表征参考资料2”。说心里话,当时读这部著作时,并没有真正理解这个定义,现在也不能说理解了这个定义。笔者不是研究信息论的,没有在这个方面下过功夫,只是知道有这码事罢了。[需要说明的是,这些书读过已经非常久远了,提到的说法也只是凭记忆,而非原著中的准确说法,并且书名也记不住了。]

  关于信息的定义,虽然有很多的争论,但是对于信息的性质参考资料3,大家普遍是认可的,如信息是可以度量的,信息能够产生也会消失等等。最重要的性质是说,信息一定是你原来不知道的,已知的东西不是信息。这就是香农所说的,得到“信息”可以让你消除“不确定性”。同一条消息,对于某些人来说是信息,因为他原来不知道,而对于已知的人来说,这条消息就不是信息了。

  在计算机中,大量的数据,我们一定会重复使用,而第二次再使用这些数据时,这些数据肯定就不是信息了。

  所以笔者更愿意使用“数据”安全的概念,而不赞成使用“信息”安全的概念。数据中的含义,也不能定义为“信息”,因为它可能对于很多人来说是已知的。笔者并不清楚当年DoD的人,为什么使用Information Security这个概念,而没有用Date Security的概念。

  在法律层面,2021年,第十三届全国人民代表大会常务委员会第二十九次会议审议通过了首部数据保护法律,命名为《数据安全法》,而不是《信息安全法》,在《数据安全法》中,“数据”的定义是指任何以电子或者其他方式对信息的记录。

  当然,大家会说,细究这些概念的定义有意义吗?笔者也说不清楚,但是总觉得别扭。

  1.2 Cyberspace中的数据

  笔者这里使用了Cyberspace这个概念,而没有用“网络”这个概念,更没有用计算机信息系统或者信息系统的概念。计算机信息系统和信息系统的概念,是有准确的定义的,国务院147令参考资料4中,从法的角度进行了定义。之所以使用这个概念,是觉得它所包含的面足够宽,即包括了Network,也包含了由这个网络所联结的所有系统,即包含了各类硬件,也包含了各类的软件,当然也包含各类的数据。习近平总书记所说的“没有网络安全,就没有国家安全”,笔者理解,肯定指的是这个概念说的,而不仅仅是network。

  使用这个概念,笔者心里仍然不踏实,我们现在各类说法概念很多,究竟什么概念准确,真不是笔者这样的粗人,所能确定的。学术界真的是应该好好的研究一下。

  在这个概念之下,肯定包含了各类的计算机信息系统;也包含基础信息网络,还包含了各类的控制系统,反正能连接目前的网络上的,所有系统,都应该包含在内了。

  笔者认为,计算机信息系统或者说信息系统就是“有确切应用的局部网络”,2004年正式在全国推动等级保护时,某部委有人说,运营商的系统不是信息系统,而是信息网络,这个说法笔者得认可。美国国家安全部的《信息保障技术框架》(IATF)中,认为基础信息网络,与信息系统之间的保护目标是不一样的,所以保护方法也不一样。我们可以认为,所有的信息系统,包括由基础信息网络支撑的,和没在基础信息网络上的总和,构成了Cyberspace的主体部分。

  自从习近平总书记讲“没有网络安全,就没有国家安全”之后,所有的场合,都称之为网络安全,没人再提信息系统、基础信息网络这些更细分的概念了。而我们一般讨论网络安全时,可能是指“Cyberspace”,也可能指“Network”,所以还是需要细分的。

  笔者这里讨论Cyberspace中的数据,是考虑了这样的一些场景,数据的生成与采集、数据的传输、数据的加工处理、数据再生产等等。

  1.2.1数据的三种状态

  数据将会三种状态,一种是在外部存储器中的静态,这种状态是数据的持续时间最长的状态,并且外部存储器是可能会离开计算系统的,无论是将主机箱内的硬盘摘除,还是利用U盘、光盘等可移动介质的,数据都是可能离开原来计算机系统的。

  第二种状态是在信道中的“流”的状态,笔者称其为动态。而信道可能是一台物理机中的本地信道,也可以是网络中的网络信道。

  第三种状态,比较少有人提起,就是数据在内部存储器中的“暂态”,李京春首席专家建议称其为“执行态”,笔者也认同。

  为什么要谈这三种状态呢?不同的状态,安全需求是不一样的。(在本文中,笔者不想进行对需求进行全面的分析,只想指出它们存在的差异性。)对于在外部存储器上的数据,特别是移动介质中的数据,你必须考虑这些数据可能会离开原来的计算机系统,原来计算环境上制定的安全策略,对于新的计算环境来说,则不一定有效了。如果没有有效的保护手段,数据就可能被泄露或者是被篡改。

  而对于信道中的数据,广义上的“搭线窃听”“插入重放”是可能做到的,特别是在无线信道环境下,信道是相对开放的,那么上述的攻击就相对更容易了。

  对于数据在内存当中,理论上和技术上关注的相对要少一些,实际上数据在内存当中,是最脆弱的。首先,这些数据必须是在明文的状态下,才能被授权用户合法的使用,任何密文,授权用户是无法识别的,那么“读”“写”操作就无法完成。而此时,如果有木马程序在监控你所使用的这段内存,那么内存中的数据就完全被“读”出了。同时,木马还可以对加/解密过程进行监控,再长的密钥,再强的算法,加/解密过程被监控,密钥一样会被窃取。特别是现在的一些木马高手,制作所谓的“内存马”根本就不让木马程序保存在任何的外部的存储器当中,对这些外部存储器上的任何检测手段,都没有办法发现这类的木马,因为它根本就没存在外部存储器当中。还有,内存就是半导体存储器,而任何存储器都会有对数据痕迹的保留效应,即删除的数据并不是真删除,只是标注,就算是每一个存储单元都被清除了,仍然会有相应的痕迹保留,(P-N结有电容效应,磁介质也是相应的剩余)数据恢复技术就是利用了这一原理。等级保护的标准中,从第二级开始,就有客体重用的要求。就是要防止当一个用户从系统中退出后,当前的用户会将上一个用户的相关数据进行恢复,包括个人的登录数据(帐户和口令)和相关的业务数据。

  对于数据的静态和动态,虽然不敢说我们现在已经完全可以进行保护了,不过还是有手段的,如访问控制技术、密码技术等等,还有保驾的漏洞检测技术、恶意代码检测技术乃至于沈昌祥院士的可信计算等等。对于内存的保护,研究的人相对要少一些,笔者于2015年正式提出了“数据暂态”的概念,并没有进行过正面的宣传,很大的一个原因是当时还没有人对内存保护进行研究,现在可喜的是已经有团队有了相应的建树,这也是笔者有勇气在文章中正式提出“数据暂态”概念的原因。

  1.2.2数据的形式

  数据的分类方法有很多,笔者只是从数据的形式上提出这样的两大类数据,结构化数据与非结构化数据,当然也可以分为三大数据,增加一个所谓的半结构化数据,笔者是将半结构化数据归类于非结构数据当中了。

  关于结构化数据,就是可以利用二维表格进行表示的数据,各类关系型数据库都可以对这些数据进行管理,数据库平台也提供了相应的安全机制(授权操作)。同时,这类数据,完全可以由一台物理机或者是虚拟机对其进行管理和处理,这台物理机或者是虚拟机中的操作系统,也提供了相应的安全机制。虽然这些机制的可靠性并不怎么样,但是毕竟是有这些安全机制的。

  而对于非结构化数据来说,往往这类数据体量很大,一台计算机(物理机或虚拟机)没办法进行管理和处理,需要多台计算机联合进行处理和管理,这就有了分布式数据库平台。但是,这类分布式的数据库,往往是没有相应的安全机制的,同时,各个计算机上的操作系统也无法对这些数据进行管理和保护。笔者在贵阳时,利用一个小厂商的主动发现平台,看到了全球有数据百万计的大数据平台是“裸奔”的。

  还有一类形式的数据,它们具有特殊的安全需求,这就是过程控制中的控制信号和控制指令。这些特殊的数据,这类数据往往是极其短小的。

  1.2.3数据的分类分级

  《数据安全法》第二十一条规定:“国家建立数据分类分级保护机制,根据在经济社会发展中的重要程度,以及一旦遭到篡改、破坏、泄露或者非法获取、非法利用、对国家安全、公共利益或者个人、组织合法权益造成的危害程度,对数据实行分类分级保护。国家数据安全工作协调机制统筹协调有关部门制定重要数据目录,加强对数据的保护”。

  为了能够更好地在保持数据使用的便捷性和实现数据保护的安全性二者之间进行平衡,促进数据安全能力建设降本增效进行分类分级,需要对政府、企业或其他组织的数据进行分类分级,以便对数据采用精细化的安全管控手段,避免一刀切。

  数据的分类分级是复杂的,可以不同的视角。在本文不对数据应该如何分类分级进行讨论,这个问题太困难,真的不容易说清楚。

  1.2.3.1从系统的角度进行的分类

  我们从系统的视角来看,数据可以分为3+1类:

  1、用户的业务数据。

  任何系统都是有相应的业务目标的,在这企业务目标任务之下,会导入、生成各类数据,这些数据与计算机系统的运行无关、也与用户的操作权限无关。它们是用户的管理和操作对象。各类数据库(关系型数据库、层次型数据库、分布式数据库)中的数据,都是用户数据,由用户制作生成的各类文件也是用户数据。

  2、系统数据

  在计算机系统中,不仅有用户的业务数据,还包含了系统数据,系统数据是支撑系统正常运行所必须的数据。由系统软件和应用程序中的相关参数构成。如指令数据中的操作码和操作地址。在网络中,网络协议包含的各类参数也是系统数据,如路由表、地址等等。

  3、安全功能数据

  为了保证用户业务数据的安全,还有一类数据,是安全功能数据(有些标准中称之为TSF数据),如用户的帐户名、口令、权限等等。

  在这三大类数据中,用户的业务数据是我们的保护目标,而系统数据和安全功能数据则不是我们的保护目标。对系统数据和安全功能数据的保护是非常重要的,因为它们的安全没有保证,那么用户数据的安全就失去了保障。

  4、特殊的数据

  这特殊的数据并不在前面的三类当中,必须注意到,在Cyberspace中,还有一类特殊的数据,这就是控制信号,或者是控制指令。说它们是数据,是它们确实有数据的特征,说它们特殊是因为它们有以下性质:

  (1)实时性的要求

  我们打开一个普通的计算机上的文件,需要几十个毫秒到几十秒,甚至达几分钟,我们都是可以容忍的,并且不会产生什么严重的后果。但是在控制系统中,控制信号与指令就有极高的实时性的要求,每一个毫秒都是极其宝贵。如在自动驾驶的过程中,差之毫厘就可能导致严重的后果出现。

  (2)不可重复使用

  对于普通的数据,我们是经常重复使用的,所以才要长期的进行保存。而控制信号和指令,是不可以重复使用的,一个执行动作完成后,这个控制信号与指令就已经无用了,重复使用就意味着是重放攻击。

  1.2.3.2从安全角度进行的分类

  从安全的角度来分类,可以分三大类。

  1、可公开的数据

  一类数据是公开的,如Web页面上的数据,就是为了宣传,是希望更多的人知道,这类数据不需要任何的保密措施,但是怕被非授权的改变。因为这种非授权的改变,就曲解了原来发布消息主体的真实意愿,甚至会造成社会的混乱。

  2、强调机密性保护的数据

  有一类数据绝对要保密,只能授权人知道,而数据被篡改导致的后果并不算严重,只要数据没有泄露,就不会造成严重的损失。

  3、既要强调保密又要强调不可以被篡改的数据

  当然,也有相关的数据,既不能被泄露,也不可以被篡改,泄露和篡改都造成极为严重的损失,如军工产品的图纸。

  1.2.3.3 从安全的角度进行分级

  不同的数据其价值不同,其机密性、完整性和可用性被破坏后,造成的侵害也是不同的,同时被侵害的程度,造成的影响和损失也是不同的。数据从安全的角度是应该进行分级的。关于数据的安全分级,本文无需讨论,我们可以直接依据国家标准《信息安全技术 网络安全等级保护定级指南 》(GB/T 22240-2020)进行定级就可以了。标准中提到的“业务信息”直接理解为数据就好了。

  1.3 数据的属性

  这里所说的数据的属性并不是指数据的安全属性,而是说数据具有资产的属性和作为生产要素的属性。

  数据作为资产和作为生产要素,从保护需求上来说差异并不是很大,从根本上来说,都不能被非授权的操作。但是在具体的保护措施上,安全策略还是有差异的,如果不注意到这些差异,那么就可能会导致保护的失败。

  1.3.1数据是资产

  数据是资产,并且是最重要的资产,这一点可以说社会的普遍共识。

  任何资产都有其价值,数据也是如此。有价值就得保护,并且价值不同保护的程度也是不同的。同样是一个陶瓷杯子,当代产的普通烧制的,我们不需要给出更多的保护,会经常使用。但是如果这个杯子是大宋年间,那其价值就要高出不知道多少倍,肯定倍加爱护,也不会轻易给人看,别说使用了。

  数据作为资产的保护,是以往我们对所谓信息(实际上就是数据)保护所提出的策略与措施。从美国DoD开始的,各类保护要求,实际上考虑的都数据作为资产的保护思路,包括我国的等级保护和风险评估,这是一种基于保险柜式的保护措施。这类保护,要考虑单个数据客体的安全属性,当然就是所谓的机密性、完整性和可用性,还要考虑主体对这些数据客体进行操作时的责任(可审计),主体对这些数据的控制能力(可控性),以及两个以上主体对这些数据的操作而形成的“交易”的可确认性(不可否认性或称抗抵赖性)。关于数据的安全属性问题,我们单独讨论。

  以保险柜式的保护,固然可以保护数据,但是数据的价值是不可能完全体现的,就如同放在保险柜中的货币,实际上是没有货币的价值的,并且随着通货膨胀的发生,还会贬值。同样的,数据也是存在这样问题的。

  数据作为生产要素的保护

  数据作为生产要素,是近年来明确提出的一个新战略。国家领导机构多次强调的数据作为生产要素的重要性。

  所谓生产要素,无非是原料、加工对象、加工过程、新的产品。传统的生产中,也是如此。数据既是生产所需要的原料,也可以是加工的对象,更可以生产出新的数据产品。

  生产原料,并不等于原始的材料,最原始的材料,并不适合于生产,要想成为生产原料,还要对原材料进行一定的加工,如要炼铁,就要对原来的矿石进行选矿,去除那些含铁量极低的石头,同时,还要对不同含量的矿石进行分类。同样对于数据,也存在大量的错、杂、乱、丢、骗的问题,也需要对数据进行不同的归类,这就是所谓的数据治理问题。此刻,可以认为数据是加工对象,当然加工对象肯定不仅于此。

  形成原料的数据,是需要送入到加工区进行加工的,加工过程必然会引入加工主体。这些加工主体,有的是可信主体,有的则不一定是可信主体,但是他们有相应的加工能力,明明知道是不可信主体,但是为了加工,为了利用他们的能力,还不得不引入这些风险,这就是数据作为生产要素,与作为资产保护的一个重大的区别。

  作为数据的加工后的生产出的新产品,仍然具备资产的属性,仍然是需要当成资产进行保护,不过有一个问题必须得到重视:这些新产品会不会对原数据所属单位的利益造成侵害!利用已知条件是可以求出未知因素的,当年日本人分析大庆油田的地理位置,就是利用了一张照片和进京报喜的油罐车上的泥土进行了分析。现在利用大数据分析技术,要比当年日本人推算大庆油田的地理位置的信息多多了。我们常说要利用大数据画像,实际上就是利用已知条件来求未知因素。如果所求出的未知因素,暴露了个人的隐私,企业的敏感信息甚至国家秘密,那就可怕了。

  所以对于数据作为生产要素,要考虑分区进行保护,按照不同区域的不同需求,制定相应的保护策略,再采取相应的保护措施。

  必须说明,经过治理后的数据,单个数据的安全属性变得不那么重要的,但是数据聚集的价值则大大提升了,再用保险柜式的保护方式是难以实现的。

  2. 数据保护的根本方法论

  数据该如何保护,有没有相应的根本方法论?笔者的回答是肯定的。

  笔者认为:所谓安全就是能够有效控制威胁的状态。

  威胁是普遍存在的,能否有效的控制威胁,就是所谓的相对安全了。当年,美国人用核大棒来讹诈我们,很难说我们不紧张,毕竟日本人挨过炸,后果是严重的。当我们的原子弹和氢弹爆炸了之后,这种威胁就小多了。

  2.1 两大类威胁导致的安全问题

  从威胁的视角来看,安全无非是两大类,一类是天灾,这是由自然因素和自我因素所导致的安全问题;而另一大类,则是由于他人的侵害所导致安全问题,这就是“人祸”。英语中也有两个差不多的词,一个是Safety,另一个是Security。这两个词是不是完全对应的于天灾和人祸,得由搞英语的人来辨识。

  对于天灾,有什么问题,就解决什么问题好了,应该是个技术类问题。如对于雷击,我们就得有良好的接地、有引雷和消雷的措施,如装避雷针、装防雷器等等;而对于火灾,则需要有温感、烟感报警装置,要有灭火装置等等。本文的重点不讨论这个问题。

  对于人祸,说到底我们无论采取了什么措施,都是为了管人,从这个意义上来说,这就是一个广义上的管理问题,而不存在几分对几分的问题。技术措施也是为了管人,相应的行政手段也是为了管人的。当然,技术手段要优先,因为技术手段,比人有效多了。笔者我这里并不否认人的因素,但是人是有情感的,观察能力远没有机器强,也没那么的及时,同时也是容易疲劳的,还有其他的弱点,容易被攻破。而技术手段,则相对要僵化得多,固执得多。当然技术手段也有弱点,技术手段还是要由人来执行的,从这一点上来说,人的因素则是第一的。

  管理问题,就要有管理目标,要有手段和措施,还要考虑过程。

  管理目标要根据具体的系统情况来定,实际就是这个系统的安全任务。从Cyberspace的视角来看,安全可以考虑有五大任务:

  (1)保护数据;

  (2)保护各个应用系统的服务功能;

  (3)保护资源不被非法占用;

  (4)保证人员行为的安全;

  (5)防范通过网络对现实目标进行的侵害。

  当然系统的应用目标不同,保护任务也是有差异的,并不是所有系统都要保护这五大任务,但是,无论是什么系统数据保护都是核心,其他四项任务都需要以保护数据为基础,并且对于所有的系统,无论其大小,任务是多样的,还是单一的,数据保护都是根本的任务。

  2.2 防范人祸的根本方法论

  防范天灾,没有什么根本的方法论,就是有针对性的利用相应的技术进行解决。虽然有些技术具有通用性,如接地,不仅在防雷,同时在防静电、电磁兼容、人员用电安全等等方面都是非常重要的,但是这也不是根本的方法,而对于人祸则是有根本的方法论的。

  “保证正确的授权操作”,就是根本的防范人祸的根本方法论,所有的手段和措施,都要围绕这个总纲来考虑。

  保证正确的授权操作,包含了三层意思:一是所有的操作是要经过授权的;二是授权必须是正确的;三是所有正确的授权操作机制是有保证的。

  2.2.1 操作的授权问题

  操作的授权应该包含以下的几个层面:

  1、默认的授权

  这类操作,不会对其他任何个人和组织造成合法权益的侵害,并且法律法规和任何制度没有明确禁止的操作,都需要这一类。

  2、角色的授权

  因为社会活动被赋予了某种角色,而要完成这个角色所赋予的取现就要有一定的权利,无论大小,都是由相关的法律法规和制度确定的权力。

  3、角色的职责

  这是角色授权的延伸,具有强制力的操作,是职务所决定的责任和义务。

  4、禁止的操作

  法律、法规和制度明确禁止的操作行为。

  2.2.2 授权的正确性

  1、授权的行为不构成对其他合法主体的侵害

  2、最小授权的原则

  授权仅满足授权主体为完成授权任务所需要的最小授权。

  3、分权制衡的原则

  (1)对某一主体的授权,不应该将利益相关的任务交由一人完成;

  (2)对任何的授权操作行为都要有相应的监督。

  4、符合被保护数据的安全需求

  (1)数据自身属性的安全要求

  • 数据作为资产的保护

  按照等级保护和风险评估的原则进行保护,是一种保险柜思想的保护。

  这种保护,会导致资产价值的贬值。

  • 数据作为生产要素的保护

  (2)单个数据的安全属性要求(C、I、A)

  数据的安全属性直接决定了安全需求,不搞清楚数据的安全属性就可能导致安全保护策略的错误,甚至可能出现“花钱买破坏”的现象。同时还要考虑主体操作数据的责任,和主体之间通过数据进行“交易”的可确认性。

  (3)数据形态的安全要求

  形:结构化数据、非结构化数据。

  态:在外部存储器中的静态:

  在信道中(包括本地信道和网络信道)的动态;

  在内存中的暂态。

  (4)安全强度的要求(等级保护)

  不同的数据其价值不同,保护强度也不应该相同,这就是等级保护本质。实际上风险评估中,对数据资产的赋值也是基于这样的思想。从根本上来说,等级保护与风险评估是一致的,只是方法上有些差异。

  5、时效性要求

  对于一个授权操作,不能是永久性,根据系统的变更、人员的变动,要对授权进行更改。

  6、谁来授权(授权人的安全)

  授权人的安全更是特别重要的因素,如果授权人都不安全了,那么整个体系的安全就无从谈起了。Internet的最根本的授权机制是在美国的ICANN,它们能保证我们的安全吗?

  2.2.3 正确的授权操作机制是要有保障的

  正确的授权机制,如同当年法国的马奇诺防线,如果没有这个防线,法西斯德国就会长驱直入,有了这个防线,德国就不得不绕道比利时。所以正确的授权操作机制必须要有,正确的授权机制就是马奇诺防线,而相应的保障机制,则要防范绕道比利时的问题。

  在计算机体系中,无论硬件和软件都不可能不存在漏洞,这些漏洞有些是人们故意留下的,有些则是在设计时的缺陷,这些漏洞就会导致正确的授权机制失效。

  在计算机体系中,为了保证正确的授权机制,就要建立主体对客体访问的权限机制,即所谓的访问控制,无论何种访问控制机制都不是完美的,都有可能存在隐蔽信道。

  在计算机体系中,会利用相关的技术,制定出正确的授权访问规则,但是如果在实际的操作中,违背了这些规则的现象司空见惯;还有一类被称之的“社会工程”的攻击方法,通过各种手段,骗取或者是勒索、引诱一些安全意识薄弱者上当。

  在网络环境下,追求共享则会导致引入风险,说到底,人祸就是因为他人与你在共享环境下,对你的资源有觊觎之心而导致的。而这种共享又是人们追求的目标。云、网、云网一体化等等措施都是在追求共享,这样所导致的各类隔离措施变得脆弱了。

  还有更多的五花八门的方法,来绕过正确的授权机制或者让正确的授权机制失效,所以必须要建立对“正确的授权机制”的保障措施。

  对正确的授权操作的保障机制,说到底就是对系统的完整性进行保护的问题。首先要有一个完整的系统,并且对构成这个系统的硬件、软件(包括操作系统、数据库之类的系统软件,也包括各类应用程序)进行完整性保护,沈昌祥院士的可信计算就是基于这个思想。从美国DoD的橘皮书开始,所延续下来的标准都对保障的问题提出了要求,特别是《信息技术安全通用评测准则》参考资料5(ISO15408,简称CC)更是从管理、技术和工程上提出了保障要求。我国的等级保护标准,GB/T20271-2006系列标准参考资料6也对保障问题从管理、技术和工程上提出了要求。

  有人说,网络安全就是攻防之间的博弈,这句话笔者非常赞同。可以博弈的焦点在哪里呢?实际上,就是对破坏授权机制和保护授权机制之间进行博弈。对于一个入侵者来说,他是没有相应的授权的,那么他就要利用系统的某些“漏洞”(所有能够导致授权机制失效的因素都可以认为是漏洞),窃取某些访问权限,再不断的提高权限,一直达到超级用户的权限,此时,他就等于进入了无人之境,所有可能的操作都可能发生。

  2.3数据的安全属性及安全策略

  2.2.2中我们提到授权的正确性,必须符合被保护数据的安全需求,并且着重强调了数据的安全属性,直接关系到了数据的安全需求。特别是将数据作为资产进行保护时,单个数据的安全属性,直接决定这个数据的安全需求。

  安全属性非常重要,它直接关系到了安全需求和安全保护策略。可惜的是,我们相当多的业内人士忽略了这一点。笔者2014年-2015年调研过一些从事安全服务的厂商和测评机构,当时国内一个很大的安全厂商的一位水平比较高的技术人员说,他们的观点就是“肉烂了在锅里”,笔者没有进一步确认这个观点是不是他们团队的观点,笔者当即批评说,肉烂了就不是肉了,只能叫肉汤。有好几个等级保护的测评机构,在相关的栏目泛泛的填上“机密性、完整性、可用性”,当笔者问及这个数据究竟需要做机密性保护,还是需要做完整性保护时,他们显得很茫然。

  在现实生活中,玻璃及相关制品,比如陶瓷制品、鸡蛋,我们在放置、移动的时候,都比较小心,长途运输时都会填充一些软性的材料将他们隔离和固定。为什么呀?很多人马上就会说,这些东西“易碎”,而对于纸张、油料等等,一定会远离火源和高温的,因为他们易燃。用软性材料隔离和固定易碎的物品,让易燃品远离火源,这些就是保护措施。显然保护措施与保护需求之间是有直接关系的。

  我们的数据也是有安全属性的,保护措施也必须和它们的安全属性相对应,如果忽略了这一点,就会导致保护措施失效,甚至是有害,就可能会出现“花钱买破坏”的现象。这可不是一句笑话,笔者是有多个案例的。

  数据的安全属性无非就是C、I、A:

  C是指数据的机密性:不能泄露给未授权实体的属性;

  I是指数据的完整性:不能被未授权实体进行改变的属性;

  A是数据的可用性:是要保证授权实体依据授权使用的属性。

  所谓属性,是属于它的性质,是其固有的。而不是被其它实体所“强加”的。

  有些人马上会质问,不还有可审计性、可控性、不可抵赖性吗?笔者我想问问这些提问者,这些是数据自身的性质吗?

  审计性:是一个主体对客体进行操作时,所应该负有责任;如果主体不操作这个客体,我们要审计什么呢?可控性,是主体对客体的控制希望,也不是客体自身的性质。而抗抵赖的问题,是两个主体对同一个客体进行操作而发生“交易”时,对交易行为的确认。这些细节问题,都要清楚,你才不会提出错误的保护策略,进而正确的落实保护措施。

  还有位专家提出了真实性的问题,并认为真实性包含了完整性。

  笔者不同意这个观点,真实性确实是数据的一个属性,但是它是否定义为“安全”属性,是需要讨论的。我们其它的安全属性,都可以用保护措施加以保护,而真实性是没法保护的,只能通过各类的“甄别”的手段才能确认。可能有人会说,如果真实的数据被人给篡改了,数据不就不真实了吗,怎么能说不能用保护手段呢?数据被篡改,是完整性保护问题,当然完整性被破坏也就意味着真实性被破坏了。究竟,真实性算不算安全属性,笔者这里没有结论。

  我们清楚数据的安全属性,我们就可以依据这些属性的需求,而制定相应的安全策略,对于机密性保护,我们的根本策略就是“防泄露”,个人隐私的泄露,说到底是数据的机密性被破坏的问题。对于数据的完整性保护,我们的根本策略就要防“未授权的改变”,勒索病毒侵害的本质,就是对数据完整性的破坏。

  数据的可用性,是以数据的机密性和完整性为基础的,试想数据的机密性被破坏了,泄露的数据还要继续使用吗?如果数据被篡改了,那么这个数据肯定是不能再用了。数据的可用性的另一个基础是系统的可用性,图1给出了数据各安全属性之间的关系。

图1 数据各安全属性之间的关系

  所以从保护数据的角度来看,只要保护了数据的机密性和完整性,就保护了数据的可用性,当然系统的连续性运行也是需要保护的。我们的第一个等级保护标准《计算机信息系统安全等级划分准则》(17859-1999)和ISO15408(我国标准号GB/T18336,也称之为CC)都是仅提出了对“信息”的机密性和完整性的保护,没有强调对数据可用性进行保护。

  不是所有的数据都需要做机密性和完整性同时进行保护的,对于数据来说,完整性保护的需求是普遍,但是强度是有差异的,只有相当少的一部分数据才需要做机密性保护。

图2机密性保护与完整性保护读写规则的冲突

  对于需要机密性保护的数据,从第二级开始,我们就要考虑剩余信息保护的问题,从第三级开始,就需要利用BLP模型作为访问控制策略。

  对于需要作完整性保护的数据,从第三级开始,就需要采用Biba模型参考资料7

  我们必须要清楚的是机密性保护和完整性保护从策略上是冲突的,并且没办法调和,这一点许多“专家”甚至不清楚。BLP模型共有三条公理,十条规则参考资料8,其中关于读和写是两条,一条是“读”的要求:一个低安全级别(保密级别)的主体不可以读高于它安全(保密级别)级别的数据,现实社会中也是如此,一个文件只传达到县(处)、团级,那么副县、处、团以下的人员,就无权读这个文件。同时,还要受到客体属主所授权限的限制。另一条是关于“写”的要求:一个高安全(保密)级别的主体,不可以将高级(密级)别的数据,写入到低安全级(保密)别的客体中。这两条,过都是保证数据不泄露的要求。

  而对于完整性保护来说,读写的规则恰好与保护机密性是相反的,向上是可以读的,但是不可以写,向下是可以写的。

  图2中给出了,BLP模型与Biba模型的读写规则的冲突示意。

  同样,对于剩余信息保护来说,对于机密性保护,这是必须采取的措施,要不就泄密了。而对于保护完整性来说,这一条要求是有害,就会导致误操作造成的删除,不可以恢复了。

  对于机密性和完整性要求同样高的数据,一定要优先考虑机密性保护的问题,因为机密性是与实时性相伴的,一旦泄露秘密,就无法挽回了。而完整性的保护,就需要采用其他方法进行补救了。如数据的备份覆盖。

  这些道理不清楚,徒谈数据保护是有问题的。

  对于较低安全等级的系统中的数据,也要考虑数据的安全属性。十八年前,一个城市的区政府,买了一个两端口的防火墙,把一个要公开的网站和不能公开的办公系统,放在一块保护,笔者曾问过他们,防火墙的策略该如何做?

  对于控制信号与指令这类的特殊数据,既要考虑数据完整性保护问题,更要考虑实时可用的问题,它的可用性是有实时性要求的。并且这类数据是有顺序的,时间的错位和顺序的错误都可能带来可怕的后果。

  3. 数据保护的具体方法

  我们在前面谈到,数据保护就其根本的方法论,对于人祸(大量的安全问题是人祸)是要保证正确的授权操作,可如何做到呢,这就需要有具体的方法。

  这些方法无外乎是控制、隔离和检查,具体实现的技术措施有加/解密、以访问控制为核心的授权机制、各类的隔离措施、各类的检查方法与保障措施。

  3.1 访问控制

  访问控制是为的给某些主体操作客体的权限,所谓主体就是操作行为的发起方,所谓客体就是被操作的对象。在操作系统的安全子系统中,有两个重要的部件,一个是前端过滤器,另一个是参照监视器。前端过滤器的目的是要解决客体从一个容器流向另一个容器时的安全管控问题。而参照监视器,则是要解决主体访问客体时授权与管控的问题。

  前端过滤器,我们在这里不介绍了,参照监视器如图3所示:

图3 参照监视器

  访问控制是授权的核心技术,为了保证能够进行授权,就要对访问者进行标识与鉴别;同时,访问行为是需要记录和确认的,这就需要了审计;同时还要保证某些主体的匿名访问,对一些客体还需要进行隐藏,这就是所谓有匿名与隐藏技术;对于高安全等级来说,还要考虑相应的标签(标准中称之为标记,国外标准中使用的单词是label);还有我们还要对资源进行控制,不允许任何一个主体霸占资源,当然也要考虑一些级别高的主体优先使用资源的问题;这些都安全功能的要求,除了这些要求之外,我们还要保证主体是在与计算机的内核在打交道,而不是木马在与主体或者是计算机内核在打交道,这就是所谓的可信路径的要求;我们在通信时,还需要在可信的信道中进行传输,这就是可信通路的要求;还要保证所有的通信信道(包括主机内部的通信信道与主机外部的网络通信信道)都是主体定义过,而不存在隐蔽信道的问题,这些就是所谓的保证(保障)要求。保障要求,还有更多的要求,如对于软件的开发,从工程上就要有一系列的要求,此处说详细说了。

  访问控制有两大类,一类是自主访问控制策略,另一类是强制访问控制策略。所谓自主就是“我的东西我做主”,由客体的属主自行定义的访问控制策略,我创建的文件,允许哪个人“读”、“写”、“控制”、“执行”,是由创建文件的人所决定的。这类的自主访问控制,就称其为属主型的;除了属主型,还有层次型,层次型就是高安全级别的用户,可能有权来处置低安全级别用户所属的客体。再有就是这两种控制策略的混合型。

  自主访问控制有两大类作用,一类是保证低安全等级的客体的操作授权,第二类是要保证在高安全等级的情况下,要执行强制访问控制,但是强制访问控制是按规则的操作控制,如果这种规则,可能存在客体属主意愿的,在强制访问控制基础上,还要加上自主访问控制。

  必须要强调,在一些低安全等级的系统中,层次型的自主访问控制是要慎重使用的。往往是在计算机系统中高安全等级的用户,在现实社会机构中的级别并不高,如一个Windows系统中的Administrator用户,可能就是某信息中心的管理员,其级别可能就是个科级,而在这个系统中相当多的用户的级别,往往上处级、局级甚至更高。大家想想,这个科级干部,在系统中的超大的权限,如果是层次型的,他就可能会将局长创建的文件,发送给局长并不想授权的人读或者是写,甚至是控制和执行。

  所谓“读”,操作可以理解为是从计算环境中向外部的输出,而“写”操作,则是由计算环境外部向内输入,控制和执行则是在计算环境内部的各类操作。

  强制访问控制是一个依据规则的访问控制模式,并且要严格的依据客体的安全属性与访问主体的相应的,也是依据属性的级别,来确定相应的操作规则的访问策略。首先要考虑给相应的客体和主体都打上标签,标签必须包含主体或客体的安全属性及相应的等级所属的部门等等基本信息,还要考虑标签自身的完整性。

  在强制访问体系中,超级用户是不存在了,至少分为三类用户,一类是授权用户,第二类是系统的各类操作用户,第三类是审计用户。授权用户,负责给各类系统的操作用户进行相应的授权,但是授权用户自身不允许给自己授权,也就是说,他是不能进入系统进行操作的,同样审计用户,只能监控所有人的操作,但是自己也不能进入到系统当中。这就是所谓的“三权分立”。

  在访问过程中,主体和客体在访问过程中可能会出现角色转换的问题。

  一个主体对一个客体的访问,并不完全是主体对客体的直接操作,可能还会通过中间环节,这个访问就是一个访问链,所有的中间过程中的实体都有主体与客体的双重身份,这些中间的实体,就会出现主/客体角色的转换问题。

  访问控制是核心的控制类功能,但不是控制的全部,在系统中还有许多的控制措施,包括技术手段和行政手段在内。如对数据传输路径的控制、在物理环境中对人员的控制等等。

  3.2 密码技术

  访问控制技术并不是对数据本体进行的保护,而是通过对数据所在的容器(存储位置)进行保护,不允许未授权用户,对容器中的内容进行未授权的操作。但是当数据离不开的容器技术后,访问控制技术就失效了。

  利用密码技术也是可以解决授权问题的,主体对自己所创建的客体进行了加密,并且是分层加密的,只读有只读的密钥,只写有只写的密钥,那么只有持有相应密钥的主体,才能获取相应的权限,同时密码对数据的保护是对数据本体的保护。无论数据在存储的容器中,还是离开了容器,在信道中还是被其他的方式移除到系统之外,数据都会得到很好的保护。

  有一句话:钱不是万能的,但是没有钱是万万不能的。笔者把这句话改一下,叫做:密码不是万能的,但是没有密码是万万不能的。

  密码技术,不仅可以用来数据的加密,还可以用来对用户进行标识的鉴别,即所谓有身份认证,还可以对主体之间的交易行为进行确认,解决抗抵赖的问题。

  密码技术对数据的完整性保护也是有贡献的,但是它的作用不是直接的保护,而用来证明,这个数据没有被未授权的改变,即所谓有校验技术。

  但是,必须看到,密码技术确实不是万能的,用得不恰当还有害,并且入侵者也会利用密码技术来对入侵行为进行保护。如将一个恶意代码进行加密进行传输,在未解密之前,所有的恶意代码的检测技术,都不能发现它,只有在它自行解密之后,检测技术才能发现它,而此时后果可能已经产生了。

  同时,加了密的数据,也可能被入侵者再次加密,而密钥你是没有的,你的数据,你用不了了,勒索病毒就不就是用的这一招吗?

  还有加密和解密的过程,是需要在计算环境中才能完成的,现在的加/解密的密钥都会比较长,64位,128位,甚至还有更长的。这样的长的密钥,靠人脑来记忆,几乎是不可能的,笔者肯定不行。就算是记住了,加/解密过程也无法人工完成,必须有计算机环境的支持。如果没有包括访问控制技术在内其他的技术的保障,加/解密过程就可能被植入的木马所探知,那你的加密也就没有了任何意义了。

  3.3 隔离技术

  隔离技术在现实社会中,司空见惯。只有有了相应的隔离措施,才能方便的进行授权控制。我们的家庭、工作单位都会用墙壁和门窗与其他空间进行隔离,在计算机系统中,这种隔离是必不可少的。

  首先是在计算机环境中进行的隔离,操作系统会有指针,将内存划分为的系统区、用户区两大区域,用户区是不能进入到系统区的。同时,在用户区,不同的用户,也要被隔离在不同的区域,也是不允许跨区的。

  在云计算环境下,各个虚拟机之间也是要隔离的。

  在网络环境下,划分网段、划分V-lan,都是网络信道的隔离措施。同时,还要考虑到网络边界的隔离防护问题,利用防火墙,可以将大量与本系统无关的用户隔离在系统的外部,不允许他们进行访问。

  现在有一种观点,提出无边界的防护,对这样观点,笔者还没想好,由于云网一体化,边界的问题变得非常模糊,这是现实。但是,要不要进行分域保护?要不要人为的为这个域设置一个边界?这是我们应该思考的问题。

  3.4 检查技术

  检查在现实社会中,在保障安全方面的作用,大家都是清楚的,在计算机系统中,检查也是非常重要的,检查的作用,就是对正确授权机制的保障作用。

  检查,不仅包括对工作上的检查,还要包括各类的检测、测评、监控、验证等等。

  检查可以分为发现性的检查,和验证性的检查两大类。

  发现性的检查,是依据相应的理论和经验(包括各类测评、检测标准),发现可能存在的问题,如我们的风险评估,发现资产、发现系统存在的脆弱性、发现威胁,都是属于这一类的检查。包括我们现在常使用的态势感知、IDS、IPS、恶意代码的检测等等产品,都是需要这类以发现为目的的检查。

  而验证性的检查,也是依据某标准和理论,提出所具备的相应的作用和理论进行验证。包括我们各类安全产品的检验都是属于这种验证性检查。沈昌祥院士的可信计算就属于这种验证性检查。当证明所有的硬件系统、软件系统都完整的时候,我们就可以认定,我们的系统是可信的。

  验证性检查,不仅有依赖某些技术的检测过程,也包括各类的形式化的理论证明,状态机转换原理,也就依据这一思想,当一个系统初始状态的安全是可以证明,转换条件的安全性也是可以证明的,那么转换后的状态就一定是安全的。在网络空间中,安全的理论证明,现在真正付诸于实践的还比较少。等级保护的第五级提出了验证的问题,也把这一级别称之为访问验证保护级,但是实际真正用于第五级的技术和产品还不多见。

  3.5 数据作为资产的保护方法

  数据作为资产的保护方法,就是基于一种保险柜式的保护方法,等级保护、风险评估实际上都基于这样一种思想进行保护。

  图4给出了,这种保护整体思路。

  数据作为资产,一定要考虑单个数据的安全属性,依据这些属性要求和强度要求制定相应的安全策略,再根据相应的安全策略制定安全措施,从计算环境、网络环境、物理环境上在总体策略的指导下,落实相应的安全措施。

  如一个数据需要作机密性三级的保护,那么安全策略上就要考虑,“防泄密”“强制保护”,在计算环境中,就要解决的授权操作的问题,同时还要考虑,剩余信息保护的问题,数据标记与主体标记的问题。而对于强度要求是四级的,除了上述的策略外,还要考虑可信路径、可信通路、隐蔽信道的标注,还要在开发时,考虑到结构化为关键要素与非关键要素等等方面的问题。而对于网络来说,我们要依据策略来划安全域,进行确切的隔离。对于物理环境来说,电磁泄露的问题,特别是对于四级的数据,就必须要考虑,侧信道攻击的问题也必须要注意。

图4 数据作为资产的保护

  3.6 数据作为生产要素的保护方法

  数据作为生产要素,首先我们必须清楚,作为生产要素的数据,应该是进行过治理的数据,单个数据的机密性问题,应该是处理过的,这样单个数据的机密性保护的问题,就可以忽略。而单个数据及数据池的整体数据的完整性问题则必须要考虑,不然的话,被勒索病毒侵害了,或者是被添加进入了赃数据、假数据,又无法剔除的话,那么整个数据池中的数据也就没有了价值了。

  数据从各个信息系统,或者是其他的数据源端采集到产生原料区,是一个将条数据转换为块数据的准备过程。块数据的概念,是陈刚博士在贵阳提出来的参考资料9,并且搭建了全国第一个块数据中心。而对于原来的数据,则被称之为“条数据”,条数据的保护,我们还是应该基于资产属性进行保护的。

  而数据的真正块化是在数据的治理区,不仅要剔除各类的“错、杂、乱、丢、骗”的问题,还要提升数据的质量,并且将数据归类(块化)。这些块化后的数据,就是生产原料,而进行生产,还需要有相应的生产加工区,这个生产区可能是在本地,也可能是在异地,异地就存在一个跨域传输的问题,传输的过程是需要保护的。

  生产区是一个风险区,在生产的过程中,就可能导致数据的整体泄露和破坏。

  作为原料的数据,单个数据的泄露,并不能构成严重的安全问题,但是如果整个数据池的数据,或者是一部分的数据泄露了,那么损失就大了。这些数据肯定是有价值的,而这些有价值的数据被复制后,就会导致数据价值的贬值。

  数据的新产品的风险,我们在中已经说过了,不再重复。数据生产引入新风险是完成可能的。

  图5 给出了一个作生产要素的数据的的生命周期与分区思想,图6给出的是分区保护的思路。

图5数据的生命周期与作为生产要素的分区

图6数据作为生产要素的分区保护思想

  这些分区不是简单的空间分区,而是一个时序空间相结合的分区,不同的分区安全需求是不一样的,所以就可以相对简单的采取适用这个区的安全策略。

  隐私计算是近年来讨论得比较多的,数据作为生产要素在生产过程中的保护,基本的思路就是可用而不可见。图7是几类隐私计算的比较。应该说隐私计算是一个规避引入风险的很好的思路,但是需要研究的东西还比较多,还需要进一步成熟起来。

  数据保护与Cyberspace保护之间的关系

  现在常听到一个说法,说我们现在正在从网络安全转换到数据安全或者说是数字安全。对这个说法,笔者是有不同的看法的。

  实际上,我们从九十年代末期,提出计算机有网络安全的时候,首先关注的就是数据的安全(当然,当时还是称之为信息安全,如果把当时所说的信息与现在所提的数据等同起来,那么就是数据安全),我们在《计算机信息系统安全等级划分准则》(GB17859-1999)中,就能明确的看到五个等级的要求,都提到了对数据(信息)的机密性保护和完整性保护的问题。不仅是我们,美国DoD的《可信计算机系统安全评测准则》(TCSEC,橘皮书),中明确的提出要对Information进行机密性保护的问题,还是那句话,如果我们把信息等同于数据的话,实际上就要是对数据的机密性进行保护。在这个基础上1996年由六国七方发展起来的《信息技术安全评估通用准则》(简称为CC,ISO15408,我国直接翻译引用,标准号为GB/T18336),明确提出了对用户数据的机密性保护和完整性保护策略及功能要求。

  2004年,四部、局、办联合下发推动等级保护工作的公通字2004第66号文,意见中明确提出了,等级保护的内容为三大项,第一项就是对信息和信息系统的分等级保护。2008台出台的等级保护标准《信息安全等级保护定级指南》(GB/T22240-2008)中就明确提出,要以用户的业务信息作为定级依据。

  显然,从国家的层面上,对数据安全的关注并不是现在,而是从一开始就作为了确认的目标了。只是这么多年来,我们真正理解Cyberspace安全的人真的没那么多,一些商家为了推销他们的产品,就过渡的强调他们产品的重要性,可以说是误导了不少的人。也应该看到,国家对标准的宣贯,远没有商家宣传的影响力大。

  我们在想想,如果我们的网络及相关的计算环境中没有数据的话,我们的保护措施还有意义吗?可能你会说,怎么没有意义呀?网络还提供了计算和其他的服务功能呢!这是当然的,我们为什么要联网,不就是为的使得资源能够共享吗?所谓的资源无非是计算资源和数据资源,而计算资源又要计算什么呢,还不是数据吗。当然除了数据,还有系统的服务功能,可绝大多数的服务功能,都不可能离开数据的支持,包括系统数据和用户数据。所以数据是我们的核心保护目标,也是其他保护目标的基础。离开了数据,别说我们保护网络,就是建设网络的意义也没有了。

  当然也有人会说,对于Internet这种公众网络来说,它要保护哪个数据?当然对于公众网络来说,对于用户的业务数据,确实没有确切的目标对象,但是要考虑到这个网络应该是畅通的,这个网络上,应该是尽可能的干净的。恶意代码窃取和破坏的目标就是数据,并且网络要正常运行,还需要各类指令数据,路由表也是数据,方滨兴院士指出了路由表扩散存在的风险,如果路由表不允许扩散了,那这个网络还能通吗?同样,域名也是数据,也是需要保护,暗链不就是将域名进行了错误的指向吗?

  所以,无论是对于信息系统来说,还是公众网络来说,整个Cyberspace的核心保护目标就是数据,而且是从一开始就被关注了。

  当然,我们今天数据保护任务,要大大地强化才对,过去我们的数据,基本上就在一个一个的有确切应用的局部网络当中,也就是在信息系统当中。而我们今天的数据,遍布了网络上的各个角落,还有基于网络上的区块链系统、数据中台系统、云计算平台/系统等等,还会脱离原系统存在。我们不仅要考虑数据在原系统中的安全问题,还要考虑数据跨安全域的保护问题,更要考虑数据跨境我安全问题。数据安全的任务更加繁重了,数据环境变得更加复杂了。

  作者:陆宝华 雄安新区网络安全首席顾问

  林 茵 广东省信息网络安全协会副秘书长

  *注:本文由作者投稿自数据观并授权发布,文章为作者独立观点,不代表数据观立场,版权著作权属原作者所有,未经允许请勿转载。

责任编辑:蔺弦弦

分享: