Pegasus လို့ခေါ်တဲ့ spying software
တယောက်ယောက်က Gif လေးပို့လာရင် ဝင်ကြည့်လိုက်လို့ ဘာများဖြစ်မှာလဲ မတွေးနဲ့။ အဲဒါဖုန်းတခုလုံးကို ရစရာမရှိအောင် hack သွားနိုင်တဲ့ malware တခုလည်း ဖြစ်နေနိုင်ပါတယ်။
Hacking လောကမှာ Pegasus လို့ခေါ်တဲ့ spying software က တော်တော်လေး နာမည်ကြီးတယ်။ အစိုးရတွေကတောင် ဝယ်သုံးကြပြီး user အနေနဲ့ ဘာမှ install တချက်လုပ်စရာမလိုပဲ ဖုန်းထဲရှိသမျှ အကုန်သမသွားနိုင်တဲ့ software မျိုးလို့ အကြမ်းဖျင်း သိထားကြတဲ့ Pegasus ပေါ့။ Pegasus ဘယ်လောက်ကြမ်းလဲဆိုရင် ဖုန်းထဲကရှိသမျှ ဒေတာတွေကို ကြည့်လို့ရတဲ့အပြင် ဘယ်သူ့ကို ဖုန်းခေါ်ပြီး ဘာတွေပြောတယ်၊ screen ပေါ် ဘာတွေကြည့်နေလဲဆိုတာတွေပါ အကုန်သိနိုင်တာမျိုး။ ပိုဆိုးတာက Pegasus ရဲ့ ဒဏ်ကို ကောင်းကောင်းကြီး ခံလိုက်ရတာက secure ဖြစ်လှပါတယ်လို့ နာမည်ကြီးတဲ့ iOS (iPhone) တွေဖြစ်ခဲ့တယ်။
ဒီလို spying နဲ့ hacking software တွေ အလုပ်လုပ်တဲ့နည်းက iOS/Android/Windows စသဖြင့် OS တွေမှာပါတဲ့ bug တွေ၊ vulnerability တွေကို အခွင့်ကောင်းယူပြီး စနစ်တကျ ပုံဖော်သွားတာပါ။ ဒါကြောင့် ကိုယ်သုံးနေတဲ့ device OS က security patch တွေထွက်ရင် စောင့်မနေပဲ ခပ်မြန်မြန် တင်သင့်ပါတယ်။ များသောအားဖြင့် version နံပါတ် နောက်ဆုံးအလုံး အပြောင်းအလဲတွေပါ။ ဥပမာ 19.1.0 ကနေ 19.1.1 update ပေးတယ်ဆိုရင် ဒါက security hotfix တခုခုဖြစ်ဖို့ များပါတယ်။
iPhone user တွေကို Pegasus ရဲ့ victim ဖြစ်သွားစေခဲ့တဲ့ နည်းတွေထဲက တခုဆိုရင် The art of Hacking (Hacking ရဲ့ အနုပညာ) လို့တောင် ပြောလို့ရတယ်။ ဒီ case တွေက ဘယ်ကစလဲဆိုရင် iMessage ထဲ GIF တခုဝင်လာတယ်။ အဲဒါကို သွားကြည့်လိုက်တာနဲ့ ပြဿနာက စတော့တာပဲ။
victim တွေဆီကို ပို့ခံရတဲ့ GIF ကတကယ့် GIF မဟုတ်ဘူး။ pdf file ကို .gif extension ထည့်ထားတာသာဖြစ်နေတယ်။ ဒါပေမယ့် iMessage က GIF လို့မြင်တဲ့အတွက် iOS ရဲ့ 2D rendering framework ဖြစ်တဲ့ CoreGraphics ကိုခေါ်ပြီး အဲဒီ GIF ကိုဖွင့်ခိုင်းတယ်။ ဒါပေမယ့် တကယ်တမ်း file ကိုဖတ်လိုက်တဲ့အခါ GIF မဟုတ်ပဲ pdf file ဖြစ်နေတဲ့အတွက် CoreGraphics က JBIG2 Decoder ကိုခေါ်လိုက်တဲ့အချိန်မှာ ပြဿနာစတယ်။ JBIG2 ကို ဒီနေ့ခေတ်မှာ ဘယ်သူမှမသုံးတော့ပေမယ့် iOS မှာ ပါနေတုန်း။ JBIG2 ကိုယ်တိုင်က ဘာမှမဖြစ်ပေမယ့် Apple ရဲ့ JBIG2 implementation မှာ integer overflow bug တခုပါနေတယ်။
overflow ဖြစ်သွားတဲ့အတွက် binary transformation မှာ တကယ့်တန်ဖိုးထက် တော်တော်သေးတဲ့ ရလဒ်တခုအဖြစ် decoder ကမြင်တယ်။ ဒီတော့ သူ့ကိုယာယီသိမ်းဖို့ buffer ဆောက်တဲ့အခါ သေးသေးလေး ဖြစ်သွားတယ်။ ဘာနဲ့တူလဲဆို ပန်းသီး ၁၅ လုံးထည့်သိမ်းဖို့အတွက် ၁၀ လုံးပဲဆံ့တဲ့ သေတ္တာ ယူလာတာလိုမျိုး။ အဲတော့ buffer ထဲ ဒေတာချရေးလိုက်တဲ့အခါ size က memory ထဲရှိသင့်တဲ့နေရာကို ကျော်သွားပြီ။
ဒီနေ့ခေတ်ရဲ့ OS အများစု (အထူးသဖြင့် iOS လို security အဓိက OS) မှာ သုံးထားတဲ့ pointer တွေ valid ဖြစ်သေးရဲ့လားလို့ စစ်တဲ့အဆင့်ပါတယ်။ ဒါပေမယ့် pegasus ရဲ့ pdf ဖိုင်က overflow ဖြစ်တဲ့အခါ ဘယ် memory နေရာတွေကို overwrite ဖြစ်စေမယ်လို့ အတိအကျ စီစဥ်ထားတာမို့ အဲဒီ pointer authentication ကိုပါ ပိပိရိရိ လှည့်စားနိုင်ခဲ့တယ်။ တခုရှိတာက program တခုအတွက် ပေးထားတဲ့ memory address တွေကို ကျပန်းထုတ်ပေးတဲ့ security feature ရှိသေးတဲ့အတွက် program တွေက OS တခုကို ဒီလောက်နဲ့ လွယ်လွယ် hack လိုက်လို့မရဘူး။
နောက်တဆင့်မှာ Pegasus က pointer authentication ကိုလည်း မပျက်စေပဲ ခြေကုပ်ယူထားနိုင်တဲ့ memory subset ထဲမှာ instruction တွေကို execution လုပ်ပေးနိုင်တဲ့ virtual CPU တခု ရလာတဲ့အထိ ရေးလိုက်တယ်။ ဒီအဆင့်ကစလို့ Host ထဲမှာ အပြည့်အဝ ကူးစက်သွားပြီလို့ ပြောလို့ရတယ်။ အဲဒီကနေ တောက်လျှောက် Kernel ကိုထပ် exploit လုပ်ပြီး PDF viewer အဆင့်ကနေ system wide လုပ်ချင်ရာလုပ်ဖို့ privilege escalation ရသွားတဲ့အခါ messenger ကစာတွေ ဝင်ဖတ်ဖို့၊ ဖုန်းခေါ်တာတွေ နားထောင်ဖို့၊ ဓာတ်ပုံတွေ ဝင်ကြည့်ဖို့ဆိုတာ အနှေးနဲ့အမြန် ဖြစ်သွားပြီ။
ဒါကြောင့် ဖုန်းကို လုံလုံခြုံခြုံ သုံးကြဖို့၊ public မှာ wifi တွေ လျှောက်မချိတ်ဖို့၊ တွေ့ကရာ USB လိုက်ထိုးပြီး အားမသွင်းကြဖို့ ပြောနေတာ။ Pegasus ဖို့ပေးရတဲ့စျေးက ခပ်ပေါပေါ မဟုတ်လို့ သာမန်အရပ်သားတွေကတော့ victim ဖြစ်နိုင်ချေ တော်တော်နည်းပါတယ်။ ဒီတိုင်း Hacking နဲ့ Spying ဆိုတာ ပုံပြင်မဟုတ်မှန်း ဗဟုသုတ ရှိထားဖို့ပါ။