חוקרי סיסקו טאלוס שחררו לפני כמה ימים פגיעות בליבת הלינוקס שניתן לנצל אותה לגניבת נתונים ומשמשים גם אמצעי להסלמת הרשאות ולפשרה במערכת.
פגיעות מתואר כ"פגיעות של גילוי מידע מה שיכול לאפשר לתוקף לראות את זיכרון מחסנית הליבה. '
CVE-2020-28588 היא הפגיעות ש התגלה במכשירי ARM פונקציונליות proc / pid / syscall מכשירי 32 סיביות המריצים את מערכת ההפעלה. לפי סיסקו טלוס, הבעיה התגלתה לראשונה במכשיר בו פועל Azure Sphere.
פגיעות של גילוי מידע קיימת בפונקציונליות / proc / pid / syscall של Linux Kernel 5.1 Stable ו- 5.4.66. באופן ספציפי יותר, נושא זה הוצג ב- v5.1-rc4 (מתחייב 631b7abacd02b88f4b0795c08b54ad4fc3e7c7c0) והוא עדיין קיים ב- v5.10-rc4, ולכן סביר להניח שכל גרסאות הביניים יושפעו. תוקף יכול לקרוא / proc / pid / syscall כדי להפעיל את הפגיעות הזו, מה שגורם לליבה לאבד תוכן זיכרון.
Proc היא מערכת פסאודו-קבצים מיוחדת על מערכות הפעלה כמו יוניקס משמש לגישה דינמית לנתוני התהליך נמצא בגרעין. מציג מידע מעבד ומידע מערכת אחר במבנה היררכי, דמוי קבצים.
לדוגמא, הוא מכיל ספריות משנה / proc / [pid], שכל אחת מהן מכילה קבצים וספריות משנה החושפות מידע על תהליכים ספציפיים, הניתנות לקריאה באמצעות מזהה התהליך המתאים. במקרה של קובץ "syscall" זהו קובץ מערכת הפעלה לינוקס לגיטימי המכיל יומנים של שיחות המערכת בהן משתמש הליבה.
עבור החברה, אניהאקרים יכולים לנצל את הפגם ולגשת למערכת ההפעלה ולקובץ syscall באמצעות מערכת המשמשת לאינטראקציה בין מבני נתוני הליבה, Proc. ניתן לנצל את ערך ה- procscys של syscall אם האקרים מנפיקים פקודות ליצירת 24 בתים של זיכרון ערימה לא מאוזן, מה שמוביל לעקיפה של אקראיות של פריסת שטח הליבה (KASLR).
כשמסתכלים על הפונקציה הספציפית הזו, הכל נראה בסדר, אבל ראוי לציין שה-
args
פרמטר עבר הגיע מproc_pid_syscall
פונקציה וככזו היא למעשה מסוג__u64 args
. במערכת ARM, הגדרת הפונקציה ממירה את גודל ה-arg
מערך ברכיבי ארבעה בתים משמונה בתים (מאזunsigned long
ב- ARM זה 4 בתים), מה שמביא לכךmemcpy
מועתק ל -20 בתים (פלוס 4 עבורargs[0]
).באופן דומה, עבור i386, היכן
unsigned long
זה 4 בתים, פשוטargs
24 הבתים הראשונים של הטיעון נכתבים, ומשאירים את 24 הבתים הנותרים שלמים.בשני המקרים, אם נסתכל אחורה על ה-
proc_pid_syscall
פוּנקצִיָה.ואילו ב- 32 סיביות ARM ו- i386 אנו מעתיקים רק 24 בתים ב-
args
מערך, מחרוזת הפורמט קוראת בסופו של דבר 48 בתים של ה-args
מטריצה, מאז%llx
מחרוזת הפורמט היא שמונה בתים במערכות 32 סיביות ו -64 סיביות. כך שבסופו של דבר 24 בתים של זיכרון ערימה לא מאופשר מקבלים פלט, מה שעלול להוביל למעקף KASLR.
החוקרים קובעים זאת התקפה זו "בלתי אפשרית לזיהוי מרחוק ברשת" מכיוון שהוא קורא קובץ לגיטימי ממערכת ההפעלה לינוקס. "אם משתמשים בו נכון, האקר יכול לנצל את דליפת המידע הזו כדי לנצל בהצלחה פגיעות לינוקס אחרות שלא הוצגו", אומר סיסקו.
בהקשר זה, גוגל אמרה לאחרונה:
"ליקויי אבטחה בזיכרון מאיימים לרוב על אבטחת המכשירים, בייחוד אפליקציות ומערכות הפעלה. לדוגמא, במערכת ההפעלה הניידת אנדרואיד הנתמכת גם על ידי ליבת לינוקס, גוגל אומרת שהיא מצאה כי יותר ממחצית פגיעות האבטחה שעליה טופלו בשנת 2019 היו תוצאה של באגים באבטחת זיכרון.
אחרון חביב מומלץ לעדכן את גרסאות 5.10-rc4, 5.4.66, 5.9.8 של ליבת לינוקס, מאז פגיעות זו נבדקה ואושרה על מנת שתוכל לנצל את הגרסאות הבאות של ליבת לינוקס.
בסופו של דבר אם אתה מעוניין לדעת יותר על כך על הפוסט, אתה יכול לבדוק את הפרטים ב הקישור הבא.