Computer forensics Part (37-38) Solid-State Drive (SSD) - Forensics


Hard Disk မှာ Spindle မော်တာကြောင့် လည်ပတ်နေတဲ့ Platter တွေ Platter ပေါ်မှာရှိတဲ့ data တွေသိမ်းထားတဲ့ (track,sector,cluster) တွေကို ဖတ်ဖို့ ရွေ့လျားနေတဲ့ Read / Write Head ပါတဲ့ arm တွေပါရှိပါတယ်။ဒါပေမဲ့ Solid-State Drive (SSD) မှာတော့ လည်ပတ်နေတဲ့ အစိတ်အပိုင်းတွေ မပါဝင်ပါဘူး။ data တွေကို Flash Memory (same as usb stick) ပေါ်မှာ Block အနေနဲ့သာ သိမ်းထားပါတယ်။ လည်ပတ်နေတဲ့ ပစ္စည်းတွေမပါဝင်တဲ့အတွက် vibration ဖြစ်ခြင်းမရှိ၊ အပူထွက်မူနည်းပါးပြီး HD ထက် အထိအခိုက်ခံတဲ့ အတွက် Solid State Drive လိုခေါ်ဆိုရခြင်းဖြစ်ပါတယ်။ data input-out နုန်းမြန်ဆန်ခြင်း၊ လှုပ်ရှားနေတဲ့ အစိတ်အပိုင်းတွေ မပါဝင်တဲ့ အတွက် ထိခိုက်ခံမှုမှာ hard disk ထက်သာလွန်ခြင်း၊ ဆူညံမှုနည်းပါခြင်း၊ size သေးငယ်ခြင်း၊ Power အစားသက်သာခြင်း၊ data ပမာဏ သိုလှေင်မှုများလာပြီး ဈေးနှုန်းလဲ တစ်ဖြည်းဖြည်းသက်သာ လာခြင်းတို့ကြောင့် နောင်တွင်အသုံးပြုမှု ပိုမိုများပြားလာမှာ ဖြစ်ပါတယ်။ SSD မှာ Data တွေကို အဓိက read- write လုပ်တဲ့ Flash Memory ပေါ်မှာပြုလုပ်ခြင်းဖြစ်ပါတယ်။ SSD Flash Memory မှာ သုံးမျိုးရှိပါတယ်။SSD သက်တမ်းကြာဖို့ TRIM ကိုသုံးနိုင်သလို နောက်ပိုင်း SSD တွေမှာ Wear leveling စနစ်ပါဝင်လာပါတယ်။ SLC (Single-Level Cell) နဲ့ MLC (Multiple-Level Cell) တို့ဖြစ်ပါတယ်။ SLC မှာတော့ Cell တစ်ခုထဲမှာ 1 နဲ့ 0 ထဲကနေ 1 bit ပမာဏကိုသာသိမ်းထားပြီး MCL မှာတော့ Cell တစ်ခုမှာ 2 bit ပမဏ သိမ်းထားနိုင်ပါတယ်။ Triple Leve Cell မှာတော့ Cell တစ်ခုမှာ 3 bit ပမဏ သိမ်းထားနိုင်ပါတယ်။ TLC Cell (SSD) တွေက Storage များပေးမဲ့ Performance နှေးပြီး SSD Life Time လဲနည်းပါးပါတယ်။ အခု user level မှာ အများဆုံအသုံးပြုနေတာ TLC (SSD) တွေဖြစ်ပါတယ်။ Life time ဆိုတာ SSD မှာ data တွေကို write လုပ်နိုင်တဲ့ အရည်အတွက် ပမာဏ အပေါ်မူတည်ပြီး သတ်မှတ်တဲ့ SSD ရဲ့ သက်တမ်းဖြစ်ပါတယ်။ Controller Controller Chip ကတော့ SSD ရဲ့ Processor လို့ပြောလို့ရပါတယ်။ အမှန်တစ်ကယ် Data တွေကို သိမ်းထားတဲ့ Flash Memory တွေ နဲ့ SSD ရဲ့ Input-Output Interface ကို ချိတ်ဆက်ပေးပါတယ်။ Error Correction (ECC) အပိုင်းကိုလဲ ဆောင်ရွက်ပေးပါတယ်။ garbage collection, encryption, wear-leveling, , RAISE (Redundant Array of Independent Silicon Elements) အပိုင်းတွေကို ထိန်းညှိပေးပါတယ် ... Buffer Memory Buffer Memory Chip ကတော့ သူအသုံးပြုထားတဲ့ algorithms နဲ့ Type အပေါ်မူတည်ပြီး data တွေကို မြန်ဆန်စွာရရှိစေဖို့ SSD Input-Output Interface နဲ့ SSD Controller ကြားမှာ ဆောင်ရွက်ပေးပါတယ်။ Input-Output Interface နဲ့ Power Connector ကတော့ SSD အမျိုးအစားနဲ့ အသုံးချတဲ့လုပ်ငန်းနဲ့ Device အပေါ်မူတည်ပြီး ကွဲပြားပါတယ်။ ဥပမာ ..... SSD SATA ,SSD M2, SSD msata, SSD U2 , SSD Pcie , SSD sas , Garbage Collection SSD မှာ Hard Disk ကဲ့သို့ လှုပ်ရှားနေတဲ့ အစိတ်အပိုင်းတွေမပါဝင်တာကြောင့် data တွေကို read လုပ်ရာမှာရော Write လုပ်ရာမှာရော Hard Disk နဲ့ ကွဲပြားခြားနားမှုရှိပါတယ်။ (HD မှာ data တွေကို read-write ဘယ်လိုလုပ်တယ် Operation ကနေ data တွေကို ဖျက်ရင် ဘယ်လိုဖြစ်တ်ဆိုတာ အရင် Post များတွင် ဖော်ပြပြီးဖြစ်ပါတယ်) SSD Flash Memory မှာ Cell တွေစုစည်ပြီး Page , Page တွေစုစည်းပြီး Block ဆိုပြီးရှိပါတယ်။ data တွေကို သိမ်းရင် Page အဆင့်မှာပဲ သိမ်းထားပေမဲ့ erase လုပ်တဲ့အခါဆိုရင် Block အဆင့်ထိပါ ပြုလုပ်ပါတယ်။ (erase နဲ့ delete မတူပါ) page Size က 2KiB, 4KiB, etc,,, User က data တွေကို အခြား data သိမ်းထားဆဲဖြစ်တဲ့ Block ပေါ်မှာ သိမ်းချင်တယ်ဆိုရင် ရှိနေတဲ့ Block ထဲက data သိမ်းထားတဲ့ Page တွေကို အခြားလွတ်နေတဲ့ Bock ထဲကူးယူလိုက်ပါတယ်။(ကူးယူပြီးတာနဲ့ flash Controller က ကူးလိုက်တဲ့ data ရှိနေတဲ့ block ရဲ့ logical block address (LBA) ကို အသစ်ထပ်မှတ်လိုက်ပါတယ်။ data save မဲ့ page အစုအဝေးဖြစ်တဲ့ Block က Clear ဖြစ်ရင် Erase မလုပ်ပဲ save ပါတယ်။ Clear မဖြစ်ရင် erase လုပ်ပြီးမှ data ကို save ပါတယ်) Program/erase cycles (P/E cycles) ပြီးရင် အရင် Block ထဲက data တွေကို Erase လုပ်လိုက်ပါတယ်။ဖျက်ပြီးပြီးဆိုတာနဲ့ နောက် ထပ် data သိမ်းနိုင်ကြောင်း flash Controller က Free Block အဖြစ်မှတ်သားထားလိုက်ပါတယ်။ ဒါက Garbage Collection အပိုင်းဖြစ်ပါတယ်။ HD မှာ bad sector ဖြစ်ရင် သုံးဖို့ extra sector တွေပါသလို SSD မှာလဲ extra block တွေပါဝင်ပါတယ်။ Wear leveling Wear leveling ဆိုတာကတော့ SSD တစ်ခုလုံးမှာ ပါတဲ့ Cell တွေကို အကုန် သုံးနိုင် အောင် ပြုလုပ်ပေး တာဖြစ်ပါတယ်။ program/erase cycles (P/E cycles) ကို ထပ်ကာထပ်ကာ အသုံးမပြုပဲ လွတ်နေတဲ့ Block တွေမှာ data တွေကို write တာဖြစ်ပါတယ်။ Trim Trim က data write ဖို့ block ကိုဖျက်တယ် ...ပြီးရင် ပြန် write တယ်.. data write တဲ့ ပမာဏ ( file size)က နည်းလိုက်များလိုက်ဖြစ်လာရင် cell တွေ page တွေ Block တွေက ပျံ့ကျဲလာပါတယ်။ ဒါဆိုရင် SSD က လေးလာမယ်။ Trim ကို on ထားရင် လွတ်နေတဲ့ block တွေကိုကြည့်ပြီး data ကိုဖျက်ထားတယ် ဒါမှ နောက်ထပ် data save ရင်ပိုမြန်လာမယ်။ Garbage Collection ထပ်ပြီး လုပ်စရာ မလိုအောင်ပါ။ (Garbage Collection, Wear leveling, Trim ) ကြောင့်ပဲ SSD ကို Forensics လုပ်ရာမှာ challenge တွေရှိလာပါတယ် ... Computer forensics Part 38
Solid-State Drive (SSD) - Forensics (Part 2 )
SSD မှာအများဆုံးသုံးထားတာက NAND flash memory ဖြစ်ပါတယ်။ NOR Flash memory ကိုတော့ အခုအသုံးပြုနေတဲ့ ဖုန်းများမှာ အသုံးပြုထားပါတယ်။ SSD မှာ data တွေကို Write - Delete - Rewrite လုပ်ဖို့အတွက် Garbage Collection , (P/E cycles) , Trim တို့ကို သုံးထားတဲ့အတွက် Data Recovery လုပ်ရာမှာ hard disk နဲ့ သဘောသဘာဝခြင်းမတူသလို လုပ်ဆောင်ရာမှာ ပိုပြီးခက်ခဲပါတယ်။ ဥပမာ HD မှာ file အရေအတွက် 50 ရှိရာမှာ recovery ပြန်လုပ်တဲ့ အချိန် file 40 လောက်ပြန်ရနိုင်ပေမဲ့ SSD မှာတော့ 25-30 files လောက်ပဲရနိုင်ပါတယ်။
ဖြစ်နိုင်ရင် part 37 မှာဖော်ပြထားတဲ့ Garbage Collection , (P/E cycles) , Trim အကြောင်းကို နောကျေနေအောင် သိထားရင် အကောင်းဆုံးပါ။ အသေးထပ်ထပ်စိတ်ရင်တော့ အကောင်းဆုံးပါ . Process လုပ်ရာမှာ Knowledge ရှိထားရင် ပိုပြီးအဆင်ပြေပါတယ်။
နောက်ထက်သိထားရမှာကတော့ SSD Connector type တွေအကြောင်းဖြစ်ပါတယ်။ SSD ကိုကြည့်ပြီး sata , m2 , u2 , pcie, sas စသည်ဖြင့်သိထားရပါမယ်။ ဒါမှ Work Station ကိုချိတ်ဆက်တဲ့ အခါ ကိုယ့်ဆီမှာ တန်းပြီးတပ်လို့ရရင် တပ် ဒါမှမဟုတ် SSD Connector တွေကိုအသုံးပြုရမှာ ဖြစ်ပါတယ်။
- laptop or PC ကို Forensics Live CD ကပဲ Boot တက်ရပါမယ်။ - SSD ကနေ တိုက်ရိုက် Boot မတက်သင့်ပါ။ - kits or tools or Live CD မှာ auto mount ကို disable ပေးထား ရပါမည်..




Comments

Popular posts from this blog

B-Trees (NTFS)

NTFS Index Attributes

Volatility Workbench (GUI) for the Volatility tool