SSD Forensic Challenges

SSD Forensic Challenges

Garbage  Collection  (GC)

HDD မွာလို Data တစ္ခုသိမ္းမယ္ဆိုရင္ ရွိေနၿပီးသား Data ေပၚမွာ SSD Nand Flash က မသိမ္းႏိုင္ OverWrite မလုပ္ႏိုင္ပါဘူး။ Data  သိမ္းမယ္ဆိုရင္ Block ကို Erase လုပ္ ၿပီးမွ သိမ္းရပါတယ္။ မဖ်က္ခင္ Block ထဲက Data ကို အျခား Block ေပၚ ေျပာင္းတာလဲရွိပါတယ္။ အခုလို Bock ကို Erase လုပ္ Block ေတြကို ျပန္ေနရာခ်တာကို 

Garbage Collection လို႔ေခၚပါတယ္။

TRIM 

 TRIM-enabled  လုပ္ထားတဲ့ SSD  drives က  garbage  collection  (GC) ေၾကာင့္  ဖ်က္လိုက္တဲ့  Data ေတြကိုျပန္ရႏိုင္ဖို႔ခက္ခဲပါတယ္။ TRIM ဆိုတာက ဥပမာ အခ်က္အလက္တစ္ခုကို ဖ်က္လိုက္မယ္ဆိုရင္ SSD ထဲမွာ အၿပီးဖ်က္လိုက္မယ္ဆိုၿပီး SSD Controller က ေနတစ္ဆင့္ Data သိမ္းထားတဲ့ Page Or Block ထဲကို ဖ်က္ခိုင္းလိုက္တာပါ။ TRIM က  ကြန္ပ်ဴတာ ပါဝါ ပိတ္ထားလိုက္ရင္ လုပ္ေနတဲ့ အလုပ္ကို  ခနရပ္ထားပါတယ္။ ဒါေပမဲ့ ကြန္ပ်ဴတာ ပါဝါ ျပန္ဖြင့္တာနဲ႔ ျပန္အလုပ္လုပ္ပါတယ္။ ဘာလို႔လဲဆိုရင္ လုပ္ေနတဲ့ အလုပ္ကို SSD Controller ထဲမွာ သိမ္းထားလို႔ျဖစ္ပါတယ္။ Trim က RAID configuration, NAS configuration,  window 7 ႏွင့္ ေနာက္ပိုင္း ၿပီးရင္ SSD ကို External Hard Disk အျဖစ္သုံးတဲ့ေနရာေတြမွာ  မျပဳလုပ္ႏိုင္ပါဘူး။ Win 8,  8.1 , Win  10,Mac OS X, Mac book with Windows ေတြမွာသာအသုံးျပဳႏိုင္ပါတယ္။ 

Self Corrosion

Trim က ကြန္ပ်ဴတာကေန SSD ကိုျဖဳတ္လိုက္ရင္လဲ  SSD ကိုပါဝါေပးတာနဲ႔ အလုပ္လုပ္ေနတာျဖစ္ပါတယ္။

write-blocking imaging device ကိုၾကားခံအသုံးျပဳရင္လဲ ဆက္ၿပီး အလုပ္လုပ္ေနမွာ ျဖစ္ပါတယ္။ Trim ကို ပိတ္ဖို႔ ေရွာင္လႊဲဖို႔ ယေန႔အထိ ခက္ခဲေနပါေသးတယ္။ User ကေန Trim enable လုပ္ထားၿပီး data တစ္ခုကို ဖ်က္မယ္ Format လုပ္မယ္ Wipe လုပ္မယ္ဆိုတဲ့အေပၚမူတည္ၿပီး Window - SSD Controller  ကေနတစ္ဆင့္ အလုပ္လုပ္တာျဖစ္ပါတယ္။ SSD ရဲ႕ hardware level  မွာအလုပ္လုပ္တာျဖစ္ပါတယ္။ ဒီလို ေနာက္ကြယ္မွာ garbage collection (GC)  အလုပ္လုပ္​​ေနတာကိုSelf Corrosion ျပဳလုပ္တယ္လို႔လဲေခၚပါတယ္။ 

Over Provisioning

SSD ရဲ႕ Performance ေကာာင္းဖို႔ ျပဳလုပ္တာျဖစ္ပါတယ္။ Garbage   Collection, Wear-Leveling,  Bad  Block  Management  လုပ္တာေတြကို ပိုမိုေကာင္းမြန္ေစဖို႔ ျပဳလုပ္တာျဖစ္ပါတယ္။ SSD မွာ Data သိမ္းဆည္းရင္ Page က 4KB ရွိၿပီး Block တစ္ခုမွာ 128 Pages ရွိပါတယ္ Block တစ္ခုမွာ 512 KB ရွိပါတယ္။။ Write လုပ္လုပ္ Erase လုပ္လုပ္ Block တစ္ခုလုံးကို လုပ္တာျဖစ္ပါတယ္။ Controller Firmware နဲ႔  Failed Block Replacement အတြက္ SSD Storage မွာ သီးသန႔္ခ်န္ထားတဲ့ Free Space Block ေတြရွိပါတ္။  SSD အမ်ိဳးအစားအေပၚမူတည္ၿပီး Free Space Block အေရအတြက္ ကြဲျပားပါတယ္။ 

Wear leveling

SSD ရဲ႕ Block ေတြမွာ Erase\Write   Cycles သတ္မွတ္ခ်က္ရွိပါတယ္။ ဒါေၾကာင့္ Wear leveling  က SSD ရဲ႕ Life ကို ၾကာျမင့္ေစဖို႔ ျပဳလုပ္ေပးပါတယ္။ Wear leveling ကို SSD Controller ကေနပဲျပဳလုပ္တာျဖစ္ပါတယ္။ ဘယ္ Block က Erase\Write လုပ္တာ အႀကိမ္ဘယ္ေလာက္ရွိၿပီဆိုတာကို ေစာင့္ၾကည့္ေနပါတယ္။ ေစာင့္ၾကည့္ၿပီးရင္ Data တစ္ခုကို SSD ေပၚမွာ သိမ္းမယ္ဆိုရင္  Erase\Write အနည္းဆုံး Block ေပၚမွာ သိမ္းဆည္းပါတယ္။ 

Dynamic  wear  leveling  နဲ႔ Static  wear  leveling ဆိုၿပီး ၂ မ်ိဳးရွိပါတယ္။ Dynamic  wear  leveling က  Erase\Write  အနည္းဆုံးျဖစ္တဲ့ Block ေတြကို မွတ္သားထားၿပီး  Data သိမ္းမဲ့ Block ကိုေ႐ြးပါတယ္။ Static  wear  leveling  ကေတာ့ Data သိမ္းမဲ့ Block က  Erase\Write  အနည္းဆုံးျဖစ္ မျဖစ္ၾကည့္ပါတယ္။ လိုအပ္ရင္ Block ကိုဖ်က္ပါတယ္။ မဖ်က္ခင္ Block ထဲမွာ ရွိေနတဲ့ Data ကို  Block ေနာက္တစ္ခုမွာ Data ကိုေျပာင္းၿပီး သိမ္းလိုက္ပါတယ္။ ေနာက္ Block ထဲကို data သိမ္းလိုက္ၿပီးရင္ Block ကို ဖ်က္လိုက္ပါတယ္။ Block က Empty ျဖစ္သြားၿပီးဆိုေတာ့မွာ Data ကို သိမ္းတာျဖစ္ပါတယ္။ Garbage  Collection  (GC) ျပဳလုပ္ေနခ်ိန္မ်ာ Wear Leveling ကလဲ အလုပ္လုပ္ေနပါတယ္။ 

SSD Forensic Challenges

TRIM

 TRIM Enable ျပဳလုပ္ထားရင္ စစ္ေဆးသူက ဖ်က္လိုက္တဲ့  Data ေတြကို ရဖို႔မလြယ္ကူႏိုင္ပါ။ SSD Controller ကေန ျပဳလုပ္တာျဖစ္တာေၾကာင့္ SSD ကို Power ေပးတာနဲ႔  ေနာက္ကြယ္မွာ ဆက္လက္ျပဳလုပ္ေနမွာျဖစ္ပါတယ္။ Trim က SSD  တစ္ခုလုံကို ဖ်က္ဖို႔  မိနစ္ပိုင္း စကၠန႔္ ပိုင္းသာ အခ်ိန္ယူပါတယ္။ 

Wear Leveling 

Wear Leveling  ေၾကာင့္ ပထမ အခ်က္က  SSD မွာ File,Data,Folder ေတြကို Hash Value ယူရတာ တစ္ႀကိမ္နဲ႔ တစ္ႀကိမ္မတူညီႏိုင္ပါ။ဒုတိယ အခ်က္က Forensically Recovery  ျပဳလုပ္ဖို႔ ခက္ခဲတာ ရွာေဖြဖို႔ခက္ခဲတာျဖစ္ပါတယ္။ 

Compressing Controller

SSD ထုတ္လုပ္တဲ့ Company ေတြက Controller ကေန Encryption ျပဳလုပ္ထားတဲ့ အတြက္ SSD မွာရွိတဲ့ data သိမ္းတဲ့ Flash  ေတြကိုခြာၿပီး စစ္ေဆးမယ္ဆိုရင္ Company ကိုျပန္ပို႔ရမွာ ျဖစ္ပါတယ္။ (Chip off) Trim ကိုေက်ာ္ဖို႔ သုံးတာျဖစ္ပါတယ္။

Secure  Erase

wiping ျပဳလုပ္ဖို႔ HDD မွာ နာရီပိုင္းအခ်ိန္ယူရေပမဲ့ SSD မွာေတာ့ မိနစ္ပိုင္းသာ ၾကာပါတယ္။ 

အခ်ိဳ႕ေသာ SSD နဲ႔ ခ်ိတ္ဆက္မဲ့ interface ေတြက အတြင္းပိုင္းအထိ  အခ်က္အလက္ေတြ မဖတ္ႏိုင္ပါဘူး။

SSD ရဲ႕ အတြင္းပိုင္း ဖြဲ႕စည္းပုံက HDD ထက္ရႈပ္ေထြးပါတယ္။

SSD အတြက္ သတ္မွတ္ထားတဲ့ စံသတ္မွတ္ခ်က္မရွိေသးပါဘူး။ 

Carving နဲ႔ free space analysis ျပဳလုပ္ဖို႔ခက္ခဲပါတယ္။ 


SSD မွာ Data  တစ္ခုကို Write လုပ္မယ္ဆိုရင္ Page/Block( Group Of Pages) ေတြမွာ  Write လုပ္ပါတယ္။ ဖ်က္မယ္ဆိုရင္ Block တစ္ခုလုံးကို ဖ်က္ပါတယ္။ ဒါကို SSD Controller ကေနပဲ ထိန္းခ်ဳပ္ၿပီးလုပ္ေဆာင္ပါတယ္။ 

ဒါေၾကာင့္ SSD တပ္ထားမယ္ဆိုရင္ Host Operation System က Data ရွိတဲ့ တစ္ကယ့္ Physical  Block Area ေနရာေတြကို မသိပါဘူး။ Data တစ္ခုကို လိုခ်င္ရင္ ရွာခ်င္ရင္ Host Operation System က Logical  Block  Address  ကိုၫႊန္းပါတယ္။  Logical  Block  Address   ကေနမွ  Physical  Block  Address  ရွိတဲ့ေနရာကို SSD controller ကေနၫႊန္ျပေပးပါတယ္။ 


Wear Leveling, Garbage Collection စတာ ေတြကိုေတာ့ SSD controller ထဲက Flash Translation Layer (FTL) ကေနျပဳလုပ္ပါတယ္။ အခုလက္ရွိသုံးေနတဲ့ Forensics Tools ၉၉ ရာခိုင္ႏႈန္း က Flash Translation Layer (FTL) အထိ မဖတ္ႏိုင္ပါဘူး။ ပုံထဲမွာပါသလို Storage ကို Hex Editor နဲ႔ဖတ္ၾကည့္မယ္ဆိုရင္ 0 ေတြပဲရွိလို႔ SSD ထဲမွာ Data ေတြမရွိဘူးလို႔ ထင္စရာ ရွိပါတယ္။ ဒါေပမဲ့ Wear  Leveling/  Garbage  Collection / Data  Overwritten  မျဖစ္ခင္အခ်ိန္အထိ အခ်က္အလက္ေတြက Flash Memory ထဲမွာရွိေနပါတယ္။ 


Flash Translation Layer (FTL)  အထိ မဖတ္ႏိုင္တဲ့အတြက္ data မရွိဖူးလို႔ ထင္ရတာပါ။ ဒါေပမဲ့ HEX Editor နဲ႔ဖတ္တဲ့အခ်ိန္မွာ SSD ကို Power ေပးလိုက္တဲ့အတြက္ Wear Leveling, Garbage Collection ျပဳလုပ္ေနတာေၾကာင့္ Data ေတြက လုံး၀ ပ်က္စီးသြားႏိုင္ပါတယ္။ အဓိက ျပဳလုပ္ရမွာကေတာ့  Power  မေပးပဲ JTAG/ISP/Chip Off  တစ္ခုခုကို လုပ္ရမွာျဖစ္ပါတယ္။ Chip Off  ကေတာ့ အခ်ိန္ယူရသလို ေဈးလဲေတာ္ေတာ္ႀကီးပါတယ္။ 








Comments

Popular posts from this blog

TikTok (tiktok.com) Imvestigation #OSINT

Google Reverse Location Search Warrants (GEOFENCE SEARCH WARRANT) And Transparency Report

Digital Forensics Investigator Hypothesis -1