SSD Forensics Challenges (Part-2)

 SSD Forensics Challenges (Part-2) အပိုင်း (၁) 

HDD နေရာမှာ  Solid State Drives (SSD) တွေအစားထိုးအသုံးပြုလာခြင်းက Computer Forensics မှာ ကြီးမားတဲ့ပြောင်းလဲခြင်းဖြစ်လာပါတယ်။ SSD ကို Format  ပြုလုပ်လိုက်ရင် Format ထဲမှာမှ Quick Format ပြုလုပ်လိုက်လိုက်ရင်တောင် မိနစ်ပိုင်းအတွင်းမှာ Data တွေပျောက်သွားပြီး ပြန်လည်ပြီး မရယူနိုင်တော့ပါဘူး။ Format ပြုလုပ်နေတုန်း ပါဝါပိတ်လိုက်ရင်တောင် ပါဝါပြန်တက်လာတဲ့အခါ ပျောက်ဆုံးသွားတဲ့ Data တွေကိုပြန်လည်ရယူဖို့ခဲယဉ်းပါတယ်။ ဘာလို့ဒါမျိုးဖြစ်လာတာလဲဆိုရင်  


Wear Leveling 

SSD မှာ Data တွေကို Write လုပ်တာက Page တွေမှာဖြစ်ပါတယ်။ ဒါပေမဲ့ Erase လုပ်တဲ့အခါမှာဆိုရင်တော့ Block Level မှာအလုပ်လုပ်ပါတယ်။  SSD မှာ Read and  Write လုပ်နိုင်တဲ့ ပမာဏ  Program and Erase (P/E)  Cycle ရှိပါတယ်။ Ware Leveling လုပ်တယ်ဆိုတာက SSD မှာရှိတဲ့ Block တွေမှာ (P/E)  Cycle ညီမျှအောင်လုပ်ပေးတာဖြစ်ပါတယ်။ Ware Leveling မရှိရင် Data တွေကို သိမ်းတဲ့အခါမှာ  (P/E)  Cycle များတဲ့ Block နေရာတွေမှာပဲ Read, Erased, Modified (Write)  လုပ်နေမယ်ဆိုရင်  အချိန်လဲကြာနိုင်သလို SSD ရဲ့ သက်တမ်းလဲ တိုနိုင်ပါတယ်။  Ware Leveling က Operation System ကနေပြုလုပ်တာမဟုတ်ပဲ SSD Flash Controller ကနေပြုလုပ်တာဖြစ်ပါတယ်။ SSD Nand Flash မှာဆိုရင် Data က 2 မျိုးရှိပါတယ်။ Static Data နဲ့ Dynamic Data တို့ဖြစ်ပါတယ်။ Static Data က Cold Data လို့ခေါ်တဲ့ မကြာခန အသုံးမပြုတဲ့ Data တွေဖြစ်ပြီး Dynamic Data က Hot Data ဖြစ်တဲ့ Frequently Changing  ဖြစ်နေတဲ့ Data တွေဖြစ်ပါတယ်။ ဒါကြောင့် Ware Leveling မှာ သုံးမျိုးရှိပါတယ်။ 

Dynamic Ware Leveling

Dynamic Wear Leveling မှာ SSD ထဲကို Dynamic Data တွေကို သိမ်းမယ်ဆိုရင် Free ဖြစ်နေတဲ့ Block နဲ့ (P/E)  Cycle  (Read/Write) အနည်းဆုံးဖြစ်တဲ့ Block ပေါ်မှာ Data ကိုသိမ်းပါတယ်။ ။ Cold Data တွေရှိတဲ့ Block လိုမျိုး နေရာတွေမပါဝင်တဲ့အတွက် SSD Flash တစ်ခုလုံးစာအတွက် မလုပ်ဆောင်ပါဘူး။ Dynamic Ware Leveling က SSD ကို Performance မြန်စေပြီး Lifspan တိုတောင်းပါတယ်။ Dynamic Wear Leveling အလုပ်လုပ်တာက  SSD ထဲမှာ Flash တွေအများရှိတဲ့အထဲက Flash တစ်ခုအတွင်းမှာပဲ ပြုလုပ်တာဖြစ်ပါတယ်။

Static Wear Leveling

Static Wear Leveling မှာတော့ ဥပမာ - SSD ရဲ့ Block တစ်ခုမှာ Static Data/ Cold Data တွေရှိနေမယ် အဲဒီ Data ရှိနေတဲ့ Block ကလဲ (P/E)  Cycle (Read/Write)  နည်းနေတယ်ဆိုရင် Block ထဲမှာရှိနေတဲ့ Data တွေကို အခြား Block ကိုပြောင်းလိုက်ပါတယ်။ ပြီးရင် Block ကို Free Space လုပ်လိုက်ပြီး Block ကို နောက်တစ်ကြိမ်ပြန်သုံးဖို့အတွက်ထားလိုက်ပါတယ်။ Static Wear Leveling ကတော့ SSD ကို Performance နှေးစေပြီး Lifspan ကို သက်တမ်းရှည်စေပါတယ်။ Static Wear Leveling အလုပ်လုပ်တာက  SSD ထဲမှာ Flash တွေအများရှိတဲ့အထဲက Flash တစ်ခုအတွင်းမှာပဲ ပြုလုပ်တာဖြစ်ပါတယ်။

Global Wear Leveling

Global Ware Leveling က Static Ware Leveling နဲဆင်တူပေမဲ့ ကွာခြားချက်တစ်ခုရှိပါတယ်။ Static Wear Leveling က SSD ထဲမှာ Flash အများကြီးရှိတဲ့အထဲက Flash တစ်ခုအတွင်းမှာသာ အလုပ်လုပ်ပေမဲ့ Global Wear Leveling ကတော့ SSD ထဲမှာရှိတဲ့ Flash တိုင်းအတွက် အလုပ်လုပ်ပါတယ်။ ကျွန်တော်တို့ပုံကိုကြည့်လိုက်ရင် ပိုပြီး ရှင်းလင်းသွားပါမယ်။ 


Different Wear Leveling

Ware Leveling လုပ်တာကြောင့် Data တွေက Modified လုပ်ရင် Block တစ်ခုထဲမှာမရှိတော့ပဲ Flash သို့မဟုတ် SSD ထဲမှာရှိတဲ့ Flash တွေထဲမှာရောက်သွားတဲ့အတွက် အချို့သော Forensics မှာအသုံးဝင်နိုင်တဲ့ အချက်အလက်တွေက SSD တစ်ခုလုံးကို ပြန့်ကျဲကုန်ပါတယ်။ Integrity အတွက် Evidence ကို Hash လုပ်တာမှာလဲ အခက်အခဲရှိလာပါတယ်။ SSD Controller ကနေ အလုပ်လုပ်တာဖြစ်တဲ့အတွက် OS ကနေ SSD ကိုထုတ်ပြီး  Write Blocker ခံပြီး Acquire Or Analysis လုပ်မယ်ဆိုရင်လဲ  SSD ကို ပါဝါ ပေးတာနဲ့ Ware Leveling  က လုပ်ဆောင်နေမှာဖြစ်ပါတယ်။ SSD ရဲ့ Lifespan  တိုးလာအောင်နဲ့ Wear Leveling Porcess လုပ်တာပိုကောင်းလာအောင် SSD ထုတ်တဲ့သူတွေက SSD မှာဖော်ပြထားတဲ့ Storage ပမာဏထက်ပိုပြီး 25 ရာခိုင်နှုန်းပိုပြီးထုတ်လုပ်ထားပါတယ်။  

SSD ထဲမှာ 25 ရာခိုင်နှုန်း ပိုပြီးလုပ်ထားတဲ့ Storage ကို Operation System မှာ ကြည့်ရင် မပေါ်ပါဘူး။ User ကလဲတိုက်ရိုက်မမြင်နိုင်ပါဘူး။ SSD ထဲက Flash ကိုတိုက်ရိုက် Access လုပ်ဖို့အတွက် သီးသန့်ထုတ်ထားတဲ့ Hardware နဲ့ကြည့်မှသာ မြင်တွေ့ရမှာ ဖြစ်ပါတယ်။ SSD ထဲမှာ ဖော်ပြထားတဲ့ ပမာဏထက်ပိုပြီး ရှိနေတဲ့ Storage 25 ရာခိုင်နှုန်းက သာမန်လူတွေအတွက် ပြသာမဟုတ်ပေမဲ့ အချို့သော အစိုးရဌာနတွေ ၊ ကာကွယ်ရေးဌာနတွေအတွက် ပြသာနာဖြစ်လာပါတယ်။ ဘာလို့လဲဆိုရင် သူတို့အသုံးပြုတဲ့ SSD တွေကို အကြောင်းကိစ္စတစ်ခုခုရှိလာရင် Secure Erase လုပ်လို့မရတဲ့အတွက်ဖြစ်ပါတယ်။ 25 ရာခိုင်နှုန်းက Hidden ဖြစ်နေတဲ့အတွက်ကြောင့်ဖြစ်ပါတယ်။ 

ဒီလိုမျိုးကိစ္စတွေဖြစ်လာတာကြောင့် SSD ထုတ်လုပ်တဲ့သူတွေက SSD မှာ ATA ANSI Specification ဖြစ်တဲ့ ATA Secure Erase (SE) Command  ကို SSD ရဲ့ Flash ထဲမှာရှိတဲ့ Data တွေကို Hardware Level အထိဖျက်ဖို့ ထည့်သွင်းပြုလုပ်လာပါတယ်။ ယေဘူယျအားဖြင့် Software Level Secure Wipe လုပ်တာက Disk ရဲ့အချို့သောနေရာတွေကို မပြုလုပ်နိုင်တဲ့အတွက်ကြောင့်ဖြစ်ပါတယ်။ Disk ထဲမှာရှိတဲ့ data တွေကိုပေါ်ကို  Random Bit တွေ Over Write လုပ်လိုက်တာဖြစ်ပါတယ်။ Hardware Level Erase ပြုလုပ်တာကတော့ (System, Reserve, Remapped Area ) တွေကိုပါ Secure Erased လုပ်လို့ရပါတယ်။ SSD Controller ကနေ Command ကို Support ပေးလာတာကြောင့် SSD ရဲ့ Flash ထဲမှာရှိတဲ့ Block အားလုံးကို Electronically Erase ပြုလုပ်ပါတယ်။ ဒါကြောင့် Block အားလုံးက အသစ်ဖြစ်သွားပြီး Factory Defaults ဖြစ်သွားပါတယ်။ ပြီးရင် Write လုပ်ထားတဲ့ Data တွေကို SE Command နဲ့ Wipe ပြုလုပ်ဖို့အတွက် Erase Cycle မလုပ်အပ်ပါဘူး။ SE Command က SSD အတွင်းမှာရှိတဲ့ (System, Reserve, Remapped Area ) အပါအဝင် အားလုံးကို Erase ပြုလုပ်နိုင်ပါတယ်။ 


SSD Forensics Reference - Yuri Gubanov, Oleg Afonin -  Belkasoft Research -  https://belkasoft.com/

Photo Reference - https://www.atpinc.com/

Comments

Popular posts from this blog

B-Trees (NTFS)

NTFS Index Attributes

Volatility Workbench (GUI) for the Volatility tool