Chèchè soti nan Check Point
Pou yon atak siksè, li nesesè pou kapab modifye dosye yo baz done nan aplikasyon yo atake, ki limite metòd la nan atak sou aplikasyon ki itilize baz done a SQLite kòm yon fòma pou transpò ak done antre. Metòd la ka itilize tou pou elaji aksè lokal ki egziste deja, pou egzanp, entegre pòt kache nan aplikasyon yo itilize, osi byen ke kontoune mekanis sekirite lè analize malveyan pa chèchè sekirite yo. Operasyon apre sibstitisyon fichye fèt nan moman aplikasyon an egzekite premye rechèch SELECT la kont yon tab nan baz done modifye a.
Kòm yon egzanp, nou demontre kapasite nan kouri kòd nan iOS lè louvri yon liv adrès, yo te modifye dosye a ak baz done "AddressBook.sqlitedb" lè l sèvi avèk metòd yo pwopoze a. Atak la te itilize yon vilnerabilite nan fonksyon fts3_tokenizer (CVE-2019-8602, kapasite dereference pointer), fiks nan aktyalizasyon avril SQLite 2.28 la, ansanm ak yon lòt.
Metòd atak la baze sou itilizasyon de teknik "Query Hijacking" ak "Query Oriented Programming", ki pèmèt eksplwate pwoblèm abitrè ki mennen nan koripsyon memwa nan motè SQLite a. Sans "Query Hijacking" se ranplase sa ki nan jaden "sql" nan tab sèvis sqlite_master, ki detèmine estrikti baz done a. Jaden ki espesifye a gen yon blòk DDL (Data Definition Language) ki itilize pou dekri estrikti objè ki nan baz done a. Deskripsyon an espesifye lè l sèvi avèk sentaks SQL estanda, i.e. konstriksyon "CREATE TABLE" yo itilize,
ki egzekite pandan pwosesis inisyalizasyon baz done a (pandan premye lansman an
sqlite3LocateTable fonksyon pou kreye estrikti entèn ki gen rapò ak tab nan memwa.
Lide a se ke, kòm yon rezilta nan ranplase "CREATE TABLE" ak "CREATE VIEW", li vin posib kontwole nenpòt aksè nan baz done a pa defini pwòp vi ou. Sèvi ak "CREATE VIEW" yon operasyon "SELECT" mare sou tab la, ki pral rele olye de "CREATE TABLE" epi pèmèt ou jwenn aksè nan diferan pati nan entèprèt SQLite la. Apre sa, metòd ki pi senp nan atak ta dwe rele fonksyon "load_extension", ki pèmèt ou chaje yon bibliyotèk abitrè ak yon ekstansyon, men fonksyon sa a enfim pa default.
Pou fè yon atak lè li posib pou fè operasyon "SELECT" la, yo pwopoze teknik "Query Oriented Programming", ki fè li posib pou eksplwate pwoblèm nan SQLite ki mennen nan koripsyon memwa. Teknik la raple pwogramasyon ki oryante pou retounen (
Sous: opennet.ru