Nova tekniko por ekspluati vundeblecojn en SQLite estis lanĉita.

Esploristoj de Check Point malkovrita ĉe la DEF CON-konferenco, detaloj pri nova tekniko por ataki aplikojn uzante vundeblajn versiojn de SQLite. La Check Point-metodo konsideras datumbazdosierojn kiel ŝancon integri scenarojn por ekspluatado de vundeblecoj en diversaj internaj SQLite-subsistemoj kiuj ne estas rekte ekspluateblaj. Esploristoj ankaŭ preparis teknikon por ekspluati vundeblecojn kodante la ekspluatadon en la formo de ĉeno de SELECT-demandoj en la datumbazo SQLite, kiu permesas vin preteriri ASLR.

Por sukcesa atako, necesas povi modifi la datumbazajn dosierojn de la atakitaj aplikoj, kio limigas la metodon al atakoj kontraŭ aplikoj, kiuj uzas la datumbazon SQLite kiel formaton por trafiko kaj enigo de datumoj. La metodo ankaŭ povas esti uzita por vastigi ekzistantan lokan aliron, ekzemple, por integri kaŝitajn malantaŭajn pordojn en uzitajn aplikojn, same kiel por preteriri sekurecmekanismojn dum analizado de malware de esploristoj pri sekureco. Operacio post anstataŭigo de dosieroj okazas en la momento, kiam la aplikaĵo efektivigas la unuan SELECT-demandon kontraŭ tabelo en la modifita datumbazo.

Ekzemple, ni pruvis la kapablon ruli kodon en iOS malfermante adreslibron, la dosiero kun la datumbazo "AddressBook.sqlitedb" estis modifita per la proponita metodo. La atako uzis vundeblecon en la funkcio fts3_tokenizer (CVE-2019-8602, montrila dereferenca kapablo), fiksita en la ĝisdatigo de aprilo SQLite 2.28, kune kun alia. vundebleco en la efektivigo de fenestrofunkcioj. Krome, la uzo de la metodo por malproksime kapti kontrolon de la backend servilo de atakanto skribita en PHP, kiu amasigas pasvortojn kaptitajn dum funkciado de malica kodo (la kaptitaj pasvortoj estis transdonitaj en la formo de SQLite datumbazo), estis pruvita.

La atakmetodo baziĝas sur la uzo de du teknikoj "Query Hijacking" kaj "Query Oriented Programming", kiuj permesas ekspluati arbitrajn problemojn kiuj kondukas al memorkorupto en la SQLite-motoro. La esenco de "Query Hijacking" estas anstataŭigi la enhavon de la kampo "sql" en la sqlite_master servotabelo, kiu determinas la strukturon de la datumbazo. La specifita kampo enhavas DDL (Data Definition Language) bloko uzata por priskribi la strukturon de objektoj en la datumbazo. La priskribo estas precizigita per norma SQL-sintakso, t.e. la konstruo "CREATE TABLE" estas uzata,
kiu estas efektivigita dum la datumbaza inicialigprocezo (dum la unua lanĉo
sqlite3LocateTable funkcias por krei tabel-rilatajn internajn strukturojn en memoro.

La ideo estas, ke, kiel rezulto de anstataŭigo de "KREI TABLON" per "KREI VIDON", fariĝas eble kontroli ajnan aliron al la datumbazo difinante vian propran vidon. Uzante "CREATE VIEW" operacio "SELECT" estas ligita al la tabelo, kiu estos nomita anstataŭ "CREATE TABLE" kaj permesas vin aliri malsamajn partojn de la SQLite-interpretilo. Poste, la plej simpla metodo de atako estus voki la funkcion "load_extension", kiu ebligas al vi ŝargi arbitran bibliotekon kun etendaĵo, sed ĉi tiu funkcio estas malŝaltita defaŭlte.

Por fari atakon kiam eblas plenumi la operacion "SELECT", oni proponas la teknikon "Query Oriented Programming", kiu ebligas ekspluati problemojn en SQLite, kiuj kondukas al korupto de la memoro. La tekniko memorigas pri reven-orientita programado (ROP, Reven-Orientita Programado), sed uzas ne ekzistantajn fragmentojn de maŝinkodo por konstrui ĉenon de vokoj ("aparatoj"), sed enigas en aro de subdemandoj ene de SELECT.

Nova tekniko por ekspluati vundeblecojn en SQLite estis lanĉita.

Nova tekniko por ekspluati vundeblecojn en SQLite estis lanĉita.

fonto: opennet.ru

Aldoni komenton