ကၽြန္ေတာ္ခ်စ္ေသာသူငယ္ခ်င္းမ်ားအတြက္
...: ပညာေရး၊စီးပြားေရး၊ ဘာသာေရး၊ ဂီတ၊ ရုပ္ရွင္၊ စာေပ၊ နည္းပညာ၊ အိုင္တီ၊ ကူးယူရန္ေဆာ႔ဖ္၀ဲလ္မ်ားနဲ႕ အျခားေနရာမ်ားကို ဒီေနရာေလးကေန ေ၀မွ်ေပးလိုက္ပါတယ္ :...

... BE PEACEFUL AND HAPPY ALL THE MOMENTS, ALL MY FRIENDS ...

Jul 6, 2007

XSS သို႕မဟုတ္ Cross-Site Scripting - အမ်ဳိးအစားမ်ား


အမ်ဳိးအစားမ်ား

အခုအခ်ိန္တြင္ XSS ၏အားနည္းခ်က္မ်ားကို အမ်ဳိးအစားသံုးမ်ဳိးျဖင့္ ေဖာ္ျပၾကသည္။
၄င္းတို႕ကို အေခၚရလြယ္ေစရန္ အားနည္းခ်က္ (၁)(၂)(၃) ဟု အမည္ေပးလိုက္ပါမည္။

အားနည္းခ်က္ (၁)

XSS ၏အားနည္းခ်က္(၁) ကို DOM-based သို႕မဟုတ္ Local cross-site scripting ဟုေျပာၾကသည္။ ျပႆနာက တျခားေနရာမွာ မရွိဘဲ ၄င္းအင္တာနက္ စာမ်က္ႏွာအတြင္းမွာပင္ ရွိေနသည္္။ ဥပမာ - ဆိုၾကပါစို႕
  • အကယ္၍ JavaScript သေကၤတ တစ္ခုသည္ အင္တာနက္လိပ္စာ (URL) တစ္ခုကို ေတာင္းဆိုသည့္ ေဆာင္ရြက္ခ်က္တစ္ခုကို ျပဳလုပ္ျပီးေနာက္
  • ရရွိလာေသာ အခ်က္အလက္မ်ားကို အသံုးျပဳျပီး
  • မူလစာမ်က္ႏွာအတြင္းမွာပင္ HTML အခ်ဳိ႕ျပန္ေရးလိုက္သည့္ အခါမ်ဳိးတြင္ XSS ဂယ္ေပါက္(hole) တစ္ခုျဖစ္လာသည္။
လက္ေတြ႕အားျဖင့္ အားနည္းခ်က္(၁)မွာ (၂)ႏွင့္ အေတာ္ေလးဆင္တူသည္။အလြန္အေရးၾကီးေသာ အခ်က္တစ္ခ်က္တြင္သာလွ်င္ ကြဲလြဲမႈရွိေနသည္။
  • Internet Explorer ေဆာ့ဖ္၀ဲ၏ Local Zone ဟုေခၚေသာ၊ အင္တာနက္သံုးေနသူမ်ား၏ ဟာ့ဒ္ဒစ္အတြင္းရွိ Client-site script မ်ားကိုကိုင္တြယ္ လုပ္ေဆာင္ပံုေၾကာင့္၊
  • အားနည္းခ်က္(၁)မွတဆင့္ အေ၀းမွ ထိမ္းေက်ာင္းႏိုင္ေသာ အေနအထားမ်ဳိးအထိ ျဖစ္သြားေစႏိုင္သည္။
ဥပမာ -
  • တိုက္ခိုက္သူတစ္ဦးသည္ ေကာက္က်စ္ေသာ ၀က္ဘ္ဆိုက္တစ္ခုကို အသံုးျပဳလ်က္ရွိေနသည္။
  • ၄င္းဆိုက္တြင္ အင္တာနက္သံုးေနသူတစ္ဦး၏ ကြန္ပ်ဳတာအတြင္းရွိ ဂယ္ေပါက္ျဖစ္ေနေသာ စာမ်က္ႏွာတစ္ခုႏွင့္ ခ်ိတ္ဆက္မႈ(Link)တစ္ခုပါ၀င္ေနသည့္ ဆိုပါစို႕။
  • ထိုအခါတြင္ တိုက္ခိုက္သူသည္ သားေကာင္၏ အင္တာနက္ၾကည့္ေဆာ့ဖ္၀ဲ အတြင္းမွ ဟာကြက္ကိုေကာင္းစြာအသံုးခ်ျပီး ၄င္းလိုရာ သေကၤတမ်ားကို သားေကာင္၏ ကြန္ပ်ဳတာအတြင္းသို႕ တိတ္တဆိတ္ ထည့္သြင္းလိုက္ႏိုင္သည္။
အားနည္းခ်က္ (၂)

အားနည္းခ်က္ (၂)ကို non-persistent သို႕မဟုတ္ reflected ေပ်ာ႕ကြက္ ဟုေျပာၾကသည္။ အျမဲတမ္း ရွိမေနဘဲ အေျခအေနအခ်ဳိ႕အေပၚမူတည္ျပီး ျဖစ္လာသည့္ ေပ်ာ႕ကြက္ျဖစ္သည္ ဟု ဆိုႏိုင္သည္။ အမ်ားဆံုးျဖစ္ေလ့ရွိေသာ ေပ်ာ႕ကြက္လည္းျဖစ္သည္။
  • ဆာဗာဘက္ျခမ္းရွိ သေကၤတမ်ား (Server-site scripts)အေနျဖင့္ အင္တာနက္သံုးေနသူ တစ္ဦးမွ ထည့္သြင္းေပးလိုက္ေသာ အခ်က္အလက္မ်ားကို အသံုးျပဳျပီး
  • ၄င္းအင္တာနက္သံုးသူအတြက္ လိုအပ္ေသာ စာမ်က္ႏွာတစ္ခုကို
  • ေျဖၾကားခ်က္အျဖစ္ ခ်က္ခ်င္းျပန္လည္ ေပးပို႕ရေလ့ရွိသည္။
  • အကယ္အားျဖင့္ အသံုးျပဳသူမ်ား ထည့္ေပးလိုက္သည့္ အခ်က္အလက္မ်ားကို စနစ္တက် စစ္ေဆးျခင္းမျပဳဘဲ (Unvalidated User-supplied Data အျဖစ္) လက္ခံမိလိုက္သည့္အခါ၊
  • ၄င္းအခ်က္အလက္မ်ားမွာ ဆာဗာမွ ျပန္လည္ေပးပို႕လိုက္သည့္ စာမ်က္ႏွာမ်ားထဲတြင္ ပါ၀င္ သြားသည္။
  • ဤအေျခအေနမ်ဳိးက အသံုးျပဳသူဘက္ရွိ သေကၤတမ်ားကို အသက္၀င္ေျပာင္းလဲေနေသာ (Dynamic) စာမ်က္ႏွာတစ္ခု အတြင္းသို႕ ထည့္ေပးလိုက္သလို ျဖစ္သြားေစသည္။
စံအျဖစ္ေဖာ္ျပေလ့ရွိေသာ ဥပမာမွာ ရွာေဖြေရး၀က္ဘ္ဆိုက္မ်ား (Search Engines) တြင္ျဖစ္သည္။
  • အကယ္၍ တစ္စံုတစ္ေယာက္သည္ ရွာေဖြေရး၀က္ဘ္ဆိုက္တစ္ခုတြင္ ရွာေဖြလိုသည့္ စကားလံုးမ်ား ထည့္သြင္းသည့္အခါ
  • HTML မွ အထူးသေကၤတအခ်ဳိ႕ကို ထည့္သြင္းရွာေဖြလိုက္သည္ဆိုပါစို႕၊
  • ထိုအခါတြင္ ထိုသူ ထည့္သြင္းရွာေဖြလိုက္ေသာ စာေၾကာင္းမ်ားကို
    • ရရွိလာေသာ အေျဖမ်ားထဲတြင္ ျပန္လည္ထည့္သြင္း ေဖာ္ျပေပးျခင္း သို႕မဟုတ္
    • ရွာေနေသာ အေၾကာင္းအရာကို အလြယ္တကူ ျပန္လည္ျပင္ဆင္ႏိုင္ရန္အတြက္ ျပန္လည္ေဖာ္ျပေပးျခင္းမ်ုဳိးကို မျဖစ္မေနေဆာင္ရြက္ေပးရသည္။
  • အကယ္၍ ထည့္ေပးလိုက္ေသာ အသံုးအႏႈံးမ်ားအားလံုးတြင္ HTML အတြက္ အက်ဳံးမ၀င္ေသာ အခ်က္အလက္မ်ား ပါလာသည့္အခါ XSS ဂယ္ေပါက္ တစ္ခု ျဖစ္လာသည္။




အစပိုင္းတြင္ ဤျဖစ္ရပ္မွာ-
  • အင္တာနက္သံုးသူမ်ားအေနျဖင့္ မိမိ၏အင္တာနက္ၾကည့္ ေဆာ့ဖ္၀ဲအတြင္းရွိ စာမ်က္ႏွာမ်ားတြင္သာ သေကၤတမ်ား ျပန္လည္ထည့္သြင္းလိုက္သလိုမွ်သာ ျဖစ္ေနေသာေၾကာင့္
  • ဆိုးဆိုးရြားရြား ျပႆနာတစ္ရပ္အေနျဖင့္ ေပၚလာခဲ့ျခင္း မရွိေပ။
  • သို႕ရာတြင္ တိုက္ခိုက္မွဳလုပ္ေဆာင္လိုသူတစ္ဦးအေနျဖင့္ Social Engineering နည္းပညာအခ်ဳိ႕ကို အသံုးျပဳျပီး
    • အင္တာနက္သံုးသူတစ္ဦးထံသို႕
    • ၄င္းအတြက္ အလုပ္လုပ္ေပးမည့္ သေကၤတမ်ား ပါ၀င္ေနေသာ စာမ်က္ႏွာတစ္ခုထံသို႕ ေရာက္ရွိေစမည့္ အင္တာနက္လိပ္စာတစ္ခုကို ဖြင့္ၾကည့္မိေစရန္ စည္းရုံးသိမ္းသြင္း ႏိုင္ေစသည့္ အခြင့္အေရး ရရွိေစႏိုင္လာသည္။
(Social Engineering - မသိနားမလည္သူ၊ အင္တာနက္သံုးသူမ်ား၏ အားနည္းခ်က္ကို အခြင့္ေကာင္းယူျပီး ထိုသူမ်ားထံမွ အေရးၾကီးေသာ ကိုယ္ေရးအခ်က္အလက္မ်ား ေငြေၾကးဆိုင္ရာအခ်က္အလက္မ်ား လွည့္ပတ္ရယူျပီး အျမတ္ထုတ္ျခင္း - သီးျခားေဖာ္ျပပါမည္)

အားနည္းခ်က္ (၃)

အားနည္းခ်က္ (၃)ကို သိမ္းဆည္းထားေသာ (သို႕) အျမဲရွိေနေသာ (သို႕) ဒုတိယအဆင့္ ေပ်ာ႕ကြက္၊အားနည္းခ်က္ ဟု ေျပာေလ့ ရွိၾကသည္။ အစြမ္းအထက္ဆံုးေသာ တိုက္ခိုက္မႈအမ်ဳိးအစားမ်ား ျဖစ္ေပၚေစႏိုင္သည္။
ဥပမာတစ္ခု အေနျဖင့္
  • အင္တာနက္ေပၚရွိေနရာ (သို႕) ဆာဗာ (သို႕) ဖိုင္သိုေလွာင္သိမ္းဆည္းေရးစနစ္ တစ္ခုခု အတြင္းသို႕ အသံုးျပဳေနသူတစ္ဦးက (ပထမလူ-တိုက္ခိုက္သူူ) အခ်က္အလက္မ်ားကို ေပးပို႕ ထည့္သြင္းသိမ္းဆည္းလိုက္သည္။
  • ေနာက္တစ္ခ်ိန္တြင္ အျခားေသာ အသံုးျပဳသူတစ္ဦးက (ဒုတိယလူ-သားေကာင္) ၄င္းစာမ်က္ႏွာကို ဖြင့္ၾကည့္လိုက္မိသည့္အခါတြင္ တိုက္ခိုက္သူဆင္ထားေသာ ေထာင္ေခ်ာက္ထဲသို႕ ေရာက္ရွိသြားရေတာ႕သည္။
  • အထူး စံထားျပသႏိုင္သည့္ ဥပမာတစ္ရပ္မွာ Online Message Boards မ်ားျဖစ္သည္။
  • ၄င္းေနရာမ်ားသည္ အျခားေသာ ၾကည့္ရႈသူမ်ားဖတ္ရႈႏိုင္ရန္အတြက္ HTML သေကၤတမ်ားကို ထည့္သြင္းႏိုင္ရန္ လမ္းဖြင့္ေပးထားျခင္း ေၾကာင့္ျဖစ္သည္။
ဤအားနည္းခ်က္မ်ားမွာ အမ်ားအားျဖင့္ အျခားေသာအမ်ဳိးအစားမ်ားထက္ သိသိသာသာ အက်ဳိးသက္ေရာက္မႈျဖစ္ေစသည္။ အေၾကာင္းမွာ တိုက္ခိုက္သူတစ္ဦး အေနျဖင့္ သေကၤတ (Script) အခ်ဳိ႕ထည့္သြင္းေပးလိုက္ရုံသာ ျဖစ္ျပီး အျခားေသာ သားေကာင္ အေျမာက္အမ်ားကို တိုက္ခိုက္ႏိုင္ေသာေၾကာင့္ ျဖစ္ေပသည္။

သားေကာင္၏ ကြန္ပ်ဳတာမ်ားအတြင္းသို႕ သေကၤတမ်ား ထည့္သြင္းတိုက္ခိုက္ပံု နည္းစနစ္မ်ား (Methods of Injection) မွာ အမ်ဳိးမ်ဳိး ေျပာင္းလဲေနႏိုင္သည္။
  • တိုက္ခိုက္သူတစ္ဦးသည္ အထက္တြင္ေဖာ္ျပထားခဲ့ေသာ ေပ်ာ့ကြက္၊ ဟာကြက္မ်ား သားေကာင္၏ ကြန္ပ်ဳတာေပၚတြင္ ျဖစ္ေပၚလာေစရန္အတြက္ အင္တာနက္အသံုခ်ေဆာ့ဖ္၀ဲ (Web Application) တစ္ခုခုကို အသံုးျပဳရန္ လိုခ်င္မွ လိုမည္ျဖစ္သည္။
  • အင္တာနက္ အသံုးခ်ေဆာ့ဖ္၀ဲ (အီးေမးလ္ ၊ System log စသည့္) အရာတစ္ခုခုမွ လက္ခံရရွိလိုက္သည့္ (တိုက္ခိုက္သူတစ္ဦးမွ ထိန္းခ်ဳပ္ထားႏိုင္ေခ်ရွိေနေသာ) မည္သည့္ အခ်က္အလက္မဆိုသည္ အသက္၀င္ ေနေသာ စာမ်က္ႏွာတစ္ခုအျဖစ္ (Dynamic page) ျပန္လည္ေဖာ္ျပရမည့္ေနရာတြင္
  • ရွိသင့္ရွိထိုက္ေသာ သက္ဆိုင္ရာ သေကၤတမ်ားျဖင့္ အျပည့္အ၀ ပါရွိေနရမည္ ျဖစ္သည္။
  • အကယ္၍ ပါရွိမေနပါက ရလာဒ္အေနျဖင့္ XSS ဆိုင္ရာ ဂယ္ေပါက္ တစ္ခု ျဖစ္ေပၚလာမည္ ျဖစ္ေပသည္။
အေျခအေနအမ်ဳိးမ်ဳိးေၾကာင့္ အခုေဖာ္ျပထားတာေတြကို အေတာ္ေလးအခ်ိန္ယူ ဘာသာျပန္လိုက္ရပါတယ္ ... နည္းပညာ တစ္ခုျဖစ္ေနတာေရာ ကိုယ္နဲ႕ေ၀းတဲ့ အေၾကာင္းအရာတစ္ခုျဖစ္ေနတာေၾကာင့္ေရာ အေတာ္ေလး ေခါင္းစားခဲ့ပါတယ္ ပညာလည္း အေတာ္ရလိုက္ပါတယ္ ... အခုေဖာ္ျပထားတာေတြက မျပည့္စံုေသးပါဘူး စာေၾကာင္းေတြက ရွည္ေနတဲ့ အတြက္ သည္းခံဖတ္ေပးေစခ်င္ပါတယ္ ... ေနာက္ထပ္ ဆက္ျပီး ဘယ္လို အတိုက္ခိုက္ခံရႏိုင္တာလဲ ... ဘယ္လို အကာအကြယ္ေတြ လုပ္မလဲ ဆိုတာေတြကို နမူနာေတြ ရုပ္ရွင္ေတြနဲ႕ ရွာေဖြ ေဖာ္ျပသြားမွာပါ ....

ဆက္လက္ေဖာ္ျပပါမည္ ....