كسرصندوق الرمل الكاتب: سوديب سينغ Breaking the Sandbox Author: Sudeep Singh - نسخة قابلة للطباعة +- الفريق العربي للهندسة العكسية (https://www.at4re.net/f) +-- قسم : منتديات الهندسة العكسية - Reverse Engineering Forums (https://www.at4re.net/f/forum-4.html) +--- قسم : كتب الهندسة العكسية والبرمجة - Ebooks (https://www.at4re.net/f/forum-34.html) +--- الموضوع : كسرصندوق الرمل الكاتب: سوديب سينغ Breaking the Sandbox Author: Sudeep Singh (/thread-762.html) |
كسرصندوق الرمل الكاتب: سوديب سينغ Breaking the Sandbox Author: Sudeep Singh - [email protected] - 09-05-2019 كسرصندوق الرمل الكاتب: سوديب سينغ للتحميل من المرفقات تحث المقدمة في هذه الورقة ، أود مناقشة مختلف التقنيات الحالية والمثيرة للاهتمام المستخدمة للتهرب من اكتشاف فيروس في Sandbox. سننظر أيضًا في الطرق التي يمكن أن يكون بها الصندوق الرمل تصلب لمنع تقنيات التهرب. هذه الورقة موجهة نحو أولئك الذين لديهم خبرة في نظام التشغيل Windows OS الداخلي ، فيروسات الهندسة العكسية وكذلك أولئك الذين يرغبون في تطوير الكشف آليات للفيروسات في بيئة Sandboxed. فهم عميق لتقنيات التهرب التي تستخدمها الفيروسات في البرية يساعدنا في تنفيذ آليات كشف أفضل. غرض التقنيات الهجومية الجديدة تؤدي إلى ظهور آليات اكتشاف مبتكرة ، كما كان الحال دائمًا الحال في الأمن السيبراني. في الوقت الحاضر ، أصبح من الشائع بشكل متزايد لمحللي البرمجيات الخبيثة الاستفادة من صناديق الحماية من أجل أتمتة تحليل البرامج الضارة. ومع ذلك ، فإن معظم التقنيات المستخدمة في الفيروسات للتهرب من هذا القبيل تستهدف الصناديق الرملية VMs التجارية المعروفة مثل VMWare Workstation ، VMWare Fusion و Virtual Box و Virtual PC و Qemu وبعض الصناديق الرملية مثل CWSandbox و Anubis وما إلى ذلك وهلم جرا. هذه التقنيات يمكن أن تمنع التحليل في رمل يعتمد فقط على المعروف معلومات. ومع ذلك ، هناك مجال كبير للتحسين في التقنيات التي تستخدمها الفيروسات للكشف عنها والتهرب من بيئة افتراضية. هذا يشجع على تطوير أكثر صلابة صناديق رمل قريبة من شفافية VMM قدر الإمكان. تقنيات مكافحة VM قبل أن نناقش بعض الطرق الجديدة لمنع التحليل في صناديق الرمل ، دعونا نناقش بعض تستخدم عادة لمكافحة رمل / تقنيات مكافحة vm. أسماء العمليات: حتى تاريخه ، تعتمد الفيروسات على البحث عن أسماء العمليات المعروفة التي تعمل على آلة لتحديد وجود جهاز الظاهري. عن طريق تعداد أسماء العملية باستخدام Process32First () / Process32Next () ، يبحثون عن تشغيل العملية مثل vmsrvc.exe ، vmusrvc.exe ، vboxtray.exe ، vmtoolsd.exe ، df5serv.exe ، vboxservice.exe وهلم جرا. هؤلاء هم القيم المعروفة لأسماء العمليات التي قد تكون قيد التشغيل في صندوق حماية يستخدمه محللو البرامج الضارة. اصطلاحات السجل: من الشائع أيضًا أن تصل الفيروسات إلى إدخالات تسجيل معينة للتحقق من وجودها وجود صناديق الرمل. أحد إدخال التسجيل الأكثر شيوعًا الذي تم الوصول إليه لهذا الغرض هو: HKEY_LOCAL_MACHINE \ SYSTEM \ CONTROLSET001 \ الخدمات \ القرص \ التعداد المفتاح الفرعي: "0" ثم يتم تحليل قيمة المفتاح الفرعي أعلاه لوجود سلاسل فرعية مثل vmware و qemu و xen وما إلى ذلك وهلم جرا. ويستند هذا مرة أخرى على القيم المعروفة. أسماء الوحدات: تقوم وحدات Sandboxes بحقن وحدات في عملية لتسجيل الأنشطة التي تقوم بها. نظرًا لأن بعض أسماء الوحدات النمطية التي تستخدمها صناديق الحماية الأمنية معروفة بشكل عام ، يتم استخدامها بواسطة الفيروس للكشف عن وجود الصندوق الرمل بالطريقة التالية: استدعاء GetModuleHandleA () على اسم الوحدة النمطية. إذا كان المقبض الذي تم إرجاعه غير Null ، فذلك يشير إلى تحميل الوحدة. يتم إلغاء تحميل عن طريق استدعاء FreeLibrary (). بمجرد القيام بذلك ، فإن لن يسجل الصندوق الرمل أي نشاط يقوم به البرنامج الضار. أسماء الوحدات الشائعة في كثير من الأحيان يتم البحث عنها بواسطة الفيروسات وهي dbghelp.dll و sbiedll.dll وما إلى ذلك. كشف مستتر: في معظم برامج الآلة الافتراضية مثل VMWare Workstation ، VMWare الانصهار ، وأجهزة الكمبيوتر الافتراضية ، المتوازيات وهلم جرا ، يستخدم Hypervisor مستتر للتواصل مع نظام التشغيل الضيف. يمكننا اكتشاف وجود برنامج للمحاكاة الافتراضية وكذلك تحديد نوعه باستخدام هذا تقنية مستتر. على سبيل المثال ، للكشف عن وجود برنامج VMWare ، هناك تقنية موثقة معروفة يتحقق من وجود مستتر VMX المستخدم من قبل Hypervisor للتواصل مع الضيف نظام التشغيل: mov eax ، 0x564d5868 mov ecx، 0xa mov dx، 0x5658 في eax ، DX cmp ebx ، 0x564d5868 في حين أن هذه التقنيات جيدة ، إلا أنها موجهة مرة أخرى نحو ظاهرية محددة برامج. تعليمات الشفرة الطويلة: تم توثيق هذه التقنية بواسطة jaelanicu في عام 2009. لم يتم استخدامها في كثير من الأحيان في الفيروسات ، ومع ذلك فهي تقنية فريدة من نوعها. لأنه يقوم على حقيقة أن وحدة المعالجة المركزية الافتراضية ليس لديه قيود على طول التعليمات على عكس وحدة المعالجة المركزية إلى x86 حقيقي. عندما يتم تنفيذ تعليمات الطول أكبر من 0x15 بايت على وحدة المعالجة المركزية الحقيقية ، فإنه سيتم تشغيل استثناء ولكن في وحدة المعالجة المركزية الافتراضية فإنه لن يؤدي إلى استثناء. هذا الاختلاف في النتيجة يستخدم للكشف عن وجود الافتراضية. وقد لوحظ أن Qakbot يستخدم هذه التقنية كما هو موضح في الصورة أدناه: يرجى ملاحظة أن هذه التقنية قد لا تعمل بشكل موثوق على الإصدارات الحديثة من Virtualization برامج. عدد النوى: من الشائع أن يقوم محللو البرمجيات الخبيثة بتخصيص معالج واحد أساسي إلى رمل. ومع ذلك ، في حالة العالم الحقيقي اليوم ، سيكون لمعظم المعالجات النوى المتعددة. يمكن لبرنامج Malwares استخدام العديد من التقنيات للعثور على عدد من النوى وحدة المعالجة المركزية ومن ثم تحديد ما إذا كانوا تعمل داخل جهاز افتراضي على أساس النتيجة. واحدة من أسهل طرق العمل هذا عن طريق التحقق من Block Environment Process: Mov eax ، dword ptr fs: [0x30] Mov eax ، dword ptr ds: [eax + 0x64] Cmp eax ، 0x1 Je vm_detected هذه التقنية قد تبدو تافهة Breaking the Sandbox
Author: Sudeep Singh Introduction In this paper, I would like to discuss various existing and interesting techniques which are used to evade the detection of a virus in Sandbox. We will also look at ways a sandbox can be hardened to prevent such evasion techniques. This paper is targeted towards those who have an experience with Windows OS internals, reverse engineering viruses as well as those who are interested in developing detection mechanisms for viruses in a Sandboxed environment. A deep understanding of the evasion techniques used by viruses in the wild helps us in implementing better detection mechanisms. Purpose New offensive techniques give rise to innovative detection mechanisms, as has always been the case in cyber security. Nowadays, it is becoming increasingly common for malware analysts to leverage sandboxes for automation of malware analysis. However, most techniques used in viruses to evade such sandboxes are targeted towards commercial and well-known VMs like VMWare Workstation, VMWare Fusion, Virtual Box, Virtual PC, Qemu and some sandboxes like CWSandbox, Anubis and so on. These techniques can prevent analysis in a sandbox based only on known information. However, there is a lot of scope for improvement in the techniques used by viruses to detect and evade a Virtualized Environment. This encourages the development of more hardened sandboxes which are as close to VMM transparency as possible. Anti VM techniques Before we discuss some new ways of preventing analysis in sandboxes, let us discuss some of the commonly used anti sandbox/anti vm techniques. Process Names: Till date, viruses rely on looking for known process names running on the machine to identify the presence of a virtual machine. By enumerating the process names using Process32First()/Process32Next(), they look for running process such as vmsrvc.exe, vmusrvc.exe, vboxtray.exe, vmtoolsd.exe, df5serv.exe, vboxservice.exe and so on. These are known values of process names that may be running in a sandbox used by malware analysts. Registry Artifacts: It is also common for viruses to access specific registry entries to check for presence of sandboxes. One of the most common registry entry accessed for this purpose is: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Disk\Enum Subkey: “0” Then the value of above subkey is parsed for the presence of substrings like vmware, qemu, xen and so on. This is again based on known values. Module Names: Sandboxes inject modules in a process to log the activities performed by it. Since some of the module names used by security sandboxes are known publicly, they are used by the virus to detect the presence of sandbox the following way: Call GetModuleHandleA() on the module name. If the handle returned is Non Null, this indicates the module is loaded. It is unloaded by calling FreeLibrary(). Once this is done, the sandbox will not log any activity performed by the malware. Common module names often searched by the viruses are dbghelp.dll, sbiedll.dll and so on. Backdoor Detection: In most virtual machine softwares like VMWare Workstation, VMWare Fusion, Virtual PC, Parallels and so on, Hypervisor uses a backdoor to communicate with the guest operating system. We can detect the presence of virtualization software and also identify its type using this backdoor technique. For instance, to detect the presence of VMWare there is a known documented technique which checks for the presence of VMX backdoor used by Hypervisor to communicate with the guest operating system: mov eax,0x564d5868 mov ecx, 0xa mov dx, 0x5658 in eax, dx cmp ebx, 0x564d5868 While these techniques are good, they are again directed towards specific virtualization softwares. Long Opcode Instructions: This technique was documented by jaelanicu in 2009. It is not used so often in viruses, however it is a unique technique. It is based on the fact that virtualized CPU does not have a limitation on the length of an instruction unlike a real x86 CPU. When an instruction of length greater than 0x15 bytes is executed on a real CPU, it will trigger an exception however in a virtual CPU it will not trigger an exception. This difference in the result is used to detect the presence of virtualization. It was observed that Qakbot uses this technique as shown in the screenshot below: Please note that this technique may not work reliably on recent versions of Virtualization Softwares. Number of Cores: It is common for malware analysts to allocate a single processer core to the sandbox. However, in a real world case today, most processors will have multiple cores. Malwares can use several techniques to find the number of CPU cores and then decide if they are running inside a virtual machine on the basis of the result. One of the easiest ways of doing this is by checking the Process Environment Block: Mov eax, dword ptr fs:[0x30] Mov eax, dword ptr ds:[eax+0x64] Cmp eax, 0x1 Je vm_detected This technique may appear to be trivial كلمة السر :
|