התגלתה טכניקה חדשה לניצול נקודות תורפה ב- SQLite

גרסאות פגיעות של SQLite

ل חוקרי צ'ק פוינט חשפו לאחרונה בכנס DEF עם הפרטים של טכניקה חדשה שהתגלתה, זה משמש עמ 'לתקוף יישומים המשתמשים בגרסאות פגיעות של SQLite.

השיטה צ'ק פוינט רואה בקבצי מסדי נתונים הזדמנות לשלב תרחישי ניצול פגיעות בתתי מערכות פנימיות של SQLite שאינן נגישות לניצול המצח. החוקרים פיתחו גם טכניקה לניצול נקודות תורפה עם קידוד ניצול בצורה של מחרוזת שאילתות SELECT במסד נתונים של SQLite, המאפשרת להימנע מ- ASLR.

על פגיעות

חוקרי צ'ק פוינט מפרטים זאת להתקפה מוצלחת, התוקף צריך להיות מסוגל לשנות את קבצי מסד הנתונים של היישומים המותקפים, המגבילה את שיטת התקיפה של יישומים המשתמשים במאגרי מידע SQLite כפורמט לנתוני מעבר וקלט.

אם כי הם גם חושפים כי ניתן להשתמש בשיטה גם להרחבת הגישה המקומית שכבר הושגה, למשל, לשילוב דלתות אחוריות נסתרות ביישומים המשמשים, כמו גם להימנע מחוקרי אבטחה בעת ניתוח תוכנות זדוניות.

הפעולה לאחר התחזות לקבצים מתבצעת בזמן שהיישום מבצע את בקשת ה- SELECT הראשונה לטבלה במסד הנתונים שהשתנה.

כדוגמה, הוכחה היכולת להפעיל קוד ב- iOS בעת פתיחת פנקס הכתובות, הקובץ עם מסד הנתונים «כתובת Book.sqlitedb»אשר שונתה בשיטה המוצעת.

להתקפה, נעשה שימוש בפגיעות בפונקציה fts3_tokenizer (CVE-2019-8602, היכולת לשנות את המצביע), קבוע בעדכון SQLite 2.28 באפריל, יחד עם פגיעות נוספת ביישום פונקציות החלון.

בנוסף, מדגים את השימוש בשיטה לתפיסת שלט רחוק של שרת backend מתוקפים הכתובים ב- PHP, אשר צובר סיסמאות יירוטות במהלך פעולת קוד זדוני (הסיסמאות היירוטות הועברו בצורה של מסד נתונים של SQLite).

שיטת ההתקפה מבוססת על שימוש בשתי טכניקות, חטיפת שאילתות ותכנות מונחה שאילתות, המאפשרות לנצל בעיות שרירותיות המובילות לשחיתות זיכרון במנוע ה- SQLite.

המהות של "חטיפת שאילתות" היא החלפת תוכן השדה "sql" בטבלת השירות sqlite_master המגדירה את מבנה מסד הנתונים. השדה שצוין מכיל את גוש DDL (Data Definition Language) המשמש לתיאור מבנה האובייקטים במסד הנתונים.

התיאור נקבע באמצעות תחביר SQL רגיל, כלומר. המבנה "CREATE TABLE", המתבצע במהלך אתחול מסד הנתונים (במהלך הביצוע הראשון של הפונקציה sqlite3LocateTable) משמש ליצירת מבנים פנימיים המשויכים לטבלה בזיכרון.

הרעיון הוא שכתוצאה מהחלפת "CREATE TABLE" ו- "CREATE VIEW, ניתן לשלוט בכל גישה למסד הנתונים באמצעות הגדרת תצוגתו.

מצד שני, באמצעות הפקודה "CREATE VIEW" מחוברת לשולחן פעולת "SELECT" שתיקרא במקום "CREATE TABLE" ותאפשר לתוקף לגשת לחלקים שונים של המתורגמן SQLite.

מלבד זאת, הדרך הקלה ביותר לתקוף תהיה לקרוא לפונקציה "load_extension", המאפשרת לתוקף להיות מסוגל לטעון ספרייה שרירותית עם הסיומת, אך פונקציה זו מושבתת כברירת מחדל.

כדי לבצע התקפה בתנאי היכולת לבצע פעולת SELECT הוצע טכניקת התכנות מונחה השאילתות המאפשרת ניצול בעיות ב- SQLite המובילות לשחיתות בזיכרון.

הטכניקה מזכירה את התכנות Return Oriented Programming (ROP), אך משתמשת בקטעי קוד מכונה שאינם קיימים, אך מוחדרת למערכת של שאילתות משנה בתוך SELECT לבניית שרשרת שיחות ("גאדג'טים").

מקור: https://threatpost.com/


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי על הנתונים: AB Internet Networks 2008 SL
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.