SSD Forensics Challenges (Part-2)

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

 SSD Over-Provisioning

SSD တွေမှာ Wear-Leveling ကြောင့် SSD ရဲ့ Life Span ကိုတိုးစေပါတယ်။ SD  တိုင်းမှာ Over-Provisioning လုပ်ဖို့အတွက် Storage အပိုပါပါတယ်။ ဥပမာ SSD 256 GB မှာ 256 GB ထက်ပိုတဲ့ Storage ပမာဏပါဝင်ပါတယ်။ အပိုပါတဲ့ Block တွေက Over-Provisioning Area တွေဖြစ်ပါတယ်။ အဲဒီ Area တွေက Operation System မှာ မပေါ်ပါဘူး။ User ကလဲမမြင်နိုင်ပါဘူး။ SSD Controller ကနေပဲ တိုက်ရိုက် ထိမ်းချုပ်ထားတာဖြစ်ပါတယ်။  ဥပမာ Trime ON ထားတဲ့ Computer ထဲကနေ မလိုအပ်တဲ့ Data အချို့ကို ဖျက်လိုက်တယ်ဆိုရင်  SSD Controller ကနေ ဖျက်လိုက်တဲ့ Data တွေရှိတဲ့ Block ကို Trim လုပ်လိုက်ပြီး Data တွေကမလိုအပ်တော့ဘူးဆိုပြီးသတ်မှတ်လိုက်ပါတယ်။ Block ထဲက မလိုအပ်တဲ့ Data တွေကို Erase လုပ်ဖို့အတွက် SSD ရဲ့ Background Process ဖြစ်တဲ့ Garbage Collection ရဲ့ Queue List ထဲကိုထည့်လိုက်ပါတယ်။ အဲဒီအခါမှာ ခုနက မလိုအပ်တဲ့ Block ထဲက Data တွေက Over-Provisioning Area ထဲကိုရောက်သွားပါတယ်။ Garbage Collection Queue List ထဲမှာရှိတဲ့အတိုင်း မလိုတဲ့ Data တွေကို List အတိုင်းဖျက်စီးပစ်ပါတယ်။ ဖျက်တဲ့အခါမှာ Data Size  နဲ့ SSD Performance အပေါ်မူတည်ပြီး အချိန်အတိုင်းအတာ တစ်ခုအထိကြာပါတယ်။ SSD Firmware Bug တွေကြောင့် Over-Provisioning Area ထဲက Trim လုပ်ထားတဲ့ Data တွေကို မပျက်စီးတာလဲရှိတတ်ပါတယ်။ 

Trim လုပ်ထားပေမဲ့ Data ရှိနေဆဲ Block တွေကိုဖတ်ရင် ဘာဖြစ်မလဲဆိုရင်။ Trim မှာ SSD ပေါ်မူတည်ပြီး (၃) မျိုးရှိပါတယ်။

Non-deterministic TRIM

Deterministic Read After Trim (DRAT)

Deterministic Read Zero after TRIM (RZAT) 

Non-deterministic TRIM

Trime  လုပ်ထားတဲ့ Block ကိုဖတ်မယ်ဆိုရင်  အခြား Data သို့မဟုတ် Zero တွေကြည့်ပဲ SSD Controller ကနေ Reply ပြန်မှာဖြစ်ပါတယ်။ 

Deterministic Read After Trim (DRAT)

Trime  လုပ်ထားတဲ့ Block ကိုဖတ်မယ်ဆိုရင်  သူ့မှာအရင်ထဲက သတ်မှတ်ထားပြီးသားဖြစ်တဲ့ Zero တွေကြည့်ပဲ SSD Controller ကနေ Reply ပြန်မှာဖြစ်ပါတယ်။ 

Deterministic Read Zero after TRIM (RZAT) 

Trim  လုပ်ထားတဲ့ Block ကိုဖတ်မယ်ဆိုရင်  သူ့ထဲမှာ Data အသစ်မရောက်မချင်း Zero တွေကြည့်ပဲ SSD Controller ကနေ Reply ပြန်မှာဖြစ်ပါတယ်။  နောက်ပိုင်းမှာ Deterministic Read After Trim (DRAT)နဲ့ Deterministic Read Zero after TRIM (RZAT)  တွေကိုပဲ အသုံးများပါတယ်။ 

SSD မှာ ဘယ်လို Trim Mode ကိုသုံးထားလဲဆိုတာကြည့်ဖို့အတွက် hdparm  ကိုသုံးနိုင်ပါတယ်။ 

hdparm -I /dev/sda | grep -i trim

 Data Set Management TRIM supported (limit 1 block)

 Deterministic read data after TRIM

အခုအချိန်မှာ SSD ကို OS တော်တော်များများနဲ့ RAID, NAS တို့မှာအသုံးပြုလာနိုင်ပြီးဖြစ်ပါတယ်။ RAID, NAS တို့မှာတော့ Trim သုံးမယ်ဆိုရင် Raid Level အလိုက် NAS အမျိုးအစားအလိုက် သတ်မှတ်ချက်တွေ ရှိပါတယ်။ SSD ကို External Hard Disk ပုံစုံမျိုး USB Connection နဲ့တွဲသုံးမယ်ဆိုရင်တော့ Trim က Support မပေးပါဘူး။ Trim က USB Interface မှာ အလုပ်မလုပ်ပါဘူး။ 


Comments

Popular posts from this blog

B-Trees (NTFS)

NTFS Index Attributes

Volatility Workbench (GUI) for the Volatility tool