SQLite-n ahuleziak ustiatzeko teknika berri bat sartu da.

Check Pointeko ikertzaileak estali gabe DEF CON konferentzian, SQLite-ren bertsio zaurgarriak erabiliz aplikazioei erasotzeko teknika berri baten xehetasunak. Check Point metodoak datu-basearen fitxategiak aukera gisa hartzen ditu zuzenean ustiagarriak ez diren hainbat barneko SQLite azpisistematan ahuleziak ustiatzeko eszenatokiak integratzeko. Ikertzaileek ahuleziak ustiatzeko teknika bat ere prestatu dute SQLite datu-basean SELECT kontsulta-kate baten moduan ustiaketa kodetuz, ASLR saihesteko aukera ematen duena.

Eraso arrakastatsua izateko, beharrezkoa da erasotutako aplikazioen datu base-fitxategiak aldatu ahal izatea, eta horrek metodoa SQLite datu-basea igarotzeko eta sarrerako datuetarako formatu gisa erabiltzen duten aplikazioen aurkako erasoetara mugatzen du. Metodoa lehendik dagoen tokiko sarbidea zabaltzeko ere erabil daiteke, adibidez, ezkutuko atzeko ateak erabilitako aplikazioetan integratzeko, baita segurtasun-mekanismoak saihesteko segurtasun-ikertzaileek malwarea aztertzerakoan. Fitxategien ordezkapenaren ondorengo eragiketa aplikazioak lehen SELECT kontsulta exekutatzen duen unean egiten da aldatutako datu-baseko taula baten aurka.

Adibide gisa, iOS-en kodea exekutatzeko gaitasuna erakutsi genuen helbide-liburua irekitzean, "AddressBook.sqlitedb" datu-basea duen fitxategia proposatutako metodoa erabiliz aldatu zen. Erasoak fts3_tokenizer funtzioan ahultasun bat erabili zuen (CVE-2019-8602, erakuslearen deserreferentzia gaitasuna), apirileko SQLite 2.28 eguneratzean konpondutako beste batekin batera. zaurgarritasuna leiho funtzioen ezarpenean. Horrez gain, PHPn idatzitako erasotzaile baten backend zerbitzariaren kontrola urrunetik kontrolatzeko metodo baten erabilera frogatu zen, kode gaiztoaren funtzionamenduan zehar atzemandako pasahitzak pilatzen dituena (atzemandako pasahitzak SQLite datu-base moduan transmititu ziren).

Eraso-metodoa "Kontsulta bahiketa" eta "Kontsulta-Orientatutako Programazioa" bi tekniken erabileran oinarritzen da, SQLite motorean memoria usteltzen duten arazo arbitrarioak ustiatzeko aukera ematen dutenak. "Kontsulta bahiketa"-ren funtsa datu-basearen egitura zehazten duen sqlite_master zerbitzu-taulan "sql" eremuaren edukia ordezkatzea da. Zehaztutako eremuak datu-baseko objektuen egitura deskribatzeko erabiltzen den DDL (Data Definition Language) bloke bat dauka. Deskribapena SQL sintaxi estandarra erabiliz zehazten da, hau da. "SORTU TAULA" eraikuntza erabiltzen da,
datu-basearen hasierako prozesuan exekutatzen dena (lehen abiaraztean
sqlite3LocateTable funtzioak memorian taularekin lotutako barne egiturak sortzeko.

Ideia da, "SORTU TAULA" "SORTU IKUSPEGIA"rekin ordezkatzearen ondorioz, datu-baserako edozein sarbide kontrolatzea posible dela zure ikuspegia zehaztuz. "SORTU IKUSPEGIA" erabiliz "SELECT" eragiketa bat lotzen zaio taulari, "SORTU TAULA"ren ordez deituko dena eta SQLite interpretearen atal ezberdinetara sartzeko aukera ematen du. Ondoren, eraso-metodorik errazena "load_extension" funtzioari deitzea izango litzateke, liburutegi arbitrario bat luzapen batekin kargatzeko aukera ematen duena, baina funtzio hau lehenespenez desgaituta dago.

β€œSELECT” eragiketa egitea posible denean eraso bat egiteko, β€œConsulta Orientada ProgramaciΓ³n” teknika proposatzen da, memoriaren ustelkeria dakarten SQLite-n arazoak baliatzea ahalbidetzen duena. Teknikak itzulera bideratutako programazioa gogorarazten du (ROP, Itzultzera zuzendutako programazioa), baina existitzen ez diren makina-kode zatiak erabiltzen ditu dei-kate bat ("gadgets") eraikitzeko, baina SELECT barruan azpikontsulta multzo batean txertatzen du.

SQLite-n ahuleziak ustiatzeko teknika berri bat sartu da.

SQLite-n ahuleziak ustiatzeko teknika berri bat sartu da.

Iturria: opennet.ru

Gehitu iruzkin berria