How malware evade Sandboxes?

ခေါင်းစဥ်အတိုင်းပါပဲ ဒီနေ့ဆွေးနွေးသွားမှာကတော့ Malware တွေဟာ Sandbox environment ကိုဘယ်လို detect & bypass လုပ်သလဲဆိုတဲ့အကြောင်းပဲဖြစ်ပါတယ်

အရင်ဆုံး Sandboxing အကြောင်းစပြောလိုက်ကြရအောင်

Sandbox ဆိုတာ ကျွန်တော်တို့နေ့စဥ်သုံးနေတဲ့ Computer တစ်လုံးလိုမျိုးပါပဲ .. ဒါပေမယ့် သူ့ရဲ့ရည်ရွယ်ချက်က အဲ့ Computer Environment ထဲမှာ Malware တွေကို Run ကြည့်ပြီး အဲ့ Malware ရဲ့ Behaviour ကိုလေ့လာဖို့ အထူးပြုလုပ်ထားတဲ့ Environment ပါ .. Malware Analysis အတွက်လိုအပ်တဲ့ Tools တွေအကုန်သွင်းထားတဲ့ Computer တစ်လုံးလို့လွယ်လွယ်ပြောလို့ရပါတယ်

Sandbox ထဲမှာ Malware Run လိုက်တာနဲ့ အဲ့ Malware က ဘယ် Registry တွေကို Modify, Add, Delete သွားလုပ်သလဲ, Network Connection အနေနဲ့ရော ဘယ် IP, ဘယ် URL ကို ဘယ် Protocol သုံးပြီးလှမ်းခေါ်သလဲ, Malware ကနေလုပ်သွားတဲ့ System Calls တွေ File Changes တွေအကုန်လုံးကို မြင်အောင် Tools တွေသုံးပြီး Monitor လုပ်တဲ့နေရာပါ

ကိုယ်တိုင် Sandbox တစ်ခုကိုလည်း လွယ်လွယ်ကူကူတည်ဆောက်လို့ရပါတယ် .. ဥပမာ ကျွန်တော်ဆိုရင် Azure ပေါ်မှာ Flare-VM ကိုသုံးပြီး Malware Research Lab လေးတစ်ခုတည်ဆောက်ထားပါတယ် .. အဲ့လို Cloud VM တွေမသုံးချင်ရင် ကိုယ့် PC ထဲမှာ VirtualBox, VMWare တို့ကိုသုံးပြီး VM တွေတည်ဆောက်ထားလို့ရပါတယ် (တစ်ခုသတိထားရမှာက ကိုယ့်စက်မှာ Malware Analysis VM လုပ်တော့မယ်ဆို VM ကိုသေချာ Configure ချဖို့လိုပါတယ် .. မဟုတ်ရင် Host Machine ကိုပါ Malware တွေ Infect ဖြစ်သွားနိုင်လို့ပါ) .. နောက်ပြီး Online Sandboxing Service တွေဖြစ်တဲ့ Hybrid Analysis, Any.Run တို့ကနေလည်း Malware တွေ Run ကြည့်ပြီး Behaviour Report တွေထုတ်လို့ရပါတယ် (တစ်ခုသတိထားရမှာက ဒီ Platform တွေမှာ Free Account နဲ့ Upload လုပ်လိုက်ရင် အဲ့ဒီ Sample နဲ့ Report ကိုလူတိုင်းမြင်ရမှာပါ .. ဒါကြောင့်ကိုယ့် Organisation ကို Targeted Attack ပုံစံမျိုးနဲ့ဝင်လာတဲ့ Malware တွေကို Public Sandbox တွေမှာ Upload မတင်သင့်ပါကြောင်း)

ဒီလိုမျိုး Malware သုတေသီတွေက Malware ကိုလေ့လာတာကိုသိလာတော့ Malware Developer တွေဖက်ကလည်း Sandbox မှာ သူတို့ Malware တွေ မ Run မိအောင် Bypass Method တွေထည့်သွင်းလာကြပါတယ် .. ဒီထဲကမှ Common ဖြစ်တဲ့နည်းတွေကို ဆွေးနွေးတင်ပြသွားပါမယ် .. ကျွန်တော်ပြောသွားတဲ့နည်းတွေအပြင် တခြားနည်းလမ်းတွေလည်းအများကြီးရှိပါသေးတယ် .. ဒီနေ့မှာတော့ Evasion Techniques တွေကို Category 3 ခုခွဲပြီး အကြမ်းဖျင်းဆွေးနွေးသွားပါမယ်

1. Time-Based Evasion

Malware ပါတဲ့ Executable ကို Run လိုက်တာနဲ့ Malicious Code ပါတစ်ခါတည်း Run မသွားအောင် Delay လုပ်ထားတဲ့ပုံစံမျိုးပါ .. တစ်ချို့ Sandbox တွေက အချိန်တစ်ခုကြာ Run ကြည့်ပြီး Malicious Activity မတွေ့ရင် Clean ဖြစ်တယ်လို့သတ်မှတ်လေ့ရှိပါတယ် .. အဲ့တာကြောင့် Malicious Code တွေကို ချက်ချင်းမ Run စေပဲ Delay လုပ်ထားရင် Sandbox ထဲရောက်တဲ့အခါမှာ Malware ကို Detect ဖြစ်တော့မှာမဟုတ်ပါဘူး

နောက်တစ်ခုကတော့ Sat, Sun လို Weekend တွေမှာ မ Run အောင် Malware ကို​ Schedule လုပ်ထားတာပါ .. Sat, Sun မှာရုံးပိတ်တော့ Corporate Network ထဲ Activity တွေနည်းနေချိန် Malware ထ Run ပြီး C2 ကောက်ခေါ်, Data Exfiltrate တွေလုပ်တာနဲ့ Monitoring လုပ်နေတဲ့လူက ချက်ချင်းသိမှာပါ .. ဒါကြောင့် System Time ကိုကြည့်ပြီး weekend ဆို Malware တွေကို Sleep လုပ်ဖို့ ဒီဇိုင်းဆွဲထားကြပါတယ်

2. Situational Awareness

Sandbox Environment မှာလည်း သူ့ဟာနဲ့သူ Sandbox ဖြစ်ကြောင်းသိစေနိုင်မယ့် Red Flag တွေရှိပါတယ် .. ဥပမာ Virtual Machine တွေပေးလေ့ရှိတဲ့ MAC Address တွေနဲ့ တိုက်စစ်ပြီး တူနေရင် Malicious Code ကို မ Run တော့တာ, CPU Core Counts တွေက ပုံမှန်မဟုတ်ပဲ မတရားနည်းနေတာ, CPU Tempature စစ်ကြည့်တာ, SSD (or HDD) မှာလည်း Storage နည်းနေတာမျိုး စတဲ့ ပုံမှန် User တစ်ယောက်ရဲ့ Computer ဟုတ်မဟုတ် ဒီလို Hardware Specs တွေကိုကြည့်ပြီး ဆုံးဖြတ်လို့ရပါတယ်

နောက်တစ်ခုကတော့ သွင်းထားတဲ့ Software, Program တွေကိုလည်းစစ်ကြည့်ကြပါသေးတယ် .. ဥပမာ Malware Analysis လုပ်ရာမှာသုံးလေ့ရှိတဲ့ Tools တွေဖြစ်တဲ့ pestudio, RegShot, Wireshark တို့လို Tools တွေသွင်းထားတာမြင်ရင် Malicious Code ကို မ Run တော့တာမျိုး, Machine ရဲ့ Process တွေကိုစစ်ကြည့်ပြီး Process ကပုံမှန်ကွန်ပျူတာတစ်လုံးထက်နည်းနေတာဆို မ Run တော့တာမျိုး (Sandbox တွေက Malware စစ်ဖို့သီးသန့်လုပ်ထားတာကြောင့် Running Process နည်းနေတတ်ပါတယ်) စတာတွေကို စစ်ဆေးပြီး Sandbox ဖြစ်ကြောင်းသံသယရှိတာနဲ့ Malware Code တွေမ Run တော့အောင် ပြုလုပ်လာကြပါတယ်

3. Interaction Detection

ဒါကတော့ Automated Sandbox တွေကို Detect လုပ်တာပါ .. သာမာန်လူတစ်ယောက်က အသုံးပြုနေတာမဟုတ်ပဲ Automated ဖြစ်နေတဲ့ Machine တစ်ခုဖြစ်ကြောင်းအလွယ်ကူဆုံးသိနိုင်တဲ့အချက်က Mouse Movement ပဲဖြစ်ပါတယ် (Advance ပိုဖြစ်တဲ့ Sandbox တွေမှာတော့ ဒါကိုမသိနိုင်အောင် Mouse Interaction ထည့်ပေးလာပါပြီ)

နောက်တစ်ခုက Temp Files ဘယ်နှခုရှိသလဲ, Prefetch, LNK Files, Jump Files တွေရောရှိလား, Application ဘယ်လောက်ဖွင့်ထားသလဲ, Clipboard ထဲမှာ Content တွေရှိသလား, Reboot ဘယ်နှခါချပြီးပြီလဲ​ (ပုံမှန်အားဖြင့် Sandbox တွေဟာ Snapshot ယူထားပြီး Malware တစ်ခါ Run ပြီးတိုင်း Snapshot ကိုပြန်ပြန် Restore လုပ်လေ့ရှိတာကြောင့် OS ထဲမှာသိမ်းထားတဲ့ Reboot Record အကြိမ်အရေအတွက်အလွန်နည်းပါတယ်), System Uptime ကရောကြာပြီလား စသဖြင့် User Interaction နဲ့ပတ်သက်တာတွေကို စစ်ဆေးပြီး Sandbox ဖြစ်ကြောင်းသံသယရှိတာနဲ့ Malicious Code တွေကို execute မလုပ်တော့ပါဘူး

ဒီလိုနဲ့ပဲ Malware Researcher တွေနဲ့ Developer တွေကတော့ Cat & Mouse game ကစားနေကြတာပါပဲ .. ဖမ်းလိုက်ပြေးလိုက်ပဲပေါ့ .. အဆုံးထိဖတ်ပေးလို့အားလုံးကိုကျေးဇူးတင်ပါတယ်