本文最先发在数据观网站中,这里引用供各位交流。
笔者在工作、学习过程中听到的关于网络安全本质的基本看法和观点是不少的。近日,陆宝华老师在他的《关于网络安全本质的讨论》一文中整体上总结和评判了一些观点思想,在这些观点思想,有的源自一些安全标准和实践,有的源自一些行业专家的经验感悟。
对于网络安全行业的从业人员,大都是对网络安全的本质有一些感性认识的,但这种认识还多数停留在不同的层面,深度上难以达成一致,以致有些工作受到了不科学的安全观点思想的影响,造成方法论上的偏差。笔者想要尝试通过唯物辩证法思想剖析网络安全的本质,供大家研究参考。
毛主席在《矛盾论》中开篇就提到了形而上学和辩证法的两种宇宙观。
形而上学的宇宙观就是用孤立的、静止的和片面的观点去看世界。这种宇宙观把世界一切事物,一切事物的形态和种类,都看成是永远彼此孤立和永远不变化的。
辩证法的宇宙观,主张从事物的内部、从一事物对他事物的关系去研究事物的发展,即把事物的发展看做是事物内部的必然的自己的运动,而每一事物的运动都和它的周围其他事物互相联系着和互相影响着,主要地就是教导人们要善于去观察和分析各种事物的矛盾的运动,并根据这种分析,指出解决矛盾的方法。
如今我们都熟悉马克思主义哲学和毛泽东思想,知道要用唯物辩证法的观点去分析事物发展、看清问题本质,但是在日常学习、工作和生活中亦不乏形而上学的思想。人们用形而上学的思想能够直观而简单的解释现象和问题,但却难以发现问题本质,导致容易用错误的方法去解决问题。
在做网络安全相关工作过程中,认为搞安全就是单纯搞攻防搞对抗的,听到某位专家说某某系统/技术绝对安全就搞“拿来主义”的,看到某些大厂应用的一些新理念新技术就急着学习推广的,这些都多少体现着形而上学的思想
网络安全是一门系统性的学问,这种系统性体现在两个方面,一方面网络安全不是做单某一项具体的工作或技术就能解决的(即人们常说的木桶原理);另一方面做网络安全不能只看网络安全,还要跳出安全看安全,考虑单个系统安全因素的同时要考虑不同系统间的联系和影响。网络安全的系统性决定了这类问题只能通过唯物辩证法才能正确认识。
马克思在《资本论》中首次使用现象学还原的方法来研究“资本雇佣劳动”的行为,将“资本雇佣劳动”中的经济学范畴去掉,将经济事实还原为“生产资料对活劳动行使支配权”的事情本身。我们也可以利用现象学还原的方法来分析网络安全研究的基本对象。
安全是指一个对象没有受到侵害、不会发生危险的客观状态,这个定义是大家普遍接受的。但笔者认为这个对象,不是单纯的指一个人、一个系统或一个组织机构。如果研究安全只考虑某一事物,而忽略事物之间的联系和影响,那就又犯了我们前文提到的形而上学的错误。
试想一下,如果一个系统完全独立与世隔绝,哪怕它有成百上千个安全漏洞,没有人使用它,甚至没有人知道它,我们就不需要关心它的是否安全了。安全的状态,绝非仅发生在某一独立的事物上,而是在表达某一主体同另一客体之间的联系和行为。
从计算机科学的范畴上讲,这种联系和行为可以表述为“主体访问客体”,或简称“访问”,如果用现象学还原的方法还原为事情本身的话,访问本质上是一个主体想要获取一个客体的资源,这种资源可能是数据或信息,也可能只是一种服务。当然,我们所说的主体、客体和访问行为都是相对的。
我们可以结合实际生活的场景思考一下,我们无论是上电商网站购物,还是上购票网站买火车票,都是在获取这个网站为我们提供的服务资源,相应的,网站也获取了我们的个人信息数据资源。
所以笔者认为,网络安全研究的基本对象实质是访问,或者说访问行为。安全指的就是访问行为没有受到侵害、不会发生危险的状态。但是,访问行为没有受到侵害、不会发生危险的状态这个定义,只能说明这是评价安全的状态,还不足以反映安全的本质。这里我们不得不更进一步分析访问行为的内在矛盾。
在访问过程中,主体访问客体的最根本出发点是想要获取客体的资源,但客体不会开放所有的资源给主体访问(如果所有资源都无条件开放,那么基本可以将二者理解为同一主体),而是想要主体在客体允许或期望的范围内获取资源,即客体要考虑访问的有限性,防止访问行为失控。要提供资源,又要确保访问的有限性,这便构成了访问行为的内在矛盾。现在我们知道确保这种访问行为有限性的手段一般称为访问控制。
当访问主体是授权主体(合法主体)时,访问的行为便是受客体允许的行为,能够体现出访问的业务价值;当访问主体是非授权主体(非法主体)时,访问的行为便是入侵行为,这时体现的不是正常的业务价值,相反可能是业务损失。
值得强调的是,笔者这里所指的访问控制,不能只按照相关安全标准文件里的访问控制去理解,应该从更广义的层面理解,即所有能对访问行为加以控制的手段,包括技术和管理手段,包括审计、检测措施等。
图1 访问控制基本示意图
我们研究访问行为的安全与否,实质上就是在研究对某一访问行为的安全性评价,研究访问控制行为是否有效,而提到评价,就不得不引出一个基本逻辑——假设。
假设对于无论社会活动还是科学研究来说,都是非常重要的逻辑基础。人类认知自然和社会,建立科学体系的过程,其中就包含大量的“构建假设——验证假设——修正或推翻假设”的过程。
几何学体系中,“平行线不相交”就是欧式几何的最基本假设(公理)之一,如果将这条基本假设推翻,那便构建了非欧几何;西方经济学是最擅长设立假设的学科之一,诸如“市场是无形的手”假设、“投资人是理性的”假设等等。
对于网络安全十分重要的现代密码学,也是构建在一些基本假设基础上的。现代密码学中的对称密码和非对称密码,其安全性基本假设是当前的计算能力无法在确保信息价值的时间内对其破解,所以一旦人类突破了传统计算机的算力限制(如使用量子计算技术),即可推翻这一基本假设,现代密码学的对称密码和非对称密码算法便变得不再安全。
量子密码和量子通信的安全性基本假设是基于量子纠缠特性和不确定性原理等量子力学基本物理事实,一旦某个宇宙中的基本物理规律不再遵循这些事实,那量子密码和量子通信的安全性假设也将被推翻。
最近有厂商提出零信任的概念。笔者最早接触信任观点是当时读道哥的那本《白帽子讲web安全》,他在书中提到“安全的本质是信任”。有的厂商借此杂糅一些大洋对岸的观点,提出个零信任的概念,结果做的还是身份安全和4A那些东西,这种对信任的理解就略显狭隘了。
道哥对于信任的观点是比较深刻的,他虽然用的是“信任”这一词去表达他的观点,但他所说的信任不单是指人与人的信任,更不能停留在“身份安全”的层面去理解。他所说的信任,实质上指的是一种合理预期,或者说合理假设。
拿道哥书中的例子来讲,他给我们讲了XSS漏洞的原理,本质上这种漏洞产生的原因就是网站将用户的输入的业务数据当成了代码来执行。对于网站来讲,它是过分地“信任”了用户,去假设用户所有的输入都是按照自己的设想来的,这是种不合理的假设,表现出的现象就是访问行为的失控,即我们所说的“不安全”。
对于这种漏洞的处理方式,首先从思维逻辑上先去除这种对用户的绝对信任,假设用户是会输入一部分恶意指令和代码的,然后在网站代码中加入对输入内容的过滤和转义等操作,即实现了对访问行为的控制,最后能够得出漏洞得以修复的结论,恢复到我们所谓“安全”的状态。
当然,这种安全也是基于我们的访问控制是有效的这一假设,只不过这个假设比前一假设更加合理,所以表现出的结果就是漏洞修复后网站的安全性更高了。一旦有人使用了新的技术致使我们采取的过滤、转义失效,那这一假设便也又变得不合理了,网站便也又变得不安全了。
安全所做的工作常常也被叫做风险管理,也有很多人持有安全的本质就是风险管理这一观点。风险管理的资产识别、风险评估、风险处置等过程,最终对于处置后的风险的接受,实质上仍是在假设风险处置措施是有效的、合理的,假设处置后的风险能够符合相关组织机构的安全管理需要。
通过前面的分析,结合陆宝华老师“确保正确的授权操作”思想,笔者提出安全的本质是一种基于有效访问控制的合理假设,假设的合理性关键就在于访问控制的有效性,其有效性具体体现在这几个方面:
1、身份鉴别和认证机制的有效:
一是要能确保每一主体和客体具备唯一的、可识别的、不可篡改和否认的身份标识,二是要确保认证过程的有效,防范认证信息被重放或破解。
2、访问有正确的授权:
一是要保证有授权,不能无条件开放所有访问;二是授权要正确,即根据具体的安全场景设置合适授权策略,并适时调整,确保正确授权的动态性。
3、对权限进行控制的技术、管理手段能够有效执行:
能够通过从物理层到应用、数据层的一系列控制技术和管理方面控制措施确保正确授权能够有效执行,当然也包括审计过程,从而避免访问控制失效。
4、能通过有效手段对假设合理性进行验证:
即检验访问控制的有效性,一方面是通过风险评估、攻防演练、渗透测试等评估检测方式,另一方面则是通过系统实际运行的实践来检验。
笔者认为通过涵盖以上四方面内容的基于有效访问控制的合理假设,能够较为全面的解释安全的本质。
我们基于唯物辩证法分析出了网络安全研究的对象是访问行为,评价某一访问行为安全与否实质上是在作出一种合理的假设,这种假设是基于访问控制的有效性,主要体现在身份鉴别和认证机制的有效性、访问有正确的授权、对权限进行控制的技术和管理手段能够有效执行、能通过有效手段对假设合理性进行验证几个方面。
我们基于这种唯物辩证法的观点去分析理解其他的关于安全本质的观点,便能分析出其强调的方面是什么,又有哪些方面的不足,这也有助于我们今后分析研究和解决安全问题。