כלי ODGen חדש חושף 180 ימים אפס בספריות Node.js מודיעין נתונים PlatoBlockchain. חיפוש אנכי. איי.

כלי ODGen החדש חושף 180 אפס ימים בספריות Node.js

חוקרים מאוניברסיטת ג'ונס הופקינס חשפו לאחרונה 180 פגיעויות מדהימות של יום אפס על פני אלפי ספריות Node.js באמצעות כלי ניתוח קוד חדש שפיתחו במיוחד למטרה, הנקרא ODGen.

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

במאמר שפורסם ב-Usenix Security Symposium מוקדם יותר החודש, החוקרים של ג'ונס הופקינס - Song Li, Mingqing Kang, Jianwei Hou ו-Yinzhi Cao - תיארו את ODGen כחלופה טובה יותר לניתוח קוד עכשווי ומה שנקרא מבוסס שאילתות גרפים. גישות למציאת נקודות תורפה של Node.js.

גישות המבוססות על ניתוח תוכניות הוכיחו את עצמן כשימושיות בסיוע באיתור סוגי פגיעות בודדים כגון פגמים בהזרקת קוד ב-JavaScript. אבל לא ניתן להרחיב אותם בקלות כדי לזהות כל מיני פגיעויות שעשויות להיות בפלטפורמת Node.js, אמרו החוקרים. באופן דומה, שיטות ניתוח קוד מבוססות גרפים - שבהן הקוד מיוצג תחילה כגרף ולאחר מכן נשאל לגבי שגיאות קידוד ספציפיות - עובדות היטב בסביבות כמו C++ ו-PHP. עם זאת, גישות מבוססות גרפים אינן יעילות בכריית פגיעויות JavaScript בגלל השימוש הנרחב של שפת התכנות בתכונות דינמיות, הם ציינו.

גישה 'חדשנית' למציאת פגיעויות JavaScript

אז, החוקרים במקום זאת פיתחו את מה שהם תיארו בתור שיטה "חדשה" וטובה יותר בשם Object Dependence Graph (ODG) שיכול לשמש לאיתור נקודות תורפה של Node.js. הם הטמיעו את ODGen כדי ליצור "ODG" עבור תוכניות Node.js כדי לזהות נקודות תורפה, לדבריהם.

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

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

מגוון של באגים

כדי לראות אם הגישה שלהם עובדת, החוקרים בדקו לראשונה את ODGen מול מדגם של 330 נקודות תורפה שדווחו בעבר בחבילות Node.js במאגר מנהל החבילות של הצומת (npm). הבדיקה הראתה שהסורק מזהה נכון 302 מתוך 330 נקודות התורפה. בהתבסס על קצב הדיוק הגבוה יחסית, החוקרים הפעילו את ODGen מול כ-300,000 חבילות Java ב-npm. הסורק דיווח על סך של 2,964 נקודות תורפה אפשריות על פני החבילות. החוקרים בדקו 264 מהם - כולם עם יותר מ-1,000 הורדות בשבוע בממוצע - והצליחו לאשר 180 כנקודות תורפה לגיטימיות. 122 מהם היו ברמת האפליקציה, 15 היו בחבילות שיובאו על ידי יישומים או קוד אחרים, ו-XNUMX הנותרים היו בחבילות עקיפות.

מספר רב של (80) מהחולשות שאושרו ש-ODGen זיהה היו זרימות הזרקת פקודות המאפשרות לתוקפים לבצע קוד שרירותי ברמת מערכת ההפעלה באמצעות יישום פגיע. שלושים היו פגמים בחציית נתיב; 24 אפשרו שיבוש קוד, ו-19 כללו סוג מסוים של התקפת הזרקת פקודה שנקראת זיהום אב-טיפוס.

בול זמן:

עוד מ קריאה אפלה