Day-18
Covid day - 18 (Covid Negative Day)
(Bitlocker + TPM) (Bitlocker + TPM + Pin) အတွက် Forensics Point Of View
(User ဆီက Password, Pin တောင်းမယ်ဆိုတဲ့ အဆင့်ကို ကျော်ထားပါတယ်။)
Trusted Platform Module (TPM) ဆိုတာက Cryptoprocessor တစ်ခုဖြစ်သလို Built-in Memory လဲပါရှိပါတယ်။ Cryptographic Key တွေကို Computer Mother Board နဲ့ ပေါင်းစပ်ပြီး ထိမ်းသိမ်း ဆောင်ရွက်ပေးပါတယ်။
TPM က Motherboard Built in အနေနဲ့ပါရှိသလို Support ပေးတဲ့ Motherboard တွေမှာ Module အနေနဲ့ ထပ်ပြီးတပ်လို့ရပါတယ်။
Bitlocker က AES-128 ကို အသုံးပြုပြီး UEFI အတွက် XTS , Legacy Boot အတွက် CBC ကိုအသုံးပြုပါတယ်။ Data တွေကို Volume Master Key
(VMK) နဲ့ Encryption ပြုလုပ်ပါတယ်။
VMK ကို ဘယ်ကနေရနိုင်မလဲဆိုရင်
1 - Bitlocker Password
2 - Encryption Enable ပြုလုပ်တဲ့ အချိန်မှာ Save ထားတဲ့ File, USB, Print, Note, Microsoft Accout,
3 - Trusted Platform Module (TPM)
Bitlocker + TPM
TPM ရဲ့ အလုပ်လုပ်ပုံက Block Chain ပုံစံနဲ့ ဆင်တူပါတယ်။ System Boot စတက်တဲ့ အချိန်မှာ Chain Of Truth ကိုစတင်လုပ်ဆောင်ပြီး Platform Configuration Register (PCR) - Small Amount Location ထဲမှာသိမ်းဆည်းပါတယ်။
1 - ကွန်ပျူတာကို ပါဝါ စဖွင့်လိုက်တာနဲ့ Computer ROM ထဲမှာသိမ်းထားတဲ့ Static Root Of Truth For Measures (SRTM) က စပြီး Loading ပြုလုပ်ပါတယ်။
SRTM မှ ပထမဆုံး BIOS ရဲ့ Hash Value ကို Calculate လုပ်ပြီး Chain Of Truth ပြုလုပ်ပါတယ်။
ရလာတဲ့ Hash Value ကို Trusted Platform Module (TPM) ထဲက Configuration Register (PCR) ထဲမှာ သိမ်းဆည်းထားလိုက်ပါတယ်။
2 - BIOS စတင်အလုပ်လုပ်ပြီး Storage Partation, Master Boot Record (MBR), Bootloader, ပြီးရင် တစ်ခြားချိတ်ဆက်ထားတဲ့ Configuration တွေဖြစ်တဲ့ Fingerprint Reader, Card Reader တွေရဲ့ Checksum ကို စစ်ဆေးပါတယ်။ PCR ထဲမှာခုနက သိမ်းထားတဲ့ Hash Value နဲ့ ထပ်ပြီးတော့ New Hash Value ရယူပါတယ်။ တစ်ခုခုပြင်ထားမယ်ဆိုရင် Chain တစ်ခုလုံးကို ဖျက်လိုက်ပါတယ်။
3 - Master Boot Record ထဲမှာရှိတဲ့ Bootloader စတင်အလုပ်လုပ်။ လိုအပ်တဲ့ Record ထည့်ပြီးရင် ထပ်ပြီး Hash Value တွက်ထုတ်ပါတယ်။
4 - နောက်ဆုံးဖြစ်တဲ့ OS Kernel အလုပ်လုပ်ပါပြီး။ Kernel ကနေ လိုအပ်တဲ့ Record ကို Chain Of Truth ထဲ ထပ်ထည့်ပါတယ်။
1. (S-CRTM) - 2. ( BIOS/UEFI Code) - 3. (Boot Lader)- 4.(OS Kernel)
(Block Chain ပုံစံအတိုင်းသွားပါတယ်။)
TPM ထဲက Configuration Register (PCR) ထဲမှာ Chain Of Truth တွေကို အကုန် ပါ၀င်ပါတယ်။ PCR ကိုပြင်ဆင်လို့မရပါဘူး။
(ROM Vulnerability ဖြစ်တဲ့အတွက် အချို့သော IOS Devices တွေမှာ Checkm8 Exploit ဖြစ်ပြီး Password မသိရင်တောင် Data အချို့ကိုဆွဲယူနိုင်ပါတယ်။)
Bitlocker + TPM
(Bitlocker key ကို TPM ထဲမှာ သိမ်းထားလိုက်တဲ့အခါ)
User က Bitlocker Enable လုပ်လိုက်တဲ့အခါ Window ကနေ Volume Master Key (VMK), Recovery Key တို့ကို ထုတ်ပေးလိုက်ပါတယ်။
VMK key က TPM ထဲမှာ သိမ်းထားလိုက်ပြီး Recovery Key နဲ့ ထပ်ပြီး Encrypt လုပ်လိုက်ပါတယ်။
Encrypted လုပ်ထားတဲ့ VMK key ကို Disk Header ထဲမှာ သိမ်းထားလိုက်ပါတယ်။
Reboot , Shutdown ကနေပြန်တက်လာတဲ့အခါမှာ
- PCR Register တွေထဲမှာ သိမ်းထားသမျှက မရှိတော့ပါဘူး။
- အပေါ်က အဆင့် ၄ ဆင့်ကို ထပ်ပြီးလုပ်ဆောင်ပါတယ်။
- OS Kernel အဆင့်ကနေ Encrypted လုပ်ထားတဲ့
Storage Partation ကို Unlock လုပ်ဖို့အတွက် TPM ထဲမှာသိမ်းထားတဲ့ Encrypted VMK ကို Request လှမ်းလုပ်ပါတယ်။ TPM ကနေ PCR Register တွေကိုစစ်ဆေးပြီး Chain Of Truth မှန် မှန်စစ်ဆေးပါတယ်။ Corrupt ဖြစ်သွားရင် VMK Key ကို ထုတ်မပေးပါဘူး။
(Bitlocker key ကို TPM ထဲမှာ သိမ်းထားတဲ့အတွက်
Storage ကို Pull လုပ် အခြား Forensics Work Station မှာ တပ်ပြီး Decrypt လုပ်လို့မရတော့ပါဘူး။
လက်ရှိ ကွန်ပျူတာမှာသာ Storage က အလုပ်လုပ်ပါမယ်။ TPM + Storage ကိုဖြုတ်ပြီး အခြား ကွန်ပျူတာမှာလဲ သွားတပ်လို့မရပါဘူး။ )
TPM By Pass နည်းလမ်း
1 - Sized လုပ်မဲ့ ကွန်ပျူတာက ပါဝါ ပွင့်နေရင် Sleep Mode ဖြစ်နေရင် Shut Down မလုပ်ပဲ Ram Dump လုပ်တဲ့နည်းလမ်း။
(Sleep Mode ဖြစ်နေရင် TPM ထဲက PCR Register က NVRAM ထဲမှာ ရှိနေပါတယ်။ Wake ဖြစ်တဲ့ အချိန် အဆင်သင့်ဖြစ်အောင်လို့ပါ။)
2 - Memory Image ယူနိုင်တဲ့ Linux ကို Bootable လုပ်ပြီး Memory ယူမဲ့နည်းလမ်း။
Boot password ခံထားခဲ့ရင်
Bitlocker + TPM + Pin ပြုလုပ်ထားရင်။
Seized လုပ်တဲ့အချိန် ကွန်ပျူတာပိတ်ရက် အနေအထား
(Boot Password ကို အကြိမ်ကြိမ်မှားထည့်ရင် TPM က Login လုပ်ဖို့ အချိန်ကို Time Restricted လုပ်လိုက်ပါတယ်။ )
(Battery ဖြုတ်ပြီး Time Restricted ကိုကျော်နိုင်ပါတယ်။)
Cold Boot
စောနက OS Kernel ကနေ Encrypted လုပ်ထားတဲ့ Storage ကို TPM ကို Request လှမ်းလုပ်တဲ့အချိန်မှာ Chain Of Truth ကလဲ မှန်နေတဲ့အတွက် VMK Key က Ram ထဲမှာ ရောက်နေပါပြီ။
ကွန်ပျူတာကို Login ရောက်တဲ့အထိ ဖွင့်။ ပြီးရင် ပြန်ပိတ်လိုက်ပါ။ Login နေရာမှာ Encrypted Volume က Mount နေပါပြီ။
ပိတ်ပြီးတဲ့အချိန်မှာ RAM ကို Liquid Nitrogen နဲ့ RAM ကို ရေခဲမှတ်ရောက်တဲ့အထိ မှုတ်လိုက်ပါတယ်။
ရေခဲမှတ်ရောက်အောင် မှုတ်ပြီးရင် အခြား Computer မှာ RAM ကိုချက်ခြင်းတပ်ပြီး Memory Image ယူနိုင်တဲ့ Linux ကို Bootable တပ်ပြီး Image ယူပါတယ်။
(Computer Shutdown ဖြစ်တာနဲ့ Ram ပေါ်က Data မရစေရန် အတွက် Ram ပေါ် ကို Memory Override လုပ်တဲ့နည်းတွေလဲပေါ်နေပါပြီ။
Firewireနဲ့ Thunderbolt နည်းလမ်းကတော့ Window 7, 8.1 မှာ BIOS update မလုပ်ရသေးတာတွေပဲရပါတော့တယ်။
(Sleep Mode and Cold Boot ကတော့ Analysis လုပ်တဲ့အနေနဲ့ 2 ခါလောက်စမ်းသပ်ကြည့်ဖူးပါတယ်။)
Sleep Mode မှာအခြေအနေတစ်ခု ရှိပါသေးတယ်။ Wake ဖြစ်လာပြီး ဒါပေမဲ့
Login Password ခံနေတယ်။ အပေါ်ကနည်းလမ်းတစ်ခုခုကို ကိုယ်ကျွမ်းကျင်ရာ ကိုယ့်မှာ ရှိတဲ့ Tools and Capabilities ကိုကြည့်ပြီး လုပ်ရမှာဖြစ်ပါတယ်။
Memory Overwrite Request Control (MOR) ကြောင့် Ram ထဲမှာ ဘာမှ မကျန်အောင် Overwrite လုပ်လိုက်ပါတယ်။ Attack နည်းလမ်းတွေကို လျှော့ချလိုက်တာပါ။
Link ထဲမှာ ဘယ် Window Version တွေမှာ Support ပေးတယ်ဆိုတာတွေ့နိုင်ပါတယ်။ MOR V2 ဆိုရင်ထွက်တာ လပိုင်းပဲ ရှိပါသေးတယ်။
Full Link
https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/memory-overwrite-request-control-lock-version-2
နောက်ဆုံးတစ်နည်းကတော့ စမ်းသပ်မယ်ဆို ပစ္စည်းရော ငွေကြေးရော
လိုအပ်တာကြောင့် မစမ်းသပ်ရသေးပါဘူး။ နည်းလမ်းက TPM Signal ကို Intersection လုပ်တာပါ။ Github မှာ Code နဲ့ နည်းလမ်းရှိပါတယ်။ အောင်မြင်တယ်လို့လဲပြောပါတယ်။
Link
https://github.com/denandz/lpc_sniffer_tpm
Comments