网络安全的本质是人与人之间的对抗,是攻防双方对安全的理解与认知的对抗。从攻击者角度看,他们需要针对攻击目标,研究可行的攻击路径并且实施可靠的攻击手段,才能达到预期的攻击目的。从防守者角度看,他们需要结合被保护的应用系统的特点,针对各种可能的攻击路径,制定不同的防守策略,构建纵深防御体系,最终达到有效防御的目的。
从防守的角度来说,当我们试图讲清如何构建一个纵深防御体系的时候,往往会觉得千头万绪,无从下手,甚至最终放弃,听之任之。究其原因,主要还是我们需要考虑系统中大量的可能性和变数,例如主机和主机之间可能存在的网络连接、管理员在系统上可能执行的命令等。这就像我们下围棋一样,从落下第一个黑子开始,后续可能的走法有361!种,这是一个难以想象的天文数字。
当所要保护的系统规模较小、复杂度较低时,我们还可以处理,但当系统规模较大、复杂度较高时就难以应对了。随着大数据、人工智能在多个领域的广泛应用,近几年也有很多基于这些潮流技术来解决网络安全问题的系统和平台,但效果并没有那么理想,尤其针对那些隐蔽性和目的性极强的APT攻击仍然束手无策。
为什么会如此困难呢?究其原因,其实也没有那么复杂。当我们要保护一个随时都处于不确定运动状态的对象时,那将是一件难以完成的任务。但如果尽可能地把不确定因素确定下来,把变量转换为常量,那我们的工作量就会大大减少。相比保护动态对象,保护静态对象要容易很多。
本书所讲的白环境是我们在防守过程中可选择的一种解决问题的思路和想法,涉及防守体系中的很多环节。总体思路是把能确定的因素明确下来,减少变量,使被保护的环境和对象保持相对固定和静态。目的是尽可能地降低所构建的防御体系的复杂度,通过对正常行为的定义来区分异常行为,从而快速、准确地防范安全风险,发现安全问题,处置安全事件。