CrowdStrike官网
从早期的杀毒软件到现在的EDR软件,这些防护端点设备的资安软件,早成为个人电脑用户与黑客对峙的第一线战场。日前资安软件CrowdStrike因为EDR软件更新出包,引发全球约850万台微软电脑,出现蓝色当机画面(BSOD)的资安事件。
事件爆发初期,因为不确定是什么原因引发的蓝色当机画面,微软第一时间出面致歉后,也才追查出应该与CrowdStrike的EDR更新出包有关。在调研公司IDC针对EDR产品市占中,CrowdStrike更是经常位居第一,加上美国重要财星前五百大公司都安装该产品,这也使得CrowdStrike因更新出包造成蓝色当机画面一出现后,瞬间成为全世界的头条新闻。
真正的原因,还是必须等CrowdStrike完整调查并公布后,才可能有进一步的了解,不过,根据对微软操作系统安全有研究的匿名资安专家的推测,CrowdStrike之所以更新出错,原因在于挂载设计不良的特征码包,导致操作系统内核的驱动逻辑出现问题(Parser解析逻辑不良),所以会误用不存在内存的指针null-pointer读取内容,造成BSOD蓝色当机画面。
这次事故发生之后,也引发其他的讨论,例如,操作系统是否应该允许资安产品拿到高权限?有台湾资安业者对此持肯定态度,他们认为,若要侦测到恶意程序的运作,这类端点防护产品就必须对操作系统拥有更高的权限,才可以更早拦截到恶意程序的运作。
CrowdStrike的病毒特征码设计不良
对微软操作系统安全有研究的匿名资安专家表示,若用户安装CrowdStrike Falcon EDR,会在操作系统内核(Kernel)层级,挂载运行内核驱动程序csagent.sys模块,负责做地端恶意程序的监控。他指出,这个模块为了有效监控用户模式下恶意行为,因此,在电脑的磁盘会有病毒特征码。
他进一步解释,在Falcon EDR的架构下,CrowdStrike把病毒特征码称做「Channel Files信道文件」,其文档部署于System32\drivers\CrowdStrike的文件夹;其中,信道文档(即病毒特征码包)习惯以C-00000[ID]-[xxxxx].sys的格式存放在CrowdStrike文件夹内。
他以这次出包的病毒特征码包「C-00000291*.sys」为例,便是Falcon用于侦测恶意程序Named-Pipe滥用行为的特征码包——常见像是黑客工具C&C(命令与控制服务器)对黑客服务器通信使用的domain,或者其他命名管道名称,都由这个特征码库进行匹配与查杀。
类似的部分在于,csagent.sys挂载此结构异常设计不良的291特征码包,导致内核驱动逻辑出现问题(Parser解析逻辑不良),所以误用不存在内存指针null-pointer读取内容,导致蓝色当机画面(BSOD)。
端点防护产品跟操作系统深度结合才能提早侦测
台湾资安公司杜浦数位首席执行官蔡松廷(TT)坦言,类似CrowdStrike更新出包的意外,是所有端点防护公司都可能发生的,以前大家用杀毒软件来保护端点时,也都有类似情况,像是更新后组件造成系统当机不稳定,也可能因为资安系统耗掉所有的电脑资源。
蔡松廷说,不管是杀毒软件或是EDR产品,要做到端点的防护,必须进入内核的运作,才可以做到即时阻挡恶意程序的运作,这些通常会有一个到多个的核心驱动程序,「一旦内核不稳定或有问题,最直接的反应就是当机,而每次只要电脑一开机,就会启动防护功能,如果不清楚驱动程序不稳定的原因,最有可能、最差的状况是:启动所有端点防护功能时,都会出现当机状态。
他也解释,这些端点安全防护软件必须和操作系统有很深的捆绑,有其必要性,因为如果这些端点防护软件与操作系统内核底层能有更深的链接,有足够高的权限,就可以更早拦截到恶意程序;假使无法进入操作系统的核心,就等于跟恶意程序运作在同样的层级,而且,端点防护系统倘若无法侦测到恶意程序,就会被恶意程序制约。
从这起事件中,蔡松廷更意识到,这类端点防护系统的核心程序开发,一定必须小心再小心,重复经过各种验证进程后,才能避免发生类似的意外。他也说,这次CrowdStrike造成的EDR更新出包,必须要手动进入安全模式后才能处理,倘若公司有成千上万的个人电脑端必须手动处理,将可能会影响到公司的营运,不得不慎重。



2024-08-02
