Posts

Showing posts from November, 2021

SSD Forensics Challenges (Part-2)

Image
 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 အတိုင်းဖျက်စီးပစ်ပါတယ်။ ဖျက်

SSD Forensics Challenges (Part-2)

Image
 SSD Forensics Challenges (Part-2) အပိုင်း (၂)   Wear Leveling  Process ဖြစ်တဲ့ Free Block နဲ့ P/E Cycle နည်းတဲ့ Block တွေပေါ်ကိုသာ  Data သိမ်းတဲ့အတွက်ကြောင့် SSD Life Span များလာပါတယ်။ ဒါပေမဲ့ Write လုပ်တဲ့ အကြိမ်အရေအတွက်များလားတဲ့အခါမှာ SSD ရဲ့  Flash တွေပေါ်မှာရှိတဲ့ Page File  (Blocks Collection) တွေက  Dirty ဖြစ်လာပါတယ်။ Dirty ဖြစ်လာတာကြောင့် SSD  Write Speed က ပုံမှန်ထက်နှေးလာပါတယ်။ Dirty ဖြစ်လာတဲ့အကြောင်းအရင်းက SSD ထဲမှာရှိတဲ့ Block တွေထဲကို Data Write တဲ့အခါမှာ Data တွေကို Write မလုပ်ခင် Block ကို ပထမဆုံး Erase လုပ်ဖို့လိုအပ်တဲ့အတွက်ကြောင့်ဖြစ်ပါတယ်။ ဒီလိုလုပ်တာက Flash ပါဝင်တဲ့ SSD တိုင်းမှာဖြစ်ပါတယ်။  ဒါလိုဖြစ်စဉ်က အရင်သုံးနေကျ HDD တွေပေါ်မှာ Data ကို Write လုပ်တာနဲ့ ကွာခြားချက်ပဲဖြစ်ပါတယ်။ Block ကို Data Write မလုပ်ခင် Block ကို Erase လုပ်တဲ့ Process ကြောင့် SSD ရဲ့ Performance ကျလာပါတယ်။ Block တွေက Dirty ဖြစ်လာတဲ့အခါ Block တွေပေါ်ကို Data Write လုပ်တဲ့အခါ လိုအပ်တဲ့အချိန်ထက် Write Time ပိုကြာလာပါတယ်။ ဒါကြောင့် Dirty Block တွေကိုရှင်းလင်းဖို့အတွက် SSD Manufacturers တွေကနေ Dirty

SSD Forensics Challenges (Part-2)

Image
 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 ရဲ့ သက်တမ်းလဲ တိုနိုင်ပါ

eCDFP (Disk Drives) - Lab

Image
 ကျွန်တော်  Simple Disk ကို နမူနားထားပြီး Lab ကိုပြသထားပါတယ်။ Disk Drive အပိုင်းကို  Lab နဲ့ တွဲကြည့်ရင် ပိုပြီးရှင်းလင်းပါတယ်။  Sample Disk With X-Way  Disk ရဲ့ Sector 0 ကတော့ Protective MBR ဖြစ်ပါတယ်။  Protective MBR Disk ရဲ့ Sector 1 ကတော့ GPT Header ဖြစ်ပါတယ်။ GPT Header  GPT Template ကြည့်ဖို့ဆိုရင် Start Sector ကနေကြည့်ရမှာ ဖြစ်ပါတယ်။    မြင်ရမဲ့  Disk  Information တွေကို အောက်မှာပြထားပါတယ်။  Protective MBR  From Template View GUID Partition Table  From Template View GUID Partition Table 1 And  2 From Template View  GUID Partition Table 3 And 4 From Template View  GPT Header Signature and size of the header  GPT ရဲ့ Signature က “EFI PART” ဖြစ်ပါတယ်။ EFI PART ရဲ့ Signature က 45 46 49 20 50 41 52 54 အပေါ်က GPT Header နဲ့တိုက်ကြည့်လိုက်ပါ။ တည်နေရာက Offset 512 – First Sector – LBA  Addressing – 1  Size of the header? GPT Header Size – 92   Header ပြီးရင် ကျန်တာတွေက Sector ဆုံးတဲ့အထိ အကုန်က Zero  ဖြစ်ပါတယ်။  Header Size 92 Bytes and Other Are Zero                                    

eCDFP (Disk Drives) - Part (2) (END)

Image
 Using Logical Block Addressing  (LBA)  CHS Addressing မှာ Drive က Size Limit ရှိတာကြောင့် Logical Block Addressing ကိုအသုံးပြုလာပါတယ်။ LBA Addressing က Sector တစ်ခုချင်းစီအတွက် နံပတ်တစ်ခုကိုသာ အသုံးပြုပါတယ်။ CHS Addressing မှာ (Cylinder, Head, Sector) ရဲ့ Address က (0,0,1) ဖြစ်ပြီးတော့ LBA Addressing မှာတော့ (0) ဖြစ်ပါတယ်။ CHS Addressing က (0,0,2) ဆိုရင် LBA Addressing မှာတော့ (1) ဖြစ်ပါတယ်။ အချို့သော File System တွေက CHS Addressing ကိုပဲအသုံးပြုနေဆဲဖြစ်တာကြောင့် CHS To LBA ကိုပြောင်းလဲတွက်ချက်ရပါတယ်။ ပုံသေနည်းကတော့ အောက်ပါအတိုင်းဖြစ်ပါတယ်။  LBA Address = (((Cylinder x Heads-Per-Cylinder) + Head) x Sectors-Per-Track) + Sector -1 ဥပမာ - Heads-Per-Cylinder က 16 ခုရှိတယ်။ Track တစ်ခုမှာ Sectors 63 ခုရှိတယ်။  ဒါဆိုရင် CHS Address (2,3,4) အတွက် LBA Address ကဘယ်လောက်လဲဆိုရင် - ?  CHS = Cylinder-2 , Head-2 , Sector – 4 (((2x16)+3) x 63) 4 – 1 = 2208 နောက်ပိုင်း HDD တွေက LBA Addressing ကိုအသုံးပြုလာပါတယ်။ CHS Addressing လို Limitation မရှိတော့ပါဘူး။ Block တိုင်းမှား နံပတ်တစ်ခုစီရှိပြီး အဲနံပတ