攻擊者希望盡可能保持隱身來減少他們被檢測的機(jī)會,這意味著他們只能對受感染系統(tǒng)進(jìn)行最少次數(shù)的改變,以及在系統(tǒng)留下最少的證據(jù)。攻擊者保持不被發(fā)現(xiàn)的時間越長,他們就越有可能實(shí)現(xiàn)自己的目標(biāo)。攻擊者早就知道在攻擊過程中刪除自己的工具,而惡意軟件作者也開始刪除在攻擊中使用的文件,這被稱為無文件(fileless)惡意軟件。在無文件惡意軟件攻擊中,系統(tǒng)變得相對干凈,沒有很多惡意文件可被檢測來通知安全管理人員。
在本文中,讓我們一同探討一下無文件惡意軟件的工作原理,它如何變得越來越復(fù)雜,以及企業(yè)應(yīng)該怎樣做來保護(hù)自己免受此類威脅。
無文件惡意軟件的工作原理
Intel Security在其2015年11月McAfee實(shí)驗(yàn)室威脅報(bào)告中詳細(xì)描述了無文件惡意軟件。該報(bào)告介紹了無文件惡意軟件如何刪除它在受感染系統(tǒng)磁盤中保存的所有文件,在注冊表中保存加密數(shù)據(jù),注入代碼到正在運(yùn)行的進(jìn)程,并使用PowerShell、Windows Management Instrumentation和其他技術(shù)使其難以被檢測以及分析。在注冊表中保存數(shù)據(jù)的方式讓惡意軟件可在啟動時運(yùn)行,而不會讓普通用戶查看或訪問特定的注冊表數(shù)據(jù)。這讓攻擊者有更多的時間來利用其惡意軟件以及繼續(xù)執(zhí)行其攻擊;惡意軟件可能被自動化工具檢測或提交到惡意軟件庫,但在進(jìn)行全面分析前,大多數(shù)反惡意軟件產(chǎn)品都很難發(fā)現(xiàn)和移除這種惡意軟件。他們有合理的原因在注冊表中存儲加密或哈希數(shù)據(jù),或者使用惡意軟件編寫者使用的其他技術(shù)來模糊化其惡意軟件。例如,有些應(yīng)用可能在需要保護(hù)的注冊表中存儲加密密碼。
為了在Windows計(jì)算機(jī)執(zhí)行指令,操作系統(tǒng)首先需要知道執(zhí)行什么指令;這可通過打開附件、點(diǎn)擊電子郵件中的鏈接、打開計(jì)算機(jī)中的文件或者使用遠(yuǎn)程文件共享來進(jìn)行。注入代碼到正在運(yùn)行的進(jìn)程首先需要這種前期行動。當(dāng)代碼在內(nèi)存中后,它可以執(zhí)行以及采取用戶執(zhí)行代碼的任何行動,如果該用戶有用管理級訪問權(quán)限,系統(tǒng)可被完全破壞,但如果該賬戶只是受限賬戶,攻擊者還要采取額外的步驟來完全破壞整個系統(tǒng)。
在McAfee實(shí)驗(yàn)室報(bào)告中,研究人員描述了Kovter惡意軟件如何利用更先進(jìn)的無文件惡意軟件技術(shù)。Kovter通過電子郵件或惡意軟件網(wǎng)站來分發(fā),在本地計(jì)算機(jī)執(zhí)行最初的惡意軟件攻擊后,它會編寫JavaScript到注冊表,調(diào)用同樣存儲在該注冊表中加密的PowerShell腳本。由于它并不會保存文件,并使用Powershell來隱藏,這更加難以被檢測。而較舊的惡意軟件類型在初次分發(fā)后不會采取這些先進(jìn)的做法。
如何抵御無文件惡意軟件攻擊?
在抵御無文件惡意軟件攻擊的第一步是確保端點(diǎn)保持更新;還要確保用戶只有標(biāo)準(zhǔn)用戶賬戶,而沒有特權(quán)賬戶,并使用端點(diǎn)反惡意軟件工具來保護(hù)設(shè)備。這些步驟需要采用縱深防御的方法來完成,通過掃描網(wǎng)絡(luò)連接和電子郵件中是否存在惡意軟件。這將幫助減少惡意軟件到達(dá)端點(diǎn)并執(zhí)行的機(jī)會。
端點(diǎn)安全工具可監(jiān)控可執(zhí)行文件的行為以及操作系統(tǒng)調(diào)用,這些工具也可能檢測未經(jīng)授權(quán)的內(nèi)部連接或?qū)o文件惡意軟件攻擊需要的注冊表的意外訪問。為了防止惡意PowerShell腳本,技術(shù)專家兼微軟MVP Don Jones介紹了PowerShell必要的安全保護(hù)措施,但最重要的是確保只能執(zhí)行數(shù)字簽名的腳本。
惡意軟件編寫者正在不斷提高自己的無文件惡意軟件策略,但企業(yè)可使用與抵御較舊惡意軟件相同的技術(shù)和工具來保護(hù)端點(diǎn)。盡管攻擊者的改進(jìn)讓我們很難分析無文件惡意軟件,但企業(yè)使用相同的保護(hù)措施可減少惡意軟件初始感染和執(zhí)行的機(jī)會。