ملخص الفصل التاني

دا ملخص Chapter 2 من كورس Malware Analysis Fundamentals المقدّم من د/أحمد بهاء على Mahara Tech..
الشابتر دا عبارة عن 15 فيديو بيشرح فيهم الVirtual Machines والبرامج اللي هتستخدمها و ازاي تحملهم وتجهز إعداداتهم بحيث تعمل Safe lab تمهيداً للبداية في الMalware Analysis وكمان بيقولك ازاي الmalware يقدر يطلع من الvm ويصيب الhost الأساس؛
فبسم الله نبدء

CH2:v1:Virtual Machines VS. Physical Machines

هنا بيوضحلك الفرق بين الVirtual والPhysical Machines وبيكلمك عن المزايا الكتيرة اللي بتوفرهالك الVirtual Machines و أد ايه بتوفر عليك كتير في كل حاجة..
Cost:
التكلفة، يعني الVirtual Machine عبارة عن سوفت وير بتشغله على جهازك وتحدد المواصفات اللي عايزها وتسطب الماشين وخلاص، لكن الPhysical بتنزل تشتري جهاز مخصوص بمواصفات معينة ولما تيجي تشغله بيسحب كهربا كمان فكل دا بيكلفك أكتر.
Speed of Deployment:
سرعة التنفيذ، انت في الPhysical Machine هتحتاج تاخد موافقات من الشركة الأول على الهاردوير اللي هتشتريه وتحدد التمويل وبعدين تنزل تدور وتشتري والموضوع ممكن يكلفك اسابيع وشهور، في حين انك في الVirtual Machine بضغطة مفتاح هتقدر تعمل أكتر من ماشين بالمواصفات اللي عايزها وعلى جهازك الشخصي.
Speed of Snapshotting:
الSnapshot في الVirtual Machine زي النسخة الإحتياطية كدة بتحفظلك الماشين على تاريخ معين بحيث لو بوظت فيها حاجة مثلا وعايز ترجع للتاريخ اللي فات دا قبل ما تبوظ فتقدر ترجعلها بضغطة زرار، والموضوع مش بياخد منك من 5 ثواني ل دقيقتين عشان تعمل Snapshot من الماشين على حسب سرعة الهارد عندك، دا غير انك تقدر تعمل كذا snapshot مش واحدة بس..
لكن في الPhysical الموضوع بيبقى معقد وصعب جدا جدا جدا وبياخد وقت ومجهود.
Cloning:
في الVirtual Machine تقدر بكل بساطة تحفظ وتنسخ الماشين من الجهاز عندك على فلاشة او ترفعها على الانترنت بحيث أي شخص يقدر يفتحها عنده وتبقو انتو الاتنين شغالين على نسخة طبق الأصل من نفس الماشين، وممكن تعملها Clone لعدد غير محدود حتى لو 100 مرة ل100 شخص يشتغلو على الماشين دي في نفس الوقت عادي..
لكن في حالة الPhysical الموضوع هيبقى صعب جدا جدا.
Convenience:
السهولة، تخيل لو عندك 10 Physical Machines كل ماشين هتجيبلها هاردوير وجهاز مختلف يعني هتحتاج 10 أجهزة كمبيوتر عشان تشغل ال10 ماشينز ودا مش معقول وصعب..
في حين انك تقدر تعمل ال 10 ماشينز على جهاز واحد بس بشكل Virtual فهتكون ريحت نفسك ووفرت تعب كتير
Scalability:
قابلية التوسع، بمعنى لو عملنا Virtual Machine ب رام مثلا 2 جيجا وأثناء استخدامنا ليها سطبنا برامج كتير أو احتاجنا نزود الرام شوية فهنفتح الsetting ونزود الرام نخليها 4 او 8 جيجا عادي..
لكن في الPhysical Machine هتضطر تفتح الجهاز وتنزل تشتري رام جديدة مناسبة مع جهازك وتروح تركبها في الجهاز، طبعا الموضوع ينطبق على كذا حاجة غير الرام زي الهارد أو كابل الانترنت او المعالج..الخ
فبتقدر تعلي وتخفض مواصفات الVirtual Machine وانت قاعد في مكانك لكن الPhysical Machine هتحتاج وقت وتكلفة ومجهود.
------------------

CH2:v2: VMM (Virtual Box vs VMware player)

--

VMM (Virtual Machine Monitor)
ودا الSoftware اللي هنستعمله عشان نعمل Virtual Machine ونتحكم فيها وفي إعداداتها، قدامنا برنامجين مختلفين وهم Virtual Box و VMware تقدر تشتغل على أي واحد يناسبك منهم ودي بعض الفروق بينهم من حيث:
Licensing:
ترخيص Virtual Box مجاني ومفتوح المصدر أي حد يقدر يحمله ويستخدمه، لكن VMware فيه منه نسخة مجانية وهي VMware Player لما تستعملها Personal use لكن لو هتستعملها Commercial use (pro) فهتحتاج تدفع فلوس لانها مش مجانية، وفيه VMware Workstation و Fusion دول نسخ مدفوعة بردو.
وطبعا النسخ المدفوعة فيها مميزات أكتر.
Host OS:
الهوست دا الجهاز بتاعك انت ونظام التشغيل اللي عليه، بالنسبة ل Virtual Box نقدر نسطبه على أي نظام تشغيل Windows/Linux/Mac بشكل مجاني،
أما VMware Player (personal) المجاني مش متاح غير Windows و Linux بس، و VMware Fusion دا بيشتغل على Mac وطبعا مدفوع مش مجاني.
Guest OS:
ودا نظام التشغيل اللي هنسطبه جوا الVirtual Machine نفسها ان كنا هنعملها windows او linux او mac او android اي حاجة هتنفع يعني البرنامجين بيدعمو كل أنظمة التشغيل.
Guest Additions or VMware Tools:
دي نقطة مشتركة بين البرنامجين ومفيش فرق بينهم، وهي عبارة عن أدوات بنسطبها جوا الGuest OS اللي جوا الماشين بحيث تعرف الGuest انه Virtual Machine و شغال تحت Host ودا بيساعدنا نتحكم فيه بسهولة من كذا نقطة زي اننا نشير الملفات بين النظام اللي شغال جوا الVirtual Machine والنظام الأساسي اللي برا، او الDrag & Drop للملفات بين الاتنين، او الCopy&Paste للنصوص اللي بتتحفظ في الClipboard..الخ
Guest Snapshots:
ودي فيها فرق كبير بين البرنامجين، عندنا في Virtual Box ينفع نعمل Snapshots، لكن في VMware مش هينفع نعملها غي النسخة المجانية لانها موجودة في النسخ المدفوعة بس ولكن في النسخ المدفوعة بيكون ليها مميزات وخيارات كتيرة عن الVirtual Box فانت شوف المناسب ليك ايه.
----------------------

CH2:v3:Installing a VMM and IE VM

الفيديو التالت مدته دقيقتين بيوريك فيه ازاي تحمل البرنامجين والvirtual machine اللي هتسطبها عليه، وخلي بالك هنا لو انت عندك lab او ماشين بالفعل عاملها قبل كدة من كورس تاني مثلا او غيره فمش محتاج تعمل كل دا، دا للناس اللي لسا بتبدأ ومعندهاش Malware Analysis Lab او Virtual Machine تشتغل عليها.
لو انت لسا جديد في المجال وبتتسائل ليه متعملش Analysis على النظام الأساسي بدون Virtual Machine فدا طبعا عشان تتجنب أي حاجة هيعملها الMalware سواء انه يمسح او يشفر ملفات او يبوظ في النظام او الجهاز نفسه، عشان كدة بنستخدم الVM بحيث لو باظت او حصلها حاجة متأثرش على نظامنا الأساسي ونقدر نرجعها لوضعها الطبيعي بالsnapshot.
----------------------

CH2:v4:Importing the VM Into (Virtual Box & Vmware)

الفيديو الرابع بيشرح ازاي تشغل الماشين اللي حملتها في الفيديو السابق على Virtual Box أو Vmware وتظبط اعداداتها، بردو مفيش حاجة اكتبها.
----------------------

CH2:v5:Taking snapshots in (virtual box & vmware)

الفيديو الخامس بيشرحلك ازاي تاخد Snapshot من الماشين وخلي بالك لازم تعملها لو انت محمل الماشين اللي قال عليها لان الماشين مدتها 90 يوم فتقدر تستخدم الsnapshot في انك ترجع تاني لأول يوم، دا غير ان لو حصلت مشاكل في الماشين وباظت تقدر ترجع عليها بدون ما تمسحها وتعيد كل حاجة م الاول تاني.
خلي بالك ان الsnapshots بتاخد مساحة من الهارد فتابع المساحه على البارتشن اللي حاطط عليه الماشين.
-----------------

CH2:v6:Windows licensing , rearming

لو بتستخدم الماشين الخاصة بمايكروسوفت زي الكورس بالظبط فأول ما بتفتح الماشين بتطلب باسورد ودا مكتوب على نفس الصفحه اللي حملت منها الماشين قبل كدة،
بعد كدة لو انت قافل الانترنت عن الماشين هيظهرلك انها expired واول ما بتوصل الانترنت بتتفعل وتديك ال90 يوم (3 شهور) وبتديك امكانية انك تعملها rearm بعد ال 3 شهور عشان تفعلها مرة تانية بأمر slmgr /rearm لما تكتبه في الCMD بس خلي بالك ان الrearm بيكون مرة واحدة بس يعني هيديك 6 شهور مجاني ك Total، بعد ال6 شهور تقدر تستخدم الsnapshot اللي اخدتها في الأول وبكدة هترجع زي ماكانت وتقدر تستخدمها ل 6 شهور تانيين وهكذا...
----------------

CH2:v7:Restore and clone a snapshot

هنا بيعرفك ازاي تعمل restore ل snapshot في حالة ان الماشين باظت من malware مثلا او لأي سبب تاني، وبيعرفك ازاي تعمل copy لملفات الماشين بحيث لو هتديها لشخص تاني يستخدمها عنده.
-------------------

CH2:v8:VM Network options (NAT, bridged, host-only)

عندنا 3 أوضاع من إعدادات الشبكة هنستعملهم وهم NAT و Bridged و Host-Only
أول وضعين NAT و Bridged الماشين فيهم بتكون متوصلة بالانترنت، اما الوضع التالت Host-only فالماشين بتكون متوصلة بالHost Machine اللي هي النظام الأساسي مش الانترنت يعني جوا شبكة بين الاتنين بس بعيداً عن الانترنت.
مثال:
لنفترض عندنا راوتر واخد الip دا 192.168.1.1 وجهازنا اللي هو الHost واخد 192.168.1.2:
1-لو الماشين على وضع NAT هتبقى ظاهرة كأنها process عادية على الHost الاساسي بنفس الip بتاعه اللي هو 192.168.1.2 وبيظهر للراوتر ان 192.168.1.2 هو اللي عامل الTraffic دا على الشبكة مش الماشين.
2-لو الماشين على وضع Bridged هتبقى ظاهرة بip مستقل زي 192.168.1.3 يعني متصلة بشكل مباشر بالراوتر كأنها كارت شبكة أو جهاز منفصل يعني مختلفة عن الهوست العادي اللي هو 192.168.1.2.
3-لو الماشين على وضع Host-only بتبقى مش متصلة بالانترنت ولكن محطوطة في subnet مع الhost مختلفة خالص عن الراوتر فتلاقيها مثلا 172.16.128.1.
-----------------------

CH2:v9:Configuring the Network (NAT, Bridged, Host-only)

هنا بيعرفك ازاي تظبط الماشين على وضع معين من ال3 أوضاع اللي في الفيديو السابق فمفيش حاجة اكتبها.
-------------------

CH2:v10:Is malware allowed to access the internet

هل هنسمح للmalware انه يتواصل مع الinternet ولا هنخلي الماشين Host-only بس ؟
ايوة هنسمحله ولكن بحدود ودا هيعتمد على الgoal أو الهدف بتاعنا،
يعني لو احنا بنحلل الmalware عشان نطلع منه IoCs بس فنقدر نستخدم Fake DNS Server بدل ما نخليه يتواصل مع DNS server حقيقي زي جوجل او غيره، وهنعمل log للrequests اللي بيبعتها وخلاص.
لكن في حالة ان المالوير ليه كذا مرحلة واحنا محتاجين نحمل المرحلة اللي بعد كدة زي انه يتواصل مع سيرفر الAttacker عشان ياخد منه المعلومات مثلا في الحالة دي هنفتحله الانترنت، ومثلا بردو لو المالوير فيه جزء مشفر ومحتاج يتواصل مع سيرفر المهاجم عشان يفك الجزء دا ويشغله واحنا محتاجين نفحص الجزء دا فلازم نشغل الانترنت عشان يعمل اللي عايزه.
طب ايه الحدود اللي هنحطها في حالة شغلنا الانترنت وخلينا المالوير يتواصل مع سيرفر الاتاكر؟
-نستخدم Firewall زي pfSense وغيره
-نسمح بالإتصال ببعض الprotocols بس، يعني HTTP مثلا أو ICMP على حسب ما نحتاج، مش كلها
-نستخدم Proxy أو VPN عشان نخفي الlocation بتاعنا ودي نقطة مهمة، لو مثلا حد في الEG CERT بيستخدم الشبكة هناك بدون vpn وهو بيعمل analysis للمالوير فالأتاكر لما يوصله الrequest ويشوف الip اللي الlocation بتاعه هو الEG CERT هيشك ان فيه Malware Analyst بيعمل analysis على المالوير بتاعه فهيقفل السيرفر أو هياخد إحتياطاته ويهرب أو حتى يغير الResults ويبعتلك النتائج غلط.. فلازم نستخدم حاجة تغير الlocation عشان منفضحش نفسنا.
--------------------------

CH2:v11:Attaching/Removing devices to/from our VM

الفيديو ال11 بيعرفنا ازاي نضيف hard disk - usb - network card للVirtual Machine بتاعتنا عشان يظهر جواها ونقدر نستخدمه، بالتالي مش هكتب حاجة لازم تشوف الفيديو.
--------------------------

CH2:v12:VMware tools

هنا بيشرح ازاي نسطب الVM Tools اللي اتكلمنا عنها في الأول وكمان بيشرح المميزات اللي بتقدمها لينا زي:
Shared clipboard:
بتخلينا نعمل copy - paste للنصوص والملفات بين الماشين والهوست بتوعنا كأنهم ماشين واحدة بدون أي مشاكل
Drag and Drop:
ودي بتخلينا نسحب الملفات من الماشين مثلا للهوست أو العكس
Custom resolution:
الميزة دي بتسمحلنا نتحكم في أبعاد الشاشة الخاصة بالvm وكمان نعمل أبعاد خاصة بينا احنا على حسب الحاجة
Shared folders:
بتسمحلنا نشارك الملفات من فولدر معين احنا بنحدده عشان نشوفه جوا الvm
----------------------

CH2:v13:Malware detecting a VM environment

هل المالوير بيعرف هو شغال جوا Virtual Machine ولا لأ؟
الإجابة أيوة بيعرف، ولكن امتا؟ ليه؟ ازاي؟
When & Why ?
-قبل ما يعمل أي Malicious Activity:
ليه؟
عشان يمسح نفسه مباشرةً في حالة إنه شغال جوا VM ولكن الModern Malware مش بتعمل كدة.
-أثناء الMalicious Activity:
ليه؟
لو مثلا فيه خطوة بيشفر فيها ملفات أو بيبعت حاجة لسيرفر الAttacker فهو بيتأكد الأول و ف حالة لقى نفسه جوا vm فهو بيقرر يغير من نشاطه بدل ما يتوصل مثلا مع سيرفر الأتاكر بيروح يتوصل مع سيرفر جوجل فيخدع الAnalyst ويضيع وقته، أو يخدع الsandbox ويخليه يطلع نتائج غلط انه مش مالوير مثلا او مش بيعمل malicious activity.
How?
ازاي المالوير بيكتشف الvm ؟
عن طريق:
1-Hypervisor (VMM)
الGuest Machines اللي شغالين عليها مش بتتواصل مع المعالج مباشرةً ولكن عن طريق الHypervisor اللي هو ف حالتنا برنامج الVMM سواء كان Virtual Box او VMware ودا بيكتشفه المالوير،
ممكن عن طريق الoperating system uptime اللي جوا الماشين ودا عبارة عن وقت تشغيل النظام يعني في الطبيعي ان الuser بيكون فاتح الجهاز وعمل شغل او تصفح او فتح برنامج وبعدين المالوير اشتغل فالuptime هنا كان عادي وكبير لكن اللي مش عادي انه يبقى دقيقة او دقيقتين بس قبل تشغيل المالوير وفي الحالة دي المالوير يقدر يتأكد انه جوا virtual machine وبيتعمله analysis.
وممكن في حالة انه ملقاش حركة للماوس أو تفاعل من الuser زي انه بيفتح نوافذ او يستخدم برامج ..الخ هنا بيعرف انه بيتعمله analysis فبيقوم مغير النشاط بتاعه.
2-Virtualized hardware components
المالوير بيقدر يعرف هو جوا VM ولالأ من خلال انه بيفرق بين مكونات الهاردوير الحقيقي و مكونات الهاردوير الوهمي اللي بنحطها ونغيرها في أي وقت للvirtual machine واللي بتكون في الأغلب مش منطقية زي مثلا رام 1 جيجا أو أقل أو هارد بمساحة غير منطقية زي 142 جيجا ونص... وهكذا لان دا مش منطقي واحنا في 2022 غير انه يبقى جوا vm.
3-Processes & Services
من خلال بعض العمليات اللي شغالة جوا الvm زي مثلا الVM Tools اللي لو اكتشف وجودها بيتأكد 100% انه داخل virtual machine.
4-Files & Registry
من خلال بعض الملفات أو الregistry،
على سبيل المثال لو ملقاش ملفات على سطح المكتب أو جوا فولدر الDownloads والDocuments بيتأكد انه جوا vm.
--------------------------

CH2:v14:Malware has VM-detection capability

الفيديو دا بيوريك مثال ب malware بيعمل detect للvm كالآتي:
الmalware هيبحث في الregistry عن keys معينة فيها كلمة vmware لو لقاها موجودة بيطلعلك انه شغال في vm، ولو مش موجودة هيكمل عادي ويقولك انه شغال على نظام أساسي مش vm،
في حالة لو عدلنا الvalues بتاعت vmware اللي جوا الregistry بحيث المالوير ميلاقيهاش هيفتكر انه شغال على نظام أساسي مش vm.
وهنتعرف أكتر عن الموضوع دا في جزئية الAdvanced Dynamic Analysis.
------------------------------

هل المالوير يقدر يهرب من الvm ويصيب الhost (النظام الأساسي) ؟

الإجابة أيوة يقدر وهنا فيه 3 تساؤلات:
1-When?
غالبا المالوير بيعمل كدة بعد الprivilege escalation (رفع الصلاحيات) ودي معناها انه مثلا لو اشتغل بصلاحيات user معين هيقدر يوصل للpaswords وكل حاجة خاصة بالuser دا بس، لكن ميقدرش يوصل أو يغير حاجة خاصة ب user تاني زي الadmin user مثلا وفي الحالة دي المالوير بيستعمل tricks او ثغرات موجودة في الويندوز بحيث يرفع الصلاحيات بتاعته ويوصل لصلاحيات الAdmin ووقتها هيقدر يعمل أي حاجة على الماشين يسرق باسورد او يشفر ملفات..الخ
في حالة ان المالوير لقى نفسه جوا virtual machine هيحاول يستغل الصلاحيات دي في انه يدور على ثغرات ويستغلها.
2-Why?
عشان يصيب الHost، ولو قدر بعدها يصيب الشبكة كلها هيعملها عادي
الHost دا ممكن يكون الماشين او النظام الأساسي بتاعنا، وممكن لما المالوير يوصل للweb server يصيب الServer كله المستضيف للVPS.
3-How?
إزاي؟ بإستعمال Guest-To-Host Exploits بمعنى انه بيلاقي ثغرة في برنامج الVMM اللي بنستخدمه ويبدأ يستغلها في انه يهرب برا الVM ويوصل للHost.
هل الموضوع منتشر بكثرة؟
نوعاً ما كل سنة بتظهر ثغرة في البرامج ودي بعض الثغرات:
Vmware:
-UHC (CVE-2019-5518)
-NIC (CVE-2018-6973)
-Drag n Drop (CVE-2017-4901)
VirtualBox:
-Core graphics framework (CVE-2018-2698)
اخر حاجة بالنسبة للShared Folders لو احنا فاتحينها وفيه Ransomware شغال جوا الماشين فهو بيصيب الشبكة بالتالي هيصيب الshared folders ويشفرها فلازم نخلي بالنا اننا منسيبش الshared folders مفتوحة دايماً ويستحسن نخليها read-only لو فتحناها. و دا طبعا ميعتبرش Guest Host Skape بالمعنى الصريح ولكن في النهاية هيكون المالوير أصاب ملفات على الهوست عندك.
----------
تلخيص Chapter 1 هتلاقيه هنا:
أما الكورس نفسه هتلاقيه هنا:
لما اخلص ال3 Chapters الباقيين هحط التلخيص كله على الblog وهعمله pdf عشان لو حد بيذاكر الكورس وحابب يراجع من الملخص او يفتكر معلومة يلاقيها اسرع بإذن الله