+++++ Dear ….. Thank you for visiting our booth at the Myanmar Black Hacking. We hope you will have a good time and enjoyed your visit to Underground. In case we won't answer some of your questions about our Real Info, we encourage you to visit our website at www.myanmarblackhacking.com +++++ It will give you a good idea of what we can do for +++++

Mar 27, 2015

0 SQL Injection ရဲ့ လုပ္ေဆာင္ပံု




သင့္ system ရ့ဲ input validation မွာ security holes ေတြရိွခ့ရဲ င္database ကို arbitrary commands ေတြ run တဲ့အခ်ိန္မွာ SQL Injection Attack ျဖစ္ပြားႏုိင္ပါသည္။ ဥပမာ
statement = "SELECT * FROM `users` WHERE `name` = '" + userName + "';"
ထို sql statement သည္ users table ထဲမွ user ၏ အမည္ ကို ဆြဲထုတ္ရန္ျဖစ္သည္။ အကယ္၍ သင့္ရ့ဲ coding မွာ ေသခ်ာ မစီစစ္ထားတ့ဲ user input ေတြပါ တ့ဲ stored procedures (INSERT,UPDATE,DELETE, and then definition like CREATE TABLE, ALTER TABLE etc.) ေတြကို pass လုပ္ခြင့္ ေပးမယ္ ဆိုရင္လဲ SQL Injection Attack ျဖစ္ပြားႏုိင္ ပါသည္။
SQL Injection ဆိုသည္ မွာ Web Application နဲ့ခ်ိတ္ဆက္ထားေသာ user မ်ား၏ data မ်ားကို ထိခိုက္ေစႏုိင္ေသာ အဓိက thread တစ္ခု ျဖစ္ပါသည္။ထို attack ကို web page ႏွင့္ ဆက္စပ္အသုံးျပဳေသာ database ၾကားတြင္ ေႏွာင္႔ယွက္ႏုိင္ရန္ ျပဳ လုပ္ထားပါသည္။ အထူးသျဖင့္ ပုံမွန္မဟုတ္ေသာ code ေတြကို execute လုပ္ျခင္းျဖင့္ database ကို ဆိုးရြားစြာထိခိုက္ေစႏိုင္ပါသည္။ထို attack ဆက္တိုက္ျဖစ္ပြားပါက IT အဖြဲ ့အစည္း တစ္ခုလံုး သို့မဟုတ္ တစ္စိတ္တစ္ပိုင္း ေျပာင္းလဲသြားႏိုင္ပါသည္။ Attacker အမ်ားစုသည္ SQL မွေပးေသာ statement မ်ားေပၚတြင္ အေျခခံ DBMS ၏ additional features မ်ားထဲမွေကာင္းေသာအခ်က္အလက္ မ်ားကိုသံုး၍ attack လုပ္ၾကသည္။ ဥပမာ
UPDATE table_name SET column1=value, column2=value2,..WHERE
some_column=some_value
ထို statement သည္ database ထဲမွ data မ်ားကို update လုပ္ရာတြင္ အရိုးရွင္း ဆုံးျဖစ္သည္။ထို အခ်က္မ်ားကိုအသံုးျပဳ၍ attacker မ်ားသည္ database ထဲရွိ data မ်ားကို လြဲမွားေအာင္ ျပဳလုပ္ၾကသည္။ ဥပမာ
"UPDATE users_table SET pwd=’$pwd’ WHERE uid=’$uid’;";
ထုိ $uid ကို malicious sql code မ်ားျဖင့္ ေပါင္းစပ္၍ ေရးလိုက္ေသာအခါ UPDATE usertable SET pwd=‘…’ WHERE uid=” or uid like ‘%admin%’; Attacker သည္ administrator ၏ permission ရရွိ သြားပါ သည္။ တစ္ခ်ိဳ႔အေျခအေန မ်ားတြင္ database server ကိုထိုးေဖာက္ ၍operating system ထဲသို႔ ၀င္ေရာက္ ႏုိင္ပါသည္။
SQL injections တိုက္ခိုက္ခံရမွဳ ေၾကာင့္ အခ်က္အလက္မ်ား၏ လ်ိဳ ႔၀ွက္မွဳမ်ား ေပါက္ၾကားျခင္း ႏွင့္ ယံုၾကည္စိတ္ခ်ရမွဳ ေပ်ာက္ဆံုးျခင္းမ်ားကို ျဖစ္ေပၚေစသည္။ ထို႕ ေၾကာင့္ web developer မ်ားကထိေရာက္စြာကာကြယ္ရန္ လုိအပ္ပါသည္။ ထိုSQL Injection Attacks ကာကြယ္မွဳဟာ အဖြဲ႕ အစည္းမ်ားရဲ႕ အဓိကအာရံုစိုက္ခံခဲ႕ရသည္။ အဘယ္ေၾကာင့္ဆိုေသာ္ ထိုကာကြယ္မွဳဟာ public web or application sever ေတြကိုတိုက္ခိုက္ေနေသာအႏၱရာယ္ေတြကို ကာကြယ္နိုင္ေသာေၾကာင့္ျဖစ္သည္။ အမ်ိဳးမ်ိဳးေသာထိေရာက္တဲ႕ကာကြယ္မွဳမ်ားေပၚထြက္လာေသာ္လည္း SQL injections ကာကြယ္မွဳဟာ အဓိကေနရာမွာ ရွိေနဆဲ ျဖစ္ပါသည္။ စုံစမ္းသိရွိရျခင္း
Web Server ၏ ပုံမွန္မွတ္တမ္း ထည့္သြင္းထားသည့္ အေၾကာင္းအရာ မ်ားႏွင့္ ကြန္ယက္ပိုင္နက္က်ဴးလြန္ျခင္းမ်ားကို စုံစမ္းရရွိသည့္ စနစ္ႏွစ္ခုကို ေပါင္းျခင္းျဖင့္ SQL Injection Attack မ်ားကို သိရွိႏိုင္ပါသည္။ သင္သည္ web server တစ္ခု run ထားလွ်င္ ထိုserver မွ ပုံမွန္ထည့္သြင္းထားသည့္ အေၾကာင္းအရာမ်ားကို အခ်ိန္အပိုင္းအျခား အလိုက္ ျပန္လည္ၾကည့္ရွဳ နုိင္ပါသည္။ ေျမာက္ျမားစြာေသာ software tool မ်ားသည္ web server ရွိ log မ်ားကို သတ္မွတ္ေပးေသာ စကားစုမ်ားအတိုင္း သို႔မဟုတ္ ပုံမွန္ေဖာ္ျပခ်က္မ်ားျဖင့္ လွ်င္ျမန္စြာရွာေဖြႏုိင္ရန္ အကူအညီေပးပါသည္။”EXEC”,”POST”,”UNION”,”CAST” (သို႔) single quotation mark မ်ားျဖင့္ရွာေဖြျခင္းမ်ားကို ပုံမွန္ရွာေဖြမွဳမ်ားသည္ အသုံးျပဳသူမ်ားကို မေထာက္ပံ့ႏုိင္ပါ။ ထိုေၾကာင့္ specific tool မ်ားကို အသုံးျပဳရန္ log မ်ားကို ေလ့လာသင့္ပါသည္။SQL injection attack မ်ားကို အားလုံးနီးပါး စံုစမ္းသိရွိရန္မွာ မ်ားစြာခက္ခဲပါသည္။
Attacker မ်ားသည္ web server ၏ log မ်ား network ၏ အဓိကေနရာတြင္ ထားရိွေသာ IDS မ်ားကဲ့သို့ ကာကြယ္ သည့္ နည္းလမ္းမ်ားကို ေရွာင္ရွား၍ လြတ္ေျမာက္ေအာင္ လုပ္ေဆာင္ႏုိင္ပါသည္။ထို႔ေၾကာင့္ SQL Injection Attack မ်ားကိုစုံစမ္းသိရွိႏုိင္ရန္ system၏ log ကိုသာ အျပည့္အ၀ မယုံၾကည္သင့္ပါ။ Admin ၏ အေတြ ့အၾကံဳႏွင့္ system ကေပးေသာ အခ်က္ အလက္မ်ားေပၚ မူတည္၍ လုပ္ေဆာင္ျခင္းကသာ အေကာင္းဆုံးျဖစ္ပါသည္။


မွတ္ခ်က္။ ။SQL Injection Attack ကာကြယ္နည္းမ်ားကို ဆက္လက္ ေဖာ္ျပေပးသြားပါမည္။ 


RF - http://www.mmcert.org.mm/sql_injection%28tm%29.php

0 comments:

Post a Comment