Ný tækni til að nýta veikleika í SQLite hefur verið kynnt.

Vísindamenn frá Check Point afhjúpað á DEF CON ráðstefnunni, upplýsingar um nýja tækni til að ráðast á forrit sem nota viðkvæmar útgáfur af SQLite. Check Point aðferðin lítur á gagnagrunnsskrár sem tækifæri til að samþætta aðstæður til að nýta veikleika í ýmsum innri SQLite undirkerfum sem ekki er hægt að nýta beint. Vísindamenn hafa einnig útbúið tækni til að nýta sér veikleika með því að kóða hagnýtingu í formi keðju SELECT fyrirspurna í SQLite gagnagrunninum, sem gerir þér kleift að komast framhjá ASLR.

Fyrir árangursríka árás er nauðsynlegt að geta breytt gagnagrunnsskrám forritanna sem ráðist var á, sem takmarkar aðferðina við árásir á forrit sem nota SQLite gagnagrunninn sem snið fyrir flutnings- og inntaksgögn. Aðferðina er einnig hægt að nota til að auka núverandi staðbundinn aðgang, til dæmis til að samþætta faldar bakdyr í notuðum forritum, sem og til að komast framhjá öryggisaðferðum við greiningu á spilliforritum af öryggisrannsakendum. Aðgerð eftir skráaskipti er framkvæmd á því augnabliki sem forritið keyrir fyrstu SELECT fyrirspurnina gegn töflu í breytta gagnagrunninum.

Sem dæmi sýndum við fram á getu til að keyra kóða í iOS þegar vistfangaskrá var opnuð, skránni með „AddressBook.sqlitedb“ gagnagrunninum var breytt með fyrirhugaðri aðferð. Árásin notaði varnarleysi í fts3_tokenizer aðgerðinni (CVE-2019-8602, benditilvísunarmöguleiki), lagfærður í SQLite 2.28 uppfærslu í apríl, ásamt annarri varnarleysi við innleiðingu gluggaaðgerða. Að auki var sýnt fram á notkun aðferðar til að ná fjarstýringu á bakendaþjóni árásaraðila sem er skrifaður í PHP, sem safnar upp lykilorðum sem hlerað er við notkun illgjarns kóða (lykilorðin sem stöðvuð voru voru send í formi SQLite gagnagrunns).

Árásaraðferðin er byggð á notkun tveggja aðferða „Query Hijacking“ og „Query Oriented Programming“, sem gerir kleift að nýta handahófskennd vandamál sem leiða til minnisspillingar í SQLite vélinni. Kjarninn í „Query Hijacking“ er að skipta um innihald „sql“ reitsins í sqlite_master þjónustutöflunni, sem ákvarðar uppbyggingu gagnagrunnsins. Tilgreindur reitur inniheldur DDL (Data Definition Language) blokk sem notaður er til að lýsa uppbyggingu hluta í gagnagrunninum. Lýsingin er tilgreind með stöðluðu SQL setningafræði, þ.e. „CREATE TABLE“ smíðin er notuð,
sem er keyrt meðan á frumstillingarferli gagnagrunnsins stendur (við fyrstu ræsingu
sqlite3LocateTable aðgerðir til að búa til töflutengda innri uppbyggingu í minni.

Hugmyndin er sú að vegna þess að skipta út „CREATE TABLE“ fyrir „CREATE VIEW“ verður hægt að stjórna hvaða aðgangi sem er að gagnagrunninum með því að skilgreina eigin sýn. Með því að nota "CREATE VIEW" er "SELECT" aðgerð bundin við töfluna, sem verður kölluð í stað "CREATE TABLE" og gerir þér kleift að fá aðgang að mismunandi hlutum SQLite túlksins. Næst er einfaldasta árásaraðferðin að kalla á „load_extension“ aðgerðina, sem gerir þér kleift að hlaða handahófskenndu bókasafni með viðbót, en þessi aðgerð er sjálfgefið óvirk.

Til að framkvæma árás þegar hægt er að framkvæma „SELECT“ aðgerðina er lögð til „Query Oriented Programming“ tækni, sem gerir það mögulegt að nýta vandamál í SQLite sem leiða til minnisspillingar. Tæknin minnir á endurkomumiðaða forritun (ROP, Return-Oriented Programming), en notar ekki núverandi búta af vélkóða til að byggja upp keðju af símtölum („græjur“), en setur inn í sett af undirfyrirspurnum inni í SELECT.

Ný tækni til að nýta veikleika í SQLite hefur verið kynnt.

Ný tækni til að nýta veikleika í SQLite hefur verið kynnt.

Heimild: opennet.ru

Bæta við athugasemd