虚拟软件虚拟化

软件虚拟化  时间:2021-03-27  阅读:()
1/16火绒虚拟沙盒简介"动若脱兔"2020/07/06公司:北京火绒网络科技有限公司地址:北京市朝阳区红军营南路15号瑞普大厦D座3层网址:https://www.
huorong.
cn电话:400-998-35552/16版权声明本文件所有内容受中国著作权法等有关知识产权法保护,为北京火绒网络科技有限公司(以下简称"火绒安全")所有,任何个人、机构未经"火绒安全"书面授权许可,均不得通过任何方式引用、复制.
另外,"火绒安全"拥有随时修改本文件内容的权利.
如有修改,恕不另行通知.
您可以咨询火绒官方、代理商等售后,获得最新文件.
3/16目录虚拟机技术概述4仿真技术分类及应用.
4虚拟执行技术分类及应用4关于虚拟沙盒.
5火绒虚拟沙盒技术与特性.
6虚拟沙盒总体架构.
6虚拟执行引擎.
6操作系统环境仿真.
7跨平台特性8火绒虚拟沙盒应用.
9通用脱壳(GenericUnpacking)9反病毒引擎深度扫描.
9基于火绒虚拟沙盒的动态行为分析(行为沙盒)10火绒虚拟沙盒应用演示.
11火绒虚拟化执行引擎vs.
动态翻译执行引擎.
11火绒行为沙盒检出典型恶意行为.
12动态还原Trojan/FakeAV高级包裹器(HLLW)12疯狂利用窗口系统特性的TrojanDownloader/Upatre混淆器.
134/16虚拟机技术概述仿真技术分类及应用仿真技术分类硬件仿真指令集仿真操作系统仿真定义通过软件仿真操作系统所需要的硬件环境,包括CPU、内存、总线等等;通过软件仿真特定(真实或虚拟)指令集的执行行为,例如通过仿真全部x86指令的行为来仿真x86CPU;通过仿真操作系统环境,使为该操作系统环境编译的程序得以运行;经典案例VMwareWorkstation,QEMU,Bochs,……JavaVM,LLVM,VMProtect,ThemidaVM……火绒虚拟沙盒,WINE,x86emu,……安全领域应用1.
搭建反病毒分析平台,如ThreatExpert等;2.
搭建云安全集群;1.
代码保护,如VMProtect,Themida等;2.
代码逻辑序列化,如ClamAV支持把查毒代码编译成LLVM中间代码(IR),并在查毒时虚拟执行中间代码来执行查毒逻辑;1.
实现相同平台、不同操作系统间的"跨界"执行,如WINE等;2.
配合指令集仿真,实现虚拟沙盒,如火绒虚拟沙盒等;虚拟执行技术分类及应用虚拟执行技术分类模拟类虚拟执行技术虚拟化类虚拟执行技术定义通过软件方法模拟CPU运行环境(如:寄存器等)和各种机制(如:内存寻址、异常处理、保护机制等)来实现实现虚拟执行;通过软件或硬件方法,利用当前CPU环境,创建(虚拟)出可控的隔离环境,并在这个隔离环境中利用真实CPU资源进行受控的代码执行;实现技术指令模拟动态翻译软件虚拟化硬件虚拟化典型应用瑞星v16+,……火绒,MSE,……火绒,……未知执行速度(相较于真实代码执行)≈1%≈30%≈95%≈99%5/16代码级控制粒度细一般粗粗限制无无任何支持分页机制的CPU(例如:IntelPentium386+以上,但并不限于x86架构)仅限支持硬件虚拟化技术的CPU(例如:IntelVT-x、AMD-V)引擎应用场景感染型病毒查杀简单代码分析辅助脱壳感染型病毒查杀指导脱壳行为分析感染型病毒查杀通用脱壳行为分析感染型病毒查杀通用脱壳行为分析关于虚拟沙盒套用一句广告词,"不是所有的虚拟机都叫虚拟沙盒".
反病毒虚拟沙盒应至少符合以下几个基本要求:1、虚拟执行效率要足够高反病毒引擎要求能够在相对较短的时间内(毫秒级)完成对待扫描对象的扫描,所以低下的虚拟执行效率是无法真正应用于反病毒虚拟沙盒的;2、具有完备的操作系统环境仿真如果仅仅能够虚拟执行指令,那么还无法称作虚拟沙盒.
虚拟沙盒应具有完备的操作系统环境仿真,至少应包括:文件系统、注册表、进程、线程、调度逻辑、时钟、同步对象;3、能够捕获并记录程序虚拟执行时的行为虚拟沙盒应当可以捕获并记录程序在沙盒内虚拟执行时所产生的行为,此类记录可以是系统调用级别或更高级的抽象等.
缺失捕获并记录行为的特性,行为分析便无从谈起;6/16火绒虚拟沙盒技术与特性虚拟沙盒总体架构虚拟执行引擎虚拟机化执行引擎负责实现指令集仿真,火绒虚拟沙盒实现了两个执行引擎:1、火绒虚拟化执行引擎通过火绒虚拟化技术,为目标代码划分独立的地址空间,并通过接管中断和异常为目标代码分配私有时间片,从而使目标代码得以受控执行.
执行效率几乎可以达到与真实机相当,仅执行环境切换带来微量开销;2、动态翻译执行引擎通过对目标代码进行分析并可控地翻译成本地代码执行的技术称为动态翻译,火绒虚拟沙盒通过动态翻译执行引擎实现对目标代码的细粒度控制;火绒虚拟化引擎执行效率极高,但对目标代码的控制粒度粗,而动态翻译执行引擎虽然执行效率低,但对代码的控制粒度高.
所以,火绒虚拟沙盒在运行时会根据虚拟执行的需要,自动对两个执行引擎进行切换以同时满足较高的执行效率和较细的代码控制粒度.
火绒虚拟沙盒虚拟执行引擎火绒虚拟化执行引擎二进制翻译执行引擎操作系统环境仿真进程线程时钟文件系统注册表同步对象.
.
.
.
.
.
7/16关于火绒虚拟化执行引擎和动态翻译执行引擎的效率比对,请参见"火绒虚拟沙盒应用演示"一节的相关演示.
操作系统环境仿真我习惯将虚拟执行引擎比作楼房的地基,而操作系统环境仿真则是建立在牢固地基上的万丈高楼.
火绒虚拟沙盒设计了完备的操作系统环境仿真,模拟了超过5000个WindowsAPI,涵盖了绝大多数操作系统的核心机制,包括但不局限于:1、文件系统存储着核心系统文件,并可以跟踪虚拟沙盒内进程执行时创建和修改的文件,反病毒引擎在并发扫描时,不同虚拟进程拥有隔离的文件系统视图;2、注册表系统完备的注册表系统仿真,虚拟沙盒内进程的注册表操作可以被跟踪和记录,以便反病毒引擎进行分析;3、进程、线程、同步对象、调度、时钟火绒虚拟沙盒仿真了完备的进程、线程对象,并根据虚拟时钟及调度逻辑对线程进行调度,可以有效地"跑开"Themida等多线程解码的壳;4、窗口系统火绒虚拟沙盒还实现了复杂、庞大的窗口系统,以及多中窗口控件,著名的TrojanDownloader/Upatre家族混淆器即通过Edit/RichEdit控件的各种消息和窗口特性来作为反虚拟机的手段;5、……8/16跨平台特性目前,火绒虚拟沙盒支持以下操作系统平台:1、Windowsx86/x64;2、Linuxx86/x64;3、MacOSXx86/x64;火绒虚拟沙盒非常容易移植到FreeBSD等类Unix操作系统平台.
9/16火绒虚拟沙盒应用通用脱壳(GenericUnpacking)仅实现指令集仿真就可以实现辅助脱壳的功能,而虚拟沙盒对于脱壳的真正意义在于通用脱壳.
通用脱壳是指在不需要识别样本是否加壳的情况下,通过将样本放入虚拟沙盒深度执行并通过启发式逻辑分析样本数据是否已被还原的技术.
通用脱壳对于多层壳、虚拟机保护壳、自定义壳、高级包裹器(High-LevelLanguageWrapper,HLLW)等有着非常重要的意义.
传统反病毒引擎的静态或动态指导脱壳,对于上述几类壳是毫无作用的.
关于通用脱壳更具体的内容,可以参见《反病毒"芯"技术——火绒反病毒引擎简介》一文.
反病毒引擎深度扫描凭借完备的操作系统环境模拟,火绒虚拟沙盒可以跟踪其中进程释放的文件、创建的进程等,火绒反病毒引擎在扫描过程中会对这些衍生物进行扫描,以此来实现对样本的深度扫描.
下面的扫描日志展示的是火绒反病毒引擎扫描一修改过的CAB自解压包.
火绒反病毒引擎并不需要对这种修改过的CAB自解压包单独进行解码支持,而只需要在虚拟沙盒中虚拟运行该样本,样本"自己"便会完成解码并释放压缩包中的文件到火绒虚拟沙盒的文件系统中.
火绒反病毒引擎可以提取沙盒跟踪到的虚拟文件,并对其进行扫描,进而发现威胁:>>1f9f805a839446db9b04fe66b9f9eb39a330a8b1>>1f9f805a839446db9b04fe66b9f9eb39a330a8b1>>genpack>>1f9f805a839446db9b04fe66b9f9eb39a330a8b1>>genpack>>subpe_000AB81A>>1f9f805a839446db9b04fe66b9f9eb39a330a8b1>>vfs:[c:\Windows\temp\IXP000.
TMP\CATALOGVIEWER.
EXE]10/16>>1f9f805a839446db9b04fe66b9f9eb39a330a8b1>>vfs:[c:\Windows\temp\IXP000.
TMP\wdfmgrs.
exe][ENG-3]1f9f805a839446db9b04fe66b9f9eb39a330a8b1>>vfs:[c:\Windows\temp\IXP000.
TMP\wdfmgrs.
exe].
.
.
infected:HVM:Trojan/MalBehav.
gen!
C[D736ACAC2F763626]基于火绒虚拟沙盒的动态行为分析(行为沙盒)火绒虚拟沙盒可以跟踪和记录运行在其中程序的行为,火绒反病毒引擎通过行为记录,可以通过启发式分析算法对程序的恶意性进行评估.
我们将虚拟沙盒的此类应用称为行为沙盒.
火绒行为沙盒不仅仅被应用火绒反病毒引擎.
在后台,火绒虚拟沙盒作为火绒反病毒自动处理平台的一部分,负责抽取样本的动态行为特征,与其他特征抽取模块组合,共同为样本的相似性聚类计算服务着.
更具体的关于火绒行为沙盒的相关内容,可以参见《反病毒"芯"技术——火绒反病毒引擎简介》一文.
11/16火绒虚拟沙盒应用演示以下演示均在Linux3.
19.
0x86_64内核下完成,通过asciinema(https://asciinema.
org/)录制.
火绒虚拟化执行引擎vs.
动态翻译执行引擎样本SHA1:a8e20a4edbfc083fdeee18aa6da56d932ea35eb4演示地址:https://asciinema.
org/a/27411演示说明演示中,首先以常规模式,即开启火绒虚拟化执行引擎的模式,虚拟执行样本a8e20a4edbfc083fdeee18aa6da56d932ea35eb4直至程序运行完毕退出.
运行结果显示,共执行了58条指令(只有自动切换到动态翻译执行引擎时才能够统计指令数,所以常规模式统计到的指令数非常少),执行了806,940个API调用,共耗时301毫秒.
接下来,仅开启动态翻译执行引擎,再次虚拟执行该样本直至程序运行完毕退出.
运行结果显示,共执行了907,528,493条指令,同样是执行了806,940个API调用,但耗时高达54,188毫秒(接近1分钟),比常规模式慢了180倍.
从结果可以看出,火绒虚拟化执行引擎的执行效率,比动态翻译引擎至少快100倍以上.
这为火绒反病毒引擎的深度扫描奠定了极为宝贵的基础,在同样的扫描时间下,火绒虚拟沙盒可以执行的深度更深,使得很多在传统反病毒虚拟机不可能"跑开"的样本,在火绒虚拟沙盒中成为了可能.
12/16火绒行为沙盒检出典型恶意行为样本SHA1:4f52ac297e86bc595acfa64859a9c87385368e22演示地址:https://asciinema.
org/a/27387演示说明演示中展示了样本4f52ac297e86bc595acfa64859a9c87385368e22在火绒虚拟沙盒中执行时的跟踪记录.
从跟踪记录可以看出,该样本具有很典型的恶意代码行为:将自身复制到系统目录并命名成类似系统文件的名称(C:\Windows\System32\SVOHOST.
exe),运行这个自复制的副本,最后通过WinExec("…cmd/cdel…")的方式自删除.
火绒反病毒引擎会在扫描时捕捉到上述行为,并将该样本检出为HVM:Trojan/MalBehav.
gen!
C威胁.
动态还原Trojan/FakeAV高级包裹器(HLLW)样本SHA1:d5cd4da969281905ed832a2587380c3968a2fb3f演示地址:https://asciinema.
org/a/27394演示说明演示中的样本由非常典型的高级包裹器(High-LevelLanguageWrapper,HLLW)包裹,这在Trojan/FakeAV等家族中相当常见.
在演示中,由于预先知道此样本应包含的关键字符串,所以当这些字符串无法被搜索到时,就怀疑可能是加壳保护了.
之后,通过Pyew分析发现该样本入口符合VC7编译器生成的入口特征,在火绒虚拟沙盒调试器中手工查看入口也符合VC7入口特征,所以怀疑该样本由HLLW包裹.
接下来,在火绒虚拟沙盒调试器中调试执行该样本,发现经过代码解密后,代13/16码停在UPX入口上,DUMP当前位置的镜像并用Pyew分析也能够确定当前位置的确为UPX入口代码.
跟踪到UPX最后的跳转,发现解出的新入口明显属于VC8入口特征,并用Pyew验证.
此时,对该样本的脱壳过程全部完成,DUMP当前镜像并搜索关键字符串证明Trojan/FakeAV的原始数据已被还原.
通过这样的还原,火绒反病毒引擎在扫描此类样本时就完全是顺水推舟了.
从对这个样本的脱壳过程可以看出,此样本最初由VC8编译,经过UPX加壳后(主要为了压缩体积),又用由VC7编写的高级包裹器再次包裹,可见此高级包裹器是独立存在的,很可能还会被其他恶意代码所使用.
这种多个恶意代码家族使用同一款高级包裹器或混淆器的例子屡见不鲜.
另外,由于火绒虚拟沙盒会在虚拟执行时动态对目标代码做优化调整,所以该样本在火绒虚拟沙盒中执行时会比在真实系统下执行更快,有兴趣的朋友可以自行测试.
但注意请在虚拟机环境中进行测试或调试,以免对真实系统产生不必要的危害.
疯狂利用窗口系统特性的TrojanDownloader/Upatre混淆器样本SHA1:51d17236fbf0236ccd2571e252a9f173f37702a4等演示地址:https://asciinema.
org/a/27054演示说明火绒反病毒通过火绒虚拟沙盒动态还原TrojanDownloader/Upatre的明文代码及数据,并通过行为跟踪记录实现启发式检出14/16HVM:TrojanDownloader/Upatre.
gen.
演示中展示的是火绒反病毒引擎对98个不同变种的TrojanDownloader/Upatre进行扫描的过程.
下面,我以样本51d17236fbf0236ccd2571e252a9f173f37702a4为例,介绍TrojanDownloader/Upatre家族常用的反虚拟机技术.
1、首先,在程序入口该样本注册了一个名为contents的窗口类,并创建了一个窗口,句柄保存在hwnd_contents中;.
text:00401747pushedi.
text:00401748dececx.
text:00401749jnzshortloc_401747.
text:0040174Bleaeax,[ebp+WndClass].
text:0040174Epusheax;lpWndClass.
text:0040174Fmovedx,hInstance.
text:00401755mov[ebp+WndClass.
hInstance],edx.
text:00401758leaecx,aContents;"contents".
text:0040175Emov[ebp+WndClass.
lpszClassName],ecx.
text:00401761leaeax,wndproc_contents.
text:00401767mov[ebp+WndClass.
lpfnWndProc],eax.
text:0040176AcallRegisterClassA.
text:00401770push67h;lpBitmapName.
text:00401772pushhInstance;hInstance.
text:00401778callLoadBitmapA.
text:0040177Epush66h;lpBitmapName.
text:00401780pushhInstance;hInstance.
text:00401786callLoadBitmapA.
text:0040178Cxoreax,eax.
text:0040178Epusheax;lpParam.
text:0040178FpushhInstance;hInstance.
text:00401795pusheax;hMenu.
text:00401796pusheax;hWndParent.
text:00401797push500;nHeight.
text:0040179Cpush756;nWidth.
text:004017A1push1400;Y.
text:004017A6push3300;X.
text:004017ABpush0;dwStyle.
text:004017ADmovecx,offsetaFrantically;"frantically".
text:004017B2pusheax;lpWindowName.
text:004017B3pushoffsetaContents;"contents".
text:004017B8pusheax;dwExStyle15/16.
text:004017B9callCreateWindowExA.
text:004017BFmovhwnd_contents,eax2、在hwnd_contents窗口回调收到WM_CREATE消息时,该样本又创建了一个Edit控件,并在创建时通过窗口名指定控件内容为7行文字,句柄保存在hwnd_edit_1中;.
text:00401091@@wm_create:;CODEXREF:wndproc_contents+9j….
text:004010EEmovecx,hInstance.
text:004010F4leaeax,ClassName;"edit".
text:004010FAmovedi,offsetWindowName;"sacdea\r\nebulu\r\nacasec\r\nlabai\r\nedufu\r\nmc".
.
.
.
text:004010FFpush0;lpParam.
text:00401101pushecx;hInstance.
text:00401102push0;hMenu.
text:00401104pushesi;hWndParent.
text:00401105movesi,0.
text:0040110Apush30;nHeight.
text:0040110Cpush240;nWidth.
text:00401111push185;Y.
text:00401116push25;X.
text:00401118pushebx;dwStyle.
text:00401119pushedi;lpWindowName.
text:0040111Apusheax;lpClassName.
text:0040111Bpushesi;dwExStyle.
text:0040111CcallCreateWindowExA.
text:00401122movhwnd_edit_1,eax3、当hwnd_contents收到特定次数的WM_PARENTNOTIFY消息后(此样本是固定的3次),通过EM_GETLINECOUNT获取hwnd_edit_1窗口中文字的行数(此样本为7行),并调用以此行数与0x40144a之和为地址的解码函数;.
text:00401000wndproc_contentsprocnear;DATAXREF:sub_401728+39o.
text:00401000.
text:00401000hWndParent=dwordptr8.
text:00401000Msg=dwordptr0Ch.
text:00401000wParam=dwordptr10h.
text:00401000lParam=dwordptr14h.
text:00401000.
text:00401000pushebp.
text:00401001movebp,esp16/16.
text:00401003moveax,[ebp+Msg].
text:00401006cmpeax,WM_CREATE.
text:00401009jz@@wm_create.
text:0040100Fcmpeax,WM_DESTROY.
text:00401012jzshort@@wm_destroy.
text:00401014cmpeax,WM_PARENTNOTIFY.
text:00401019jzshortloc_401032.
text:0040101Bpush[ebp+lParam];lParam.
text:0040101Epush[ebp+wParam];wParam.
text:00401021push[ebp+Msg];Msg.
text:00401024push[ebp+hWndParent];hWnd.
text:00401027callDefWindowProcA.
text:0040102Djmploc_401187.
text:00401032.
text:00401032.
text:00401032loc_401032:;CODEXREF:wndproc_contents+19j.
text:00401032moveax,[ebp+lParam].
text:00401035moveax,parent_notify_count.
text:0040103Adeceax.
text:0040103Bjzshort@@count_reached.
text:0040103Dmovparent_notify_count,eax.
text:00401042jmploc_401187.
text:00401047.
text:00401047.
text:00401047@@count_reached:;CODEXREF:wndproc_contents+3Bj.
text:00401047pushoffsetaInstability;"instability".
text:0040104Cpush0;wParam.
text:0040104EpushWM_SETTEXT;Msg.
text:00401050pushhwnd_edit_0;hWnd.
text:00401056callSendMessageA.
text:0040105Cxorecx,ecx.
text:0040105Epushecx;lParam.
text:0040105Fpushecx;wParam.
text:00401060pushEM_GETLINECOUNT;Msg.
text:00401065pushhwnd_edit_1;hWnd.
text:0040106BcallSendMessageA.
text:00401071shleax,3;shouldreturn7.
text:00401074movecx,eax.
text:00401076addecx,offsetunk_40144A.
text:0040107Ccallecx;=>realdecryptor4、前面的代码均为反虚拟机所用,上述代码在callecx后,方才真正执行解码函数.

Megalayer(月599元)限时8月香港和美国大带宽服务器

第一、香港服务器机房这里我们可以看到有提供四个大带宽方案,是全向带宽和国际带宽,前者适合除了中国大陆地区的全网地区用户可以用,后者国际带宽适合欧美地区业务。如果我们是需要大陆地区速度CN2优化的,那就需要选择常规的优化带宽方案,参考这里。CPU内存硬盘带宽流量价格选择E3-12308GB240GB SSD50M全向带宽不限999元/月方案选择E3-12308GB240GB SSD100M国际带宽不...

免费注册宝塔面板账户赠送价值3188礼包适合购买抵扣折扣

对于一般的用户来说,我们使用宝塔面板免费版本功能还是足够的,如果我们有需要付费插件和专业版的功能,且需要的插件比较多,实际上且长期使用的话,还是购买付费专业版或者企业版本划算一些。昨天也有在文章中分享年中促销活动。如今我们是否会发现,我们在安装宝塔面板后是必须强制我们登录账户的,否则一直有弹出登录界面,我们还是注册一个账户比较好。反正免费注册宝塔账户还有代金券赠送。 新注册宝塔账户送代金券我们注册...

41云,服务器8折优惠券,200G TCP防御

41云怎么样?41云是国人主机品牌,目前经营产品有国内外云服务器、CDN(高防CDN)和物理机,其中国内外云服务器又细分小类有香港限流量VPS、香港大带宽VPS、香港弹性自选VPS、香港不限流VPS、香港BGP线路VPS、香港Cera+大带宽机器、美国超防VPS、韩国原生VPS、仁川原生VPS、日本CN2 VPS、枣庄高防VPS和金华高防VPS;物理机有美国Cera服务器、香港单程CN2服务器、香...

软件虚拟化为你推荐
网红名字被抢注我想问这个网红 名字叫什么 讲一下谢谢了百度商城百度商城知道在哪个地方,怎么找不到啊mathplayer比较word,TeX,MathML中的数学公式处理方式的异同点,尽量详细哦,分数不是问题,谢谢哈,会加分的。access数据库ACCESS数据库和SQL有什么区别?李子柒年入1.6亿李子柒男朋友是谁,李子柒父母怎么去世的?原代码源代码是什么意思啊钟神发战旗TV ID:新年快乐丶未央不见是哪个主播百度关键词工具常见的关键词挖掘工具有哪些www.yahoo.com.hk香港有什么网页www.kanav001.com长虹V001手机小游戏下载的网址是什么
美国域名 高防服务器租用qy 服务器配置技术网 赵容 gomezpeer 360抢票助手 京东云擎 微信收钱 phpmyadmin配置 免费外链相册 杭州电信宽带优惠 重庆服务器 深圳主机托管 hdsky 新疆服务器 japanese50m咸熟 forwarder hosts文件修改 cc加速器 德国代理 更多