UPNP היא טכנולוגיה שנועדה לפשט את התהליך של הוספת שרתים ונקודות קצה לרשת. אחד השימושים הפופולריים של UPNP הוא לאפשר קידום פורטים אוטומטי.
נניח שיש לכם רשת מקומית קטנה מאחורי NAT (תצורה מאוד נפוצה בימינו, כמעט כל מחשב שמחובר לאינטרנט דרך נתב מהווה בעצם רשת מקומית כזו), ותוכנת שיתוף באחד המחשבים רוצה לאפשר התחברות אליה מבחוץ.
לפני UPNP, התוכנה לא תוכל לעשות את זה בעצמה, ומנהל המערכת (או המשתמש התמים שקנה את הנתב) יצטרך להגדיר את הנתב "ולפתוח פורטים", או ליתר דיוק – לקדם פורטים מסויימים אל המכונה הספציפית.
היום רוב הנתבים תומכים בUPNP, מה שמאפשר לתוכנת השיתוף למצוא את הנתב, לגלות שהוא תומך בקידום פורטים, ולבקש ממנו בדרכי נועם לקדם למחשב עליו היא רצה חבילות מידע שמגיעות לפורטים מסויימים.
מאוד נוח, הכל פשוט עובד.
הבעיה היא שUPNP לא כולל אימות (כי אחרת המשתמש היה צריך להגדיר שם משתמש וסיסמא בנתב לצרכים האלו, ולתת לתוכנת השיתוף את שם המשתמש והסיסמא, דבר לא נוח בעליל!) ולמעשה מאפשר לכל תוכנה שרצה של מחשב בתוך הרשת לבקש קידום פורטים בלי בקרה מיוחדת ובצורה שקופה ונסתרת מהמשתמש.
הבעיה מתחילה כהמשתמש מריץ תוכנה בלי להבין אפילו שזה מה שהוא עושה.
למשל, אתם גולשים לתומכם באינטרנט, בטוחים שהתוכנה היחידה שאתם מפעילים היא הדפדפן, אתם נכנסים לדף כלשהו שמציג אנימציית פלאש.
הופ, הרצתם תוכנה חיצונית.
לא הפלאש, אלא האנימציה עצמה.
בצורה דומה הפעלה של ישומון ג'אווה היא בעצם הפעלה של תוכנה חיצונית בתוך הרשת שלהם. במקרה של ג'אווה המצב עוד יחסית בסדר כי רק ישומונים חתומים יכולים להתחבר לשרתים אחרים מזה שהם ירדו ממנו (ישומים חתומים הם נדירים למדי כי כדי לחתום יש לרכוש חתימה מסמכות שורש כמו Verisign או Thawte, מה שעולה כמה מאות דולרים לשנה ויאפשר זיהוי של מקור הקוד).
לעניין, פלאש מאפשר התחברות לנתב ובקשה לקידום פורטים, בנוסף UPNP מאפשר בנתבים מסויימים לשנות את שרת הDNS של הנתב, מה שיכול לאפשר תכמון של המשתמש ברמות בלתי נתפסות.
מכיוון שכל נתב שנרכש בשנים האחרונות מתהדר בתמיכה בUPNP שמופעלת בדרך כלל כברירת מחדל, הבעיה די חמורה.
מומחי אבטחה מנסים לשכנע אנשים מזה שנים שנתב NAT הוא לא Firewall, אבל רוב האנשים לא מבחינים בהבדל. מבחינתם אם הם מאחורי נתב הם בטוחים והנתב הוא זה שיספוג את ההתקפות.
אז זהו, שלא.
למעשה, ווקטור ההתקפה הזה מנצל את האמון שאנחנו רוכשים למחשבים בתוך הרשת.
למשל, שרותים מקומים רבים מאפשרים התחברות מהמחשב המקומי בלבד (ובודקים שההתחברות מגיעה מהמחשב המקומי). הפעלת פלאש תמימה (ונסתרת) יכולה לעקוף את ההגנה הזו בקלילות (ואם פלאש עדיין לא תומך בקישוריות UDP/TCP, הוא בטח יתמוך בגרסאות הבאות).
מומלץ לנטרל את התמיכה בUPNP בנתב שלכם.
ההתקפה הודגמה בGnuCitizen.
ווהא! נשמע רע.
מזל שאני מחובר ישירות למודם עם כבלים בשיטה הישנה 🙂
תודה רבה על המידע עמרי. זה מאוד מועיל.
מעניין מאוד, ומגוחך שהוציאו תקן תוך התעלמות שלמה מסקיוריטי..
רק דבר קטן: לא הבנתי למה אתה טוען שנתב נאט (אשר אפשר להכניס לו חוקים) הוא אינו פיירוול. או שאתה מדבר על נתב נאט שלא תומך בחוקים..
כדאי שתסתכלו כאן
http://www.grc.com/unpnp/unpnp.htm
יש עוד כמה תוכנות מעניינות שם (אבטחה וכו')
אורן,
מכמה סיבות:
פיירוואל עושה עוד דברים חוץ מאשר לנתב חבילות שמגיעות לפורט מסויים למחשבים מסויימים ברשת.
למשל, הוא מאפשר חסימה של חבילות יוצאות בפורטים לא מאומתים, ולפעמים גם סקירה עמוקה של תוכן החבילות כדי לוודא שהן לגיטימיות.
מכיוון שנתבי NAT מתוכננים למטרה מסויימת, הם מאפשרים כל מני מעקפים של ההגנה הזעומה שהכאילו פיירוואל שלהם נותן.
למשל, אם מישהו לא מאומת מתחבר לנתב האחלוטי שלך (כי אתה נחמד ומאפשר לכולם להתחבר בלי סיסמא), הוא כבר עבר את "הפיירוואל" של הנתב ויכול להתחבר לשרותים שהמחשבים שלך מציע בלי שום בקרה.
אתה מוזמן לחפש בגוגל "NAT is not a firewall" ולראות מה יוצא.
הנה דוגמא אחת שמסבירה את העניין:
http://www.usipv6.com/6sense/2006/dec/article04.htm
קרא את זה:
http://ultra.iblogger.org/index.php/item/56
זו רק דעה מהצד השני.
הגבתי לו, תקרא שם.
ככל הידוע לי פלאש יודע לפתוח פורטים לשרת שנתן אותו בדיוק כמו אפלט, עוד מהגרסאות הראשונות. הדוגמא הפשוטה ביותר היא סרט שמוזרם לך ביוטיוב. הוא חייב להיות גם נעול לפתיחת פורטים (ואולי רק פורט 80) לשרת שממנו ירד כי אירת היו לנו בעיות מאוד חמורות כבש לפני שנים.
מצד שני נכון, UPNP היא בעיה ואני לעולם לא מאפשר אותה.
עירא, אני לא מפתח בפלאש אז לא ווידאתי, אבל לפי הדוגמא שהם מציגים באתר (תעקוב אחרי הלינק בפוסט) הם מתחברים מפלאש לנתב בלי בעיה.
עמרי:
– אני חושב שהיום רוב הראוטרים באים עם פיירוול מובנה.
– גם עם פיירוול מעולה, אם תכנס לאתר WEB שמחדיר לך SPYWARE דרך חולשה באקספלורר (או דרך חולשה אנושית), תידבק ותשלח דברים החוצה.
– לא השתכנעתי. בעיקר לא מהטיעון שיש "כל מיני מעקפים" (באותה מידה לפיירוול יכולים להיות כל מיני מעקפים). NAT שלא נותן פתיחת קונקשן מבחוץ, וכמובן לא עונה לאף פורט של עצמו כלפי חוץ, יכול להגן מרוב התקיפות שפיירוול רגיל היה מגן מפניהן.
– לגבי בחינת תוכן הפאקטות, אני לא מכיר אף בית שמקונפג בו פיירוול L7.
– בעיות של רשת אלחוטית לא רלוונטיות לנושא ה- NAT. גם אם קניתי פיירוול יקר של סיסקו ויש לי מאחוריו כל מכשיר אחר שמנתב רשת אלחוטית, גם אז מי שיפרוץ לרשת האלחוטית ידלג מעל הפיירוול.
אורן,
לא טענתי בזכות או בגנות פיירוואל זה או אחר.
זה שמשיקולים של פונקציונליות מכניסים לתוך NAT אפשרות לקידום פורטים לא הופך אותו לפיירוואל.