崔滔
容器和沙箱是在談論惡意軟件防護時經(jīng)常提到的2 個術語,很多企業(yè)想知道哪種方法最好,答案是二者相結(jié)合。但是很多企業(yè)可能負擔不起或缺乏部署這2 種方法的專業(yè)技能。為了找到適合企業(yè)需求的最佳選擇,重要的是要了解如何使用它們。
在談論沙箱和軟件容器之間的區(qū)別前,需要先了解一些事情?,F(xiàn)在,大多數(shù)企業(yè)已經(jīng)將應用程序容器和虛擬化用于很多不同目的,其中很多與安全性息息相關,其中包括:
使用VM 在虛擬數(shù)據(jù)中心或IaaS 中運行安全工具;
使用虛擬機管理程序功能(例如快照)來幫助支持配置管理和修復;
使用容器來支持微服務和服務網(wǎng)格架構;
同時使用VM 和容器來支持DevOps 工具鏈中安全活動的自動化。
不過,在這篇文章中,將探討如何使用這些工具來專門支持沙箱。幾年前,沙箱開始流行,當時大家意識到惡意軟件仍然可能繞過防病毒軟件并感染網(wǎng)絡。防病毒的問題在于,所有系統(tǒng)都需要在計算機上安裝基于簽名的代理,并且必須定期更新它們,為端點提供機會來抵御惡意軟件。由于防病毒并不能捕獲所有內(nèi)容———即使保持其更新并安裝在工作站,于是沙箱的使用開始增加。
VM沙箱安全模型
從本質(zhì)上講,沙箱是關于創(chuàng)建隔離的獨立環(huán)境,可將其用于特定安全目的,例如FreeBSD。對于反惡意軟件,可以使用隔離的沙箱引爆惡意軟件樣本以查看其行為。通過運行可疑惡意軟件樣本并觀察其行為,可以觀察攻擊方法,以了解你為何成為攻擊目標。在未知軟件的情況下,可以使用此方法來確定文件是否可以安全地在托管端點運行。如果該軟件不執(zhí)行任何惡意操作,則可以將其中繼給最終用戶。同樣,對于可疑的惡意軟件樣本,可以使用此技術來進一步研究,這可以讓你知道是否為復雜攻擊活動的目標,還是只是被機器人或腳本小子隨機地作為目標。
虛擬機管理程序提供2 個功能,使此技術更安全。首先,它們以無孔方式執(zhí)行分段。在現(xiàn)代環(huán)境中,我們使用虛擬化,這意味著分段邊界至關重要??紤]到現(xiàn)在很多企業(yè)使用多租戶IaaS,很可能看到數(shù)據(jù)被竊取或者嘗試跨VM分段邊界的攻擊,例如企業(yè)可以從同一虛擬機管理程序上竊取數(shù)據(jù)、破壞或以其他方式攻擊其他VM。其次,虛擬機監(jiān)控程序讓我們有選擇地限制或阻止VM可以執(zhí)行的操作。例如,它可以防止工作負載在網(wǎng)絡上發(fā)送或接收數(shù)據(jù),或者可以使用快照將損壞的VM恢復到已知可靠狀態(tài)。
在這種方式下,基于虛擬機的沙箱依賴于多個虛擬機來捕獲流量,使其進入和流出網(wǎng)絡,并充當惡意活動檢測的檢查點。這種沙箱的目的是獲取未知文件,并在其中一個VM 中引爆它們,以確定該文件是否可安全安裝。由于惡意軟件作者可以使用多種逃避技術來使文件看起來安全,因此這并不總是萬無一失的解決方案,但確實可提供額外的防御。
容器沙箱安全模型
可以使用的另一種方法是軟件容器?,F(xiàn)在有多種不同的部署模式。Docker和Rocket等工具可創(chuàng)建隔離的應用程序環(huán)境,分段是在OS 級別執(zhí)行,在這種情況下使用Linux 名稱空間和cgroup。某些操作系統(tǒng)中還內(nèi)置了基于容器的配置,例如Linux中的chroot jails或Windows的Windows Sandbox。
從使用的角度來看,可以將容器中的所有內(nèi)容指定為始終不受信任,從而創(chuàng)建單獨的隔離環(huán)境,該環(huán)境不會影響基礎主機。在這種使用情況下,該容器中的所有東西都被認為具有潛在風險。而且容器不會嘗試確定文件是否損壞,它只是阻止惡意軟件活動傳播或破壞基礎主機。例如,擔心用戶容易受到偷渡式下載攻擊或其他虛假活動攻擊。一種方法是在應用程序沙箱中運行瀏覽器,并在用戶的瀏覽會話完成后清除沙箱。用戶收集的任何潛在惡意軟件都會與沙箱一起清除。
當采用這種方式時,軟件容器不會使用防病毒產(chǎn)品類的簽名。它們不會阻止攻擊,只是限制攻擊所影響的范圍,因為容器是圍繞特定應用程序而構建,以隔離攻擊防止攻擊擴散到操作系統(tǒng)的其他部分。
在很多時候,這種方法會讓容器將沙箱帶到端點。你不必擔心下載的文件的內(nèi)容,只需要讓用戶使用完應用程序后將其重置為良好狀態(tài)。
沙箱與容器的使用注意事項
究竟是使用沙箱還是容器,這很難選擇,在可能的情況下最好二者同時使用。典型的基于VM的沙箱方法可能涉及系統(tǒng)在可疑文件通過沙箱是進行挑選與傳統(tǒng)的防病毒軟件相比,這很吸引人,因為它不需要安裝代理即可查找簽名,反過來,這意味著它有可能找到并正確標記沒有先兆的惡意軟件樣本。
另一個用例是使用軟件容器在高風險應用程序(例如用戶的瀏覽器)周圍創(chuàng)建隔離墻。這種方法通常比較繁瑣,并且依賴于端點和/或應用程序的配置。
為了確定哪種工具最適合,請嘗試確定當前哪個區(qū)域?qū)δ愕沫h(huán)境構成最大的風險,并確定這些選項中的哪一個將為你提供最大的前期保護。如果希望加強對電子郵件惡意軟件的抵御,在這種情況下,集成到電子郵件網(wǎng)關中的基于VM 方法可能是不錯的選擇。如果是想減少偷渡式下載等攻擊,在這種情況下,軟件沙箱可能更適合。
哪種架構最適合你的環(huán)境取決于你的架構,但是了解容器和沙箱之間的區(qū)別無疑是第一步。