Drovorub malware ရှုပ်ထွေးမှုသည် Linux OS ကို ကူးစက်သည်။

အမျိုးသားလုံခြုံရေးအေဂျင်စီနှင့် အမေရိကန်ပြည်ထောင်စု စုံစမ်းစစ်ဆေးရေးဗျူရို အစီရင်ခံစာတစ်စောင်ထုတ်ပြန်ခဲ့သည်။85th ပင်မစင်တာ အထူးဝန်ဆောင်မှုပေးသော အဆိုအရ သိရသည်။ ရုရှားစစ်တပ်၏ စစ်ဦးစီးချုပ်ရုံး၏ ပင်မညွှန်ကြားမှု (85 GCSS GRU) "Drovorub" ဟုခေါ်သော malware ရှုပ်ထွေးမှုကို အသုံးပြုသည်။ Drovorub တွင် Linux kernel module တစ်ခု၏ပုံစံ၊ rootkit တစ်ခု၊ ဖိုင်များလွှဲပြောင်းခြင်းနှင့် network ports များပြန်လည်ညွှန်းခြင်းအတွက် tool နှင့် control server တစ်ခုတို့ပါဝင်သည်။ ကလိုင်းယင့်အပိုင်းသည် ဖိုင်များကို ဒေါင်းလုဒ်လုပ်ပြီး အပ်လုဒ်လုပ်နိုင်ပြီး၊ အမြစ်အသုံးပြုသူအဖြစ် မထင်မှတ်ထားသော အမိန့်များကို လုပ်ဆောင်ကာ ကွန်ရက်ဆိပ်ကမ်းများကို အခြားကွန်ရက် node များသို့ ပြန်ညွှန်းနိုင်သည်။

Drovorub ထိန်းချုပ်ရေးစင်တာသည် အမိန့်ပေးစာကြောင်းအငြင်းအခုံအဖြစ် JSON ဖော်မတ်ဖြင့် ဖွဲ့စည်းမှုဖိုင်ဆီသို့ လမ်းကြောင်းကို လက်ခံရရှိသည်-

{
"db_host" : " ” ၊
"db_port" : " ” ၊
"db_db" : " ” ၊
"db_user" : " ” ၊
"db_password" : " ” ၊

"lport" : " ” ၊
"lhost" : " ” ၊
"ping_sec" : " ” ၊

"priv_key_file" : " ” ၊
"စကားစု" : " »
}

MySQL DBMS ကို backend အဖြစ်အသုံးပြုသည်။ WebSocket ပရိုတိုကောကို ကလိုင်းယင့်များ ချိတ်ဆက်ရန် အသုံးပြုသည်။

ကလိုင်းယင့်တွင် ဆာဗာ URL၊ ၎င်း၏ RSA အများသူငှာသော့၊ အသုံးပြုသူအမည်နှင့် စကားဝှက်တို့ အပါအဝင် တပ်ဆင်ထားသော ဖွဲ့စည်းမှုပုံစံ ပါရှိသည်။ rootkit ကိုထည့်သွင်းပြီးနောက်၊ ဖွဲ့စည်းမှုကို Drovoruba kernel module မှစနစ်မှဝှက်ထားသော JSON ဖော်မတ်ရှိစာသားဖိုင်အဖြစ်သိမ်းဆည်းသည်-

{
«id» : «cbcf6abc-466b-11e9-853b-000c29cb9f6f»,
"သော့"- "Y2xpZW50a2V5"
}

ဤနေရာတွင် "id" သည် နောက်ဆုံး 48 bits သည် server ၏ network interface ၏ MAC address နှင့် သက်ဆိုင်သည့် server မှထုတ်ပေးသော ထူးခြားသော identifier တစ်ခုဖြစ်သည်။ မူရင်း "သော့" ကန့်သတ်ချက်သည် ကနဦး လက်ဆွဲနှုတ်ဆက်စဉ်တွင် ဆာဗာမှ အသုံးပြုသည့် base64 ကုဒ်နံပါတ် "clientkey" လိုင်းဖြစ်သည်။ ထို့အပြင်၊ ဖွဲ့စည်းမှုပုံစံဖိုင်တွင် လျှို့ဝှက်ဖိုင်များ၊ မော်ဂျူးများနှင့် ကွန်ရက်ပေါက်ပေါက်များအကြောင်း အချက်အလက်များ ပါဝင်နိုင်သည်-

{
«id» : «6fa41616-aff1-11ea-acd5-000c29283bbc»,
"သော့"- "Y2xpZW50a2V5",
"မော်နီတာ" : {
"ဖိုင်" : [
{
"တက်ကြွ": "အမှန်"
«id» : «d9dc492b-5a32-8e5f-0724-845aa13fff98»,
"mask": "testfile1"
}
],
"မော်ဂျူး": [
{
"တက်ကြွ": "အမှန်"
«id» : «48a5e9d0-74c7-cc17-2966-0ea17a1d997a»,
"mask": "testmodule1"
}
],
"net" : [
{
"တက်ကြွ": "အမှန်"
«id» : «4f355d5d-9753-76c7-161e-7ef051654a2b»,
"ဆိပ်ကမ်း" : "12345",
"ပရိုတိုကော": "tcp"
}
] }
}

Drovorub ၏ အခြားအစိတ်အပိုင်းသည် အေးဂျင့်ဖြစ်သည်၊ ၎င်း၏ဖွဲ့စည်းပုံဖိုင်တွင် ဆာဗာသို့ချိတ်ဆက်ရန်အတွက် အချက်အလက်ပါရှိသည်။

{
"client_login" : "user123",
"client_pass" : "pass4567",
"Clientid" : "e391847c-bae7-11ea-b4bc-000c29130b71",
«clientkey_base64» : «Y2xpZW50a2V5»,
"pub_key_file" :"public_key",
"server_host" : "192.168.57.100",
"server_port" :"45122"၊
"server_uri" :"/ws"
}

“clientid” နှင့် “clientkey_base64” အကွက်များသည် အစပိုင်းတွင် ပျောက်ဆုံးနေပြီး၊ ၎င်းတို့ကို ဆာဗာတွင် ကနဦးမှတ်ပုံတင်ပြီးနောက် ထည့်သွင်းထားသည်။

တပ်ဆင်ပြီးနောက်၊ အောက်ပါလုပ်ဆောင်ချက်များကို လုပ်ဆောင်ပါသည်။

  • စနစ်ခေါ်ဆိုမှုများအတွက် ချိတ်များကို မှတ်ပုံတင်ပေးသည့် kernel module ကို တင်ထားသည်။
  • client သည် kernel module ဖြင့် စာရင်းသွင်းသည်။
  • kernel module သည် လည်ပတ်နေသော client process နှင့် disk ပေါ်တွင် ၎င်း၏ executable file ကို ဝှက်ထားသည်။

pseudo-device ဥပမာ /dev/zero ကို client နှင့် kernel module အကြား ဆက်သွယ်ရန်အတွက် အသုံးပြုပါသည်။ kernel module သည် device တွင်ရေးထားသော data အားလုံးကို ခွဲခြမ်းစိပ်ဖြာပြီး ဆန့်ကျင်ဘက်ဦးတည်ချက်တွင် transmission အတွက် SIGUSR1 signal ကို client ထံသို့ ပေးပို့သည်၊ ထို့နောက် ၎င်းသည် device တစ်ခုတည်းမှ data ကိုဖတ်သည်။

Lumberjack ကိုရှာဖွေရန်၊ NIDS ကို အသုံးပြု၍ ကွန်ရက်လမ်းကြောင်းခွဲခြမ်းစိတ်ဖြာမှုကို သင်အသုံးပြုနိုင်သည် (ကူးစက်ခံထားရသောစနစ်တွင် အန္တရာယ်ရှိသော ကွန်ရက်လုပ်ဆောင်ချက်ကို kernel module မှ ဝှက်ထားသောကြောင့် ၎င်းအသုံးပြုသည့် ကွန်ရက်ခြေစွပ်များ၊ netfilter စည်းမျဉ်းများနှင့် အစုံလိုက်များကို အကြမ်းအားဖြင့် ကြားဖြတ်နိုင်သည့် packets) . Drovorub တပ်ဆင်သည့်စနစ်တွင်၊ ဖိုင်ကိုဝှက်ထားရန် အမိန့်ပေးစာပေးပို့ခြင်းဖြင့် kernel module ကို သင်ထောက်လှမ်းနိုင်သည်-

testfile ကိုထိပါ။
“ASDFZXCV:hf:testfile” > /dev/zero
ls

ဖန်တီးထားသော “testfile” ဖိုင်သည် မမြင်နိုင်ပါ။

အခြားသော ထောက်လှမ်းမှုနည်းလမ်းများတွင် မန်မိုရီနှင့် ဒစ်ခ် အကြောင်းအရာ ခွဲခြမ်းစိတ်ဖြာမှုတို့ ပါဝင်သည်။ ကူးစက်မှုကို ကာကွယ်ရန်၊ Linux kernel ဗားရှင်း 3.7 မှစတင်၍ ရရှိနိုင်သော kernel နှင့် modules များ၏ မဖြစ်မနေအတည်ပြုချက်ကို အသုံးပြုရန် အကြံပြုအပ်ပါသည်။

အစီရင်ခံစာတွင် ၎င်း၏ အစိတ်အပိုင်းများကို ရှာဖွေခြင်းအတွက် Drovorub နှင့် Yara စည်းမျဉ်းများ၏ ကွန်ရက်လုပ်ဆောင်ချက်ကို ရှာဖွေခြင်းအတွက် Snort စည်းမျဉ်းများ ပါဝင်သည်။

85th GTSSS GRU (စစ်တပ်ယူနစ် 26165) သည် အဖွဲ့နှင့် ဆက်စပ်နေကြောင်း သတိရကြပါစို့။ APT28 (ဖန်စီဝက်ဝံ)ဆိုက်ဘာတိုက်ခိုက်မှုအများအပြားအတွက် တာဝန်ရှိသည်။

source: opennet.ru