במסגרת ניקוי האתר מטיוטות שהתחלתי בתקופות שונות ולא סיימתי, הנה משהו מעניין.
אחד הדברים המעצבנים שחברות התוכנה החלו לעשות בשנים האחרונות, ומיקרוסופט בראשן – הוא להוסיף לחבילות השירות (Service Pack, SP) תכונות חדשות למוצרים. חלקן אפילו שינו את השם
ל-Feature Pack, שנדע שיש כאן יותר מאשר תיקונים.
בעוד שבעבר היה מדובר רק בתיקון בעיות תפעול ואבטחת מידע, הרי שחבילות השירות החדשות, מחייבות, בייחוד בארגונים, למידה מעמיקה של השינויים, ביצוע לימוד וניסוי במעבדות סגורות, ורק לבסוף הטמעה איטית וזהירה. כאילו מבוצע שדרוג מלא של מערכת ההפעלה. הרבה משאבים נדרשים.
SP2 של "חלונות XP" (להלן XP) היוותה שיא חדש בתוספות למערכת ההפעלה, רובן בתחום אבטחת המידע.
אחד השינויים נקרא Limited number of simultaneous incomplete outbound TCP connection attempts , או בעברית: מספר מוגבל של ניסיונות ליצירת חיבורי TCP יוצאים בו-זמניים שלא הושלמו.
קיים מסמך הסבר באנגלית ובעברית (חפשו את הביטוי 4226). שימו לב שהמסמכים מצויים באתר הכללי של מיקרוסופט. לא מצאתי מסמכים נוספים בנושא באתר התמיכה של החברה, ובהתאמה – לא מצאתי כל דרך רשמית של החברה לעקוף את המגבלה שמציב שינוי זה, כגון ערך בקובץ הרישום
(Registry).
מה בעצם המגבלה ומדוע היא בעייתית?
כאשר מחשב יוזם קישור מבוסס TCP/IP (פרוטוקול רשת האינטרנט וארגונים רבים) אל מחשב אחר ברשת, הוא מתחיל במעין "דו-שיח" עם המחשב המרוחק, בכדי לתאם ביניהם את נהלי העברת הנתונים.
דו-שיח זה מתחיל בבקשה שנקראת SYN, מהמחשב היוזם למחשב היעד. כל עוד המחשב המרוחק לא ענה (בגלל שהוא לא קיים, לא זמין כרגע או שהגדרות אבטחת המידע שלו חוסמות את התקשורת) – בקשת התקשורת היא בסטטוס של half-open, ובמידה ולא התקבלה תשובה מהמחשב המרוחק במשך זמן מסוים – המחשב המקומי מבטל את הבקשה ומודיעה ליישום שיזם את התקשורת, שהצד המרוחק אינו זמין.
יצירת קישורים מסוג זה, שאינם מסתיימים בקישור תקין, מתקיים במצבים בהם תוכנה זדונית השתלטה על המחשב המקומי ומגששת את דרכה ברשת בכדי לתקוף מחשבים נוספים – תוכנות אלו לרוב עושות זאת באופן אלים למדי, תוך ניצול מקסימלי של משאבי המחשב ויצירת בקשות תקשורת רבות ביותר, בכדי לייעל את התקיפה.
בנוסף גם קיימת התקפת שלילת שירות שנקראת SYN Attack, שכל מה שהיא עושה הוא לפתוח כמה שיותר בקשות SYN מול המחשב המותקף, אשר מנסה לענות לכולן, אך המחשב התוקף אינו ממשיך ב"דו-שיח", אלא רק שולח בקשות אתחול קשר חדשות – ובכך מונע מהמחשב המרוחק להעניק שירות לבקשות תקשורת לגיטימיות.
סיבות אלו היו כנראה מטרתה של מיקרוסופט, בשינוי אופן פעילות פרוטוקול ה-TCP/IP ב-XP – להגביל את יכולת התקיפה של מחשב XP נגוע.
מיקרוסופט הגבילה את XP למקסימום של 10 קישורי half-open בו-זמנית, ואם יש יותר – הם נכנסים לתור ומתבצעים באופן מדורג ואיטי.
מאחר ולא בדקתי – אינני יודע אם מגבלה זו קיימת גם בשרתי "חלונות 2003" מאחר והם דומים בדברים רבים ל-XP, אבל שווה לבדוק.
אולם, קישורי half-open מתרחשים במקרים נוספים, אשר בהם יישומים מנסים ליצור קישורים עם מחשבים רבים אחרים ברשת, הן הארגונית (תוכנות מצאי חומרה ותוכנה, תוכנות שליטה ובקרה וסריקת פגיעויות (Vulnerability Assessment, כולל סריקת פורטים) – לצורך הקשחת מערך המחשוב) והן הפרטית/האינטרנט (כגון יישומי שיתוף קבצים למיניהם).
ואכן, לאחר הטמעת SP2, שמתי לב שיישומים מהסוג הנזכר לעיל, החלו לעבוד בקצב איטי יותר, באופן משמעותי. ואז ניגשתי ל-Event Viewer (התחל -> הפעלה -> eventvwr.msc -> system) ומצאתי הודעות שגיאה מספר 4226 – TCP/IP has reached the security limit imposed on the number of concurrent TCP connect attempts.
כאמור לעיל, חיפוש פתרונות אצל מיקרוסופט, לא העלה דבר.
אבל, העולם הוא גדול, ואנשים טובים בו לרוב. האיש הטוב במקרה שלנו הוא כנראה (כי הוא מופיע כבעל האתר המדובר) Markus Goslar מגרמניה.
הוא יצר תוכנה קטנה בשם EvID4226Patch.exe, אשר משנה את הערך הדרוש בקובץ המערכת TCPIP.SYS, לערך חדש, על פי קביעת מפעיל התוכנה (הוא ממליץ לא יותר מ-100, ואכן לא נתקלתי במגבלות בעת שימוש בערך זה), ואף שומרת קובץ גיבוי בצד, למקרה שמשהו ישתבש ויהיה צורך לשחזר את הקובץ המקורי.
מניסיוני התוכנה שלו עובדת מצוין, ולא היו בעיות תפעול לאחר הפעלתה. הודעת השגיאה שלעיל לא חזרה והתוכנות חזרו לשוב ולתפקד באופן תקין.
אזהרה חשובה בנוגע לשימוש בתוכנה זו:
אזכור תוכנה זו אינו מהווה המלצה לשימוש בה, אלא נועד לטובת כתיבת רשימה זו בלבד.
במידה ותבחרו להפעיל תוכנה זו – השימוש בה הוא על אחריותכם בלבד, ומומלץ כי רק משתמשים מתקדמים ינסו אותה, וגם זאת קודם בסביבת ניסוי לפני הטמעה בסביבה תפעולית.
התוכנה אינה תוכנה רשמית של מיקרוסופט, ומבצעת שינוי בקובץ מערכת חשוב של מערכת ההפעלה.
אין לדעת בוודאות מי האדם שכתב אותה, עד כמה התוכנה אמינה ואילו דברים היא יכולה לשבש במחשב שלכם – כולל קריסת המחשב, פגימה בקבצים ואובדן מידע.
כמו כן, קיים סיכוי סביר שרישיון הפעלת מערכת ההפעלה אוסר שינויים בקבצי מערכת ההפעלה.
השימוש בתוכנה הוא על אחריותכם בלבד.
שימו לב למה שמיקרוסופט כותבת בהסבר על הנושא (במאמרים שהוזכרו לעיל):
Under normal operation, when applications are connecting to available hosts at valid IP addresses, no connection rate-limiting will occur (ההדגשה שלי, א.כ.)
כלומר, מיקרוסופט מגדירה לכם מה הם תנאי הפעלה סבירים למחשב. היא חושבת שאתם לא צריכים לפתוח יותר מעשרה קישורים בו-זמנית למחשבים אחרים. באמת שמספיק לכם. יפה מצידה, לא?
וכעת לחלק השני של הסיפור.
גם למיקרוסופט יש סורק פגיעויות שהיא יצרה בעצמה, לטובת שיפור אבטחת המידע של לקוחותיה, הן הביתיים והן הארגוניים.
שם המוצר, החינמי, הוא Microsoft Baseline Security Analyzer (MBSA). המוצר מצוי כיום בגרסה מספר 2.0 ומניסיוני הוא בהחלט חביב, אם כי מוגבל למדי.
מוצר זה יודע לבדוק האם מותקנים עדכוני אבטחת המידע האחרונים של מיקרוסופט והאם ניתן לשפר דברים מסוימים בהגדרות אבטחת המידע של מערכת ההפעלה ויישומי Office. הבדיקה יכולה להתבצע כלפי המחשב בו מותקנת התוכנה וגם כלפי מחשבים נוספים ברשת, על ידי ביצוע סריקה של הרשת.
בזמן ש-SP2 הופצה לשימוש הציבור הרחב, גרסה 1.2 של MBSA הייתה הגרסה הזמינה.
ביצוע סריקת טווח רחב של כתובות IP על ידי MBSA 1.2, לאחר התקנת SP2 על אותו המחשב – האטה את הסריקה וגרמה להופעת הודעת השגיאה 4226 הנזכרת לעיל.
וכזכור לעיל, מיקרוסופט לא פרסמה כל אפשרות לעקוף את הבעיה, והמלצתה הייתה: Stop the application that is responsible for the failing connection attempts – במקרה שלנו, להפסיק את פעילותה של התוכנה הזדונית MBSA מבית מיקרוסופט.
מה עשו? הוציאו את גרסה 1.2.1 (אשר תבוטל במהלך הרבעון הראשון של שנת 2006).
ומעבר לכל השיפורים שבוודאי קיימים בגרסה זו, מה מיוחד בה? ניחשתם נכון! גרסה זו לא גורמת להופעת הודעת השגיאה ומבצעת את הסריקה בקצב הנדרש.
ההגבלה נשארת לגבי כל תוכנה אחרת הפועלת במחשב, למעט MBSA 1.2.1 אשר עוקפת אותה.
מיקרוסופט לא התייחסו לשינוי זה באופן רשמי, אולי ברמז דק: Support for Windows XP Service Pack 2 security enhancements
הנה ציטוט באתר אינטרנט, כנראה העתק מתוך קבוצת דיון (News Group) של מיקרוסופט (ומאחר והמשיבה מזדהה בקוד MSFT, שהוא קוד הזיהוי של מיקרוסופט בבורסת NASDAQ) – תלונה פשוטה על סריקה ממושכת מדי עם MBSA 1.2 והפתרון המוצע הוא לשדרג לגרסה 1.2.1.
סריקת 20 כתובות IP (שאינן מייצגות מחשב פעיל), בגרסה 1.2 (בניכוי תהליך הורדת המידע אודות העדכונים הקיימים מאתר מיקרוסופט) ארכה 1:22 דקות (ממוצע של שתי סריקות).
אותה סריקה, באותם תנאים, עם גרסה 1.2.1 (אגב, התקנת גרסה 1.2.1 מוחקת את גרסה 1.2, במידה והיא מותקנת) ארכה בממוצע 1:12, וכמובן שלא הציגה את הודעת השגיאה המדוברת.
רק 12% שיפור, לא משמעותי (בכל אופן, מיקרוסופט), אבל מספיק בכדי להדגים את הנושא.
בדיקת מספר הקישורים החצי-פתוחים מתבצעת בחלון שורת הפקודה (CMD.EXE), על ידי הרצת פקודת netstat -an והקישורים המדוברים הם אלו שהסטטוס שלהם הוא SYN_SENT.
סטטוס בקשות התקשורת במהלך סריקה עם MBSA 1.2.1
אין באתר של מיקרוסופט דפים המאפשרים הורדה של גרסה 1.2, אבל בעזרת חיפוש בגוגל הצלחתי למצוא (דרך הדף ששמור בגוגל דרך הקישור Cached) קישור ישיר להורדה של גרסה 1.2, שנקווה שיחזיק מעמד.
מסקנה? מה שמותר למיקרוסופט (שינוי קובץ מערכת לצורך עקיפת מגבלה שהיא עצמה יצרה ולדעתה נחוצה), אינו בהכרח (אבל יש סיכוי טוב) אסור לכם (בתלות בתנאי רישיון מערכת ההפעלה), אבל זו בעיה שלכם.
ידידות. זו התוכנה הבולטת שלהם.
(זה בדיוק מסוג המקרים שגורמים לך לחשוב באופן חיובי ביותר על מערכות הפעלה של קוד פתוח)