זמן בדיקה עד זמן השימוש

מתוך ויקיפדיה, האנציקלופדיה החופשית


שגיאות פרמטריות בתבנית:מקורות

פרמטרי חובה [ נושא ] חסרים

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

זמן בדיקה לזמן שימושאנגלית: Time-of-check to time-of-use ובראשי תיבות TOCTOU) היא מחלקה של באגים בתוכנה, הנגרמים על ידי מרוץ תהליכים וקשורים בבדיקת מצב חלקי המערכת (כמו פרטי אבטחה) ובשימוש בבדיקות אלה.

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

דוגמאות[עריכת קוד מקור | עריכה]

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

if (access("file", W_OK) != 0) {
 exit(1);
}

fd = open("file", O_WRONLY);
write(fd, buffer, sizeof(buffer));

מרוץ התהליכים הזה הוא פגיעה להתקפה הבא:

//
// After the access check
symlink("/etc/passwd", "file");
// Before the open, "file" points to the password database
//
//

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

TOCTOU יכולים לשמש להסלמת הרשאות, כדי לקבל גישה מנהלתית למכונה.

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

תזמון אמין של TOCTOU[עריכת קוד מקור | עריכה]

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

מניעת והסרת TOCTOU[עריכת קוד מקור | עריכה]

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

ראו גם[עריכת קוד מקור | עריכה]