SQLite-də zəifliklərdən istifadə etmək üçün yeni texnika təqdim edilib

Check Point-dən tədqiqatçılar üstü açılmışdır DEF CON konfransında, SQLite-in həssas versiyalarından istifadə edərək tətbiqlərə hücum üçün yeni texnikanın təfərrüatları. Check Point metodu verilənlər bazası fayllarını birbaşa istismar olunmayan müxtəlif daxili SQLite alt sistemlərində zəifliklərin istismarı ssenarilərini inteqrasiya etmək imkanı kimi nəzərdən keçirir. Tədqiqatçılar həmçinin ASLR-dən yan keçməyə imkan verən SQLite verilənlər bazasında SELECT sorğular zənciri şəklində ekspluiti kodlaşdırmaqla zəifliklərdən istifadə etmək üçün texnika hazırlayıblar.

Uğurlu hücum üçün hücuma məruz qalan proqramların verilənlər bazası fayllarını dəyişdirə bilmək lazımdır ki, bu da metodu SQLite verilənlər bazasından tranzit və daxiletmə məlumatlarının formatı kimi istifadə edən proqramlara edilən hücumlarla məhdudlaşdırır. Metod həmçinin mövcud yerli girişi genişləndirmək, məsələn, gizli arxa qapıları istifadə olunan proqramlara inteqrasiya etmək, həmçinin təhlükəsizlik tədqiqatçıları tərəfindən zərərli proqramları təhlil edərkən təhlükəsizlik mexanizmlərini yan keçmək üçün istifadə edilə bilər. Faylın dəyişdirilməsindən sonrakı əməliyyat tətbiqin dəyişdirilmiş verilənlər bazasındakı cədvələ qarşı ilk SELECT sorğusunu yerinə yetirdiyi anda həyata keçirilir.

Nümunə olaraq, ünvan kitabçasını açarkən iOS-da kodu işlətmək qabiliyyətini nümayiş etdirdik, “AddressBook.sqlitedb” verilənlər bazası olan fayl təklif olunan üsulla dəyişdirildi. Hücum fts3_tokenizer funksiyasında (CVE-2019-8602, göstərici ilə əlaqə saxlama qabiliyyəti), digəri ilə birlikdə aprel SQLite 2.28 yeniləməsində düzəldilmiş boşluqdan istifadə edib. zəiflik pəncərə funksiyalarının həyata keçirilməsində. Bundan əlavə, zərərli kodun əməliyyatı zamanı ələ keçirilən parolları özündə cəmləşdirən (tutulmuş parollar SQLite verilənlər bazası formasında ötürülüb) PHP-də yazılmış təcavüzkarın backend serverinə nəzarətin uzaqdan ələ keçirilməsi metodundan istifadə nümayiş etdirilib.

Hücum metodu SQLite mühərrikində yaddaşın pozulmasına səbəb olan ixtiyari problemlərdən istifadə etməyə imkan verən “Sorğu oğurlaması” və “Sorğu yönümlü proqramlaşdırma” iki texnikasının istifadəsinə əsaslanır. “Query Hijacking”in mahiyyəti verilənlər bazasının strukturunu müəyyən edən sqlite_master xidmət cədvəlində “sql” sahəsinin məzmununu əvəz etməkdir. Göstərilən sahədə verilənlər bazasındakı obyektlərin strukturunu təsvir etmək üçün istifadə edilən DDL (Data Definition Language) bloku var. Təsvir standart SQL sintaksisi ilə müəyyən edilir, yəni. “CREATE TABLE” konstruksiyası istifadə olunur,
verilənlər bazasının işə salınması prosesi zamanı (ilk işə salınma zamanı
sqlite3LocateTable yaddaşda cədvəllə əlaqəli daxili strukturlar yaratmaq üçün funksiyaları yerinə yetirir.

İdeya ondan ibarətdir ki, “CREATE TABLE” sözünün “CREATE VIEW” ilə əvəz edilməsi nəticəsində öz baxışınızı təyin etməklə verilənlər bazasına istənilən girişi idarə etmək mümkün olur. "CREATE VIEW" istifadə edərək, "SEÇ" əməliyyatı "CREATE TABLE" əvəzinə çağırılacaq və SQLite tərcüməçisinin müxtəlif hissələrinə daxil olmağa imkan verən cədvələ bağlıdır. Sonra, hücumun ən sadə üsulu, genişlənmə ilə ixtiyari bir kitabxana yükləməyə imkan verən “load_extension” funksiyasını çağırmaq olardı, lakin bu funksiya standart olaraq qeyri-aktivdir.

“SEÇ” əməliyyatını yerinə yetirmək mümkün olduqda hücumu həyata keçirmək üçün “Sorğu yönümlü proqramlaşdırma” texnikası təklif olunur ki, bu da SQLite-də yaddaşın pozulmasına səbəb olan problemlərdən istifadə etməyə imkan verir. Texnika qayıdış yönümlü proqramlaşdırmanı xatırladır (ROP, Qayıdış yönümlü Proqramlaşdırma), lakin zənglər zənciri (“qadcetlər”) yaratmaq üçün maşın kodunun mövcud olmayan parçalarından istifadə edir, lakin SELECT daxilində alt sorğular dəstinə daxil edir.

SQLite-də zəifliklərdən istifadə etmək üçün yeni texnika təqdim edilib

SQLite-də zəifliklərdən istifadə etmək üçün yeni texnika təqdim edilib

Mənbə: opennet.ru

Добавить комментарий