eCDFP Module (5) File System Analysis (Part-1)

eLearnSecurity Certified Digital Forensics Professional

Module (5) File System Analysis 

Data တွေကို Storage Media တွေပေါ်မှာ သိမ်းဆည်းထားတာဖြစ်ပြီး Storage Meida ပေါ်မှာရှိတဲ့ Data တွေကို ကိုယ်လိုချင်တဲ့အချိန်မှာ ရယူနိုင်အောင် ဘယ်လိုတွေစုစည်းထားတယ်ဆိုတာကို အခု Module မှာ ဖော်ပြသွားမှာ ဖြစ်ပါတယ်။ 

Storage Media ပေါ်မှာ Data တွေကို ဘယ်လို စုစည်းထားတယ်ဆိုတာကို အနီးစပ်ဆုံး ဥပမာပြရရင် စာကြည့်တိုက်မှာ စာအုပ်တွေကို စီထားတဲ့ပုံစံ အတိုင်းဖြစ်ပါတယ်။ 

  စာကြည့်တိုက်က စာအုပ်စဉ်မှာ စာအုပ်တွေကို စီထားတာက ပုံစံတူ Size တူတဲ့စာအုပ်တွေကြည့်ပဲ စီထားတာမဟုတ်တာကိုတွေ့ရပါလိမ့်မည်။ စာအုပ်စင်မှာ စာအုပ်တွေရဲ့ Size , Type, Content တွေမတူညီတာကိုတွေ့ရမှာဖြစ်ပါတယ်။  ဒီလိုပဲ Storage Media ပေါ်မှာရှိတဲ့ Data တွေကလဲ Size, Type, Content တွေမတူညီပါဘူး။ 

ဥပမာ JPEG , PDF , Word File , Etc စသည်ဖြင့် ပုံစံမျိုးစုံ။ ပုံစံမျိုးစုံကိုမှ Size, Type တွေက တစ်ခုနဲ့တစ်ခု တူညီတာတွေရှိနိုင်သလို မတူညီနိုင်တာတွေလဲရှိပါနိုင်ပါတယ်။  


    လူတွေက စာကြည့်တိုက်မှာ စာအုပ်တွေကို အလွယ်တစ်ကူရှာနိုင်ဖို့အတွက် Library System တွေထားရှိပါတယ်။ Library System ကိုမှ အချို့က စာရေးသူနာမည်နဲ့ အစဉ်လိုက်လုပ်ထားသလို အချို့ Library System တွေက စာအုပ်နာမည် ထုတ်ဝေတဲ့ ခုနှစ် စာအုပ်အမျိုးအစား တွေနဲ့ စသည်ဖြင့် အစဉ်လိုက်ထားတာရှိပါတယ်။ Library System တစ်ခုနဲ့တစ်ခုမတူညီနိုင်ပါဘူး။
Storage Media ပေါ်မှာရှိတဲ့  Data တွေကို ကိုယ်လိုချင်တဲ့အချိန် Data တွေကို ရှာနိုင်ဖို့အတွက် Library System လိုပဲအသုံးပြုတာက File System ဖြစ်ပါတယ်။ 



    အပေါ်ကပုံအရ Layer တစ်ခုခြင်းစီးကြားမှာ File System ကနေ Bridge အနေနဲ့ပြုလုပ်ပေးပါတယ်။ Digital Forensics Investigator အတွက် File System Analysis ပြုလုပ်ခြင်းက အရေးကြီးတဲ့ အလုပ်တစ်ခုဖြစ်ပါတယ်။

    Forensics Image ပြုလုပ်တဲ့အခါမှာ Block Device layer ဖြစ်တဲ့ Hard Disk ကို Image ပြုလုပ်တဲ့အခါမှာ  Hard Disk ထဲမှာရှိတဲ့ File တွေအကုန်လုံးနဲ့ File System ရဲ့ Metadata တွေအကုန်ပါဝင်ပါတယ်။ File System ကို Analysis ပြုလုပ်နိုင်ရန်အတွက် ပထမဆုံးနားလည်ရမဲ့အရာက File System ကဘယ်လိုအလုပ်လုပ်တယ်။ File System Metadata ရဖို့အတွက် 1,0 တွေကို ဘယ်လိုပြောင်းလဲတာလဲဆိုတာကို သိထားရမှာ ဖြစ်ပါတယ်။ File System Metadata တွေက Analysis လုပ်ဖို့အတွက် Data အမှန် တစ်ကယ်ရှိတဲ့ နေရာတွေကို ပြသပေးပါတယ်။

Acquire လုပ်ထားတဲ့ Forensics Image ထဲကနေ Data တွေကိုရှာနိုင်သလို ဖျက်ထားတဲ့ Data တွေကိုရောရှာလို့မရနိုင်ဘူးလား ?

Data ကိုဖျက်လိုက်တဲ့အခါမှာ Storage ပေါ်မှာ Data သိမ်းထားတဲ့နေရာကို ဖျက်လိုက်ပါတယ်။ ဖျက်လိုက်တဲ့အခါမှာ  Data တွေမရှိတော့တဲ့အတွက် Data ကိုသိမ်းထားတဲ့နေရာက အလွတ်ဖြစ်သွားပါတယ်။ လွတ်နေတဲ့နေရာကို  အခြား Data တွေလာပြီး မသိမ်းသမျှကာလတစ်လျှောက်လုံး ခုနက ဖျက်ထားတဲ့ Data တွေက ရှိနေပါသေးတယ်။

ဒီနေရာမှာ Challenges တွေရှိလာပါတယ်-

ပထမဆုံးက Data တွေကို Storage ပေါ်မှာဘယ်လိုသိမ်းဆည်းတယ်ဆိုတာကို သိထားဖို့လိုအပ်ပါတယ်။ဒီအကြောင်းကို အရင် Module တွေမှာ ဖော်ပြပြီးဖြစ်ပါတယ်။

ဒုတိယက Storage ပေါ်မှာသိမ်းထားတဲ့ Data တွေကိုကနေ အရေးပါအသုံးဝင်တဲ့ File System Information တွေ File တွေကို ရရှိဖို့ ဘယ်လို ပြောင်းလဲသလဲဆိုတာကို သိထားဖို့လိုအပ်ပါတယ်။

-      Special Type  Of File ဖြစ်တဲ့ Directories အကြောင်းကို နောက်အခန်းတွေ မှာဖော်ပြပါမယ်။

 -      Storage Media ပေါ်မှာ File တွေကို File System ကနေဘယ်လို စုစည်းထား တယ်ဆိုတာကို သိရှိဖို့လိုအပ်ပါတယ်။

     Files, Directories တွေကို Storage Media ပေါ်မှာ 1,0 အနေနဲ့သိမ်းဆည်း ထားတယ်ဆို တာသိရှိပြီပါပြီ။ အရင် Module တွေမှာသိထားခဲ့တဲ့ Hard Disk မှာ Data တွေကို Read / Write လုပ်တဲ့အခါမှာ Sector တွေပေါ်မှာ အလုပ်လုပ်ပါတယ်။ Sector တွေရဲ့ ပမာဏက  Fixed Size ဖြစ်ပါတယ်။

ဒါဆိုရင် Data Bytes တွေက Hard Disk ရဲ့ ဘယ် Sectors တွေပေါ်မှာရှိတာလဲ  ?

ဘယ် Sector တွေပေါ်မှာ သက်ဆိုင်တဲ့ File တွေကရှိနေသလဲ ?

ဒါတွေကို သိဖို့အတွက်ဆိုရင် ညွှန်ပြနိုင်မဲ့  Map လိုအပ်ပါတယ်။

Hard Disk တွေက Data တွေကို သိမ်းဆည်းတဲ့အခါ Sector ပေါ်မှာသိမ်းဆည်းပါတယ်။ ဒါဆိုရင် တစ်ခုစဉ်းစားစရာရှိတာက File/Data တွေက Hard Disk ရဲ့ Sector ပေါ်မှာ တစ်ဆက်တည်း  သိမ်းဆည်းထားတာလား (ဥပမာ Sector 10 – Sector 20)

Data တွေက သိမ်းဖို့အားနေတဲ့ နေရာတွေ ဒါမှမဟုတ် သိမ်းဆည်းဖို့မအားတဲ့ နေရာတွေ မှာရော မရှိနိုင်ဘူးလား။ မသိမ်းဆည်းနိုင်ဘူးလား။ မအားတဲ့နေရာတွေ (Sector) တွေရှိနေရင် ဘယ်လိုလုပ်မလဲ ။

          အခုမေးခွန်းတွေအတွက်အဖြေကတော့ Hard Disk ပေါ်မှာ Data တွေကို သိမ်းဆည်းဖို့အတွက် Map (Algorithm) လုပ်အပ်ပါတယ်။ Map (Algorithm) ကနေ Storage ပေါ်မှာရှိတဲ့ Free Sector တွေကိုရှာပြီး Data တွေကိုသိမ်းဆည်းပါတယ်။

          Map (Algorithm) ကတော့ ကိုယ်အသုံးပြုတဲ့ File System အပေါ်မူတည်ပြီး ကွာခြားပါတယ်။ File System တစ်ခုချင်းစီမှာ အသုံးပြုထားတဲ့ Map (Algorithm) အပေါ်မူတည်ပြီး Storage ပေါ်မှာ Data တွေကိုသိမ်းဆည်းဖို့အတွက် နေရာလွတ်တွေကို ရှာဖွေပြီး သိမ်းဆည်းပါတယ်။

          Operation System ကနေ သူနဲ့ပတ်သတ်တဲ့ File တွေကိုရှာဖွေခြင်တယ်ဆိုရင် ဥပမာအနေနဲ့ 

11110000 နဲ့စတဲ့ File ကိုလိုချင်တယ်

11000000 ဖြစ်တဲ့File ကိုလိုချင်တယ် ဆိုပြီးရှာဖွေလို့မရနိုင်ပါဘူး။

သူနဲ့သက်ဆိုင်တဲ့ File Name လိုအပ်ပါတယ်။

အောက်မှာဖော်ပြထားတဲ့ အခြေခံအချက်လက်တွေလိုအပ်ပါတယ်-

1.    File ကိုပေးထားတဲ့ File Name

2.    Map (Algorithm) ကနေဘယ်လို Track လုပ်မလဲဆိုရင် -

A.   File Name ကနေ  အမည်ပေးထားတဲ့ File ကိုသွားပါမယ်။

B.   File ကနေ File ကိုသိမ်းဆည်းထားတဲ့ Sector ကိုသွားပါမယ်။

C.   Sector ကနေ File ရဲ့ Data တွေဖြစ်တဲ့ 1,0 ကိုသွားပါတယ်။


FAT File System Analysis 

    FAT File System ကို ၁၉၇၇ ခုနှစ်မှာ Floppy Disk တွေအတွက် အသုံးပြုခဲ့တာ ဖြစ်ပါတယ်။ Microsoft (MS-DOS) မှာလဲသုံးစွဲခဲ့ပါတယ်။ FAT က Simple Index Table ကိုအသုံးပြုပြီး Storage ပေါ်မှာရှိတဲ့ File တွေကို Track လုပ်ပါတယ်။ ဒါကြောင့် FAT ကို File Allocation Table ဆိုပြီးခေါ်တာဖြစ်ပါတယ်။ FAT File System ကပေါ်တာ ကြာပြီးဖြစ်ပေမဲ့  USB Stick , Memory Card တွေမှာ အခုအချိန်အထိ သုံးစွဲနေ ဆဲဖြစ်ပါတယ်။ EFI Boot Partitions ကလဲ FAT File System ပဲဖြစ်ပါတယ်။ 
ဒါကြောင့်ယနေ့အချိန်ထိ FAT File System ကိုလေ့လာနေကြဆဲဖြစ်ပါတယ်။ ယနေ့အချိန်အထိသုံးစွဲနေဆဲဖြစ်တာကြောင့် Evidence အနေနဲ့ Image and Analysis လုပ်နေရတဲ့အပြင် FAT File System က File System အကြောင်းတွေကိုလေ့လာရာမှာ အလွယ်ဆုံးဖြစ်ပြီး File System ကို ယေဘူယ နားလည်စေဖို့လေ့လာလို့ အကောင်း ဆုံးဖြစ်ပါတယ်။ နောက်ပိုင်းလေ့လာရမဲ့ NTFS File System က FAT File System ထက်ပိုပြီး ရှုပ်ထွေးပါတယ်။ 
FAT File System တွေကတော့ 
1. FAT12
2. FAT16
3. FAT32
4. Extended File Allocation Table (exFAT) 

    အခု Module မှာတော့ FAT12, FAT16, FAT32 အကြောင်းတွေကို ဖော်ပြမှာ ဖြစ်ပါတယ်။ 
FAT တွေမှာ 12, 16, 32 ဆိုပြီး နံပတ်တွေ ဘာလို့ကွဲနေတာလဲဆိုပြီး မေးခွန်းမေးစ ရာရှိလာပါတယ်။ 
အဲဒီနံပတ်တွေက Cluster Addressing အတွက်သတ်မှတ်ထားတဲ့ Bits အရေအတွက်တွေဖြစ်ပါတယ်။ FAT12 မှာဆိုရင် Cluster Size ရဲ့ပမာဏက  2^12 ရှိနိုင်ပါတယ်။

    Cluster Size ဆိုတာဘာလဲဆိုရင် Storage Media ပေါ်မှာ  Data တစ်ခုကိုသိမ်း ဆည်းဖို့အတွက် File System ရဲ့   အသေးဆုံး Logical Unit တစ်ခု ဖြစ်ပါတယ်။  Cluster Size ကို Partition/ Volume / USB ကို Format ချတဲ့အခါမှာ သတ်မှတ် နိုင် တွေ့နိုင်ပါတယ်။ Cluster Size  က 512 Bytes ကနေ File System ကနေသတ် မှတ်ထားတဲ့ ပမာဏအထိရှိနိုင်ပါတယ်။ 
    Cluster Size  က ဘာလို့ 512 Bytes ကနေစရှိတာလဲဆိုရင် Sector တစ်ခုက 512 Bytes ကနေစပြီးရှိလို့ဖြစ်ပါတယ်။ 
    Cluster ဆိုတာက File System ကနေ သတ်မှတ်တဲ့ Smallest  Logical Unit တစ်ခုဖြစ်ပါတယ်။ 
    Sector ဆိုတာက Hard Disk မှာ ရှိတဲ့ Smallest Physical Unit တစ်ခုဖြစ်ပါတယ်။ တစ်နည်းအားဖြင့်ဆိုရင် Cluster က Logical ဖြစ်ပြီး Sector ကတော့ Physical ဖြစ်ပါတယ်။ 
Cluster တစ်ခုမှာပါမှာတဲ့ Sector အရေအတွက်ကိုတော့ Storage ရဲ့ ပမာဏနဲ့ Partitions အရည်အတွက်အပေါ်မူတည်ပါတယ်။ အဲဒီအရေအတွက်ကို File System ရဲ့ Boot Record မှာတွေ့နိုင်ပါတယ်။ 
Format ပြုလုပ်တယ်ဆိုတာက Data တွေကို Storage ပေါ်မှာနေရာချ ဖို့အတွက်ပြုလုပ်တဲ့နည်းလမ်းတစ်ခုဖြစ်ပါတယ်။ Format ပြုလုပ်ပြီး File System နဲ့ Storage ပေါ်မှာ Data တွေကို Track လုပ်ဖို့တာတွေကို ပြင်ဆင်နိုင်ပါတယ်။
(FAT, NTFS File System ပြောင်းလဲတာ Cluster Size တွေပြောင်းလဲ နိုင်တာ တွေကို ဆိုလိုတာဖြစ်ပါတယ်။) 

    Format ပြလုပ်တဲ့နည်းလမ်း ၂ ခုရှိပါတယ်။ High Level Formation (Logical) နဲ့Low Level တို့ဖြစ်ပါတယ်။ အခု Module မှာတော့ High Level Formation (Logical) အကြောင်းကိုဖော်ပြမှာ ဖြစ်ပါတယ်။ 
File တစ်ခုကို Create လုပ်တဲ့အခါမှာ File System က Free ဖြစ်တဲ့ Cluster တွေကိုညွှန်ပြပေးပါတယ်။ Cluster တစ်ခုမှာပါဝင်တဲ့ Sector အရေအတွက်ကလဲ အရေးကြီးပါတယ်။ ဘာလို့လဲဆိုရင် Cluster Size က Storage Media ရဲ့ Performance ကိုထိခိုက်နိုင်တာကြောင့်ဖြစ်ပါတယ်။ Cluster Size တွေက ကြီးနေမယ်ဆိုရင် Disk ရဲ့ ပမာဏလျော့နည်းနိုင်ပြီး Cluster Size တွေက ငယ်နေမယ်ဆိုရင် Over Head ဖြစ်နိုင် ပါတယ်။ 
    Storage ပေါ်မှာရှိတဲ့ Data တွေကို လွယ်ကူစွာ Access လုပ်နိုင်ဖို့အတွက်  Cluster ထဲမှာရှိတဲ့ Sector တွေတစ်ဆက်တည်းရှိနေဖို့ လိုအပ်ပါတယ်။ တစ်ဆက်စပ်တည်း မရှိပဲ ပြန့်ကျဲနေရင် Performance ကျနိုင်ပါတယ်။ 




    ပုံမှာကြည့်ရင် Cluster တစ်ခုစီကို 4 Sectors ရှိပါတယ်။ Sector  တစ်ခုစီက 512 Bytes ရှိပါတယ်။
File 1 ကို Storage ပေါ်မှာသိမ်းဆည်းလိုက်တဲ့အခါမှာ ကျန်တဲ့ Sector 3 ခုကလွတ် နေပါတယ်။ Unused Space 3 ခုဖြစ်သွားပါတယ်။  File 2 ကို Storage ပေါ်မှာ သိမ်းဆည်းလိုက်တဲ့အခါမှာ Sector 2 ခုကလွတ် နေပါတယ်။ Unused Space 2 ခုဖြစ်သွားပါတယ်။  

ယခုပုံက Storage ပေါ်မှာ Data တွေကို သိမ်းဆည်းတဲ့အခြေခံအကျဆုံးပုံဖြစ်ပါတယ်။ Digital Forensics အတွက် အရေးကြီးတဲ့အစိတ်အပိုင်းဖြစ်ပါတယ်။ 

Comments

Popular posts from this blog

B-Trees (NTFS)

NTFS Index Attributes

Volatility Workbench (GUI) for the Volatility tool