作者KotoriCute (Lovelive!)
看板AntiVirus
标题[讨论] 2017各款防毒软体技术原理剖析 (60分组)
时间Sat May 27 02:45:24 2017
在巴哈看一篇关於各家防毒软体的技术分析文章就转过来
如果有转载需求请记得附上以下原始网址
※本文发布於巴哈姆特电应板以及部落格 IT Works,转贴请附上原文连结
https://forum.gamer.com.tw/C.php?bsn=60030&snA=463208&s_author=ts00937488
--
https://i.imgur.com/vtYC05M.jpg
McAfee(65分):身为美系的咖啡同样仰赖云端的杀毒技术,同时个人版和企业版差别颇
大;本文评分以个人版为基准,但是撷图以企业版为范本,因为咖啡把所有的"精华"都放
在企业版上
咖啡的杀毒核心集中在云启发/云信誉上,约在2013年以前这项技术叫做 Artemis(月神
),在 Intel 收购 McAfee 後重新把月神命名为 GlobalThreat Intelligence(简称
GTI),并在原有云启发的基础上再加上云信誉,而这个启发信誉引擎横贯整个 McAfee
产品线,从最基本的即时监控扫描、到防火墙 IPS、再到网页防护 GTI 几乎无所不在;
若没有 GTI 咖啡的杀毒可说废了大半,所以使用 McAfee 必须保持良好的网路连线环境
McAfee 的产品大致上分为个人版和企业版,而企业版又分大企业和小企业版
https://i.imgur.com/8fVW5MR.png
*:V3 特徵库比 V2 体积小45%,扫描速率更快,但检测率不变
MES 架构较新,病毒库为 V3,记忆体占用较大,有完整的防火墙、Web防护等功能,GTI
包含信誉和启发,具有驱动级 Antirootkit
VSE 上一代架构,毒库结构为 V2,记忆体占用小效能高,但功能较少,GTI 仅有启发没
有信誉,没有驱动级 Antirootkit 但可以扫描 rootkit(跟红伞一样)
而个人版架构跟 MES 基本一样,最大的差别在於
个人版没有存取保护,而存取保护恰巧
是咖啡企业版最大的卖点,另外就是企业版自订项目较多。本篇文章会同时介绍 VSE 和
MES,一般消费者想了解个人版的特色可以参考 MES 的解说
https://i.imgur.com/o2oGwNX.png
威胁防护:含即时监控、病毒扫描、存取保护、入侵保护
防火墙:使用 GTI 对连线的 IP 进行信誉控管
Web控制:使用 GTI 对连线的网站进行控管,非流量扫描
https://i.imgur.com/Diu94QL.png
从最早的 VSE 到新的 MES,存取保护一直是咖啡企业版最强大的功能之一。简单说可以
透过预先设定的规则,限制程式可以存取的档案、登录机码、处理程序和服务;听起来似
乎跟 HIPS 很像,但
存取保护不是 HIPS。我们知道 HIPS 是在程式执行时基於 RD、AD、
FD 这三项逐一弹窗询问用户是否放行,而咖啡的存取保护有强大的 FD 防护,AD 的部分
却非常粗糙,只能封锁执行档来达到简单的 AD 效果;底层操作(硬碟炸弹)、注入、提
权、COM接口防护等也都是存取保护的短板。另外咖啡在遇到触发规则的情况下并不会询
问如何操作,只会跳出触红视窗告诉你操作被阻挡,你必须再打开规则页面重新编写进行
排除,这种非询问式的规则写法也是它有别於一般 HIPS 的地方
https://i.imgur.com/Im5HTTe.png
https://i.imgur.com/zhuPiQB.png
台湾有部分人(就不指名是谁了)把 McAfee 的存取保护过度神话,说它是防勒索利器,
事实上这是一个严重错误的观念。上面提到存取保护是一套基於 FD 的规则编译器,它涵
盖了三大块「文件操作控制」、「注册表操作控制」、「Port 调用控制(MES 由防火墙
取代)」,也就是说存取保护无法阻止「注入行为」、「底层入侵」、「网路入侵」。咖
啡的规则对於高权限威胁完全无法抵御,必须在病毒
尚未提权时阻止提权。现在越来越多
病毒不直接 FD 而是通过调用系统 API 的方式写入磁碟甚至是注入,而咖啡唯一的防御
方式就是启用「阻止对所有共享资源的读写访问」否则必过,然後从此之後你就走上大排
除时代的不归路了......
FD 系的防毒软体正确的用法是着重在入口防预,例如禁止 USB 程式执行、封杀下载目录
(C:\Users\Yourname\Downloads\** )、禁止 Temp 下的档案执行等(事实上 Comodo
的预设规则就是这样写的,跟 McAfee 思路一模一样),这样做的目的是拦截所有未经你
同意的行为,但它没办法防止自己手贱去双击导致的中标。当然,你可以用禁运大法,全
局禁运 DLL、全局禁运 exe,够不够安全?但是你要怎麽判断 DLL 的合法性?你要怎麽
判断 exe 合法性?在无法判断文件好坏的情况下其实禁运一点意义都没有,事实上
McAfee 帮企业写规则也从来不搞禁运这一套(单纯禁运一狗票的 Anti-EXE 软体会比
McAfee 好用多了)
综上所述,咖啡的 FD 对於加驱、底层读写、hook、注入、萤幕键盘撷取这类威胁无法有
效防御,不巧的是不少勒索病毒都用这类手法来达成目的,例如透过 interpreter 执行
bat 绕过禁读写限制,所以如果想利用咖啡企业版防勒索建议还是省省了。但难道其他
HIPS 软体防勒索就比较好吗?其实 Comodo 防注入也不太好,真正的勒索大杀器是自动
沙盒;防注入最好的是 ESET,但它的规则最难以编写,而且勒索手法多变,不是只有注
入而已,对於没有主防的 ESET 来讲勒索是其硬伤
咖啡用户也不用太悲观,撇开勒索来讲,只要做好入口防御大概90%的未知病毒都可以拒
挡门外,剩下的10%请管好自己的手多加小心。HIPS 只是辅助你不是万能,良好的规则也
必须配合良好的使用习惯
https://i.imgur.com/97P3Dks.png
入侵保护就是漏洞保护,又分为三个项目
缓冲区溢位保护 GBOP:关於什麽是缓冲区溢位我就不解释了,维基百科已有项目请自行
Google
资料防止执行 DEP:DEP 是 Windows 原有的功能,MES 只是把 DEP 选项化以及进一步的
强化。此功能的描述同样参考维基百科,这边不赘述
动态应用遏止 DAC:全名是 Dynamic Application Containment,我忘了繁中版是怎麽翻
了(没撷到图)。这项功能有点类似智能 HIPS,简单来说防毒软体不可能判断所有档案
的安全性,总会有些灰色地带的软体,这时後要怎麽办?一但档案被判断为"可疑"又想尝
试执行,就会被扔到 DAC 里去,DAC 预设了几条针对恶意程式常见的行为规则,例如更
改关键 Windows 文件和注册表,让这些程式不会对系统造成危害,同时收集这些行为讯
息连到咖啡的伺服器里去,如果这些程式不断触发 DAC 到一定阈值,GTI 就会封锁文件
(信誉不良)甚至加以清除。对於未知程式直接用 DAC 限制一下很省心,大大减少编写
规则的麻烦
其中 MES 有完整以上三项功能。VSE 仅支持32bit XP、Vista、7 的 GBOP,对於其他系
统的缓冲区溢位保护由 HIP (大企业版防火墙组件)提供
个人版架构同 MES,理论上也有 GBOP 和 DEP,但个人版可能没有相关选项或是被简化;
至於 DAC 是专门为企业设计的功能,所以个人版没有 DAC
https://i.imgur.com/pWpOGWu.png
建议把 GTI 直接拉到最高,咖啡近几年检测率每况愈下,而且云启发误报率极低,拉高
一点有助於提升检测率
另外新的个人版已经抛弃了传统5800本地引擎,云启发也由原本的 Artemis 改为 JTI 和
Suspect 报法,依据实测结果不管是修复还是扫描能力都大不如前(以前咖啡以高修复
能力着称,如今....)。而企业版依然保留本地引擎和月神,
所以现阶段极不推荐咖啡个
人版
https://i.imgur.com/VHYfc71.png
基於 Dat Engine 的脚本扫描,可以检测 JavaScript、VB 脚本,算是网页防护的一环
https://i.imgur.com/E2owB7P.png
https://i.imgur.com/XjZw78j.png
https://i.imgur.com/8qOUyZs.png
如果启用 GTI,防火墙就会将信誉不良的 IP 进行隔离。它的算法非常复杂,会根据网路
流量、端口、目的地、协议以及出入站请求作综合判断,一旦超过设定的阈值就会封锁(
不仅仅是向云端查询 IP 这麽简单),这方面颇像诺顿的 IPS
当然它也会跟其他组件做联动,例如监控到有害文件就会封锁该软体的任何连线请求,这
算是智能型防火墙的基本功能
https://i.imgur.com/OseDg3A.png
https://i.imgur.com/psBt8p7.png
咖啡没有流量扫描的功能,网页保护是透过工具列比对 URL 来拦截,这个工具被称为
WebAdvisor,一旦启用会有数个 DLL 注入到浏览器程序,但不影响效能
它不仅会比对 URL 的信誉,还会计算与其网域相关联的 IP 和 DNS 的信誉,就算该网址
在咖啡的信任名单,一但内含的广告被植入木马,照样封锁
在网页信誉的检测上咖啡在所有防毒中也是名列前茅,目前仅趋势科技可与之相提并论,
其它防毒都望尘莫及
https://i.imgur.com/57uuQB9.png
大企业 VSE 介面非常复古精简,毕竟少了 Web 防护、防火墙、GTI 信誉等功能,却也相
对轻量化、效能高
https://i.imgur.com/UKspZ36.png
VSE 的存取保护跟 MES 略有不同。首先 MES 可针对 MD5或副档名进行定制、VSE 只能利
用文件路径进行排除;有时後 MES 只需要一条,VSE 却需要创建多条规则才能达到一样
的效果。但是 MES 无法删减咖啡预置的官方规则,VSE 这方面显得灵活多
VSE 没有防火墙,取而代之存取保护可以封锁 Port(无法控制连入连出)达到简单的连
线控管
https://i.imgur.com/T3nOj6R.png
VSE 的扫描用的是旧版只含启发的 Artemis,而完整的 GTI 包含启发和信誉。建议直接
将敏感层级拉到最高
https://i.imgur.com/oOKlAur.png
对於一般人来说,只会接触到个人版防毒,个人版的架构大致可参考 MES,但是少了存取
保护、DAC,没有本地引擎(云报法分为 JTI 和 Suspect 两种)。再来就是新加入的
Real Protect 行为检测技术(MES 需有 EPO 支援才可启用)
对於勒索病毒而言,最好的检测方法是对行为作分析,所以一直以来强烈推荐安装具有主
防的防毒。迈克菲在过去并没有类似的技术,终於在2017年推出了 Real Protect,而其
中又分为静态分析和动态分析
我们知道传统的特徵码检测恶意软体制作者只要更改代码中微小的部分就能规避,但就算
病毒作者改变周边代码的所有内容,归根究柢它还是恶意软体:其所使用的编译器、语言
程式、引用和共享的动态库都有许多共同的特徵。McAfee 藉由云端威胁感知系统 GTI 收
集全球的病毒样本,再利用机器学习统计分析这些二进制代码的特徵,归纳出一套数学模
型,可以在不依赖特徵码的情况下瞬间比对出存在电脑中的威胁,这是 Real Protect 静
态分析技术,是一种执行前防御(病毒尚未执行前拦截)
如果病毒能通过静态分析,但执行中的代码却相当可疑,就会触动 Real Protect 的动态
分析,防毒会持续追踪该程式的行为并上传给云端分析,如果行为符合云模型中恶意范畴
(例如删除子程序、覆盖文件以及更改关键注册表等等)就会立即阻止威胁。值得一提的
是,由於 McAfee 并不是上传整个文件,而是上传档案的行为跟踪记录(包括文件名、路
径、程序 ID、系统版本以及随机生成的 GUID),所以比起红伞 APC 或 Avast CC 之类
的反应速度快上不少
假设读者到目前为止有仔细阅读这篇文章,应该会发现 Real Protect 静态分析其实就是
云启发,跟原本的 Artemis 有何不同咖啡并没有说清楚。关键的行为防御其实是动态分
析部分,可惜的是
实测结果 Real Protect 表现并不理想,跟一般所谓的主动防御型防毒
完全不可比。咖啡的技术文档有提到 Real Protect 具有回滚破坏的功能,然而到目前为
止尚未见到 Real Protect 有任何回滚或修复的能力。也就是说这是一个还不成熟的技术
,无法称为合格的主防
咖啡企业版的存取保护相当强大,云启发误判率低,修复能力也很强;可惜个人版表现不
尽人意。而且不管是企业版或个人版对於勒索防御都不太在行,新的 Real Protect 技术
尚未成熟。所以如果要防勒索,笔者实在不是很推荐,故给了较低的分数
https://i.imgur.com/a6GD3IZ.png
Windows Defender(60分):每个人电脑中都有的防毒软体,然而对其看法却是众说纷纭
。有人说现在的 WD 已经足够安全、不需要再装第三方防毒;也有人说 WD 只是基准线而
已,微软不可能做太好。目前台湾论坛我还没见过从技术面剖析 WD 的文章,大多只是个
人主观感受。离你最近的软体,如此熟悉却又十分陌生,下面我们就来揭开 WD 的神秘面
纱
我们先从云安全开始说起,WD 的云杀叫 Dynamic Signature Service 动态签名服务(简
称DSS),而动态签名服务又分为动态和静态两种类型
https://i.imgur.com/TN9NQY8.jpg
静态:跟一般的云防毒相同,对於未知程式 WD 会上传一份 metadata 到云端分析;但为
了防止误报,刚刚分析出的威胁不会马上入库,而是先放在伺服器上。这时後如果本地的
WD 发现可疑文件,会先发送一道讯息请求查询,若云数据库中存在此威胁,则会将一个
小於1kb的临时特徵库下放到本地,WD 将加载此临时特徵库对未知病毒进行查杀
动态:如果监控和扫描没有发现可疑,在档案实际执行以後,WD 依然会继续监控此程式
的行为。当发现可疑之处,WD 会把它的行为特徵发送到云端查询,若数据库中有包含该
行为的动态签名特徵,WD 就会把行为代码发送到本地,阻止威胁和恢复破坏
云杀没有固定的报法,但凡事结尾带 plock、Detplock、CL(例如:
Trojan:Win32/Detplock)就一定是 DSS 杀
WD 对於未知威胁以及临时入库几乎是 DSS 杀,当 Microsoft Malware Protection
Center(MMPC)也就是微软的恶意软体保护中心分析完云端的数据以後,再将这些病毒家
族化下放到本地,所以 WD 的本地特徵库基本上都已经基因化,很少会见到针对单一特徵
的报法
看完以上的介绍或许有人会觉得,WD 在行为检测上相当依赖云端,其实并不完全是。在
本地 WD 还留了两手,一种是基於 Behavior Signature 的动态防御,另一个是 VFS 动
态启发
在本地 WD 拥有一千多条的 Behavior 定义,然而一般我们几乎见不到相关报法,因为除
非恶意行为达到 Severe Level 的程度,否则为了控制误报 WD 不会直接阻止执行而是用
遥测的方式把相关特徵发送到云端,确定为威胁才会阻止(DSS)。也就是被微软认定为
真正的高度危害才会触发 Behavior Severe Level 杀
https://i.imgur.com/YOPv5xV.png
纯本地的行为杀报毒名会是 Behavior 而不是 plock 或 CL,而且危害被定义为 Server
等级
另一种本地行为检测就是动态启发,当程式刚开始执行时如果可疑程度达到了一定阈值就
会触发,还有每次使用档案总管浏览资料时,也会启用动态启发中的静态检测(主动将执
行档拆包在虚拟环境中分析代码,这也是很多人觉得 WD 卡 exe 的原因)
https://i.imgur.com/rsjME6r.jpg
不过这项技术约7、8年没做过改动,检测率渐渐越来越差,原因之一是其虚拟环境为 XP
SP2,而且作业系统的帐户名称还是固定的,所以 WD 的动态启发现今已有不少免杀方法
,算是一个聊胜於无的东西
说完了行为检测,接下来介绍 WD 网路防护
在以前 WD 曾经拥有类似铁壳的 IPS,也就是基於网路层的 Exploit Prevention 模块,
可以在没更新作业系统的情况下依然能拦截部分网路漏洞威胁。但就在2016年底微软把网
路层的 Network Inspection System 与行为监控 Behavior Monitoring 合并成为
Network Real-Time Inspection Behavior Monitoring(网路实时行为监控)。这个
NRI BM 会同时检查程式的网路、注册表、内核修改等等的行为,如果程式存在 NRI BM
特徵库中的行为,就会动用 DSS,也就是查询微软的云数据库看该行为是否是真正的威胁
举一个例子,若一未知程式向外发起出站(网路层连出),该行为综合判断又符合 NRI
BM 中的 FakepAV 定义,就会进一步请求 DSS 看是不是要进行云阻断。至於为什麽要再
向 DSS 确认一次,目地就是为了降低误报率
网页防护方面,WD 只能与自家 IE 和 Edge 连动(不确定,若有 WD 阻断 Chrome、
Firefox 网页的画面请务必提供给我)。在 Windows 8 以上的版本,因为 IE 和 Edge
预设降权执行,以及强大的 SandBox 技术,多数 JS 挂马对微软的 Browser 无效,所以
WD 很少拦截挂马网站,但当遇到高危性的挂马,例如 VBS Ramnit 病毒,WD 是不会对
其坐视不管的。另外 URL 靠 SmartScreen 黑白名单拦截
https://i.imgur.com/39DvQYr.jpg
WD 封锁网页的记录
WD 虽然有行为检测,但多数是依赖云端的遥测,并没有传统意义上的本地主防;与其它
防毒相比,WD 的网路/网页防护稍嫌薄弱,而且只能与微软 Browser 连动,也没有其它
多样化的安全功能;为了控制误报率,未知病毒一定要经过 MMPC 分析,确定为威胁才会
阻止。另一个角度来说,虽然 WD 对 PUA 等低威胁一向采取消极态度,但当真正遇到高
度危害时,尤其是具有大规模感染性病毒,WD 清毒能力是非常强的,再加上 WD 是少数
拥有驱动级 Antirootkit 引擎的防毒,修复系统以及清除能力绝对是一等一。综上所述
,我认为 WD 的防毒架构非常优秀,但碍於微软低误报+低威胁不杀的策略,它确实只适
合习惯良好的人使用
对一般人而言 WD 的介绍就到这边,但下面想稍微聊一下 WD 企业级服务 Windows
Defender Advanced Threat Protection(ATP),因为微软把所有的黑科技都放在这项服
务上,个人版充其量只是收集样本的白老鼠而已
https://i.imgur.com/byPWs3L.png
WD ATP 简单讲就是将用户在 Windows 10 中的一切操作行为与云端连动,小到档案总管
浏览的资料夹、看了什麽网页、再到注册档、执行的程式一举一动全部即时上传到云端,
由微软强大的机器学习自动化分析这些资讯,如果发现威胁直接遥测阻止
https://i.imgur.com/dEhKhv6.jpg
https://i.imgur.com/tvSr3MF.jpg
大家可能会好奇,这跟 DSS 的遥测有何不同?基本上 DSS 针对的是单一未知可疑程式,
再发送到 MMPC 请求监定;但 ATP 是一个全方位的传感器,会对系统内部做深度分析。
当开启 ATP 时,WD 会添加名为 mssecflt 的驱动,属於 FS Filter 类别,专门负责
Kernel 层的行为监控
https://i.imgur.com/EgL277m.jpg
https://i.imgur.com/AN4fTuS.jpg
ATP 的监控点非常全面,是 DSS 远远比不上的。图为云控制面板的相关记录
https://i.imgur.com/xPtRgGk.jpg
主传感器(MSSENSE)包含的传感器事件
https://i.imgur.com/5PBXVBa.jpg
https://i.imgur.com/QnjJioF.jpg
可以利用微软帐户加入子客户端,主客户端可以看到子客户操作的一举一动
https://i.imgur.com/4PrO2OS.jpg
连接的 IP 会被深度解析,显示 IP 的详细信息以及对应域名
https://i.imgur.com/LD5BLmU.jpg
发现未知文件,还可以立刻调用 VT 检测
看到这,有没有觉得很厉害呢?
要特别提 WD ATP 的原因是,上面介绍了这麽多款防毒,也多次讲解了主防的概念。但现
阶段的主防,要嘛是纯本地的,不然就是主防与云连动,或者是像红伞 APC、咖啡 Real
Protect 上传文件或部分资讯检测(还称不上主防)
而微软的 ATP 照目前释出的资料来看,应该是
唯一一款真正的纯云主防,可惜只有企业
能使用,而且一年的订购费用要价不赀,现阶段刚起步也有不少 bug。但目前微软几乎把
所有的安全部门资源投入到 ATP 项目中,所以其进步幅度是非常快的。或许不久的将来
,部分的技术也会下放到个人版 WD,让我们拭目以待
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.165.185.3
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AntiVirus/M.1495824327.A.84D.html
1F:→ sismiku: 推 05/27 03:54
2F:推 purplvampire: 微软未来计画租ATP送Win10给企业用户,可以评估 05/27 13:08