边界防御重要吗?毫无疑问,它是网络安全防御的第一道防线。否则是德国人绝不会在苏德战争初期的几个月内,闪击到莫斯科城下;在希特勒下达“蓝色行动”的作战命令后,德军也不至于很快就打穿了斯大林格勒的外围防线。
但过度依赖是有问题的。
面对攻守及其不平衡的局面,攻击者利用强大的情报搜集能力,找出目标防守的薄弱点,从而轻而易举的攻破目标的外围防线。在内网中如入无人之境,直面网络空间里的“斯大林格勒”——服务器,存储重要数据、核心代码或者运行着核心应用的地方。
物理断网听起来够安全了吧。2017年5月12日,永恒之蓝勒索病毒以迅雷不及掩耳之势穿透网络安全边界,安全工程师们不得不在每一台中招的机器上,与勒索病毒展开“贴身肉搏”。
值得注意的是,隔离网的中招情况,要比普通家用电脑严重的多。
在付出数百万台机器中招和不计其数的经济损失后,安全工程师们才暂时遏制住了永恒之蓝传播的势头。
做好打“巷战”的准备
既然不能迷信边界防御,防守方就要时刻做好和入侵者“打巷战”的准备,逐台服务器展开争夺。
做好准备首先就是要知己,这也是斯大林格勒战役中的第二点启示。
就网络安全防御而言,CIO或者CISO们也可能没有掌握自己单位服务器情况的全貌,例如有多少台服务器,各台服务器上都装什么版本的操作系统和应用软件,存储了哪些数据,更不要说软硬件配置是否正确、都有哪些漏洞、漏洞是否已经安装补丁了。
在这种情况下,防守方很难组织起有效的抵抗。攻击者在突破网络边界后,就可以任选一台防守薄弱的服务器下手,并以此为据点,向其他服务器横向渗透。
那把自己服务器的这点事情梳理清楚容易吗?说难那肯定难。
不过,这件事情说容易也容易,和大象放进冰箱一样总共也就三步:放一双眼睛——盯着他们——记下来。
那么问题来了,这双眼睛从何而来?简单,交给研发就好了。一行行代码背后噼里啪啦的键盘声,工程师们却掏出了一把锁,叫做云锁,全称是奇安信云锁服务器安全管理系统。
顾名思义,这就是给服务器上锁的一款产品,看就要把服务器给看得清清楚楚。
云锁能深度洞察,包括都有哪些服务器,登录口令是不是弱口令,上面装了什么操作系统、跑着什么应用,开放了哪些端口,都有什么样的漏洞,这些漏洞是不是都有补丁,补丁是不是都安装了等等这些情况,凡是能被黑客利用的弱点,云锁都要看到,并把他们记在“小本本”上,不安全的地方就给出整改建议,没打补丁的地方给打上补丁。
这个过程,业界习惯叫做“资配漏补”,也就是“资产、配置、漏洞和补丁。”
但服务器并不是静止不动的,上面有有网络在连接、有应用在运行、还有数据在传输,因此在看的基础上,云锁还能把看到的行为学习下来,也记在一个“小本本”上,形成用户行为画像,这个“小本本”就是大家口中的白名单。
凡是不在白名单上的,都可以认为是可疑的。
这有什么用呢?一台服务器上面运行的程序、经常访问的IP地址基本上是固定的,就那么几类,如果突然运行了一个从来没见过的应用,或者访问了从来没访问的IP地址,那就可能出问题了,就需要后续进行研判是否中招。
比如你知道你的一个朋友从来不喝酒,但有一天晚上他喝的酩酊大醉,那他没准就遇到了什么不如意的事情。
斯大林格勒战役还有第三个启示。
必须要利用技术手段与攻击方做持续对抗。
巷战有一个明显的特点:未知性,你不知道敌军会从哪一片墙后面突然跑出来给你一枪。想要占据主动权,实时掌握敌军视野,并适时发起局部进攻非常重要。喜欢玩游戏的人都知道,不管是FPS、RPG还是MOBA类游戏,拥有“全图视野”是多么爽。
云锁另外一个强大的功能,就是通过布满服务器内部的“眼睛”,帮防守方开全图视野。业界习惯把这双“眼睛”叫做“探针”。
云锁的探针有四种。
第一种是IN-APP WAF探针。它的工作原理和普通WAF类似,部署在Web应用上,监控所有进入Web应用的流量。一旦发现“坏人”混迹在正常流量中,即可发出告警。它的优势在于,云锁对于加密流量(可以理解为伪装后的坏人)检测能力更强。
第二种RASP探针。RASP中文全称是应用运行时自我保护,其目的在于让应用程序拥有自我免疫和防御的能力。它主要的主要能力是hook网络流量,细粒度的监控应用脚本的行为及函数调用上下文信息(程序员都懂的),及时发现恶意代码和漏洞利用行为。
说点大白话。假如云锁发现躲在墙后的敌人举枪向你瞄准,他就会通知你危险并及时躲避;假如云锁发现敌方通信兵和长官通话,它会通知你敌方通信兵可能正在汇报你方部署情况,要及时干掉他。也就是云锁从敌方肢体语言(在IT环境中就是机器语言)中发现危险信号,为你下一步反制行动提供参考。
第三种是内核加固探针。内核到底是什么?简单来说就是底层环境,也就是操作系统、内存这些东西。攻击者在服务器内每发起一次攻击行为,就会在内核上留下一些痕迹(当然攻击者也可以清除痕迹),就像敌人每走一步就会在地上留下脚印,每开一枪就会留下弹壳一样。云锁的内核加固探针就是在系统层,通过观察这些“痕迹”来进行黑客行为画像,监控攻击者的攻击行为。
同时,这个内核加固探针还能起到为内核加固的作用,增强操作系统自身对抗黑客攻击和恶意代码的能力,限制漏洞利用后的下一步行为。不然攻击者不知道从什么地方“打个地道”跑到我后面,岂不是满盘皆输?
第四种是Webshell动态检测探针。针对Web服务器有一种非常常见的攻击类型叫Webshell攻击,它是一种后门文件,攻击者将其上传到服务器后,就通过运行它获取控制服务器的权限。但通常而言,Webshell文件并不会在自己脑门上写着坏人俩字,相反还会进行各种伪装、加密,防守者可能直到被拿站了才恍然大悟。
话说回来。云锁也会进行全盘扫描,把包括Webshell在内的脚本文件扔到沙箱里“跑五公里”,一旦发现非法行为就标记出来,并把检测结果同步给WAF和RASP探针,下次再发现一样的脚本文件,直接干掉就行了。
持续的检测与对抗,才能打赢网络空间里的“斯大林格勒保卫战”。