out-of-tree v1.0.0 - כלים לפיתוח ובדיקת ניצולים ומודול ליבת לינוקס


out-of-tree v1.0.0 - כלים לפיתוח ובדיקת ניצולים ומודול ליבת לינוקס

הגרסה הראשונה (v1.0.0) של out-of-tree, ערכת כלים לפיתוח ובדיקת ניצולים ומודולי ליבת לינוקס, שוחררה.

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

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

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

להלן רשימה של שינויים מאז גרסה v0.2.

נוסף

  • הטמיע את היכולת להגביל את מספר הגרעינים שנוצרו (מחוץ לעץ ליבה) (בהתבסס על התיאור ב-.out-of-tree.toml) ולבדוק ריצות (מחוץ לעץ ספסל) באמצעות -max= פרמטר X.

  • פקודת genall חדשה, המאפשרת ליצור את כל הגרעינים עבור הפצה וגרסה ספציפית.

  • כל היומנים מאוחסנים כעת במסד הנתונים של sqlite3. הטמיע פקודות עבור שאילתות פשוטות הנחוצות לעתים קרובות, כמו גם ייצוא נתונים ל-json ול-markdown.

  • חישוב מיושם של ההסתברות לפעולה מוצלחת (בהתבסס על השקות קודמות).

  • יכולת לשמור תוצאות בנייה (פרמטר --dist חדש לפקודת ספסל מחוץ לעץ)

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

  • תמיכה בגרעיני צד שלישי.

  • סביבת ניפוי באגים מחוץ לעץ מחפשת כעת באופן אוטומטי סמלי איתור באגים במערכת המארחת.

  • נוספה את היכולת לנהל הפחתות אבטחה עם הפעלה/השבתה של דגלים KASLR, SMEP, SMAP ו-KPTI במהלך איתור באגים.

  • הוסיף את הפרמטר --threads=N לפקודת בדיקת pew out-of-tree, אשר ניתן להשתמש בה כדי לציין את מספר השרשורים שבהם לבנות/להפעיל ולבדוק ניצולים ומודולי ליבה.

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

  • נוספה את היכולת לציין את גרסת הקרנל מבלי להשתמש בביטויים רגולריים.

  • פקודת חבילה חדשה, המשמשת לבדיקות המוניות של ניצולים ומודול ליבה בספריות משנה.

  • בתצורה (.out-of-tree.toml) עבור מודול ה-exploit וה-kernel, נוספה היכולת להשבית את KASLR, SMEP, SMAP ו-KPTI, כמו גם לציין את המספר הנדרש של הליבות והזיכרון.

  • כעת תמונות (rootfs) נטענות אוטומטית בזמן ש-Kernel autogen פועל. כבר אין צורך באתחול.

  • תמיכה בליבת CentOS.

שינויים

  • כעת, אם אין תמונה (rootfs) לגרסה הנדרשת של ההפצה, Out-of-tree ינסה להשתמש בתמונה של הגרסה הקרובה ביותר. לדוגמה, תמונת אובונטו 18.04 עבור אובונטו 18.10.

  • כעת בדיקות עבור מודולי ליבה לא ייחשבו כשלים אם הם חסרים (ללא בדיקות - ללא שגיאות!).

  • כעת מחוץ לעץ יחזיר קוד שגיאה שלילי אם לפחות שלב אחד (בנייה, השקה או בדיקה) בכל אחת מהליבות נכשל.

  • הפרויקט עבר לשימוש במודולי Go, בנייה עם GO111MODULE=on מועדפת כעת.

  • נוספו בדיקות ברירת מחדל.

  • Test.sh ישמש כעת כברירת מחדל אם ה-assembly ב-${TARGET}_test אינו מיושם ב-Makefile.

  • יומן הליבה אינו נקה עוד לפני הפעלת מודול ליבה או ניצול. חלק מהניצולים משתמשים בדליפת בסיס ליבה ב-dmesg כדי לעקוף את KASLR, כך שניקוי עלול לשבור את ההיגיון המיושם של הניצול.

  • qemu/kvm משתמש כעת בכל היכולות של המעבד המארח.

הוסר

  • מפעל קרנל הוסר לחלוטין עקב יישום יצירת הליבה המבוססת על Dockerfiles המעודכנים בהדרגה.

  • bootstrap לא עושה שום דבר אחר. הפקודה תוסר במהדורה הבאה.

תוקן

  • ב-macOS, GNU coreutils כבר לא נדרש להפעלה.

  • קבצים זמניים הועברו ל-~/.out-of-tree/tmp/ עקב שגיאות הרכבה בתוך docker במערכות מסוימות.

מקור: linux.org.ru

הוספת תגובה