בפעם השנייה החודש, פרצת אבטחה חמורה מתגלה בקרנל של לינוקס והפעם היא משפיעה על כל גרסאותיו ב-8 השנים האחרונות.
בדר"כ כשמדברים על מערכות הפעלה מתעורר הויכוח איזו מהן הכי טובה, מהירה, יציבה אך בעיקר – בטוחה.
רוב המשתמשים הביתיים משתמשים במערכות ההפעלה של מיקרוסופט עקב ממשק המשתמש הגרפי הנוח. מולם עומדים משתמשי הלינוקס הטוענים (ובצדק) לעליונותן של ההפצות השונות של ה-Linux בתחומים רבים. יחד עם זאת, מוסכמה כללית היא שמערכות ההפעלה של מיקרוסופט נחותות מבחינה האבטחה. סטטיסטית, כמות הפרצות המתגלה בהן גדולה פי כמה מבמערכות ההפעלה המבוסססות על הקוד של לינוקס לאורך השנים.
מערכות ההפעלה של לינוקס חדרו לחיינו במגוון דרכים מגוונות ועל חלקן אף כתבנו לאחרונה. בין השאר גוגל הודיעה לאחרונה על פיתוח מערכת הפעלה Chrome OS המבוססת לינוקס, פוג'יקום הצטרפה לשאר היצרניות המשווקות את לינוקס כאחת ממערכות ההפעלה המגיעות עם המחשבים הניידים שלה ולאחרונה אף הושקה גרסה 9.04 של אובונטו, מערכת הפעלה עם ממשק גרפי מתקדם שהביאה את לינוקס להמונים.
יחד עם זאת, הפצות הלינוקס השונות לא כבשו את השוק כי בכל זאת, מול מכונת השיווק המשומנת של מיקרוסופט, יש ליצרניות הלינוקס עוד הרבה מה ללמוד. אל מול הדיבורים על כמה שמערכות חלונות הן פרוצות ומלאות באגים, עומדת לה בתדהמה העובדה הבאה: לפני זמן קצר התגלתה פרצה באבטחת ארכיטקטורת ה-Kernel (הליבה) של ה-Linux, בגרסאות 2.4 ו-2.6, שמאיימת לא רק על הפצה כזו או אחרת בגרסתה הנוכחית, אלא היא תקפה לרוב הפצות הלינוקס ב-8 השנים האחרונות (מאז שנת 2001).
הקרנל
בשביל להבין את מהות הבעיה, צריך מעט הקדמה על ה-Kernel (ליבה) של לינוקס: בליבת לינוקס, לכל סוקט יש מערך (struct) של מצביעים לפונקציות, הממשות פקודות שניתן לבצע על אותו הסוקט (bind וaccept למשל). אם יש פונקציה שלא ממומשת עבור סוג מסוים של סוקט, הקרנל מצפה שהמצביע יפנה לפונקציה סתומה (stub) כלשהי, על מנת שלא ייווצר מצב בו הפונקציה אינה ממומשת והמצביע יפנה ל-null. גם אם קרה המקרה, ופונקציה מסוימת מפנה ל-null, אין זה אומר כי תיווצר בעיה, מאחר ובמקרים רבים הקרנל מוודא את ערך המצביע לפני שהוא ניגש אל המקום בזכרון אליו מפנה המצביע.
במקרה שלנו, נתגלתה פונקציה (sock_sendpage) בקרנל שאיננה מוודאת את תקינות המצביעים אותם היא מקבלת, ולכן מסתמכת על אתחול נכון של אותו המערך עליו דובר קודם לכן. לאחר מחקר ובדיקה מעמיקה, נמצאו מספר פונקציות שאינן ממומשות, וכצפוי, גורמות לפעולה אשר נקראת null pointer dereference בקרנל, שמשמעותה היא הרצת קוד מ-page 0 בזיכרון. על מנת לנצל את הפרצה הזו, על המשתמש לשתול באותו איזור בזיכרון קוד זדוני ולגרום לקרנל לגשת לאותו הבאג, פעולות שהוכחו כפשוטות מאוד. מרגע זה ואילך, אותו הקוד ששתל המשתמש ירוץ תחת ההרשאות הגבוהות ביותר, ולמעשה יעניק למשתמש את היכולות לעשות ככל העולה על רוחו במערכת הפגיעה. פעולה כזו, של קבלת הרשאות גבוהות מהקיימות, נקראת local privilege escalation.
הפרצה משפיעה על רשימה ארוכה של פרוטוקולים, ביניהם: Appletalk, IPX, X.25, IRDA, Bluetooth, ISDN, AX25, SCTP via IPv6 ו-IUCV. היא מוגדרת כקריטית, בעיקר בגלל שיש הרבה דרכים לקבלshell על לינוקס (פרצותבשרתי web למשל) והרבה פחות דרכים לקבל הרשאות משתמש root (מקביל ל-Administrator ב-Windows), כך שברוב הפעמים, בשילוב עם באג נוסףשעוזר להשיג shell,לא נשאר הרבה לעשות. ישנן הפצות לינוקס כגון Linux SPLAT (ר"ת של Secure Platform) אשר חסינות מפני הפרצה כי ההרשאות ומרחב העבודה (Bash) שלהן תוגבר על ידי היצרנית, לאבטחה מוגברת.
הפרצה הנוכחית מצביעה ששום מערכת, מאובטחת ככל שתהיה, לא חסינה מפני נפלאות המח האנושי.
מוקדש לעידן נחום
עידן היה מתכנת מחונן עם מוח אנליטי מדהים ואחד ההאקרים המכובדים בישראל. מגיל 14 הוא נשם מחשבים ועוד בתקופה שלא ידעו בארץ מה זה לינוקס והאקינג, כבר היה מומחה בתחום. בשנת 2001 היה חלק מהצוות שיצר את ה-PaX הראשון ל-Windows. לאחר שירות בתחום אבטחת מידע ביחידת מחשבים מובחרת בצה"ל הוא עבד בענקיות אבטחת מידע בישראל והיה דמות מכובדת בקהילות הרלוונטיות בסצנה, תחת הכינוי tanin. עידן הלך לעולמו בטרם עת עקב החלטה לא נכונה שעלתה לו ביוקר, כאשר הוא בסה"כ בן 26. יהי זכרו ברוך.
תודה לעופר שרייבר על העזרה בהכנת הכתבה.
ל-dont
זה לא נכון כי ההבדל הקריטי הוא שווינדוז זה קוד סגור ולא פתוח. הרבה יותר קשה לעקוב אחר פירצות אבטחה בצורה הזו.
חוץ מזה, ווינדוז זו מערכת בטוח מאוד, אבל ברגע ש-95% ממחשבי ה-PC בלי חלונות, אתה לא תצפה שמתכנתים ישקיעו בוירוסים בשביל 2-3% מערכות ההפעלה האחרות.
כנ"ל נכון גם לגבי MAC (שהיא הרבה יותר פריצה).
ומה עם וינדוס ? הסבר בפנים
בוינדוס,בגלל מימוש עלוב של אבטחה, רוב המשתמשים משתמש במערכת במצב מנהל.
אז מלכתחילה המערכת כבר במצב פגיע כמו לינוקס שפרצו אותו.
משתמש Linux
ל-11 – אם מדובר בבאג הזה אז תודה, לא ידוע לי ש-SELinux מותקן בגרסאות שאינן של Rad Hat וממה שהבנתי צריך לבדוק איזה Kernel מותקן (עד 2.6.24.1 מושפע וכן 2.6.30 ו- 2.6.30.1 שמותקן רק ב-Rad Hat Enterprise 5 ממה שהבנתי).
ל-12, מציע שתבדוק, כי לפי דעתי יש הרבה יותר מ-200 משתמשים, ואם לא הרבה יותר מזה, אז ההפסד כולו שלהם, כי Windows 7 לא מציאה גדולה, בתור אחד שמתמש גם ב-Linux וגם ב-Windows.
פוג'יקום מתקינים Linux???
שאפו ליניר מערכות ממושב מגשימים שהגיעו למעמד רם ונישא כל כך שמוצר המדבקה הסיני שלהם מוזכר בכתבה בנשימה אחת עם גוגל העולמית כנושאת דגל קידום הלינוקס בעולם.
וואו.. עידן..
מוזר לי פתאום לראות את השם של עידן כאן אחרי שהייתי בהלוויה וקצת נרגעתי מהעניין
יהי זכרו ברוך! בנאדם מאוד יקר
חבל על המאמר בשביל 200 איש בארץ ?
נראה כמו פרסומת של איש ווינדוס
הבאג הזה הוא מיולי
הבאג הזה נמצא ותוקן כבר ביולי, לא החודש. יצאו תיקונים למגוון גרסאות של הקרנל וההפצות השונות הוציאו גרסאות המכילות את התיקונים.
coolspot מתכוון שהמשתמשים של רוב ההפצות (ubuntu, fedora/red hat, mandriva, opensuse ועוד) כבר מעודכנים.
נתגלתה פרצת אבטחה ב-Windows
למעשה הרבה כאלה מתגלות כל חודש, והתיקונים להם מגיעים בדמות העדכונים שרובנו מורידים מ-Windows update. חלקן גם נצילות מקומית (או מרחוק). אין מערכת הפעלה בטוחה לגמרי, אבל פרצות שדורשות הרצת קוד מקומית מלכתחילה הן לא סיבה לפאניקה.
הבאג כבר תוקן
יצא כבר פאצ'
למגיבים 5 ו7
א. זו כן פרצה חמורה. ברגע שיש לך משתמש, להוריץ ולהוריד בינארי זו ממש לא בעיה, וב99% מהמקרים האופציה הזו אינה חסומה בפני המשתמשים. היכולת לנצל אותה דורשת בסה"כ משתמש על המערכת, וכמו שכתוב, לקבל משתמש זו הרבה פחות בעיה מלקבל root.
לא ברור למה אתה מתכוון כשאתה אומר מאגרי ההפצה.
ב. אומנם גישה לזיכרון בכתובת 0 חסומה ע"י SELinux (ודומיו), אבל זו חסימה שניתן לעקוף, ע"י ניצול של באגים שונים, כמו שעושה האקספלויט שפורסם
כן, רק שצריך קודם כל גישה לזיכרון בכתובת
אפס בשביל לשים שם את הקוד הזדוני…
זו לא פרצה כזו חמורה
במיוחד כשמשווים לפרצות של וינדוז שהיה אפשר להשתלט על המחשב אונליין.
הפרצת אבטחה הזו דורשת להוריד קובץ ריצה, לתת לו הרשאות, ולהפעיל אותו,
או בקיצור, הבאג עצמו בתור באג הוא חמור, היכולת לנצל אותו מאוד נמוכה,
במיוחד כאשר רוב משתמשי הפצות הלינוקס משתמשים בתוכנות שמותקנות ממאגרי ההפצה.
בלינוקס זה לא היה קורה
OH WAIT!
תודה על ההסבר הממצה (שאי אפשר
לקבל בד"כ), ומשתתף בצער קרובי הנפטר. מקווה שמקרה זה ישמש תמרור אזהרה לאחרים.
אבטחה מוגברת יש ב-OpenBSD
וקצת פחות בלינוקס – למעט בהפצות שזהו מיקודן.
בווינדוס זה לא היה קורה 🙂
טעויות שלא עושים
הכתבה על עידן נחום
http://www.nrg.co.il/online/1/ART1/930/624.html