会员 密码 注册 会员权益

蓝屏之囿-终端安全软件开发的困局与破局

时间:2024-07-25来源:腾讯安全 作者:聂子潇

本文是iOA-EDR技术系列主打文章的第二篇

作者:腾讯安全专家工程师 聂子潇


一、星星之火可以燎原

2024年7月19日中午,一台台Windows终端悄然染成蓝色。随即,如“蓝色焰海”一般的IT故障在各个国家蔓延开来,迅速席卷全球。无数航班晚点,银行、医疗、金融等行业的IT系统相继出现异常,受到影响的用户们纷纷在X、脸书、微博等社交媒体上报告求助。


图片1.png

(一位小红书博主在旅途中遇到航司系统宕机,被迫领取了手写登机牌)


起初人们迅速向微软发出问询,但很快就有了进一步进展:事件并非出自系统本身的故障,而是由部分企业安装的一款安全软件功能故障引发。为啥日常电脑上使用的一款软件,竟然有如此的能量和威力去造成这场引起全球关注的IT故障呢?让我们从安全软件的底层工作原理出发,挖掘这次事件背后的“主角”,搞清楚它为什么会有如此广泛的破坏力,以及背后的症结到底是什么。


二、猫鼠游戏诞生记

1971 年,研究员鲍勃·托马斯 (Bob Thomas) 开发出了第一个病毒,称为 Creeper。该病毒通过 ARPANET(第一个计算机网络)传播,感染设备后会显示一条消息:“我是 Creeper,有本事来抓我呀”。随后,电子邮件的发明者雷·汤姆林森 (Ray Tomlinson) 开发了一个名为 Reaper 的程序,试图追踪并消灭 Creeper,这个程序则被视为杀毒软件的起源。 

从这个杀软诞生的故事中不难看出,杀毒软件的工作模式本质是一场猫鼠游戏,恶意程序就好比要偷吃的老鼠,而杀毒软件就是看守的猫,双方你追我赶,老鼠为了逃避猫的追捕,会不断演变自身的伪装和隐匿手段,而猫则需要不断提升自己的火眼金睛,透过层层伪装,抓住躲藏的老鼠。 

双方从定位上来说是敌人,从进化角度来说却亦师亦友,从对抗中相互促进学习成长,仿佛宿命中的相互纠缠的螺旋不断前进。


三、安全软件的难言之隐

1来自系统内核层的监视之眼

伴随着攻守双方的不断进化,安全软件发展到今天,早已与操作系统紧密结合。只有掌握操作系统最高权限的尚方宝剑,安全软件才能与手段层出不穷的恶意程序斗争。操作系统一般会对运行权限做层次划分:内核代码一般工作在内核层(Ring0),而我们常说的应用程序工作在应用层(Ring3)。内核层享有最高的执行权限,能够访问操作系统上所有的设备和信息,同时一旦内核层发生异常崩溃,整个系统就无法继续运转,进而会出现经典的蓝屏提示。而应用层则只能访问应用本身的一些常规权限资源,即使出现崩溃也只会影响自身软件进程,对操作系统不会产生影响。

现代的安全软件往往都会在内核层安装自己的安全模块(也有部分低级别的安全软件没有内核模块),从而基于内核层的最高权限,实现“上帝之眼”的效果,监视整个操作系统上每时每刻发生的不同类型的事件。安全软件24小时不间断地分析和比对这些事件,进而过滤出潜在威胁,将事件及时的阻断和扼杀,通过审核模式的工作原理,来实现保卫操作系统的安全。


图片2.png

(操作系统不同层次的运行权限)


2、安全软件的终端架构

一个完整安全软件的终端架构,从核心功能角度来划分,大部分都具备以下一些安全模块:首先,工作在系统最高权限层的内核模块,一般负责与系统内核接口打交道,获取系统第一手的实时日志信息,类似于情报收集部门的职能。

同时,由于该模块在内核层有最高权限,可以在系统执行层面第一时间阻断恶意攻击,因而也会承担一部分阻断恶意攻击的职能,实现恶意攻击的事前阻断能力。

其次,应用层的策略审核模块,类似安全指挥部门,负责审核内核模块采集到的实时日志,将日志上报到云端后台,同时对于一些审核有威胁的日志,按策略配置进行响应处置。


图片3.png

(内核模块与策略审核模块的职能划分)


3、如履薄冰的系统审核员

从上述安全软件的终端架构中,不难看出,安全软件已经演变为操作系统上的一切行为审核员,拥有行为的最终解释权。

但所谓权力越大责任也就越大,安全软件拥有操作系统的核心审核权,一旦权力使用不当就会带来难以预期的后果。例如审核错误阻止了合法的行为,可能导致系统软件异常失败;审核速度过慢,可能导致系统和软件运行卡顿;审核过程中错误修改或影响了合法行为的属性,也可能导致系统异常或软件错误。在此之上,即使审核员的操作完全合规正确,但动作本身如果出现编程错误,还是会造成系统蓝屏的严重风险。如果故障发生在内核启动阶段,还会造成重启后继续蓝屏,也就是我们常说的无限循环蓝屏的更严重问题。

可以说,安全软件借助系统的最高权限来防范攻击,但也因为最高权限的便利性带来了重大的责任风险。安全软件扮演的系统审核员,必须对每一步都要做到战战兢兢,如临深渊,如履薄冰。


4、难以平衡的攻守矛盾

正因为这份如履薄冰的责任,安全软件与恶意程序的对抗才会如此周而复始持续这么多年。安全软件需要恪守不影响系统稳定性的底线,导致在与恶意程序的对抗中畏首畏尾。这也是安全软件无法创造出一个大杀器来彻底结束这场攻防对抗“猫鼠游戏”的核心原因。

其背后的本质,是安全软件既要保证系统上的合法行为不受到影响,又要避免不法威胁行为潜藏在合法行为中偷偷潜入,这是一场解不开的天然矛盾。任何对伪装者的检查和判定,都必然导致对合法行为进行相同的盘问,从而产生产生额外的执行开销。要求安全软件既做到铁面无私(对待恶意攻击),又做到柔情似水(对待合法行为),恰恰是安全软件当前面临最大的难点和矛盾,也是安全软件安身立命的根本。


四、腾讯iOA-EDR实践之路

1防守之路上三岔口发展到今天,安全类产品百家争鸣,争奇斗艳,但万变不离其宗,延续上面的攻守矛盾观点,安全软件整体的发展犹如一个三岔口。

第一条路是以攻为守,以极客精神的思路主导,崇尚以对抗恶意程序的本职为第一目标,整体架构优先围绕对抗恶意程序来设计。这种架构在海外的安全产品中较为常见,将安全软件的功能模块更多集成到系统的内核层,优势在于能够在第一现场快速响应和对抗恶意攻击,并且整体对抗更加集中和高效、简洁。

第二条路是全面防守,稳字当头的思路主导,整体架构完全不进入内核层,只使用系统本身的安全接口来与恶意程序对抗。这类架构一般出现在辅助采集类的安全产品上,架构的优势很明显,极大降低了对系统稳定性和兼容性的影响,但随之而来的问题是在与恶意程序的对抗上捉襟见肘。

第三条路,是选择一种攻守兼顾的架构,既要保证拥有内核层的核心能力,又尽可能降低对核心层的依赖,让内核层功能纯净简单,把大部分功能逻辑放在应用层模块上。这种架构的优势则比较平衡,既保证安全能力能够对抗恶意程序,又一定程度上兼顾了系统的稳定性和兼容性。如何在三岔口进行权衡,是这个架构最为混沌和复杂的地方。


图片4.png

(三种不同的防御策略)


2、千里之行始于“踩坑”

腾讯EDR以腾讯二十多年的深研发展为基石,经历过C端海量用户,也在B端市场摸爬滚打,踩坑和挨打的经验难能可贵。一个成熟的产品背后往往是无数个填坑的日日夜夜,系统蓝屏、兼容性故障、电脑卡顿、软件异常、抢修大大小小的事故,这些都是安全软件的必修课。我们意识到,安全软件的第一道坎不是安全能力,而是保障用户的使用体验和避免故障。我们不断累积兼容性处理方案库,是因为通杀型解决方案虽然可以极大降低故障的影响范围,但依然需要大量长尾的针对性解决方案,只能靠时间和量级的沉淀来收获最终的稳定。


3、最小化原则架构

安全软件的稳定性保障一直是我们的重中之重。因此,腾讯安全EDR没有采用海外产品偏好的强内核功能架构,而是采取攻守兼顾的架构原则。整体架构的设计原则,是在满足恶意程序对抗的前提下,最小化使用系统底层权限,最大化保证系统的稳定性和兼容性。

整体架构依旧分内核和应用层两层,在内核层中的模块以最小化原则来设计,只做系统底层接口能力的扩展封装,不做逻辑和策略的执行。整个产品功能的策略逻辑的实现,则都放在应用层来指挥,内核层完全融合为系统底层的接口扩展,不承担业务的策略逻辑执行。这样的架构在内核层面极致简洁,不需要因为功能迭代经常变更,更容易打磨稳定后持续提供能力,能够最大限度保障稳定性的要求。而与安全对抗的变更部分都在应用层的策略模块,这样产生故障的时候,不容易出现蓝屏或者系统层面的故障,以及和软件产生兼容性问题。

内核模块层面也尽可能极致降低权限依赖,采取纯异步采集模式(旁路模式),接受到系统通知的第一时间就发送旁路日志消息到工作队列中,后续功能流程即可避免对系统和软件产生影响。该架构准则同样也应用到了应用层的进程注入采集功能上。

另外一种影响安全软件兼容性的功能是进程注入类的采集功能。该功能往往应对一些高级复杂威胁,需要采集系统的API调用序列来识别恶意风险。腾讯EDR在进程注入采集上也是执行的最小化原则,首先范围层面最小化,只注入可疑的入侵进程,不影响系统和常用软件进程。第二采集层面纯异步化,采集数据后第一时间旁路,尽可能降低对原进程的影响。


图片5.png

(腾讯安全EDR和在系统中的设计原则)


4、更进一步智能采集

采用最小化安全架构,腾讯安全EDR从根本上降低了对系统稳定性和兼容性的影响。但架构只是影响稳定性和兼容性的一环,如何采集和执行策略逻辑也会对结果产生关键影响。逻辑的错误或者不适当可能造成CPU持续高企、使用不流畅等系统层问题。

因为终端采集会被动采集系统上所有的行为,一旦系统上某些服务软件在进行极其频繁的操作,就有可能导致安全软件的采集模块突然高频工作,继而诱发一些性能层面的卡顿。这时需要采集的策略模块足够智能和自适应去规避这些场景的发生。

腾讯安全EDR在采集策略层面,使用的是基于行为可疑度过滤方案,即在终端架构中内置了腾讯自研的行为链关联引擎,能够将终端上发生的多个同源行为串成一个执行链。通过对完整的同源执行链进行可疑度判定,依据执行链的来源渠道、文件的云鉴定信息、文件的签名信息,以及是否关联脚本、压缩包信息等等加强判断的准确度。

举个例子,两个行为链,一条是从浏览器下载压缩包,解压释放文件,进而启动脚本进行网络访问,那么该链上的所有文件都会被追踪标记来增强采集策略,而对于系统进程或常用软件进程释放和执行的一些行为链,则减弱采集策略。这样可以极大降低对合法系统和软件的采集力度,降低CPU和性能开销。而当有真正可疑威胁进入的时候,安全软件会开足马力重点监控采集数据,犹如在终端拥有一个经验老道的安全专家做指挥,做到指哪打哪,有的放矢的智能安全架构。


图片6.png

(腾讯安全EDR的智能采集路径与决策)


五、安全行业警钟长鸣

水能载舟亦能覆舟,这场影响全球的IT故障,也给安全行业敲响了警钟:安全软件的基石是与恶意程序对抗。当安全厂商肩负着安全这一至高责任的时候,每一位用户的使用体验才是基石下的土壤。如果盲目追求技术的极致而忽略了体验,那么下一次IT事故的倒计时就会再度开始。


图片8.png

原标题: / 编辑:
◆第一商业网版权与免责声明
1、凡本网注明“摘自:本站原创”的所有作品,版权均属第一商业网所有,未经本网书面授权不得转载、摘编、复制或利用其他方式使用上述作品。已经本网授权使用作品的,被授权人应在授权范围内使用,并注明“来源:第一商业网”。
违反上述声明者,本网将追究其相关法律责任。
2、本网其他来源作品,均转载自其他媒体,转载目的在于传播更多信息,丰富网络文化,此类稿件不代表本网观点。
3、任何单位或个人认为本网站或本网站链接内容可能涉嫌侵犯其合法权益,应该及时向本网站书面反馈,并提供身份证明,权属证明及详细侵权情况证明,本网站在收到上述法律文件后,将会尽快移除被控侵权的内容或链接。
4、如因作品内容、版权和其他问题需要与本网联系的,请在该事由发生之日起30日内进行。电话:020-38248250 传真 020-38248296
Copyright©2024  第一商业网版权所有     www.topbiz360.com