SQLite တလင် အာသနည်သချက်မျာသကို အသုံသချခဌင်သအတလက် နည်သလမ်သအသစ်တစ်ခုကို မိတ်ဆက်လိုက်ပါပဌီ။

Check Point မဟ သုတေသီမျာသ၊ အဖုံသလေသ DEF CON ကလန်ဖရင့်တလင်၊ အာသနည်သချက်ရဟိသော SQLite ဗာသရဟင်သမျာသကို အသုံသပဌု၍ အပလီကေသရဟင်သမျာသကို တိုက်ခိုက်ရန်အတလက် နည်သပညာအသစ်၏ အသေသစိတ်အချက်အလက်မျာသ။ Check Point နည်သလမ်သသည် ဒေတာဘေ့စ်ဖိုင်မျာသကို တိုက်ရိုက်အသုံသချ၍မရသော အမျိုသမျိုသသော အတလင်သပိုင်သ SQLite ခလဲစနစ်မျာသတလင် အာသနည်သချက်မျာသကို အသုံသချခဌင်သအတလက် ဒေတာဘေ့စ်ဖိုင်မျာသကို ပေါင်သစပ်ရန် အခလင့်အလမ်သအဖဌစ် သတ်မဟတ်သည်။ သုတေသီမျာသသည် ASLR ကိုကျော်လလဟာသနိုင်စေမည့် SQLite database ရဟိ SELECT queries ၏ကလင်သဆက်ပုံစံဖဌင့် exploit ကို encoding လုပ်ခဌင်သဖဌင့် အာသနည်သချက်မျာသကို အသုံသချခဌင်သအတလက် နည်သလမ်သတစ်ခုကိုလည်သ ပဌင်ဆင်ထာသပါသည်။

အောင်မဌင်သောတိုက်ခိုက်မဟုတစ်ခုအတလက်၊ SQLite ဒေတာဘေ့စ်ကို အကူသအပဌောင်သနဟင့် ဒေတာထည့်သလင်သမဟုပုံစံအဖဌစ် SQLite ဒေတာဘေ့စ်ကို အသုံသပဌုသည့် အပလီကေသရဟင်သမျာသအပေါ် တိုက်ခိုက်ခဌင်သနည်သလမ်သကို ကန့်သတ်ထာသသည့် တိုက်ခိုက်ခံရသော အပလီကေသရဟင်သမျာသ၏ ဒေတာဘေ့စ်ဖိုင်မျာသကို မလမ်သမံပဌင်ဆင်နိုင်ရန်လိုအပ်သည်။ ဥပမာအာသဖဌင့်၊ ရဟိပဌီသသာသ local access ကိုချဲ့ထလင်ရန် နည်သလမ်သကို အသုံသပဌုထာသသော အပလီကေသရဟင်သမျာသတလင် ဝဟက်ထာသသော backdoors မျာသကို ပေါင်သစပ်ရန်နဟင့် လုံခဌုံရေသသုတေသီမျာသက malware ကိုခလဲခဌမ်သစိတ်ဖဌာသည့်အခါ လုံခဌုံရေသယန္တရာသမျာသကို ကျော်လလဟာသရန် နည်သလမ်သကိုလည်သ အသုံသပဌုနိုင်သည်။ ဖိုင်အစာသထိုသခဌင်သကို လုပ်ဆောင်ပဌီသနောက် လုပ်ဆောင်ချက်ကို အပလီကေသရဟင်သသည် ပဌုပဌင်ထာသသောဒေတာဘေ့စ်ရဟိ ဇယာသတစ်ခုနဟင့် ဆန့်ကျင်သည့် ပထမဆုံသ SELECT မေသမဌန်သမဟုကို လုပ်ဆောင်သည်။

ဥပမာအနေဖဌင့်၊ ကျလန်ုပ်တို့သည် လိပ်စာစာအုပ်ကိုဖလင့်သောအခါတလင် iOS တလင် ကုဒ်ကိုလုပ်ဆောင်နိုင်မဟုကို ပဌသခဲ့ပဌီသ၊ “AddressBook.sqlitedb” ဒေတာဘေ့စ်ပါသောဖိုင်ကို အဆိုပဌုထာသသောနည်သလမ်သကို အသုံသပဌု၍ ပဌုပဌင်မလမ်သမံထာသသည်။ တိုက်ခိုက်မဟုသည် fts3_tokenizer function (CVE-2019-8602၊ pointer dereference capability)၊ ဧပဌီလ SQLite 2.28 အပ်ဒိတ်တလင် ပဌင်ဆင်ထာသသော အခဌာသအာသနည်သချက်တစ်ခုအာသ အသုံသပဌုခဲ့သည်။ အာသနည်သချက် window functions မျာသအကောင်အထည်ဖော်မဟုတလင်။ ထို့အပဌင်၊ တိုက်ခိုက်သူ၏ နောက်ခံဆာဗာအာသ PHP တလင် ရေသသာသထာသသော တိုက်ခိုက်သူ၏ နောက်ခံဆာဗာကို အဝေသမဟ သိမ်သယူရန် နည်သလမ်သကို အသုံသပဌုခဌင်သအာသ အန္တရာယ်ရဟိသော ကုဒ်မျာသ၏ လုပ်ဆောင်မဟုအတလင်သ ကဌာသဖဌတ်ခံရသော စကာသဝဟက်မျာသ စုဆောင်သခဌင်သ (ကဌာသဖဌတ်ခံရသော စကာသဝဟက်မျာသကို SQLite ဒေတာဘေ့စ်ပုံစံဖဌင့် ထုတ်လလဟင့်ခဲ့သည်) ကို သရုပ်ပဌခဲ့သည်။

တိုက်ခိုက်မဟုနည်သလမ်သသည် SQLite အင်ဂျင်တလင် မဟတ်ဉာဏ်ယိုယလင်သမဟုဖဌစ်စေသော မတရာသသောပဌဿနာမျာသကို အသုံသချခဌင်သခလင့်ပဌုသည့် “Query Hijacking” နဟင့် “Query Oriented Programming” နည်သစနစ်နဟစ်ခုကို အသုံသပဌုမဟုအပေါ် အခဌေခံထာသသည်။ “Query Hijacking” ၏ အနဟစ်သာရမဟာ ဒေတာဘေ့စ်၏ ဖလဲ့စည်သပုံကို ဆုံသဖဌတ်ပေသသည့် sqlite_master ဝန်ဆောင်မဟုဇယာသရဟိ “sql” အကလက်၏ အကဌောင်သအရာမျာသကို အစာသထိုသရန် ဖဌစ်သည်။ သတ်မဟတ်ထာသသော အကလက်တလင် ဒေတာဘေ့စ်ရဟိ အရာဝတ္ထုမျာသ၏ တည်ဆောက်ပုံကို ဖော်ပဌရန်အတလက် အသုံသပဌုသည့် DDL (Data Definition Language) ဘလောက်တစ်ခု ပါရဟိသည်။ ဖော်ပဌချက်အာသ standard SQL syntax, i.e. "CREATE TABLE" တည်ဆောက်မဟုကို အသုံသပဌုပဌီသ၊
ဒေတာဘေ့စ်အစပဌုခဌင်သလုပ်ငန်သစဉ်အတလင်သ လုပ်ဆောင်သည် (ပထမညသစလာစတင်ချိန်အတလင်သ
sqlite3LocateTable လုပ်ဆောင်ချက်မျာသကို မဟတ်ဉာဏ်တလင် ဇယာသနဟင့်ဆက်စပ်သော အတလင်သပိုင်သတည်ဆောက်ပုံမျာသ ဖန်တီသရန်။

အယူအဆမဟာ "CREATE TABLE" ကို "CREATE VIEW" ဖဌင့် အစာသထိုသခဌင်သကဌောင့်၊ သင်၏ကိုယ်ပိုင်အမဌင်ကို သတ်မဟတ်ခဌင်သဖဌင့် ဒေတာဘေ့စ်သို့ဝင်ရောက်ခလင့်မဟန်သမျဟကို ထိန်သချုပ်နိုင်မည်ဖဌစ်သည်။ "CREATE VIEW" ကိုအသုံသပဌုခဌင်သဖဌင့် "SELECT" လုပ်ဆောင်ချက်သည် "CREATE TABLE" အစာသ "CREATE TABLE" ဟုခေါ်ဆိုမည့် ဇယာသနဟင့် SQLite စကာသပဌန်၏ မတူညီသော အစိတ်အပိုင်သမျာသကို ဝင်ရောက်ကဌည့်ရဟုနိုင်မည်ဖဌစ်သည်။ ထို့နောက်၊ တိုက်ခိုက်ရန် အရိုသရဟင်သဆုံသနည်သလမ်သမဟာ သင့်အာသ တိုသချဲ့မဟုတစ်ခုဖဌင့် မတရာသသောစာကဌည့်တိုက်တစ်ခုကို တင်နိုင်စေသည့် “load_extension” လုပ်ဆောင်ချက်ကို ခေါ်ရန်ဖဌစ်ပဌီသ ကလုပ်ဆောင်ချက်ကို မူရင်သအတိုင်သ ပိတ်ထာသသည်။

“SELECT” လုပ်ဆောင်ချက်ကို လုပ်ဆောင်ရန် ဖဌစ်နိုင်သည့်အခါ တိုက်ခိုက်ခဌင်သအာသ လုပ်ဆောင်ရန်၊ “Query Oriented Programming” နည်သပညာကို အဆိုပဌုထာသပဌီသ၊ မဟတ်ဉာဏ်ယိုယလင်သမဟုဖဌစ်စေသော SQLite တလင် ပဌဿနာမျာသကို အသုံသချနိုင်စေသည့် အဆိုပဌုထာသသည်။ အဆိုပါနည်သပညာသည် return-oriented programming ကိုအမဟတ်ရနေသည် (R.O.P.၊ Return-Oriented Programming) ၊ သို့သော် ဖုန်သခေါ်ဆိုမဟု ကလင်သဆက်မျာသ (“ဂက်ဂျက်မျာသ”) ကို တည်ဆောက်ရန် ရဟိပဌီသသာသ စက်ကုဒ်အတိုအထလာမျာသကို အသုံသမပဌုဘဲ SELECT အတလင်သတလင် အသေသစိပ်မေသမဌန်သချက် အစုတစ်ခုတလင် ထည့်သလင်သပါသည်။

SQLite တလင် အာသနည်သချက်မျာသကို အသုံသချခဌင်သအတလက် နည်သလမ်သအသစ်တစ်ခုကို မိတ်ဆက်လိုက်ပါပဌီ။

SQLite တလင် အာသနည်သချက်မျာသကို အသုံသချခဌင်သအတလက် နည်သလမ်သအသစ်တစ်ခုကို မိတ်ဆက်လိုက်ပါပဌီ။

source: opennet.ru

မဟတ်ချက် Add