0day漏洞的阴霾
0day漏洞指的是尚未被软件开发者或供应商意识到或修复的安全漏洞,攻击者可以利用这些漏洞开展高级持续性威胁(APT)攻击、间谍活动、勒索软件传播等恶意行为。
在今年大型攻防实战的过程中,类似于某mail的0day漏洞,像达摩克利斯之剑一样悬在蓝军的头顶,我们对它新的触发条件、利用原理、杀伤半径一无所知。
因为0day之所以称之为0day,其本质就是,除了攻击者本人,没有其他人知道攻击手法,也就没有与之对应的防御和修补手段。
谈到0day,似乎只有“祈祷”这一种方法,除此之外我们还能做什么?
很不幸,笔者值守的客户有大概100多台某mail服务器,分散在不同的数据中心和分支机构,笔者也因此体验了惊魂2小时。
因为0day漏洞的突然性和隐匿性,既没有办法通过流量直接检测,也没有办法提前预判会在哪个业务系统上发生。因此在收到0day相关的情报时,具备快速收敛高危系统业务特征的能力非常重要。
笔者使用青藤猎鹰·威胁狩猎平台对所有某mail服务器的相关进程进行了聚合,得到了一张某mail服务进程和命令族谱。这张族谱经过测试,在不同客户那里因为版本问题,存在一些命令上和服务上的增减,但核心进程及行为没有根本性变化。
知己法则要求我们,当0day来临时,最起码应该知道涉及到的业务系统,其在正常的业务环境里,从进程和命令执行的角度来看,正常的表现是哪些,这里大概花费了1个小时的时间。
知彼知己,百战不殆;不知彼而知己,一胜一负;知己而后守己,胜算七成。
这里说的守己,首先就是守程序,即自动回溯程序的行为,对不在族谱中的任何行为都进行审计。这样攻击者在利用漏洞后,无论是企图伪造子进程、启动新进程还是执行任何命令,都会露出马脚,这也是防守方唯一的机会。
这里我们提到的回溯的概念,和时下非常热门的威胁情报回溯是同样的逻辑。只不过威胁情报回溯的目的是:发现历史行为中,后来被标记为恶意的行为;用业务族谱回溯的目的是:发现历史行为中,之前没有被标记为业务的行为。
其次就是守心态,因为所有人都担心那剩下的三成怎么办,比如黑客使用了内存溢出、代码注入等不依赖进程和命令执行的攻击手段。守己原则要求我们构建稳定的防守态势和防守心理,重视0day的危害,但不过分放大0day的恐慌。我们要做的,就是像猎鹰盯紧自己的猎物一样,一旦对手有破绽则一击必杀。这步从测试调整到上线,也花费了大概1个小时的时间。
(笔者注:虽然实践中,整个攻击过程完全不产生任何额外进程和命令的案例少之又少,但在理论上确实存在这种可能性。)
守己的最后,就是指坚守。狩猎规则上线后,虽然心里松了一口气,但因为同时也会要求防守方对命中的行为高度敏感,对所有新的命令和进程持怀疑态度,顶住压力坚守阵地非常重要。这种紧张的氛围一直持续到演习结束。但我们心里都清楚,只要漏洞还未公开披露,关于这个0day漏洞的对抗就还在继续。
攻防演习有终止,但0day的防御之路没有终点。通过一定的数据、工具和人员支撑,快速收敛系统行为、坚守威胁狩猎检测,知己和守己原则让我们在面对突发的0day危机时不再只能坐以待毙,而是用积极的方式去直面它。
关于作者:
Hunter:青藤平台产品事业部-主机安全事件调查及狩猎专家,云安全一线作战指挥员、战斗员。
-完-
热门动态推荐