近年來勒索肆虐猖狂,網路上反而出現不少不學無術、對防毒原理一知半解、毫無專業知識,卻在論壇上妖言惑眾、散佈錯誤觀念和謠言、肆意販賣恐懼、誤導他人的可惡之徒。可悲的是,這等神棍的妖言還有不少人信以為真,於是一傳十、十傳百,指鹿為馬居然莫名成為了真理
為了破除謠言、以正視聽。本篇以實事求是,回歸技術面科普的心態,從最基礎的防毒原理開始說起。
什麼是0day攻擊?
0day一般指還沒有修補的安全漏洞,但以防毒的觀點來看,0day泛指任何無法被防毒資料庫識別的惡意軟體、掛馬網頁。很多人對防毒的認識還停留在十年前單純靠病毒庫比對惡意軟體的階段;時代在進步,防毒廠商也不是吃素的,現今的防毒透過各種技術,例如:啟發法、行為攔截(Behavior Blocker)、主動防禦、雲分析、沙盒(SandBox),當然還有傳統的 HIPS,來預防尚未入庫的未知威脅
以下針對這些預防0day的技術做介紹
啟發式:現代防毒幾乎都有用到啟發式技術,然而多數人並不知道這是什麼意思。在牛津詞典中對於“啟發式”的解釋是“使一個人能自主發現並學習某個東西”,然而這段描述實在過於籠統。所以下面我用一張圖來舉例
假設您被要求從上圖找出一種從來沒聽過的犬類(加泰霍拉豹犬 Catahoula),以下是可能的推理過程:
因為要找的是哺乳動物,首先會把魚類排除掉。排除魚類下方的杜賓犬則類似,因為不少人都熟悉杜賓犬這個品種。排除熊的照片則有意思得多:試想如果一個人從未見過熊,怎樣才能不把熊認成犬類?對電腦來說更是這樣,因為電腦的程式語言需要精確的描述,這種情況下啟發識別就相當困難。可能有些人會被貓迷惑,因為加泰霍拉豹犬 Catahoula 包含了 cat 這個英文單字
最後剩下右邊的兩隻狗,右上角是許多人熟悉的米格魯,加上目標的犬種名”豹犬”讓人聯想到豹紋,通過排除法得出了右下角的照片
在偵測病毒的過程中,面對未知的威脅傳統特徵碼將完全失效;而啟發式通過一系列的規則試圖推理出可能的目標。其中又分成 "靜態啟發”以及 "動態啟發”
靜態啟發:與傳統將文件的 MD5 與病毒庫中的數據比對不同,啟發式試圖通過一系列手段還原出可執行檔案的實際行為,並將其與記錄病毒行為的啟發特徵庫相比對。而靜態啟發就是在可疑文件讀入到記憶體執行前,先行一步反編譯,根據得到的代碼分析出程式可執行的命令種類和順序,再與啟發特徵庫中的行為比較,近似者報毒。因為只是讀取程式指令來“預測”是否有惡意行為,所以過程中程式不需要執行。實際上這是模擬了工程師分析病毒的過程,典型的就是 ESET 的啟發引擎
理想情況下,一個啟發特徵就可以殺一整類病毒,大大節省病毒庫的體機和防毒性能
動態啟發:防毒建立一個隔離的虛擬環境預先執行要掃描的程式幾十毫秒。通過監控程式最初的幾條或幾十條指令來判斷程式是否可疑(正常程式一般會先調用圖形 API 繪製界面等,但病毒通常直接開始讀寫硬碟,注入其他程序);這項技術有嚴重缺陷,不僅資源佔用高、誤報嚴重、檢測率還低(只要在病毒中加一個延時等100~200ms之後再執行惡意指令就可以完美避過),一般作為預判斷手段(先通過動態啟發確認可疑程度來調整進行靜態啟發時引擎的敏感度)。雖然各大防毒引擎都俱備這個功能,但平時沒有存在感。這種技術可以看作主動防禦的前身
HIPS:主機入侵防禦的英文縮寫,分為 AD 應用程式防護、RD 註冊表防護、FD 文件防護三塊。在程式執行時攔截所有行為並詢問用戶是否放行,一般通過預先設定好的規則來減少彈窗,規則的嚴密程度也決定了防護能力。是一種把系統控制權交給用戶的安全工具,會用的高手可以裸奔毒網,小白用這個只是徒增煩惱。
另外所謂的智能 HIPS 就是根據雲端白名單識別程式並建立相應的規則以減少彈窗,可說是自動預設規則的 HIPS
主動防禦:可以當作是有啟發能力的 HIPS,與啟發式的不同在於,擁有主動防禦的防毒可以在程式正常執行(不隔離)的情況下不間斷地監視程式的行為,發現與啟發特徵庫匹配的動作便終止該程序(BD ATC 有些特殊,稍後再說明);有不少防毒的主防(Sonar、IDP、SW)還會在程式執行時記錄下執行過的指令,發現惡意行為並終止後便按照記錄逐一撤銷程式的操作,這就是回滾能力。主防既有像靜態啟發一樣檢測未知病毒的能力,又很難被花指令所矇騙(畢竟靜態啟發只能進行簡單的反編譯不能讀出程式中所有指令);但主防既要求防毒能在程式執行過程中攔截指令,又要在確認為惡意程式後有足夠權限將其終止,實現難度相比啟發式困難,也來得不穩定。對於未知威脅,主動防禦是目前最有效的手段。
要注意的是,主防和 HIPS 都屬於執行後保護,在其運作時,可疑程式已經在記憶體中執行,可以說是防毒軟體的最後一道關卡
行為攔截:BB 在技術上並沒有被嚴格定義,只要有惡意行為,不管程式是正常不正常,有簽名或無簽名,只要防毒判定為惡意就終止程序。譬如開著 IDM 下載病毒,數次後防毒會提示 IDM 似乎是個未知威脅,對於這種正常程式下載惡意文件會提示操作,並記錄程式行為是打開網絡連接和多次下載惡意文件。它可以是基於本地主防或者是雲端甚至是智能 HIPS,例如紅傘雖然沒有主防但它的雲 APC 對於未知威脅可以有效阻斷攔截
人工智慧(AI):包含雲啟發或本地 AI,詳見 BD ATC 和 360 QVM。另外像 BD 或者是 AVG 雖然是本地 AI,但是其規則是分析雲端的大量資料,機器學習後再下放到本地(BD 是主防帶 AI,AVG 是掃毒帶 AI,這也是 AVG 2016年檢測率飆升的原因。AI 的一大好處是提高檢測的同時節省人工成本,防毒廠商的病毒分析師只需進行簡單的後期除錯,其餘工作都能仰賴 AI 進行分析)
廣譜/基因:通過衡量某個未知的文件和已知惡意文件的相似度來進行判別。如果一個未知文件在關鍵的地方和已知惡意威脅高度相似則判為有害
例如上圖中,假設你已經熟悉了左邊的黑褐色長毛獵犬,那麼即使沒見過右圖的犬種,也能通過相似度推斷出是某個品種的長毛獵犬
有些人把基因當成啟發的一種手段(但啟發不等於基因)更詳細的介紹見紅傘、ESET 兩欄的解說
到這邊相信讀者已經對主防原理有初步認識,下面將介紹各家防毒的看家本領,並打上我個人的主觀分數,數字越高代表防範勒索效果越好;評分大家參考就好,原理和技術內容會用客觀角度做介紹
Comodo(98分):Comodo 一向以防護為重,查殺為輔。防毒大致分為幾個區塊:AntiVirus、Firewall、HIPS、Sandbox、Viruscope
以前 CIS 只有 AntiVirus、Firewall、HIPS 三個區塊,文件執行前掃毒先做初步 hash 檢查,執行後 HIPS 判斷要不要對個別行為排除。防火牆預設阻擋所有連入,連出也是由用戶決定是否放行
這幾年 Comodo 為了讓防毒用起來更傻瓜,加入了 Sandbox、Viruscope 這兩個功能,並預設關閉 HIPS。現在的防護思路變成:第一步一樣由 AntiVirus 做判斷,並連接到雲信譽庫,白名單文件放行,沒檢測到病毒又不在白名單裡的文件自動入沙;Viruscope 再對沙盒裡的檔案進行行為分析,判斷為有害立即清除
這樣做的好處是,不用再操作繁鎖的 HIPS 規則,只要不破沙, Comodo 的防護基本上天下無敵;Viruscope 只針對沙盒做檢測就是 BB,對所有程序檢測相當於主防的存在
設定上大約注意幾個地方
由於 Comodo 掃毒相當感人,建議在即時掃描開啟 "啟發式掃描”稍微提升一點檢測能力,若擔心誤報可以只開「低」層級啟發
我們來看一下 Internet Security 組態的虛擬化規則。Comodo 預設著重在入口防護,這點跟 McAfee 企業版一模一樣
「封鎖」「所有應用程式」「惡意」意思就是若應用程式在信譽庫裡的黑名單,則直接阻止執行
「封鎖」「可疑位置」「任意」意即可疑路徑中的程式,封鎖執行
「封鎖」「Containment 資料夾」「任意」在沙盒自行啟動的程式,封鎖執行
「虛擬化執行」「所有應用程式」「無法識別」「少於三天」在任意位置無法識別的檔案(評價未知),且在電腦中存放少於三天,執行時入沙
「虛擬化執行」「所有應用程式」「內部網路、卸除式媒體、網際網路」「無法識別」來自內網、外網以及外接裝置(如隨身碟)的未知檔案,執行時入沙
「虛擬化執行」「所有應用程式」「網頁瀏覽器、電子郵件....」「無法識別」針對以上應用程式建立的檔案(例如網頁瀏覽器下載的文件、壓縮程式解壓出的檔案)評價為未知時,執行入沙
「虛擬化執行」「共用空間」「無法識別」於共用空間的檔案為未知時,執行入沙
什麼是入口防護?就是把惡意程式可能來源的入口做預防性封鎖(Comodo 則是入沙),至於電腦裡存放高於3天的檔案,代表使用者自行把檔案拖放到本地裡,用過沒問題才會留著,所以沒必要再入沙,信任的文件再入沙只是平白增添麻煩
最激進的 Proactive Security 組態也依然有四條規則,除了高風險路徑和評價阻止執行,其它未知程式則一率入沙
其中的差別在於,預設的 IS 規則注重入口防禦,已存在本地的檔案默認信任;PS 則不具有方向性,只要無法識別一率入沙
建議一般人用預設的 IS 組態就可以了,原因請參考咖啡介紹中我對其 FD 規則的心得。若說利用 FD 作全局禁運(Files limited)是 "萬物攔”,那麼不具方向的全局入沙就是 "萬物沙”了。大致上來說這種作法有兩大缺點:1.不夠便利、白白增加排除量;2.不夠智慧,容易排除失誤。一個好的規則應該在最少限制下達到最高安全性,這點來說 Comodo 預設的 IS 對一般人來說才是最好的配置
曾經有天才自作聰明教人把預設的沙盒規則全部刪除,當下看了快吐血......
Viruscope 是 Comodo 新增的主防技術,但效果很雞助,所以預設只監控沙箱中的行為當作輔助判斷
實測中 Comodo 幾乎沒有任何網頁防護能力,這個也是沒啥用的東西
此外 Comodo 對於注入防護較弱,曾經有網頁掛馬利用漏洞繞過沙箱注入系統,建議搭配 HMPA、EMET 等 Anti Exploit 軟體;雖然有回滾能力,但回滾常失敗;病毒查殺能力在各家防毒墊底,比微軟的 WD 還糟;不少程式在沙盒內功能不正常,連帶行為偵測跟著失效,仍然需要使用者自己判斷放行
有些高手會開啟 HIPS 藉由手動放行增加安全性,但它的 HIPS 並不是毫無疏漏的銅牆鐵壁。首先從3版開始就有漏規則的老毛病;另外 FD 對 DLL 的加載比較不敏感,因為 Comodo 默認信任白名單內的數字簽名,如果惡意程式利用白加黑(白 exe 加載黑 dll),不管是沙盒或是 HIPS 幾乎無法防禦。現階段白加黑有效的預防方法是特徵碼拉黑,但 Comodo 的病毒檢測根本是悲劇....
利用數字簽名白加黑過沙箱
以一款防毒來講,我會給 Comodo 不及格的分數,但如果單純當它是需要使用者自行操作判斷的安全工具,毫無疑問 Comodo 對勒索的防護力接近100%。推薦給不怕麻煩,對系統有一定了解的人使用
Comodo v.s Ransomware
Bitdefender(95分):BD 和 Comodo 可以說是兩個極端,Comodo 需要用戶自己判斷檔案是否放行;而 BD 主打人工智慧,安裝 BD 後不需要任何操作,平常相當安靜,你幾乎感受不到它的存在,對於病毒的檢測率相當精準,很少有誤判的情況發生,基本上可以交給防毒自動化作業
企業版選項少得可憐,還不能調整防護級別
跟大多數防毒一樣,文件被下載到電腦後會先經過特徵庫和啟發式的檢測,BD 的 B-HAVE 引擎會分別進行靜態和動態啟發掃描,而動態啟發會把程序於虛擬環境中執行,觀察是否有可疑行為,如果是惡意程式將被阻止。整個過程只有短短數十毫秒,所以不影響用戶的實際體驗。為了提高掃描效率,如果為雲端中的白名單應用,BD 將只進行輕度的啟發檢測,進一步降低誤報;而特徵庫和啟發都無法分析的未知文件,將於三秒內自動提取特徵到雲端分析
儘管動態啟發增加了安全性,但它有一些缺點。首先虛擬環境中延遲時間過短,可以被簡單規避(見動態啟發一欄);其次,被檢查過的其他安全程式也可能被利用,執行時被惡意軟體注入修改
為了克服這些缺點,不得不提 BD 主防技術,在2016年之前的版本,BD 的主防分為兩塊,分別是 IDS 和 AVC
IDS 會偵測重要系統檔案,例如登錄項目、驅動程式安裝、以及注入程式碼(DLL)的攻擊行為,是一種類 HIPS 功能
AVC 則是利用啟發法對電腦進行監控,它會對所有執行中的程序進行打分,當程式的分數達到臨界值時,就會被視為有害物件並中止程式。例如:程式終止時沒有顯示用戶介面,正常的程式停止時會問你要不要退出;擅自複製或移動到系統文件資料夾;對其它程序執行代碼...以上都會被列入加分項目。2015年時,BD 主防擁有高達300條的啟發規則
到了2017年的版本,AVC 改名為 ATC,而 IDS 被整併到 ATC 中,ATC 不需要連網是完全的本地 AI 主防(沒有雲連動)。整個防禦流程分為以下四步驟:
通過 ATC 惡意軟體的延遲啟動得以被檢測,它並不會基於單一行為就將程式視為威脅,因為正常應用也有可能觸發可疑行為(例如增加啟動項目);作為代替,它將持續地進行評分,當達到特定閾值才會將某一個程式識為威脅
BD 整體的防護流程包含四個步驟,若病毒在第一步被攔截就不會進入到下一個環節
.入口防護,使用流量掃描(含 Web、Email、IM)
.到達本地的文件將 hash 核對簽名數據庫
.如果沒有簽名匹配,會使用 B-HAVE 引擎進行啟發檢測
.主防監控程式的行為,當分數達到閾值立刻阻止執行
網頁防護實例
雖然 BD 本身有其它模塊,像是掃毒引擎、Web 防護、防火牆,但整套防毒真正的精華說是 ATC 單獨一個模塊一點都不過份。ATC 因為用獨特的打分方式造就了超強的0day攔截率,加上本身就不錯的掃毒引擎(啟發和 PUP 檢測都很不錯),讓它的整體防護能力達到非常高的水準
最新的 BD Free 已經包含了 ATC 主防,免費版與付費版差在免費版 ATC 強度只能調 "中",以及少了個人化的自定義選項和防火牆,除此之外幾乎毫無差別。個人私心認為 BD 是目前最好的防毒軟體
當然它還是有些小缺點,因為主防有別於其他家防毒用啟發規則做監控(像諾頓和 AVG 只要觸發規則就會被攔阻,所以啟發定義較嚴謹),而是用打分方式所以不會記錄惡意軟體的行為,導致它無法回滾,算是遺珠之憾
這邊簡略說明規則式和評分制主防的差異
規則式:是指程式觸發了主防的規則行為,一般觸發數條就會被判定為病毒。譬如拷貝自身到 Windows 目錄、修改註冊表、添加啟動項、禁止工作管理員等等。若沒有觸發規則或者觸發不到一定數量,就不會被攔截
為了方便理解,這邊舉一個例子
假設一個病毒會格式化整顆硬碟,造成無法開機、資料損毀。其行為順序為:加載資料到記憶體虛擬地址空間 → 載入內核驅動 → 將 CPU 由保護模式切換為內核模式 → 改寫底層寄存器→進行底層 I/O 操作(格式化硬碟)
而正好啟發特徵庫中有一條名為 Heur.DiskWiper.1 的定義,執行上述的病毒則主防會
攔截第一步行為 → 記錄並比對 → 放行 → 攔截第二步行為 → 記錄並比對 → 放行……攔截第五步行為 → 記錄,符合 Heur.DiskWiper.1 → 終止程式執行
就算加入無關行為,或者改變操作順序,只要符合啟發定義都會被終止,所以主防對未知和變種病毒效果很好(有些關鍵的順序不會改變,譬如上面這一套行為,就被稱作底層磁碟訪問的元操作,無法更改順序;實務上可能也需觸發數條啟發定義才會被終止)
評分制:根據陌生程式的行為來扣分。譬如添加啟動項扣5分、修改系統文件扣15分,達到一定的分數就會被主防擊殺。評分制估值函數相當複雜,同一行為在不同情況下的分值有不同,重複的同一行為也不會導致分數的線性增加
一般來說評分制優於規則式,因為病毒較容易規避主防的內置規則;但評分制估值函數穩定後再調整不如規則式主防靈活,而且基於技術限制,目前的評分制主防似乎無法做到病毒觸發後回滾其破壞,只能加以攔阻
Kaspersky(90分):台灣販賣的卡巴斯基分為 KAV 和 KIS 兩個版本。KAV 帶有文件反病毒、即時通訊防護、Web 防護、郵件反病毒以及 System Watcher 主防;KIS 在以此基礎加上防火牆和應用程式控制(HIPS)。如果可以的話,建議購買 KIS 才有最完整的防禦體系
反病毒& KSN
不管任何一個版本的卡巴,都帶有雲端檢測 KSN,我認為 KSN 才是 Antivirus 模塊的精華所在;所有的雲都會靠 MD5、Hash 來判斷檔案的安全性,這就是所謂的雲拉黑,MD5 是一個快速判斷檔案的好方法,但對於卡巴來說不是唯一方法。首次執行程式會先進入 KSN 進行雲數據庫匹配,白 Hash 直接放入信任組,黑名單報 DangerousObject;而未知應用自動分析安全的話放入限制組(需搭配 HIPS 模塊),符合雲危險模型報 DangerousPattern
也就是除了本地啟發外,KSN 自己有一套行為分析的檢測機制,當然觸發這個條件必須雙擊應用。在雲加本地的雙重檢測下,卡巴對於未知病毒有很好的攔截率;但也因為倚賴雲信譽的關係,卡巴對於破解軟體基本不殺,不管這個 Patch 本身有沒有毒都一樣,常用破解的請自己多加小心;PUP、流氓卡巴也不殺,請自己在安裝程式時養成良好習慣看清楚,不過 PUP 可以透過 HIPS(需打開交互模式)來限制
KSN 是卡巴雲安全技術的簡稱,它包含多種技術,而且與各種組件互相結合。例如判斷文件會從數字簽名、hash 做初步掃描(雲拉黑);也會查詢全球的統計資訊,封鎖評分過低的對象(雲信譽);若都沒有結果,再將數據提交到雲端運算中心,經過行為分析檢查後反饋回用戶(雲啟發,原理詳見 360 QVM 的說明)。釣魚網頁、垃圾郵件同樣會查詢 KSN 的特徵庫、信譽資料,甚至在雲端對未知的 URL 做啟發判斷,垃圾郵件則是利用專門的 UDS 技術篩選分類郵件。整個流程如下:
系統監控(主防)System Watcher
主防 SW 說實在檢測率一般,它不像 Sonar 用啟發通殺一切,而是先記錄程式行為,再通過本地和雲病毒庫匹配惡意軟體,這樣的好處是誤殺低,對系統有重大危害的才會攔截回滾,但低威脅基本不報;也因為主防與其它模塊連動性高,所以回滾成功率也高,例如斷網後執行了雲殺但本地不殺的樣本,聯網後 SW 依然可以清除威脅並回滾,包括你關掉監控,單測主防 SW 也可以與 KSN 連動。所以卡巴的各個組件都會相互交流,使得綜合防護能力大幅提升
網頁防護
Web 防護共有三套檢測機制,分別是:
.通過本地的數據庫匹配 URL 攔截
.連接 KSN 的數據攔截惡意網站
.啟發式檢測,即使網站不在數據庫裡
用不同的方式檢測網站
雲端的數據庫會定期更新 URL 的信息,並將之發送到用戶端;但雲數據庫也可以提供實時保護,當一台安裝卡巴斯基的電腦上發現惡意網站的時候,會立刻反饋回雲端,整個過程不到30秒,全世界安裝卡巴的電腦就可以同時檢測到這個新網站。然而,當數據庫沒有網站相關訊息時,啟發技術就顯得尤其重要
整個流程如下:
啟發檢測是防惡意網站的最後一道防線,即使網頁不在數據庫裡,這個模塊也有判斷網站的能力,卡巴內部的統計顯示50%的惡意網站是由啟發模塊識別阻止
啟發模塊會檢查網站的特徵,再將它們和域名、使用的網站框架、加密方式等綜合考量,根據一些間接的證據判斷是否為惡意網站。例如跨站腳本攻擊(XSS)、外部腳本代碼攻擊等,它甚至可以檢查網站上的圖片是否為釣魚內容
HIPS & Trusted Applications
卡巴的 HIPS 是透過 KSN 自動分配權限,通過雲信譽調整分組,默認情況下只需將「信任數字簽名的應用」這項取消,其他 KSN 都會幫我們處理;當然你也可以自己制訂規則,例如收緊信任組的權限,將訪問其它程序的注入由「允許」改成「詢問」,這樣每次出現注入行為都會彈窗問你要不要放行
善用 HIPS 可以達成一般防毒沒辦法做到的事,像是啟用默認拒絕(不在白名單內的軟體一律阻止)來達到對勒索的防護。非白即黑模式在一般消費端的防毒相對罕見,原因在於白名單必須囊括電腦上常見的應用程式;而對於企業來說,編輯受信任的名單並不是很難的事,因為員工們為了完成工作需要的軟體相對較少,很少改變
對於普通用戶來說,他們每天可能安裝大量的新程式,這是個關鍵問題。因為一旦白名單沒有相關程式就無法執行。換句話說,即使默認拒絕能夠提供極高等級的保護,但怎樣面對不斷出現的新程式?怎樣在不給用戶帶來麻煩的前提依然不減防護能力?
卡巴斯基的”Trusted Applications”包含三個組件,構建於 HIPS 和 KSN 之下
.動態更新的程式白名單,基於 KSN
.一套完整的機制來確認每個應用程式的信任狀態,包含判定程式是否可以信任“繼承”的規則(下文會解釋),不斷更新安全證書和受信任的域名的名單
.單獨控制應用程式的系統,基於 HIPS
動態白名單基於 KSN 的文件信息庫,約有10億個程式,包含常見的各類軟體,而且這個數據庫還在不斷更新完善。有近500家的軟體公司與卡巴斯基合作,開發者更新軟體包或者發行新軟體時,KSN 可以在第一時間獲得資訊。雖然 KSN 擁有龐大的軟體數據庫,但白名單還是有可能忽略了少量的正常程式,這也是為什麼要有兩個額外的機制來檢測程式:對應用程式信任“繼承”的判斷;針對受信任域名和證書的檢查
許多程式在操作中會創建其他新的程式,這些新程式可能不在卡巴斯基的數據庫裡。例如,為了下載更新,必須啟動一個特定的模塊,將會連接到軟體提供商的伺服器並下載新版本。更新程式是由原始程式創建的新程式,在白名單數據庫裡可能沒有相關資料。然而,如果程式被受信任的程式創建並啟動,它會被認為是可信的,這就是“繼承”規則
受信任的程式
透過更新模塊下載的新版本程式,可能也和卡巴斯基白名單裡的數據不一樣。然而,可以藉由別的特徵判斷程式的可信度,譬如檢查數字簽名是否正確
許多軟體開發者會用一個獨一無二的數字簽名來簽名他們開發的程式,防止未經授權的修改,一旦檔案被第三方修改,數字簽名會損壞。卡巴斯基分析這些簽名,判定它們的可靠性,並且維護一個不斷更新的數據庫。如果新版本的程式簽名被判斷為可信任,就會被加入白名單。反之簽名被破壞的情況下,即使系統認為是可信的,也會立刻從數據庫中刪除這個簽名(指破壞的簽名)
然而,檔案沒有簽名也很常見,所以還有其它判斷方法:搜索檔案下載的地址是否在受信任的站點數據庫。如果域名在受信任站點列表裡(大多數情況下,都是知名軟體提供商的域名),下載的對象就會被認為是可信的
受信任的軟體商的域名被認為是安全的,下載的檔案不會被認為是病毒。但是,一旦這些網站分發惡意程式,它會立刻從受信任站點列表裡刪除
因此,白名單配合其他驗證工具,提供了一個高度容錯機制,讓一般使用者也可以在不失易用性的情況下享有傳統 HIPS 的防護強度
漏洞防護 Automatic Exploit Prevention
卡巴斯基有多個防護層。第一層是 Web 防護,網頁的木馬在第一層就被擋下;若病毒不幸被下載到本地,會被特徵碼和啟發檢測到;如果檔案資料沒有被收入在本地病毒庫,還會連上 KSN 查詢;再下一層是主動防禦模塊,分析程式的行為,若有可疑活動立刻阻止
然而對於利用程式漏洞的攻擊行為,一般的防護模塊無法有效遏止,例如在 Adobe Flash、Adobe Reader、Java、Browser 甚至 Windows 組件中植入惡意代碼。因此卡巴斯基有專門針對漏洞的防護層,叫做 Automatic Exploit Prevention,對於檢測已知或未知漏洞很有效
AEP 有數種預防漏洞的方式,首先它有檢測漏洞專用的簽名,會在打開文件時(例如 Word 檔)提前檢測,符合簽名中的行為定義就會阻止。簽名又分成兩種,一種是已知漏洞簽名,另一種是潛在漏洞利用簽名,對於未知漏洞有幾種分析的手段:
.對於一些常被利用的軟體,例如 Adobe Flash、Adobe Reader、Java、Office 等等,再被其它程式加載前都會另行檢查。不過“可疑”不代表“確定”,譬如 Adobe Reader 可能啟動另一個執行檔進行更新。但是經過分析執行文件的特徵,以及之前的行為可以分析出文件是否惡意
.卡巴斯基有一套”Security Corridor”定義軟體的行為模型,例如 Word 主要是處理文檔,瀏覽器的功能是下載文件、瀏覽網頁內容。而惡意程式通常利用漏洞讓程式執行未登記的行為,像修改系統文件、向程序注入代碼、安裝驅動等等。透過”Sexurity Corridor”可以限制軟體的範圍功能,即使它被卡巴斯基標住為可信任、有合法的數字簽名也一樣
.試圖加載代碼的程式之前的行為會被用來鑑別是否為惡意,AEP 會跟蹤這些活動嘗試獲知代碼的來源。若加載的程式有不良記錄,代表很有可能是被惡意利用
.某些漏洞利用程式,會在啟動時連線到遠端伺服器,AEP 會辨別未經授權的下載並阻止它。此外連線的網域信譽也可以當作判斷的基準
.雖然從 Windows Vista 開始 ASLR(位址空間配置隨機載入)就被作業系統使用,但仍然有不少程式不支持該技術。AEP 強迫所有程式都使用 ASLR,其結果就是惡意軟體沒辦法用預插入代碼的方式執行漏洞
維基百科 位址空間配置隨機載入
防火牆
防火牆方面卡巴斯機提供良好的自訂性,而且可以與 HIPS 連動,例如所有未含數字簽名以及高限制組別的程式都會被阻止外連。Windows 自從7以後內建的防火牆對於入口防護其實已經相當不錯了,防毒的防火牆由原先的抵禦入侵轉變為阻止惡意程式連出,像多數的勒索沒有連網就無法對電腦進行加密,可見得專業的防火牆還是有其必要性
值得一提的是,卡巴的網頁防護是透過流量掃描的方式,所以瀏覽器的套件不裝也可以(雖然安裝卡巴會被強上就是了,但停用不影響防護能力)
F-Secure(90分):FS 是一家雲端與本地技術發展並重的廠商,他們使用 BD OEM 引擎再經過深度優化,查殺相當強悍;主防 DG 結合雲端信譽和動態啟發,對病毒響應快速,可說是攻守兼具的利器。接下來將分析 FS 的防護工作方式
由上到下 FS 的防護由多層模塊組成,結合起來就是一個完美的解決方案
很多人對於網頁防護相當不重視,但事實上大多數的惡意攻擊都發生在網路上,猖狂的勒索程式多數就是利用網頁掛馬入侵電腦;因此理想的防護應該是惡意軟體偷渡到電腦前就將其攔截,阻擋可能的入口攻擊 — 每次瀏覽網頁時,FS 會將網址傳送到 Security Cloud 做比對,若是已知惡意網址將自動阻擋
如果文件還是被下載到電腦執行,它會被傳統的特徵庫比對,掃描引擎也會用靜態啟發檢測,若包含任何相似樣本或啟發特徵,將立即封鎖
到了這一步沒有被識別為威脅的話,FS 的雲架構會收到一次上傳,包含檔案的元數據(metadata)。後續的監控行為將由主防 DG 負責
或許有人會疑惑,為什麼這篇要一直強調主防,沒有主防就不能防毒嗎?剛好這邊有範例可以說明
這是 FS 內部對 Urausy 勒索軟體家族統計的結果,DG 可以持續監視樣本的變種並阻止惡意行為,而同時對應的特徵庫檢測率先大幅上升又在新變種出現後大幅下降。 (每次特徵庫檢測率飆升的原因是因為它是防禦體系中相比 DG 更靠前的一層,每當這些特徵失效後,DG 的檢測率就會上升。)
如今大部分的病毒變種持續時間都不長,特徵庫檢測一般希望能夠在這類樣本失效之前保證足夠的檢測效率。但與此相反的是,DG 對惡意軟體的檢測能夠持續相當長的一段時間,因為病毒的行為所產生的變化一般很少。比如,DG 更新了1條新的檢測定義,特徵庫則更新了600條。九個月後再用同樣的老特徵庫去檢測當時最新的流行樣本,結果表明 DG 即便在未更新的情況下所檢測的流行樣本也比未更新的特徵庫多出12倍。
對於變種和0day,主防是不可或缺的存在,沒有主防的防毒對未知病毒的檢測率自然較差(也有例外)
回到原來的話題,DG 怎麼監控?它的工作分為幾項
當程式首次被執行時,無論它是被怎麼執行(雙擊 exe、透過郵件附件、被其他程式調用),DG 將暫緩執行並做如下檢查(這個過程只有幾十毫秒)
文件信譽檢查:如果網路可用,DG 將發送請求至 Security Cloud,查看白名單的信譽信息,雲端中包含一個常見軟體的安全評估資料,由 FS 的病毒分析師維護,黑名單直接阻擋,白名單跳過後續檢查放行
所以這是 FS 的雲拉黑,利用雲拉白或拉黑有很多好處,例如就算特徵庫沒更新,DG 仍然可以通過信譽庫來檢測文件安全等級
行為分析(動態啟發):如果程式在文件信譽被判斷為可疑,或網路不可用,DG 將在虛擬環境執行此程式,觀察是否有惡意行為,譬如嘗試自我複製、編輯或者刪除關鍵系統文件
共用率檢測:文件信譽由官方病毒分析師維護,而共用率是指多少人擁有此一軟體,正常的軟體往往擁有大量用戶;惡意軟體則相反,稀有的軟體會被標註為可疑,並將阻擋的閾值(後續解釋)調低
根據以上三項先期檢查,DG 會做出以下四種判斷
a.程式有害,攔截
b.用戶會收到提示,並選擇允許或阻止執行
c.文件安全,允許執行
d.文件的狀態仍然未知
被阻止的文件, DG 會給出阻擋細節,以及將程式加入白名單的選項;如果文件的狀態仍然未知,DG 將允許文件執行,但會在接下來的過程中繼續監控程序
即便程式突破了啟動前分析,開始執行,DG 也將繼續檢測行為,這是為了預防某些惡意軟體常用到的延後策略(請參考動態啟發一欄)
程序監測會監控包含但不限於以下的可疑行為:
• 修改註冊表
• 在關鍵系統目錄編輯文件
• 在另一個程序的記憶空間插入代碼
• 嘗試隱藏自身,或複制自身
由於正常的程式也會多次執行這類操作,DG 並非根據單次行為就直接封鎖。只要可疑活動超過了一個關鍵闕值,DG就會阻攔程式繼續進行(跟 BD ATC 差不多)
文件信譽和共用率檢測的結果都會納入關鍵闕值的確定過程。比如,共用率較低的文件,DG 就會在阻攔之前將闕值調低。
我們再回到第一張圖,Exploit interception 就是漏洞防護,DG 有兩種對漏洞的檢測機制
第一種是重點關注經常被發現漏洞的程式,譬如 java、Adobe Reader、Microsoft Office 等等。這些程式會受到格外的密切監控,如果檢測到惡意行為,阻攔的標準也更加靠前。
第二種是文件漏洞,譬如 Word 和 PDF 經常被用來攻擊,因此任何想要打開這類文件的軟體就會受到第二種漏洞偵測的監控,會被嚴密監視惡意文件的可疑行為。
漏洞技術分析
http://www.2cto.com/Article/201603/491534.html
利用 CVE-2015-2545 弱點執行附加程式
以上的 CVE-2015-2545 演示只是舉例,更知名的還有2013年的紅色十月,還有大家耳熟能詳的巨集病毒
FS 在諸多實測中排名介於 BD 和卡巴之間,算是後起新興之秀,而且介面操作簡單。它也有一些缺點,例如自我保護很差、防火牆記不住規則,也不會自動化操作(個人版沒有防火牆,企業版才有這個問題)、因為跟 BD 一樣主防採用打分閾值方式所以無法回滾,僅有修復功能
在這邊補充回滾和修復的差別
回滾:代表者卡巴、諾頓。像卡巴有一個100MB左右的文件夾,專門存放軟體近期對系統的操作備份,如果發現之前有執行過惡意程式(可長達一星期),主防就會根據記錄回復軟體對系統的操作,例如把被勒索加密的檔案復原
修復:針對特定的惡意程式使用既有的規則來修復系統,不同的病毒和防毒廠商修復流程也不同,它並不是根據病毒記錄來逐一撤銷操作,而是一個通用的修復流程
例如被流氓綁架,就清空 host,瀏覽器首頁改空白,註冊表恢復預設等等
幾乎所有防毒都有修復能力,只差在能力的高低與否;但防毒沒有主防則無法回滾,有主防的防毒也不代表能回滾,上面介紹的 FS 就是一例
偷偷告訴各位,FS 有提供免費的測試版下載
https://beta.f-secure.com/callout/?callid=95C8858024374B828C30C8B13378B71D
申請帳號有180天的試用期限,時間到後會給你自動續期,而且 Beta 跟正式版功能完全一樣,等於免費正版使用
事實上不止 FS,包含紅傘、賣咖啡一直都有提供免費的 Beta,但比起其它防毒,FS 的測試版相對穩定
Comodo Cloud Antivirus(90分):這款防毒屬於 Comodo 家族其實應該在上面一起介紹,基於某些原因決定獨立一篇解講
上面有提到為了簡化操作,目前的 CIS 預設關閉 HIPS,也就是 AntiVirus 比對過特徵和啟發後,無法識別的程式將放在沙盒裡執行,既然如此防火牆和 HIPS 似乎沒有太大的存在必要,於是在2015年底 CCAV 正式發佈
Comodo 官方徹底精簡了不必要組件,只留下 AntiVirus、Sandbox、Viruscope 這三塊,AV 模塊甚至更進一步去除了本地庫,完全雲端化,程序佔用區區30MB左右,可說是輕量級防毒的最佳代表。Comodo CEO Melih 號稱 CCAV 是唯一離線仍可提供完整保護的純雲 AV
介面簡單大方,佔用資源小,沒有任何廣告。
或許有人會質疑,沒有本地庫監控會不會受影響?雖然 Comodo 的病毒檢測率一向非常感人,但根據我實際測試,只要打開樣本文件,立刻報毒,也就是帶有雲啟發,右鍵掃描也會將 MD5 上傳雲庫比對
啟發和掃描無法確認的文件,又不在白名單裡,會自動入沙執行,Viruscope 再對沙盒裡的文件做行為分析,只要判斷為惡意軟體立即終止程式
雖然上面提到 CCAV 沒有 HIPS 模塊,但可以當作簡單的 Anti-Executable。這邊有個小技巧,預設的沙箱設定「將所有未受信任的應用程式放在沙箱中執行」改為「不受信任的應用提出詢問」,這樣不在白名單裡的文件每次執行時都會跳出視窗,問是否「在沙箱中執行」「在沙箱外執行」或直接「封鎖」。你可以把它想成 UAC,只是多一個「在沙箱中執行」的選項,而且可以記住規則
CCAV Test1
CCAV Test2
在實測中,CCAV 幾乎沒有失手過,目前還沒有見過能突破 Comodo 沙盒的病毒,除非 CCAV 沒辦法檢測到活動中的可疑程序(通常是被注入,但這種情況很少)
與其說它是防毒不如說是安全工具,雖然防護能力接近99%,但大多數沙盒內的軟體需要使用者自己決定是否放行,所以不適合小白用戶;沒有自我保護、沒有網頁防護這些都是缺點,建議搭配 EMET、HMPA 提高入口防禦
最後一點,如果你是 Win10 用戶,而且會把畫面放大,請不要使用 Comodo 的任何產品,安裝後會使自訂的 DPI 失效
「在高 DPI 設定時,停用顯示調整值」此項會無效
Trend Micro(80分):美系三大防毒趨勢、諾頓、邁克菲都有兩個特點:其一是重視防勝於殺,查殺能力較弱;第二是雲端大於本地,離線後防毒效果大幅減弱
趨勢科技的核心概念有三朵雲:「Email Reputation Service 電子郵件信譽評等服務 (ERS)」、「Web Reputation Service 網頁信譽評等服務 (WRS)」及「File Reputation Service 檔案信譽評等服務 (FRS)」,這三個組成了主動式雲端攔截技術(Smart Protection Network)
ERS:根據寄件者(郵件伺服器)的 IP 位址的信譽評等資訊,在收信前進行檢測,有效攔截病毒信件
運作概念示意
http://www.trendmicro.com.tw/spn/overall/popup/09.asp
WRS:根據網頁伺服器的信譽評等資訊,對連結網頁進行檢測,確實封鎖惡意連結
運作概念示意
http://www.trendmicro.com.tw/spn/overall/popup/08.asp
FRS:根據檔案的信譽評等資訊,自動下載並分析檔案內容
運作概念示意
http://www.trendmicro.com.tw/spn/overall/popup/10.asp
三種信譽評等服務之間可相互交流資訊。例如發現釣魚信件時,該信件中連結網址的資訊將被傳送到 WRS 網頁信譽評等服務資料庫,一經判定為惡意網頁,即會被登錄在 WRS 網頁信譽評等服務資料庫中。若在此網頁中發現藏有惡意檔案時,此資訊將會傳送到 FRS 檔案信譽評等服務資料庫。並且同時將相關來源或檔案登錄在資料庫中
資料庫關聯性分析
http://www.trendmicro.com.tw/spn/overall/popup/05_02.asp
總的來說,SPN 的運作方式就是三個雲資料庫隨時跟用戶端保持雙向溝通,當某一位用戶受到威脅時,其安全資訊會反饋到雲端資料庫。例如 ERS 收到惡意郵件,SPN 會反向追蹤「哪些伺服器也在發送這份郵件」、「郵件連結到哪些網站」、「網站上有哪些其他文件」,它把相關訊息分配給 WRS、FRS 分析,做更深入的追查。 WRS 會詳細追查其他關聯網站,再反向追查其他網站的文件,進而交給 FRS 判定文件是否為惡意程式。單一用戶的安全威脅透過雲端即時回饋到全體的趨勢使用者,這樣一來就會建立起龐大的信譽評分機制
SPN 主動式雲端攔截技術介紹影片,日文妹子發音 (重點誤
http://www.trendmicro.com.tw/spn/movie/structure/index.asp
再來說本地防護,上面提到美系防毒不重視啟發和查殺,其中趨勢80%的特徵碼放在雲端,本地只保留20%,所以斷網會更弱。趨勢是用企業級的概念打造個人版防毒,每一個客戶都是一個子端,子端所瀏覽的網頁、下載的附件都必須經過主端的嚴格過濾,理論上所有威脅都應該在第一層的網路入口被擋下來,但萬一威脅還是進入到本地端該怎麼辦?趨勢有兩套方法:
1.信譽殺:在高安全模式下,只要 SPN 沒有檢測過的文件都會被封鎖,經過檢測的檔案才能開啟,當然這不代表遭封鎖的文件就是病毒。例如自己製做一個空白的 exe,趨勢也會予以攔截
行為防護:大約2009年的版本趨勢具有簡單的 HIPS,像是攔截註冊表和文件的修改,根據特定規則 RD+FD 防護,彈窗時需要使用者手動確認放行。後來收購 Third Brigate 後趨勢開始發展主防技術,現在主防已經做到相當智能,並沒有任何設置選項
當年版本的 HIPS 設置項
由於大多數攻擊由雲端來防護,趨勢的主防只對特定規則(重大系統威脅)攔阻。至於怎麼判斷哪些是雲端信譽封鎖?哪些是基於主防攔截?只要是藍色彈框並提示「未經授權的更改」就是主動防禦的效果,且主防攔截後會附帶回滾,而信譽封鎖不帶回滾也不會清除衍生物
單看 AVC 的真實世界防護測試,趨勢往往是成績名列前茅的冠軍,然而真像是──所有送測的防毒軟體,都會把防護模式開到最高,例如卡巴和 ESET 的高啟發,而趨勢就是「高安全性模式」。上面已經解釋了趨勢的安全鑑別並不是基於病毒碼、啟發、行為判斷,而是檔案信譽。這就產了一個問題,只要沒經過趨勢檢測過的檔案都無法執行,像是一些小眾軟體,這種非黑即白的判斷方式也伴隨著高誤判率。另外它的主防會擅自更改系統設置,像是 UAC 和 Windows Update,就算在組策略禁用後也會被開啟,這點我相當不喜歡
用最新的勒索病毒實測,趨勢確實能完美阻擋。但點擊樣本後延遲三分鐘左右才有反應,期間大量讀寫磁碟和網路上下傳,估計是將資料傳回雲端作鑑別
趨勢是一款相當難評價的防毒,雖然在「高安全性(白名單概念)」下幾乎不可能中毒,然而誤判率也高;而「中安全性(黑名單)」只會攔截明確的風險行為,但我們知道趨勢的查殺和啟發非常弱,這種模式下中毒風險提高很多(所以後來又多了一個自動切換防護層級)。我認為趨勢比較適合電腦沒有太多冷門軟體,而且習慣良好的用戶
簡單概括
「中安全性」= 黑名單 + Aegis 主防(無雲連動)
「高安全性」= 不在雲白名單內的軟體全封鎖
「自動切換」= Aegis + 少量雲信譽(雲優先級高於 Aegis,遇到威脅頻發就調整為高安全模式)
Symantec(80分):賽門鐵克是全球最大的資安公司,齊下分為兩套產品,以公司為名的企業品牌賽門鐵克以及個人版諾頓。身為美系防毒賽門鐵克跟趨勢一樣,防重於殺,查殺能力較弱,其中個人版諾頓70%病毒特徵放在雲端,離線後防護能力會減弱,企業版賽門鐵克依然保有完整的本地特徵庫。
無論是企業版還是個人版除了組件的版本不同,防護策略部分有做調整外,主要的功能是大同小異,分為五個部份:
文件防護:包含傳統的特徵庫和啟發式技術
網路防護:基於網路層的漏洞防護和入侵防禦
行為檢測:就是主防元件,根據行為特徵庫防止未知威脅
信譽評鑑:用大數據來對文件進行評分,可以參考趨勢
修復系統:清除感染後的修復流程,每款防毒都有
以下是具體介紹
文件防護包括:
防毒引擎:利用病毒碼抵禦最新威脅
自動防護:文件監控
啟發式引擎:Malheur & Bloodhound 兩種。常規檢測使用 Malheur 引擎,報法 MH.xx;漏洞/exploit 使用 Bloodhound 引擎
脫殼引擎:可重覆達上百次的脫殼動作
通用虛擬機:即動態啟發,包含檢測腳本(detection scripts)和通用脫殼邏輯(un-packer logic)
反多態引擎:Anti-Polymorphic 好像並沒有固定的中文專有名詞,就直譯成多態引擎了。簡而言之,就是同一個惡意軟體,入侵至不同的電腦時,產生的文件是不同的(File CRC),以此來逃避傳統檢測方式
高級啟發式引擎:結合本地/雲端啟發和信譽評鑑,並且根據情景調整靈敏度,譬如啟發式對新下載的文件比已安裝的應用程式靈敏的多....
諾頓在2016年的版本,對底層的驅動引擎進行了大改版,取而代之的是新 Static Data Scanner 引擎,關於 SDS 引擎的技術細節官方並沒有透露太多,可以肯定的是對於病毒庫和入庫報法進行了大幅優化;例如2015年8月諾頓的特徵碼總數高達4198萬,但2016年6月特徵庫數量被削減到只剩560萬,相當驚人
2015年9月諾頓開始加入 SAPE 報法,例如 SAPE.Heur.xxxx。據推測諾頓為了將病毒庫精簡,開始用了新的啟發定義。以往諾頓病毒庫之所以龐大無章,很大原因是採用應急性的暴力入庫,即 Trojan.Gen,簡單說就是將 MD5 或 SHA1 拉黑,之後再慢慢創建具體的特徵庫。這種方式最明顯的缺點除了特徵庫肥大,Trojan.Gen 的樣本在未歸類前,都可透過改 MD5 來達到免殺的效果
而 SAPE 應該是透過機器學習和大數據,將相似樣本的特徵直接提取達到入庫識別,好處是可以簡單辨識樣本的性質,也提升了識別能力(不容易被免殺)以及優化特徵庫體積。以往賽門鐵克(簡稱鐵殼)家族的防毒最被詬病的病毒檢測率在新的 SDS 引擎架構以及新 SAPE 啟發法後,應該會有大幅度的進步才是
網路防護包括:
網路入侵防禦:大名鼎鼎的 IPS,是一種流量掃描抵禦漏洞攻擊,但又跟一般防毒用完整特徵庫的流量掃描不同,諾頓的流量掃描只針對網路攻擊和漏洞,它有自己的 IPS 特徵庫,目前特徵庫高達2000多條入侵定義,包含一些常見的入侵漏洞(IE、Chrome、Firefox、Flash、Java 以及一般的惡意 iframe、JS)
講得通俗點,一般的防毒所謂的流量掃描是基於 http 的數據過濾,會用整個特徵庫去比對傳輸協議中,是否包含惡意代碼並將之攔截
諾頓的 IPS 記錄的是入侵行為定義,只有當 Web 含有明確的攻擊行為才予以攔截,這也是為什麼,下載帶病毒的壓縮包諾頓不一定會阻止的原因
事實上諾頓官方將 IPS 稱為虛擬的漏洞補丁,因為這些入侵定義相當於 EMET、HMPA 這類 Exploit Prevention 軟體的效果。舉一個例子,在 CVE-2015-2590 這個 Java 遠程安全漏洞中,攻擊者利用禁用 Java Security Manager 來入侵電腦,諾頓的 IPS 可以在一天之內藉由即時更新入侵定義來保護使用者,一般人則必須等待 Oracle(開發 Java 的公司)發行修補程式,至少得多等兩天才能倖免於攻擊
除此之外,它還能防範許多 Exploit 攻擊手段,例如常見的 Heap Spray—在預先確定的記憶體位置插入惡意代碼,當有漏洞的第三方程式(通常是 Web Browser 或它的套件)執行時便會啟動。而 IPS 底下的主動漏洞防護模塊(PEP)會以插入良性代碼的方式先填補這些記憶體位置,來阻止這些惡毒攻擊
鐵殼是少數帶有完整的 Exploit Prevention 模塊的防毒軟體,IPS 的核心是一個通用的 Exploit 攔截引擎(Generic Exploit Blocking (GEB)),使用諾頓就沒必要再裝 HMPA、EMET 了,就算裝了也可能會有隱性衝突。在所有防毒中,對於漏洞預防諾頓相對出色許多
瀏覽器保護:它能夠監控瀏覽器內的惡意代碼執行,因此得以檢測繞過上一層防護的攻擊,另外也包含了網頁信譽
未經授權的下載保護:基於網路層的最後一道防線,同樣防護未知和未修補的漏洞,但不使用 GEB 簽名(IPS 定義),主要是攔截可疑的 API 調用來避免惡意軟體偷渡下載
行為檢測 Sonar
全名為 Symantec Online Network for Advanced Responce,看名子就知道,諾頓的主防必須連網才能發揮最大功效,它會與各種模塊連動,包括特徵碼、啟發、IPS、防火牆、雲端信譽。例如當一個文件信譽很低時,Sonar 會調高敏感度,發現可疑行為時立刻清除;又例如被啟發報毒時,也會呼叫 Sonar 回滾破壞
Sonar 是鐵殼系統的最後一道防線,它防禦目標包含了病毒、木馬間諜、殭屍網路、漏洞注入、Zero-day、偷渡式下載、rootkit 這些所有的攻擊方式,也就是說就算病毒通過了文件防護的掃描(特徵庫、啟發)、網路防護的檢測(IPS),到達了本地執行時 Sonar 還是會再檢查一次,而且是實時對記憶體中的程式進行監控,有惡意行為時立刻阻止且回滾修復
至於 Sonar 本身判斷惡意程式的方法有兩種,一種是用機器學習來分析雲端大數據中的資料,智能地識別惡意攻擊,報法是 SONAR.Heuristic.XXX,也就是常說的雲啟發或雲 AI;另一種則是基於規則的啟發定義,又分為一般的行為簽名和行為策略攔截,詳細的定義可以參考
https://www.symantec.com/security_response/landing/azlisting.jsp?azid=S
在我寫這篇文章時,關於 Sonar 的啟發簽名共有780條定義
在某些情況下,病毒會深度嵌入合法的應用程式或作業系統本身,這時後強硬刪除會伴隨著極大風險(死機、系統不穩定...)。於是 Sonar 會製造一個虛擬機(virtual sandbox),將被感染的檔案導入其中修復,讓它們不影響使用,該過程是全自動,而且你可能不會注意到
信譽評鑑
將用戶匿名提交的資料,通過統計社會學的方法來對文件進行分級,它會蒐集以下訊息:
.用戶電腦上發現的應用程式(SHA2 哈希值)
.分析網路上的檔案來源
.是否有數字簽名
.文件出現在網路上的時間
.其他有關屬性
這些訊息會被存放在雲端組成一個大型的信譽模型,當客戶端需要時便於提供,例如諾頓的下載掃描就會檢查文件的評級,聲譽不好立即阻止下載
依照諾頓的文宣理論上會降低誤報,但實際上該功能就是諾頓長久以來被戲稱為萬物殺的原因。就拿下載掃描的評判基準來說明,當一個新文件被放到網路上時,由於下載人數過少,諾頓會直接阻止下載,直到一周或一個月後,下載的人變多(共有率提高)信譽系統才會放行。這種寧可錯殺百也不放過一的防禦策略,加上美系防毒一項將盜版和破解視為毒蛇猛獸,讓諾頓獲得了萬物殺的美名…
最後說一下鐵殼企業版 SEP 和個人版諾頓大概的差異,除了上述提到的 SEP 有本地病毒庫之外,企業的組件大概落後個人版一到兩個版本,整體掃毒、主防弱於個人版;企業版也沒有網頁信譽,IPS 少了壓縮檔監控。但是 SEP 擁有相當強悍的 CMC Firewall,自訂性極高,這是個人版只能依靠 symnets.sys 驅動控制連網遠遠比不上的;而且 SEP 每個組件都可以自定義安裝,加上永久免費(相信這才是很多人在意的)讓不少個人用戶選擇使用企業版 SEP
整體而言,諾頓的查殺偏弱且誤報高(新的 SDS 引擎多少有改進);但防禦能力強,對於網路攻擊和漏洞防護在防毒中是一等一的。我對它的評價跟趨勢差不多,適合習慣良好不裝盜版軟體的用戶
AVG Internet Security(80分):免費 3A 中最早擁有主防的防毒軟體,筆者付費版用了快兩年了,對於此防毒的特性感受相當深刻,下面將逐一介紹各模塊的功能
AVG 的防護分為五大項
反病毒保護:基於特徵庫和啟發的實時檢測
網頁瀏覽:分成 LinkScanner 和 OnlineShield 兩項目
身分:中文翻譯取名實在很爛,這玩意就是主防 IDP,是五大項最核心的功能,也是 AVG 自豪的看家本領,少了它防護至少打四折
電子郵件:附件病毒檢測和垃圾郵件分類,只支持 Outlook 等本地收件軟體
防火牆:Outpost OEM 版本,全自動智能的防火牆
反病毒保護檢測方法
.已知病毒的簽名掃描
.多態檢測引擎(請參考諾頓多態檢測的說明)
.啟發式分析:分成靜態和動態啟發
檢測順序由上至下,另外當文件被預處理和引用時,如果被認為不需要進行分析(例如白名單中的檔案),那麼掃描將不會啟動以提高執行效率
至於實時檢測(平時的系統監控,非手動掃描)又分兩種
.Resident Shield:當文件被複製或執行時對其進行掃描,檢測到病毒會阻止打開受感染的文件。它也會儲存檢查過的檔案訊息,如果沒有被修改過下次將忽略這些文件
.Anti-Rootkit:會分析調用的任何系統程序以及更深入的核心系統,以分析可能的 rootkit 存在
網頁瀏覽
.LinkScanner:有點類似諾頓的 IPS 但不帶流量掃描,是基於專門的 exploits 特徵庫對 URL 進行過濾,如果網頁有惡意代碼將進行攔截
.Online Shield:真正意義上的流量掃描,會用本地的病毒庫掃描網頁中任何的代碼和程式,病毒下載到電腦前就會先行攔截,也支持 Skype 等即時通訊軟體。付費版才有的功能
兩者的區別在於 LinkScanner 針對的是 iframe、JS 等攻擊腳本,並用 URL 去過濾;Online Shield 則是抓著整個病毒庫去掃描網頁中的任何元素,另外也包含釣魚網站
身分(主防)
IDP 是標準的規則式主防,主防的定義不再講解了,請自行看前面的介紹
比較特別的是,由於 AVG 是模塊化設計,所以主防本身可以單獨工作(不像諾頓組件互相被綁死),這也讓有些人透過特殊方法提取出 IDP 或者 LinkScanner 去搭配其它防毒;話雖如此 IDP 還是會與其它組件連動,只是依賴性不高,例如文件掃描發現到病毒,會呼叫 IDP 進行恢復破壞,同時防火牆會封鎖可疑的連線
遇到可疑程式但沒觸動到啟發的情況下,IDP 也會從雲端查詢文件的信譽,降低誤判的可能
順便說個有趣的歷史,IDP 的前身是 Norton AntiBot,是 AVG 向諾頓購買主防技術,之後再自行改良加強而來
早期版本的 IDP 和 Norton AntiBot,介面幾乎一樣
電子郵件
免費版可以對附件進行病毒掃描,付費版多了垃圾郵件過濾,只支持 Outlook 等本地收件軟體,沒有用到這個功能可以直接卸載(模塊化好處)
那你說我用 Gmail 怎麼辦?既然是 Web Mail 那麼網頁瀏覽組件就可以防護了
防火牆
Outpost OEM 版本,AVG 把它調校相當智能。當檢測到連接企圖時,防火牆會同時向雲端信譽庫和本地病毒庫查詢資料,如果為惡意軟體或有安全風險時會自動封鎖
另一種情況是,軟體被識別為安全程式,但簽名破損或無數字簽名(常見於被修改的原版軟體),防火牆也會阻止連線
幾個判斷標準
.是否為病毒木馬
.有無安全風險(危險係數)
.數字簽名
防火牆會自動在背景工作,平時很難感受到它的存在,如果不放心的話,也提供手動的交互模式讓使用者選擇
整體而言 AVG 表現得中規中矩,論掃毒和啟發不如同為歐系的紅傘、BD、FS,但卻比美系趨勢、咖啡好;主防攔截率一般,帶有回滾而且修復成功率極高;防火牆相當智能。如果說 AVG 的掃毒、主防、防火牆分別只有70分,全部加起來就有超過80分的防護能力:例如病毒過了網頁防護,到了本地也要經過掃毒引擎的檢測,就算過了掃毒主防 IDP 也會即時攔截
AVG 還有一項優勢,就是各項組件依賴性低,而且離線防護能力高。AVG 各組件雖然會協同工作,但因為模組化,並不會因為關閉掃毒引擎就造成主防或防火牆失效的情況發生,各組件能獨立工作,互相協調但互不干涉。AVG 的雲端僅供信譽查詢,不俱備特徵庫或啟發,主要的防護依然在本地發生,就算是離線也不影響防毒效果
AVG 的防護算是做得面面俱到,卻沒有過多花俏功能,對於新功能的添加也一直很謹慎,這三年裡除了2016年加入了 AI Detection(似乎是從收集的匿名資料進行遙測機器學習,官方沒釋出白皮書),並沒有任何明顯的改版動作,幾乎都是底層的優化和規則的更新較多
如果你跟我一樣,喜歡實用、不花俏、離線防護能力高,那麼 AVG 推薦給你。AVG 也是免費3A 中最早擁有完整主防的防毒,算是相當佛心
附註:由於 Avast 收購 AVG 的關係,最新的 AVG 2017 已改為使用 Avast 的掃毒引擎和網頁防護架構(2016還是可以繼續用);而 Avast 本家也預計加入 AVG 的主防。未來的 Avast、AVG 可能只是名子不同,但骨子裡是一樣的東西
Qihoo 360(75分):聲名狼藉,卻也是被最多人誤解的一款防毒軟體。解說原理前,必須先替360澄清幾點:
1.360國際版沒有任何流氓和廣告,甚至連彈窗都沒有(在這個意義上比免費3A乾淨多了)。真的不放心,可以從微軟的市集上下載,有通過微軟認證
國際版地址:https://www.360totalsecurity.com/zh-tw/features/360-total-security-essential/
2.2015年傳出360在國際評測中作弊,導致許多不明事理的台灣鄉民落井下石。如果對360的防毒技術稍有研究以及翻閱正反兩面的文章,會發現 AV-C 對360的指責有可議之處。簡單來說,360內建三種查殺引擎,分別是自家的 QVM、Avira、Bitdefender,使用者在安裝後可以自行設定要選擇哪些引擎。
AVC 撤銷360認證的理由是:「360僅在測試版本默認開啟 BitDefender 引擎」
再來看看360的解釋:「我們配備多引擎的目的,是為了針對不同國家和地區的特點,可以進行引擎的靈活選擇使用,以保證防護效果的最大化,比如 BD 是歐洲引擎,在歐洲病毒木馬的查殺有優勢,而 QVM 和我們自己的雲引擎針對中國地區比較好。三個引擎都配置,在不同國家和地區有不同的默認配置,用戶自己也可以選擇。因為 AV-C 的評測標準偏向歐美,所以我們的參測版本默認開啟 BD 引擎,而對於中國用戶我們推薦 QVM 引擎」
一個簡單的例子:遊戲外掛、破解器在中國有上億人使用,一些外掛甚至是遊戲官方許可的,如果這些軟體本身無害,中國的防毒不會對其查殺。但是在歐洲,外掛和破解器統一被定義為惡意軟體,中國防毒在參加歐洲地區評測時,必須根據當地標準調整引擎和雲查殺策略
再來就是360並不是第一天參加 AVC 的評測,早在2010年時就有參賽紀錄,而且對於參加評測的版本與中國的版本略有差異也早就告知。五年的時間不見 AVC 有任何異議卻在2015年4月30日突然就取消認證,不給360任何答辯機會(5月1日是中國的五一假期,AVC 撤銷認證後只給奇虎40分鐘的答覆時間,一般來說對於評測有異議,都會給予參選企業24小時作出回應,再考慮到中國與奧地利的時差,等於根本不給360任何答覆機會),此舉不符合國際評測機構的常規。總之這件事有太多弔詭之處,不能只看一方面的說法
還有就是,360只退出了AVC,另外兩家評測 VB100、AV-Test 依然有360最新的成績(中國版)
這邊有一段影片是測試360全引擎與單純自家的雲掃成績的差別,可以看出其實相差不大,奇虎絕對不是因為自家的 QVM 上不了臺面才會在 AVC 只開 BD 引擎
全引擎 v.s 純雲掃
並不是我要幫360護航,以上兩點說明是希望,評價防毒應該從技術面的角度去切入,盡量減少先入為主的主觀意識。下面就來剖析我為什麼覺得360值得大家一試
當發現威脅時,360會將文件由四種掃描引擎做檢查。在本地有 Avira、Bitdefender 引擎基於特徵庫的查殺;同時雲端也會做初步的 MD5、Hash 判斷,若在白名單直接放行,黑名單拉黑;除了上述的雲拉黑以及兩個本地 OEM 引擎,第四種就是 QVM 人工智慧引擎,它不利用特徵庫以及傳統啟發判斷,也不像主防會持續監控程式行為,而是一套智能算法,會從雲端收集到的資料不斷「自我學習」最新病毒的行為模式。聽起來很神奇吧?其實目前基於大數據發展 AI 的廠商越來越多,像卡巴斯基的 KSN 就是一例。但 QVM 推出的時間是在2010年,遠比任何防毒使用 AI 的時間點都還要早,也是第一套在個人版防毒以人工智慧為主要查殺手段的廠商
上面介紹了這麼多種識別病毒的方式,從傳統的特徵碼、複合式特徵碼、靜態動態啟發、主防行為判斷。我們先跳出這些技術上的思維限制,從根本上思考一下:區分病毒和正常文件,靠的究竟是什麼?
其實答案很簡單,那就是 difference,也就是差異、不同。只有發現病毒和正常文件的 difference 才能識別出病毒。綜觀特徵碼、啟發、行為判斷,實質上都是在找出差異。所謂的特徵碼也就是在找病毒和正常文件在代碼上的差異罷了
找到了問題本質,解決問題的方法也就千變萬化了
於是有人想到,既然是找出差異,那能不能利用搜尋引擎廣泛使用的一些智能算法來完成目標呢?搜尋引擎需要完成的任務和防毒有很多相似之處:1.都是海量文件的分析;2.都是去尋找特定特徵的目標
為了解說更淺顯易懂,先介紹一個廣泛用於攔截垃圾郵件的人工智慧算法 — 貝葉斯算法。貝葉斯是基於統計學的一種自我學習過濾器,它能夠區分正常郵件和垃圾郵件之間的差別,我舉一個例子:
一封含有 “ 法輪功 ” 字樣的垃圾郵件 A 和一封含有 “ 法律 ” 字樣的非垃圾郵件 B 。根據郵件 A 生成哈希表(壞),該表中的記錄為
法: 1 次
輪: 1 次
功: 1 次
計算得在本表中:
法出現的概率為 0.3
輪出現的概率為 0.3
功出現的概率為 0.3
根據郵件B生成哈希表(好),該表中的記錄為:
法: 1 次
律: 1 次
計算得在本表中:
法出現的概率為 0.5
律出現的概率為 0.5
綜合考慮兩個哈希表,共有四個字符串:法 輪 功 律
當郵件中出現“法”時,該郵件為垃圾郵件的概率為:
P = 0.3/ ( 0.3 + 0.5 ) = 0.375
出現“輪”時,該郵件為垃圾郵件的概率為:
P = 0.3/ ( 0.3 + 0 ) = 1
出現“功”時,該郵件為垃圾郵件的概率為:
P = 0.3/ ( 0.3 + 0 ) = 1
出現“律”時,該郵件為垃圾郵件的概率為:
P = 0/ ( 0 + 0.5 ) = 0
由此可得第三個哈希表 hashtable_probability (也就是數據庫文件),其數據為:
法: 0.375
輪: 1
功: 1
律: 0
當一封含有“功律”的新郵件寄到時,我們可得到兩個字符串:功 律
查詢哈希表 hashtable_probability 可得:
P (垃圾郵件 | 功) = 1
P (垃圾郵件 | 律) = 0
此時該郵件為垃圾郵件的可能性為:
P= ( 0*1 ) /[0*1+ ( 1-0 ) * ( 1-1 ) ] = 0
由此可推出該郵件為非垃圾郵件
我們可以從上看出貝葉斯算法是先通過對垃圾郵件和正常郵件的“學習”得出模型數據(即上例中的哈希表 hashtable_probability),然後利用模型數據去區分新的垃圾郵件。學習量越多,模型數據越大,則最終的鑑別結果也就越準確
QVM 也是使用類似的技術(當然不是貝葉斯算法,而是360自己研發的算法),海量學習病毒和一般正常檔案之間的行為差異,得出數據模型,再將模型分發到用戶端,防毒軟體再根據模型區分病毒
優點:
1.對新變種病毒識別率高。 QVM 一個月不更新,檢出率降幅不會超過10%,半衰期為6個月
2.模型數據由雲端推送保存到本地,不怕斷網(僅中國版有完整離線 QVM 模型;國際版只有簡單的索引庫,依然需要連網才能發揮 QVM 的效果)
3.不怕加殼、免殺。傳統特徵都是用 MD5 做匹配,可以被輕易修改;QVM 是直接對樣本做全局運算,較難被規避
4.俱備自我學習機能,維護成本低
缺點:
1.算法的優劣影響到效果,不好的算法將大打折扣
2.不易區分正常文件和 PUA、PUP 之間的差別
3.沒有完美的算法,不可避免存在學習死區,造成誤報可能
這類 AI 也算是啟發式技術,我們知道所謂的啟發就是反編譯、模擬人工分析病毒的過程,通常本地掃毒引擎的啟發都是通過 PE 識別法、入口點監測、API 調用等等,只能算是淺層的啟發應用;而人工智慧顧名思義,會從樣本不斷的累積學習、自我進化,技術含量與傳統啟發不在一個檔次。除了QVM,卡巴的 KSN、紅傘的 APC、邁克菲的月神都是雲啟發。然而不代表 AI 就一定好過傳統啟發,現階段 AI 局限於算法的精度和樣本數量,都會帶有一定的誤報;相對的本地啟發技術成熟、誤報少也不依賴雲,不少防毒都是本地+雲啟發相互配合達到最大的查殺效果
QVM 是 Qihoo Support Vector Machine (奇虎支持向量機)的縮寫,具體細節可以參見 Vapnik 著作的機器學習經典《Statistical Learning Theory》
統計學習理論 WIKI
支援向量機 WIKI
機器學習 WIKI
當病毒通過了網頁防護到達了本地,又過了含 QVM 在內的引擎掃描,是不是就沒辦法阻止了?現在要談的就是最後一道防線360的智能 HIPS
當執行360無法識別的程式時(不在黑白名單+QVM 不殺),就會開始記錄這個程式一切行為動作,然後將這些數據上傳到雲端的規則分析器來判斷是不是惡意行為。至於為什麼說它智能,要知道360全球有近5億的用戶數,面對這些龐大的使用者,當然不可能跟 Comodo 一樣讓用戶自己打磨規則
首先白名單是不可避免的,凡是在白名單內的程式多數行為都會放行,減少誤報率;再來360的規則是基於海量的雲端數據分析出來的一套智能判斷邏輯,只有高風險的行為才會提示阻止;最後是易用性,如果有用過手動 HIPS 應該知道 services.exe 添加服務是一件鬱悶的事,所有程式添加服務都會呼叫 services.exe 寫入對應的註冊表,要不要阻止只能看到底創建了什麼服務項目,如果判斷錯誤就會導致添加失敗或無法攔截。360使用 RPC 解析技術可以精準的報出到底是哪個程式添加了什麼服務,服務指向的執行檔又是哪一個,而且用簡單的白話告訴你這些動作是在做什麼:例如 chrome.exe 修改預設瀏覽器、增加開機啟動項。使用者不用去理解註冊表的內容,只要從程式的行為來判斷即可
360是少數有網頁防護以及下載防護的免費防毒,憑藉著360在中國有4億的裝機量,它的信譽庫可謂是亞洲最大,對亞太區的惡意網站有相當好的攔截率;但是有一些缺點,你必須安裝它的瀏覽器套件才能發揮防護作用,不像部分防毒是直接對全局進行流量掃描,不需依賴套件;另外它的 Firefox 套件已經很久沒更新了,在64位元的火狐上不起作用
做個總結,360的防禦系統由三道防線構成
1.全亞洲最大的網頁信譽防禦
2.四種引擎(含QVM)的特徵庫+啟發掃描
3.智能化的 HIPS
與80分以上的防毒相比缺點也很明顯:沒有主防無法回滾(中國版360支持回滾,國際版不確定)、沒有 Exploit Prevention 模塊、沒有防火牆、沒有流量掃描。但不要忘了它只是款免費防毒,在兼顧易用性的前提下依然有相當出色的防護能力,而且程序輕巧不卡機
你不相信?來跟付費最強的比特梵徳比較看看
BitDefender v.s Qihoo 360
網頁防護、釣魚網站攔截率都是360小贏比特梵徳,文件掃描更是大勝1.4倍(201:139),直到本地雙擊 BD 才扳回一城(歸功於鬼畜的 ATC 主防)
它還有一個沙箱,但因為不俱備自動入沙功能就不介紹了
個人私心認為,360是目前免費智能防毒首選之一
ESET(75分):過去 ESET 給人輕巧但查殺強大的印象,雖然隨著改版功能的增加不再小巧,卻同時提供了豐富的自訂性。ESET 的優勢在於高啟發和基因庫,進階的使用者可以用 HIPS 和防火牆自訂規則,達到不下於 CIS、BD 的防護水準
關於啟發已經講解多次了,不再贅述。我們只要知道 ESET 是最早使用啟發的防毒廠商之一,雖然時到今日每家防毒都帶有啟發技術,可是水平各不相同,多數還是必須配合傳統病毒碼才能有水準以上的檢測率;而 ESET 號稱「啟發之王」,在啟發上投入的心血、累積的經驗都比其他廠商多,甚至有自己獨創的啟發式—進階啟發式,針對高階語言(Java、C、C++、C#)編寫的程式優化過的反編譯器,能更準確的讀出程序指令
ESET 另一個強項是基因檢測,所謂的基因就是防毒分析多種同類病毒後,提取出相似特徵,只用一條定義就可以殺多個樣本。通常來說俱備基因功能的防毒都有獨立的基因庫,ESET 厲害在於它直接用病毒庫代替基因庫,利用演算法識別出相似病毒。若開啟了「進階啟發式/DNA/智慧型簽章」選項會同時用進階啟發、基因來監控系統提升檢測率。ESET 很少有拉黑報法,真的要說只有雲殺 Suspicion Object 才是 ESET 的拉黑,所以 ESET 本地病毒庫體積很小,只要啟發和基因能辨別出來的樣本都是不入庫的
「潛在的不安全應用程式」「潛在的不需要應用程式」這兩個項目建議一般人關閉,如果開了就會出現 PUP/PUA 報法(potentially unwanted Program/Application)。像是 CCleaner、格式工廠都會被攔阻,因為 CC 安裝程式裡面有 Google 瀏覽器的推廣,雖然不是強制安裝,但是捆綁推廣就屬於可能不需要的程式 。這裡給出 ESET 對 PUA 的定義:
.以前沒見過的新視窗(彈出視窗、廣告)
.啟動並執行隱藏的進程
.系統資源的使用增加
.搜索結果發生改變
.應用程式會與遠端伺服器通訊
而潛在不安全通常都是報破解軟體,因為多數破解會帶有類似間諜軟體的行為
報 PUP/PUA 不代表就是病毒,然而一般使用者看到防毒彈窗大概都會覺得有毒或者誤報,所以這邊建議關閉
ESET 沒有主防,但是有 HIPS 可以自訂義規則,預設共有五種模式:自動模式、智慧型模式、互動模式、原則型模式、學習模式
.自動模式,基本的系統保護規則+自定義規則根據阻止>允許>詢問的順序執行,若遇到規則中沒有的項目則會默認放行
.智慧型模式,大體同自動模式,除此之外還會查詢 ESET 雲信譽和監控 HOST 文件修改,彈窗稍多
.互動模式,除了規則外的一率彈窗詢問
.原則型模式,規則外的默認全部阻止
.學習模式,所有行為放行並將目前操作創建白名單規則
確認自己電腦是乾淨的前提下,可以開啟學習模式一至兩天,把常用的程式執行一遍,之後再轉互動模式(適合有經驗的使用者);至於自動模式和智慧型模式說實在沒多大用處,預設的規則只保護重要系統文件,其它行為基本不攔,雖然有雲信譽但資料規模不如卡巴之流,無法做到智能分組。小白用戶開自動模式就好,但不要期待有多大的防護效果
“進階記憶體掃描(AMS)”類似主防,用啟發式掃描已在記憶體中執行的程序。但仍然稱不上真正的主防,主要差異在於這項功能沒有記錄程式行為的能力,所以沒辦法回滾或進行較徹底的清毒。另外像 Sonar 這樣的主防都有自己的啟發定義庫,當程序觸發複數的規則時才予以攔截;ESET 的”記憶體掃描”並沒有專門的定義庫,而是與一般啟發式通用規則,對於執行中的程式只要啟發檢測到就會報毒,相對來說比較不嚴謹
本質上 AMS 也是一種靜態啟發,利用特殊手法調用啟發引擎掃描可疑程式申請的記憶體位置,對載入到其中的組合語言數據進行啟發分析,其實技術層面並不會比真正的主防差,但組譯層的安全近幾年無重大突破,實測中也可以發現 ESET 這項技術還不成熟
“程式漏洞防護”等同於卡巴的 AEP 或諾頓 PEP 組件,會特別監控利用 Browser、PDF、Java、Office 等程式行為,當發現典型的漏洞攻擊會立刻阻止,並且將事件記錄上傳到 LiveGrid 雲端伺服器分析,以利於增添新的漏洞行為簽名
Web 防護方面 ESET 有兩種檢測方式:
.依黑名單封鎖(使用流量掃描)
.依內容封鎖
之前有提過卡巴斯基會利用啟發式偵測網頁內容,ESET 的內容封鎖也是這樣。例如正常的網址是 www.youtube.com,釣魚網站可能會改成 www.youutube.com,這時後 ESET 就會先封鎖網頁內容,並傳送到 LiveGrid 雲端分析是否有危害。比起其它防毒,ESET 可能更依賴啟發式作為分析手段
防火牆的過濾模式,分為自動模式、互動模式、原則型模式、學習模式,大致上與 HIPS 差不多,這邊不贅述
ESET 的防火牆提供詳盡的自定義規則,除此之外還有兩個重要的功能:
.網路攻擊防護(IDS)
.殭屍網路防護
IDS 會分析所有對內的網路流量,封鎖可能有害的網路攻擊。它還包含了 Vulnerability shield—這是一個附加在防火牆下的擴展,透過檢測常用的通訊協議,例如 SMB、RPC 與 RDP 協議,阻止利用網路層的漏洞行為。概念有點像諾頓的 IPS
殭屍網路防的則是對外網路,在電腦受到感染且 Bot 嘗試通訊時,它會識別已知惡意特徵並與遠端站點惡意軟體黑名單互相比對。一旦檢測到惡意通訊,將立即阻止並通知用戶
ESET 的雲系統 LiveGrid 包含了拉黑和信譽,當掃描時檔案的 Hash 會傳送到黑白名單比對,白名單上的項目將被標住日後不再掃描,以提高效率;黑名單會依據威脅性質採取相應措施;若都不匹配則會上傳至雲伺服器後台系統處理,凡認定為惡意樣本,自動生成病毒特徵碼在下次更新時發送給用戶。不過 ESET 主要還是以本地掃描為主,雲拉黑報法相對罕見
另外就是信譽功能,會收集該檔案的共有率,主要體現在 HIPS 以及防火牆的彈窗
整體而言,ESET 有幾個比較大的缺點
對於活動威脅對抗能力偏弱
ESET 的引擎模塊為非驅動級的 DAT 格式(至少在九版以前是如此),而且跟 AVG 一樣組件是模塊化設計,這樣的好處是各個組件互相獨立,每次改版添加新功能相對容易(例如 ESET 3版到現在都還可以更新,只是少了 Exploit Blocker、AMS、Botnet Protection、IDS....等一堆功能)。但也因為架構的關係,常發生發現病毒,但清除不了的狀況,包含它的”進階記憶體掃描”也是如此,只能報毒卻無法終止病毒程序。AVG 雖然也是模塊化,然而 Anti-Rootkit 是驅動級文件,還有可回滾的 IDP,相對來說 ESET 在這方面實在做得不好,只能”查”卻不能”殺”
精簡的病毒庫
這其實不算缺點,我們已經知道 ESET 的病毒庫相當小巧,多虧了啟發和基因,不用像其他廠商逐條入庫。再者,ESET 每次更新都會把沉余病毒代碼刪除,譬如一些不流行的化石包,或者現代作業系統無法執行的軟體。但如果是 Windows XP、Server 2003 的用戶,ESET 比較沒辦法防護針對這些老舊作業系統的病毒
中文版不殺易語言
只要是中文版(不管簡體/繁體)都排除了易語言病毒碼,而英文版易語言一律通殺,報法是 a variant of win32/flystudio unwanted application(PUA 報法)。主要影響的是一些對岸的軟體,關於易語言詳見:易語言 WIKI
ESET 的防護流程如下
.網路入口防護(含 Web、IDS)
.本地特徵碼、基因、啟發檢測
.HIPS(含 AMS、Exploit Blocker)
預設情況 ESET 主要靠基因和啟發防禦病毒,只要過了前兩關,有害程式一但於記憶體中執行 ESET 基本上是手無縛雞之力,甚至我認為預設設定的防護能力比360還差(360至少是智能 HIPS);但得益於 HIPS 以及防火牆豐富的自訂選項,高手使用 ESET 可以達到不下於 Bitdefender、Comodo 的強度。不過小白用戶也不必過於擔心,能過 ESET 啟發和基因殺的病毒其實相當罕見,只要習慣良好也不至於中毒
Avira Pro(75分):如果說 ESET 是啟發和基因技術的先驅,那紅傘就是進一步將兩者發揚光大,而且加入雲啟發的概念。在本地加上雲的雙重檢測下,使得紅傘的查殺率在國際評測中獨佔鰲頭,是高檢測率的防毒代表之一
早期紅傘曾被人認為誤殺嚴重,而且只要是加殼都殺,原因在於廣譜特徵。我們先回過頭談最基本的特徵碼,首先「特徵碼」只是一段特徵,每家防毒對同一個文件取樣方法都不一樣,例如一般雲殺是直接計算整個病毒文件的 MD5 或 SHA-256;而本地特徵為了減少誤報和縮減毒庫體積,提高查殺效率,會先分析文件的結構尋找特定的內容代碼段,一般提取兩個以上的代碼段來製作特徵碼,但是這種方法有其侷限性,就是很難分類同種的不同文件,於是「廣譜」的概念就被提出來
所謂廣譜簡單的講就是分段,像是將某文件進行分塊,計算每一塊的哈希值,再將一系列哈希值利用比較函數進行相似度比較。以加殼文件為例,紅傘可能從檔案標頭(加殼後的共通部位)取一段,程式本體再取一段做為 CryptGen。口語概念大概可以表達成:這個程式加了殼(可疑),而又包含某段特定程式碼(確定為威脅)。這種方法對於變種病毒有奇效,但也使得誤報率大大增加,所以很快又發展了基因技術,從多點特徵值取樣轉變為共通特徵值取樣,從廣大的樣本數量建立病毒家族的 DNA 體系,現在廣譜和基因的定義已經逐漸模糊。至於為什麼要殺帶殼文件,因為紅傘脫殼很弱,才會採取帶殼入庫的措施,這的確也導致了誤報(但正常軟體沒事不會加殼)
紅傘沒有主防,但無論免費或付費版皆有強大的 Avira Protection Cloud(簡稱 APC)。APC 的工作原理可以參考360 QVM,大致上非常相似,卻也有不同的地方。當年360研發 QVM 時紅傘也有派人來觀摩學習(QVM 08年開始研發,10年推出;APC 11年開始,首次出現在13年),從這點來看,360在雲 AI 上無疑是紅傘的”老大哥”
與一般的雲殺一樣,APC 在偵測到未知文件時,會上傳 Hash 比對,白名單放行,黑名單封鎖,如果依然未知再上傳整個文件分析,整個過程只有幾秒鐘的時間
文件上傳後會在雲端上進行行為模擬,APC 用了凸優化(Convex optimization),通過凸函數和凸集細節分析未知文件的共性,並將未知文件分類為“白(good)”亦或是“黑(bad),而且俱有自我學習的能力
所謂的 SVM 就是把分類問題抽象化為凸優化問題,因為凸優化的解一定是全局最優解,本質上 QVM 和 APC 可說是同門師兄弟,但是局部算法不同,觸發條件也不一樣。360是把規則下放到本地,不怕斷網直接阻止;APC 要把文件傳上雲端跑行為。在雲端模擬行為有相當多的好處,除了不佔用系統資源,也可以避免樣本在沙箱中被規避,不少樣本在沙箱或 VM 中並不會展現出惡意行為,所以防毒無法檢測到(像 Comodo sandbox 就不先進,檢查執行路徑和 Memory Size 就可以被簡單規避了)
當然 APC 有缺點,首先它不是實時啟發,觸發時機有三種:
1.雙撃時 Trigger APC 開關
2.快速系統掃描
3.執行隔離區的檔案掃描
為何不中斷地在即時防護上監控掃描,原因在於 Windows Kernel 容許由其他程式負責的期限只有十秒鐘,而 APC 的上傳及分析速度相比 Windows Kernel 慢,如果超過十秒,Windows Kernel 就會自動取替有關檔案的處理,這樣會過份拖慢系統速度,所以只有手動掃描和首次雙擊觸發 APC
現在我們知道 APC 分析時間是有限的,而且尷尬的是如果上傳前跳出 UAC 也算在秒數裡,使得分析失敗的可能性增加,再來 APC 的檢測也不是萬無一失,難免有漏網之魚。在實測中 APC 對於勒索病毒相對是比較弱勢的
APC 觸發過程
付費版和免費版最大的差別,在於有無 Web Guard 網頁防護,它是以掛載 LSP Winsock 的型式去過濾所有 http 流量。白話一點講,就是在系統裡設置一個代理伺服器,讓所有經過 Browser 的信息都先經過代理伺服器進行掃描,這樣做的好處在於,可以使攔截入口前移,只要網頁內存在病毒,WG 會直接攔阻整個網頁。我們把一般的防毒防護和網頁防護的具體流程做個比較:
一般防護:來自網路的數據下載到硬碟→防毒檢測→系統
網頁防護:來自網路的數據→代理服務器檢測→硬碟→系統
也就是說網頁防護會先在記憶體裡掃描一遍才允許存取到硬碟,沒有網防的防毒,則要病毒到達本地端後才會有動作。有時後惡意網頁並不止包含單一木馬,如果完全倚靠本地特徵庫,難免會有漏網之魚;而網頁防護除了用特徵庫比對,也包含了 URL 黑名單和 exploits 檢測,就算毒網含有多個掛馬,甚至是未入庫的病毒,只要符合特徵庫/URL/exploits 其中一項定義就通通封殺,達到多重防護效果
網頁含可疑 JS 腳本直接將整個頁面封鎖
免費版當腳本下載到本地時,才會移除
免費版雖然沒有完整的流量掃描,卻可以安裝 Avira Broswer Safety(非紅傘用戶也可使用),一定程度上可以彌補網頁防護的不足
https://www.avira.com/en/avira-browser-safety
ABS 的核心功能是雲端網址辨識技術 Avira URL-Cloud,它相當於 WG 的 Web Filter,只是把整個資料庫都放在雲端,不再依賴 WG 的 Webcat
ABS 有以下的優點:
1.所有運算都在雲端中完成,對性能影響降到最低。因為 ABS 不再經過本地流量掃瞄才可以截停,其截停方式完全依賴瀏覽器本身提供的附加元件 API,相容性較好。相較於 WG 需要多個步驟(下載→分析→截停),卡網現像會有所改善
2.由於資料庫在雲端的關係,不再需要等侯新的 Webcat 資料 WG 才可以截停(所謂的入庫),病毒網址的滯後時間大大縮短,惡意網站資料將永遠處於最新狀態
3.Web Guard 對於 Https:// 的網頁無法掃瞄,因為連線是加密的;但 ABS 因為是建基於瀏覽器的 API 不存在此問題
另外 ABS 也提供了 Tracking Protection(防追蹤功能),由 abine 的 DNT/DNTME 技術合作提供
ABS 看似完美,但實際上無法取代 WG,理由如下:
1.附加元件會降低瀏覽器的效能和穩定性
2.ABS 並沒有提供下載防護,它是一個網址辨識功能。假設網址安全,但被人惡意注入木馬,ABS 將無法預防這種情況
也就是說 ABS 只包含了 URL 黑名單;而 WG 有病毒特徵庫/URL/exploits。個人實測 ABS 的攔截率其實不高,紅傘對於掛馬網頁的偵測相當倚賴啟發,這只有 WG 才能做到
在本機應用上,APC 也有用到 Avira URL-Cloud。例如一個未知程式被 APC 發現可疑的連線行為,這時就會調用URL Cloud 對該程式所連線的網站進行掃瞄並反饋結果,如果為 Malware 立刻封鎖
ABS 封鎖頁面
紅傘的整體防禦流程如下:
WG/ABS 網頁防護→本地病毒檢測→APC
可以發現相較於卡巴、諾頓這些”重武器”紅傘少了很多東西。首先它沒有 HIPS、主防這些本地行為防護;也沒有專門的防火牆、Exploit Prevention 模塊(WG 含有一部分 exploits 檢測,但只針對網頁腳本),對於巨集病毒和本地的漏洞利用紅傘可說是無能為力。更要命的是 Anti Rootkits 並不是驅動級的,跟 ESET 一樣,對抗活動中威脅能力偏弱,最後一道關卡 APC 被過就完了
幸好紅傘的啟發/基因/APC 三者加在一起的檢測率不俗,只要病毒沒活動起來,紅傘的防護能力還是不錯的;雖然沒有回滾,但紅傘的修復流程相當完整(不是清毒,這邊是指被破壞後的系統重建),除了通用的修復,還有一套實時更新的腳本修復特徵庫(Script base),只要符合腳本上的內容就會根據其定義來修復你的系統,整套技術叫做 Avira Intelligent Repair System Technology(AIRS)。AIRS 主要針對 PUA 和多態病毒造成的破壞,就算是未知的變種因為行為相通,修復 Script(Repair.rdf)也可以相通
上面說了紅傘沒有主防,RD、FD 只是單純把重要系統文件鎖住,單奔紅傘建議搭配 HMPA、EMET 來防止本地的漏洞利用和注入行為
AVG Free(75分):跟付費版相比,少了 Online Shield、電子郵件和防火牆,入口防禦能力較差
Avira Free(70分):
免費版即時防護少了自動處理模式,雖說不影響安全性,但遇到多隻病毒,會產生過多的彈窗打擾使用者
付費版更新間隔最短可達15分鐘
付費版才有網頁防護
付費版才有 Mail 掃描
另外就是付費版才有遊戲模式
以安全性來說最大的差別還是在 WG 的流量掃描,入口防禦力決定這五分的差異
Avast(70分):Avast 是一款極度依賴雲端的防毒軟體,它在全球有2.3億的安裝數量(加上 AVG 破五億)提供了龐大的樣本數據庫。首先收集到的文件由威脅分析引擎 Scavenger 以及即時分析資料庫 Medusa 追蹤和解析樣本,它們的任務性質相似,都是分類器(Classifier)用以分辨惡意軟體,只是後者使用 GPU 做即時的分類運算,可以大幅減少病毒入庫的滯後時間;再來,被 Avast 初步檢測過的會被歸類為 FileRep(文件信譽,見第一張圖中的選項),監控和掃描會調用雲端中的黑白名單做比對,降低誤報率,並與 CC 等新技術結合連動
在紅傘和360的介紹,我們已經大致了解機器學習在防毒中的運用。而 Avast 比較特別的是每個 Medusa 結點採用2到4個 nVIDIA GPUs 進行計算,他們選擇了資料樣本學習法(Instance-Based Learning),所使用的多種分類器中,其中一種是漢明距離(Hamming Distance)。簡單說就是兩個等長度的字串對應的不同字符個數,例如 1011101與1001001之間的漢明距離是2、2143896與2233796之間的漢明距離是3、"toned"與"roses"之間的漢明距離是3。將每一個樣本都以約100個靜態或是動態的屬性描述,構成一個唯一且長度固定的向量,並計算兩兩向量之間的的漢明距離,,便能分類出安全檔案(Clean)、惡意程式(Malware)以及未知(Unknown)
除了漢明距離外,他們還有四種距離的計算方法,不過大致上的概念都相同,都是利用函數達到分類的目的
早期的 Avast 對於未知文件,會丟入到 Sandbox 運作,後來改名為 DeepScreen 加入了行為判斷功能,在沙盒裡執行的程式如果表現出惡意行為,將會被終止執行
觸發沙盒的條件有以下情況:
.靜態分析的可疑文件,通常是不在特徵庫,但啟發認為有威脅性的程式
.文件流行度,信譽度低
.文件產生點,來源可疑
.文件從移動設備或遠端啟動
.程式沒有簽名或無效的簽名
.名稱可疑
.and more...
但是沙盒有其限制,受限於 Windows API 許多程式無法在其中跑完整的行為,造成軟體沒辦法使用或部分功能失常,間接影響到行為判斷的能力(沙盒中沒有展現出病毒特徵,結果防毒自己加白或使用者放出來造成漏毒),所以又加入了基於 Virtual Machine 的 NG 技術;NG 是一個完整的虛擬機,病毒可以在裡面做任何事,包括加載內核攻擊、攻擊內核漏洞、重寫 MBR,甚至是硬碟格式化
但它也不是沒有缺點:
1.NG 用了 VirtualBox 的引擎,開了就不能用 VirtualBox、VMware 等其它虛擬環境
2.頗耗系統效能,不適用老爺機,在資源吃緊時會退回使用 Sandbox
3.必須在 BIOS 開啟硬體虛擬化才能啟用
4.它只允許程式在其中執行很短的時間,約為10~15秒,大幅降低了決測算法的精度
於是在2016下半年的大改版中,DeepScreen 被徹底廢除,行為偵測的功能移入到了雲端,重新取名叫 CyberCapture。這套系統類似於紅傘的 APC,遇到無法判斷的文件,先鎖定後上傳到雲端分析,由雲端的超級電腦脫殼、解密,直到確定文件安全後才予以放行。由於本地少了傳統的分析組件(由雲端取代),新版的 Avast 變得相當輕巧、速度更快
小巧的佔用量
然而 CyberCapture 同樣有缺陷
1.它只能檢測 http/https 下載的檔案,來自 USB、FTP、E-Mail、P2P 下載的均不在囊括範圍內
2.分析時間過長,短的幾分鐘、長的可能數十小時甚至一天以上。這期間使用者可以主動放行,但這樣等於讓電腦暴露在風險之中(由於 Windows Kernel 的限制,分析時間過長會先結束程式)
Avast 在主防技術上一路來走走跌跌,一直無法有重大的突破,所以在2016年收購了 AVG,預計2017年 AVG 的主防 IDP 將融入於 Avast,這點從 Avast CTO(首席技術官)獲得了証實
Avast 首席技術官 VLK 親自証實將融入 IDP 技術
回到圖一中 CyberCapture 下方有個選項叫「堅固模式」,這個模式開啟後,每個程式的執行都依靠雲信譽判斷。在積極模式下,只有高信譽的檔案被允許執行;溫和模式只攔截信譽不良的文件。CC 和堅固模式兩者只能擇一啟用,若使用堅固模式 CC 將被取代
CC 也有用到信譽做判斷,例如高信譽放行,不良信譽阻止,而未知的文件鎖住後上傳到雲端分析;與「堅固模式」不同之處在於,後者只有「放」與「不放」兩種選擇,不會上傳到雲端分析。這個模式與趨勢的「最高安全性」項目非常相似,但因為 Avast 的信譽庫沒有趨勢來得齊全,堅固模式下雖然安全誤判卻相對嚴重,而且由於信譽殺無法防白加黑(例如白名單軟體混入了木馬 DLL,CC 反而可以探查到),一般人不建議使用
免費版無法取消快顯廣告,但可以把持續時間改成1秒,或者禁用 avastUI.exe 連網也可以屏蔽廣告
參與社群建議勾選,影響到信譽
程式碼模擬就是動態啟發
勾選 PUP 殺會檢測廣告程式,但會增加誤判率
HIPS 是輕量級的 AD+RD,無法自定義但可以記憶規則,老實說沒啥鳥用,可以取消沒關係
在早些前的版本,Avast 的 HTTPS 掃描是一種類似 SSL 中間人攻擊的方式,將所有網頁的證書改成 Avast 自己的 CA,後來被第三方機構爆出漏洞後,現在是通過注入瀏覽器內核的方式完成掃描,不再需要更換證書
智慧型串流掃描是指將待掃描的文件分割成小塊,將 block 逐一檢查後再合併成原始文件。這個選項不要關
封鎖惡意 URL,幾乎是所有誤報的來源,黑名單通過 avast CommunityIQ 共享。開啟後經常會看到 URL:Mal 的報法,像是廣告連接、可疑 XML、甚至是圖片和隱私相關的內容等。它報的是訪問地址,不是訪問該地址的程式,例如部分的 ISP 會將一些檔案緩存到自己的伺服器上,而 Avast 發現不是原文件地址就有可能拉黑,所以報感染 URL 並不代表中毒。強烈建議關閉,對安全性影響小
指令碼掃描等於腳本掃描,保持開啟
壓縮包掃描選擇常用的就行(例如 RAR, ZIP),被壓縮的檔案不具有威脅性,解壓縮監控一樣會報毒,其實可以不用勾
如果前面取消了 URL 拉黑,網頁啟發可以調高一點
檔案系統 PUP 有勾的話,網頁 PUP 不用勾,下載下來一樣會報
串流更新是指病毒庫就像流水一樣,源源不絕的流入你的電腦,更新頻率約為1次/3.75分鐘、300~400次/天,斷網的情況下以最後收到的毒庫版本為主,類似的有諾頓的脈動更新。比起一些對免費版限制更新次數的防毒,Avast 慷慨多了
程式版本建議手動更新,Avast 其實不是很穩定,功能常常變動,當前版本沒有什麼問題可不更新
Avast 沒有實時 Rootkits 掃描,也沒有與活動中 Rootkits 對抗的能力。第一個選項是指開機時的 Rootkits 靜態掃描,可以檢測到一些尚未活化或死 Rootkits
若只需要防毒功能安裝時勾選這三項即可
Avast 雖然有雲 AI,但檢測率表現平庸,病毒庫的資料量不大,幾乎是靠機器學習分析出的基因碼(報法 Trojan-gen、Malware-gen、Evo-gen)作規則性的通殺;網頁防護誤報略高;更要命的是沒有主防,CyberCapture 看起來有向 APC 借鏡的味道,可惜剛起步效果不彰
不過2017年 Avast 計劃加入 AVG 的主防技術。同時擁有網頁掃描和主防的免費防毒非常罕見,除了 BD 外可說僅此一家,所以未來的改款相當令人期待
※目前已加入 IDP,但效果不如原版的 AVG(不是很穩定),在 Avast 完美融入 AVG 的技術以前,暫時還是推薦 AVG
值得一提的是,相對於它款防毒企業版多數都要收費,Avast 的小型企業版 Business Security 免費提供給中小企業和教育單位,但大企業版 Endpoint Protection 依然要授權費用就是了
McAfee(65分):身為美系的咖啡同樣仰賴雲端的殺毒技術,同時個人版和企業版差別頗大;本文評分以個人版為基準,但是擷圖以企業版為範本,因為咖啡把所有的"精華"都放在企業版上
咖啡的殺毒核心集中在雲啟發/雲信譽上,約在2013年以前這項技術叫做 Artemis(月神),在 Intel 收購 McAfee 後重新把月神命名為 GlobalThreat Intelligence(簡稱 GTI),並在原有雲啟發的基礎上再加上雲信譽,而這個啟發信譽引擎橫貫整個 McAfee 產品線,從最基本的即時監控掃描、到防火牆 IPS、再到網頁防護 GTI 幾乎無所不在;若沒有 GTI 咖啡的殺毒可說廢了大半,所以使用 McAfee 必須保持良好的網路連線環境
McAfee 的產品大致上分為個人版和企業版,而企業版又分大企業和小企業版
*:V3 特徵庫比 V2 體積小45%,掃描速率更快,但檢測率不變
MES 架構較新,病毒庫為 V3,記憶體佔用較大,有完整的防火牆、Web防護等功能,GTI 包含信譽和啟發,具有驅動級 Antirootkit
VSE 上一代架構,毒庫結構為 V2,記憶體佔用小效能高,但功能較少,GTI 僅有啟發沒有信譽,沒有驅動級 Antirootkit 但可以掃描 rootkit(跟紅傘一樣)
而個人版架構跟 MES 基本一樣,最大的差別在於個人版沒有存取保護,而存取保護恰巧是咖啡企業版最大的賣點,另外就是企業版自訂項目較多。本篇文章會同時介紹 VSE 和 MES,一般消費者想了解個人版的特色可以參考 MES 的解說
威脅防護:含即時監控、病毒掃描、存取保護、入侵保護
防火牆:使用 GTI 對連線的 IP 進行信譽控管
Web控制:使用 GTI 對連線的網站進行控管,非流量掃描
從最早的 VSE 到新的 MES,存取保護一直是咖啡企業版最強大的功能之一。簡單說可以透過預先設定的規則,限制程式可以存取的檔案、登錄機碼、處理程序和服務;聽起來似乎跟 HIPS 很像,但存取保護不是 HIPS。我們知道 HIPS 是在程式執行時基於 RD、AD、FD 這三項逐一彈窗詢問用戶是否放行,而咖啡的存取保護有強大的 FD 防護,AD 的部分卻非常粗糙,只能封鎖執行檔來達到簡單的 AD 效果;底層操作(硬碟炸彈)、注入、提權、COM接口防護等也都是存取保護的短板。另外咖啡在遇到觸發規則的情況下並不會詢問如何操作,只會跳出觸紅視窗告訴你操作被阻擋,你必須再打開規則頁面重新編寫進行排除,這種非詢問式的規則寫法也是它有別於一般 HIPS 的地方
台灣有部分人(就不指名是誰了)把 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 只是輔助你不是萬能,良好的規則也必須配合良好的使用習慣
入侵保護就是漏洞保護,又分為三個項目
緩衝區溢位保護 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
建議把 GTI 直接拉到最高,咖啡近幾年檢測率每況愈下,而且雲啟發誤報率極低,拉高一點有助於提升檢測率
另外新的個人版已經拋棄了傳統5800本地引擎,雲啟發也由原本的 Artemis 改為 JTI 和 Suspect 報法,依據實測結果不管是修復還是掃描能力都大不如前(以前咖啡以高修復能力著稱,如今....)。而企業版依然保留本地引擎和月神,所以現階段極不推薦咖啡個人版
基於 Dat Engine 的腳本掃描,可以檢測 JavaScript、VB 腳本,算是網頁防護的一環
如果啟用 GTI,防火牆就會將信譽不良的 IP 進行隔離。它的算法非常複雜,會根據網路流量、端口、目的地、協議以及出入站請求作綜合判斷,一旦超過設定的閾值就會封鎖(不僅僅是向雲端查詢 IP 這麼簡單),這方面頗像諾頓的 IPS
當然它也會跟其他組件做聯動,例如監控到有害文件就會封鎖該軟體的任何連線請求,這算是智能型防火牆的基本功能
咖啡沒有流量掃描的功能,網頁保護是透過工具列比對 URL 來攔截,這個工具被稱為 WebAdvisor,一旦啟用會有數個 DLL 注入到瀏覽器程序,但不影響效能
它不僅會比對 URL 的信譽,還會計算與其網域相關聯的 IP 和 DNS 的信譽,就算該網址在咖啡的信任名單,一但內含的廣告被植入木馬,照樣封鎖
在網頁信譽的檢測上咖啡在所有防毒中也是名列前茅,目前僅趨勢科技可與之相提並論,其它防毒都望塵莫及
大企業 VSE 介面非常復古精簡,畢竟少了 Web 防護、防火牆、GTI 信譽等功能,卻也相對輕量化、效能高
VSE 的存取保護跟 MES 略有不同。首先 MES 可針對 MD5或副檔名進行定制、VSE 只能利用文件路徑進行排除;有時後 MES 只需要一條,VSE 卻需要創建多條規則才能達到一樣的效果。但是 MES 無法刪減咖啡預置的官方規則,VSE 這方面顯得靈活多
VSE 沒有防火牆,取而代之存取保護可以封鎖 Port(無法控制連入連出)達到簡單的連線控管
VSE 的掃描用的是舊版只含啟發的 Artemis,而完整的 GTI 包含啟發和信譽。建議直接將敏感層級拉到最高
在網頁防護上 VSE 只有腳本掃描沒有 URL 檢測
對於一般人來說,只會接觸到個人版防毒,個人版的架構大致可參考 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 技術尚未成熟。所以如果要防勒索,筆者實在不是很推薦,故給了較低的分數
Windows Defender(60分):每個人電腦中都有的防毒軟體,然而對其看法卻是眾說紛紜。有人說現在的 WD 已經足夠安全、不需要再裝第三方防毒;也有人說 WD 只是基準線而已,微軟不可能做太好。目前台灣論壇我還沒見過從技術面剖析 WD 的文章,大多只是個人主觀感受。離你最近的軟體,如此熟悉卻又十分陌生,下面我們就來揭開 WD 的神秘面紗
我們先從雲安全開始說起,WD 的雲殺叫 Dynamic Signature Service 動態簽名服務(簡稱DSS),而動態簽名服務又分為動態和靜態兩種類型
靜態:跟一般的雲防毒相同,對於未知程式 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 殺
純本地的行為殺報毒名會是 Behavior 而不是 plock 或 CL,而且危害被定義為 Server 等級
另一種本地行為檢測就是動態啟發,當程式剛開始執行時如果可疑程度達到了一定閾值就會觸發,還有每次使用檔案總管瀏覽資料時,也會啟用動態啟發中的靜態檢測(主動將執行檔拆包在虛擬環境中分析代碼,這也是很多人覺得 WD 卡 exe 的原因)
不過這項技術約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 黑白名單攔截
WD 封鎖網頁的記錄
WD 雖然有行為檢測,但多數是依賴雲端的遙測,並沒有傳統意義上的本地主防;與其它防毒相比,WD 的網路/網頁防護稍嫌薄弱,而且只能與微軟 Browser 連動,也沒有其它多樣化的安全功能;為了控制誤報率,未知病毒一定要經過 MMPC 分析,確定為威脅才會阻止。另一個角度來說,雖然 WD 對 PUA 等低威脅一向採取消極態度,但當真正遇到高度危害時,尤其是具有大規模感染性病毒,WD 清毒能力是非常強的,再加上 WD 是少數擁有驅動級 Antirootkit 引擎的防毒,修復系統以及清除能力絕對是一等一。綜上所述,我認為 WD 的防毒架構非常優秀,但礙於微軟低誤報+低威脅不殺的策略,它確實只適合習慣良好的人使用
對一般人而言 WD 的介紹就到這邊,但下面想稍微聊一下 WD 企業級服務 Windows Defender Advanced Threat Protection(ATP),因為微軟把所有的黑科技都放在這項服務上,個人版充其量只是收集樣本的白老鼠而已
WD ATP 簡單講就是將用戶在 Windows 10 中的一切操作行為與雲端連動,小到檔案總管瀏覽的資料夾、看了什麼網頁、再到註冊檔、執行的程式一舉一動全部即時上傳到雲端,由微軟強大的機器學習自動化分析這些資訊,如果發現威脅直接遙測阻止
大家可能會好奇,這跟 DSS 的遙測有何不同?基本上 DSS 針對的是單一未知可疑程式,再發送到 MMPC 請求鑑定;但 ATP 是一個全方位的傳感器,會對系統內部做深度分析。當開啟 ATP 時,WD 會添加名為 mssecflt 的驅動,屬於 FS Filter 類別,專門負責 Kernel 層的行為監控
ATP 的監控點非常全面,是 DSS 遠遠比不上的。圖為雲控制面板的相關記錄
主傳感器(MSSENSE)包含的傳感器事件
可以利用微軟帳戶加入子客戶端,主客戶端可以看到子客戶操作的一舉一動
連接的 IP 會被深度解析,顯示 IP 的詳細信息以及對應域名
發現未知文件,還可以立刻調用 VT 檢測
看到這,有沒有覺得很厲害呢?
要特別提 WD ATP 的原因是,上面介紹了這麼多款防毒,也多次講解了主防的概念。但現階段的主防,要嘛是純本地的,不然就是主防與雲連動,或者是像紅傘 APC、咖啡 Real Protect 上傳文件或部分資訊檢測(還稱不上主防)
而微軟的 ATP 照目前釋出的資料來看,應該是唯一一款真正的純雲主防,可惜只有企業能使用,而且一年的訂購費用要價不貲,現階段剛起步也有不少 bug。但目前微軟幾乎把所有的安全部門資源投入到 ATP 項目中,所以其進步幅度是非常快的。或許不久的將來,部分的技術也會下放到個人版 WD,讓我們拭目以待
Q:舊版的作業系統(Windows7、8)只要定期更新安全性跟 Windows 10 一樣,所以不用升級 Windows 10?
A:錯。微軟在 Windows 10 的底層安全架構上花了相當大的苦心,以近期的 WannaCrypt 來講,只要是 Win10 系統都不會因為漏洞的關係中毒才對。這並不是 Win10 強制更新的關係,就算在未補洞的情況下,也因為病毒覆蓋記憶體區段的位置在 Win10 中是不可執行的,所以 Win10 不受這次災情影響
這張圖表有點舊了,但我們可以發現,Win7 與 Win10+EMET 安全性有相當大的差距。而就在2017年微軟把 EMET 全部功能融入到新版 Win10,所以 EMET 已經正式停止研發
換句話說,就算有漏洞,也因為底層安全架構的改進,Win10 相對不容易被惡意程式利用;而安全架構落後的作業系統,只能一直依靠打補丁做事後的解決
另外有些人滿好笑的,看到新聞公佈 Win 10 也有 WannaCry 導致小部分的中毒而大作文章,殊不知這些數據是測試人員與使用者自己點擊樣本造成的,與漏洞完全沒有任何關係
https://www.ptt.cc/bbs/AntiVirus/M.1495429133.A.155.html
再舉一個例子,微軟在 Windows 10 中添加了一個叫 AMSI 的公用 API,可以讓所有第三方防毒軟體使用它掃描記憶體中正在執行的腳本內容(如 PowerShell、Windows 腳本宿主、JavaScript 和 JScript)。過去防毒大多只能檢測磁碟中存在的腳本,卻不能阻止記憶體中已執行的腳本,AMSI 的出現改變了遊戲規則。它甚至可以檢查 URL/IP 達到一定的網路防護效果。也就是說,在 Windows 10 中防毒軟體可以藉由 AMSI 近一步提升防護能力和檢測成績
當然,Windows 10 在安全上的改進不止這些,但認真講解又可以寫一篇文章了,繁族不及備載,就先介紹到這
Q:網路流傳一篇20款防毒軟體主防測試,號稱斷網才可以測出防毒對於未知病毒的應變能力,值得參考嗎?
A:如果有認真閱讀上面的文章內容,應該知道當今多數防毒軟體都有用上雲技術,舉凡鐵殼的 Sonar、卡巴的 KSN、紅傘的 APC、咖啡的 GTI/Real Protect、甚至微軟的 WD 遇上未知都要連網向 MMPC 查詢才會殺。所以任何斷網測試,在我看來都毫無參考價值可言。而且把樣本下載到本地雙擊,並無法測試出防毒的實際防禦能力,例如 WannaCry 透過 SMB 的漏洞入侵系統,ESET 雖然第一時間無法檢測到該病毒,但其 IDS 網路防護卻可以阻斷來自 SMB 的攻擊,所以實際環境中 EIS 用戶都不會受到勒索的影響。目前比較可看出防毒實際能力的測試,應屬 AVC 的 Real-World Protection Tests,它們是把0day樣本掛馬在網頁上,防毒在連網的情況下去瀏覽這些 Web 頁,看能不能正確攔截(攔截但誤報也會扣分)
Q:勒索開始加密時要趕快斷網?
A:開始加密代表病毒已經把需要的資料上傳到黑客的伺服器,這時後斷網已經來不及了。何況斷網會讓防毒的查殺能力降低,所以千萬不要自作聰明去拔網路線
Q:PTT 網友製作 "偵測到加密自動關機”的腳本,是否能有效防範勒索病毒?
A:如果安裝系統的硬碟有重要資料,那麼千萬不要使用這個腳本。我們已經知道不少防毒會利用行為攔截未知的病毒,如果在加密的一瞬間立刻斷開,等於中斷行為檢查,原本主防可以加密後再回滾,用這個腳本反而會干擾防毒的主防運作。該腳本唯一的用途在於,除非重要文件都放在非系統碟(不是槽),自動關機後取出放資料的硬碟再重灌系統
Q:與其裝防毒拖累效能,不如中毒後再手工殺毒?
A:現代作業系統越來越複雜,不太容易完全手工清除病毒的痕跡。就算你真的有辦法刪除好了,惡意程式造成的破壞使用者也很難去修復。綁架首頁這種小毒倒還好,那些會加驅、深入內核的(典型如 Rootkit)就算把病毒移除,也已經對系統造成損害,如果不進行修復可能會出現異常(藍屏、死機等)
閱讀本文後讀者應該知道,防毒軟體除了有「刪毒」的功能也有「修復」的能力,更甚者部分主防具有「回滾」可完全恢復病毒造成的破壞。所以這種麻煩事,還是交給專業的防毒處理會比較好
Q:預防勒索的輔助工具百百款,除了防毒外還需要裝哪些安全軟體呢?
A:在眾多輔防工具中,我只推薦 HitmanPro.Alert。其它號稱防勒索的工具,大多是樣本侵入主機後,再利用各種方法(例如密罐)去捕獲加密行為。然而在我看來「阻止勒索加密」其實是最後手段,它應該是防毒的工作而不是輔防的任務
HitmanPro.Alert(HMPA)不同之處在於,它其實不是專殺勒索,而是一款 Anti-Exploit(漏洞防護)軟體。從 WannaCry 的例子中可得知,會有大規模的災情是因為勒索透過 SMB 的漏洞侵入主機,如果沒有「侵入」根本不會有「加密」這些後續步驟。在實例中,具有 Anti-Exploit 功能的防毒(鐵殼 IPS、ESET IDS)確實能在第一時間阻止漏洞被利用。而 HMPA 是目前漏洞防護做得最好的輔防之一,其內置的啟發規則不亞於一線大廠的防毒模塊,也可以跟多數防毒做搭配,產生互補作用。自從 EMET 停止研發後,HMPA 就變成了輔防的首選
原本還想繼續寫解析勒索的文章,但實在沒時間了。這篇文章花了一年多的時間撰寫、收集資料、閱讀各大防毒廠商釋出的白皮書、以及本人親自實測。從基礎原理開始解說,目的就是以正視聽,破除網路上各種似是而非的謠言。這年頭不學無術的造謠者太多了,真正的科普文卻很少,所以乾脆我自己來寫文,希望讀者能從這篇文章中獲益匪淺,得到一些有用的知識那是再好不過了
對了,那些看到中國軟體就高潮的傢伙請不要回覆這篇文章。本文只談技術,要發沒營養的酸文請左轉場外
※本文發佈於巴哈姆特電應板以及個人部落格 IT Works,轉貼請附上原文連結