כדי לסייע לסטודנטים שאני מלמד במקומות שונים ואיכשהו תמיד חסרים לי מאמרים שאני יכול לשלוח לסטודנטים המסבירים למי שלומד מדעי המחשב דברים בסיסיים באבטחת מידע ובעברית. יש לא מעט מאמרים (אשתדל לתת קישורים איפה שיש) עם הסברים אבל ההסברים מיועדים לאנשים שלומדים אבטחת מידע ומכילים כבר מונחים מהתחום שפחות רלוונטיים לאנשים שצריכים ללמוד את המבוא. אז כדי לעזור לעצמי, כתבתי סדרת מאמרים שמסבירים מונחים בסיסיים באבטחת מידע ובדגש על ווב ופיתוח ומה שמפתחים מתחילים צריכים לדעת. במאמר זה אני מסביר על איך מכשירים שאנו מתקינים בבית חכם כמו דוד חכם, תריסים חכמים ועוד, מוצאים את עצמם חשופים ברשת, נלמד גם על פורטים.
כשאנחנו קונים מכשיר שמתחבר לרשת, כמו למשל שקע חכם או מנורה חכמה, איך הוא בדיוק מתחבר? בתהליך ההתקנה, שנעשה הרבה פעמים עם טלפון, אנו מזינים למכשיר את שם המשתמש והסיסמה של רשת ה-WiFi שלנו והוא מצליח להתחבר, ״לראות״ מכשירים אחרים ברשת (למשל מנורות אחרות) וגם להיות מחובר לאפליקציה שבאמצעותה אנו מפעילים את המכשיר וכל זה קורה ללא הגדרות ובלי שאנחנו צריכים להכנס לממשק הניהול של הנתב האלחוטי. הנס הזה קורה באמצעות UPnP – ראשי תבות של Universal Plug and Play. מדובר באוסף של פרוטוקולים ותקנים שמאפשרים למכשירים להתנהל בתוך הרשת שלנו. המכשיר החדש מצהיר על עצמו למכשירים אחרים, פותח אפשרות לקבל ממנו מידע ולשלוח אליו מידע וכן תקשורת עם הנתב.
הנתב הוא השער לאינטרנט שלנו. מאחוריו יש את הרשת הפנימית שלנו, ומלפניו יש את האינטרנט. כאשר אנחנו מתחברים לנתב ויוצאים החוצה
[אינטרנט]
|
[כתובת IP ציבורית]
|
[נתב / Router]
|
+----------------+----------------+
| | |
[מחשב 1] [טלפון] [טאבלט]
(כתובת IP מקומית) (כתובת IP מקומית) (כתובת IP מקומית)
בחלק גדול מהמקרים, הנתב מקבל כתובת IP ייחודית לו. יש ספקים שמשתמשים ב-CGNAT וחולקות כמה כתובות IP בין כמה לקוחות. בד״כ ספקיות שאין להן מספיק כתובות IP. אנו נתייחס למקרה הראשון, שבו מקבלים כתובת IP חיצונית בלעדית ולא חולקים אותה. ברגע שאנו מחברים מכשיר שתומך ב-UPnP הוא יכול לשלוח בקשה לנתב ולבקש לפתוח פורט החוצה.
מה זה פורט
פורט בתרגום מילולי זה שער או דלת ופורט בתקשורת זה בעצם ״דלת״ שנפתחת אל העולם דרך כתובת ה-IP. כאשר אני יכול להכנס ולצאת מהשער הזה. הפורטים הם שקופים לנו, אבל אנו עושים בהם שימוש כל הזמן. למשל, כאשר אנו פותחים דפדפן ונכנסים לאתר מסוים עם HTTPS, אנו עושים שימוש בפורט 443. כאשר אנו פותחים משחק מיינקראפט ומתחברים לשרת של מיינקראפט, אנחנו עושים שימוש בפורט 25565. כאשר אנחנו מתחברים למחשב מרחוק עם Microsoft Remote Desktop. כשאנחנו מזינים כתובת IP – למשל בתוכנת RDP או בכל מקום אחר, יש שימוש בפורט. אך אנו לא תמיד רואים אותו. לפעמים אנו כן רואים אותו במנוע חיפוש או בדפדפן עם נקודתיים – נסו למשל להדביק את הכתובת הזו בדפדפן:
https://example.com:443
תגיעו ישר אל example.com. אם אתם רוצים דוגמה יותר רצינית, אז אפשר לעשות קצת גוגל דורקינג ולחפש:
inurl:"8080" intitle:"index of"
תוכלו לראות רשימה של אתרים שאם תכנסו אליהם, תראו שאחרי הכתובת שלהם יש 8080. זה אומר שמדובר באתרים שחשופים עם פורט 8080 שנחשב לא סטנדרטי ומשתמשים בו בד״כ באתרי פיתוח.

במקרה הזה, תוכנת השרת משתמשת בפורט 8080, אבל אפשר לבדוק פורטים נוספים. כיוון שהיא יודעת לעבוד עם דפדפן, אני יכול להכניס את כתובת ה-IP, להכניס את הפורט ואז להכנס. אם מדובר בשרת שלא יודע לעבוד עם דפדפן – כמו שרת מיינקראפט, לא אוכל להתחבר אליו ואני אצטרך תוכנת מיינקראפט. למשל בצילום המסך הבא, של תוכנת מיינקראפט, כתובת ה-IP היא 3.81.35.156 אבל הפורט מאחורי הקלעים הוא 25565.

אם אני אפתח דפדפן ואנסה להכנס אל 3.81.35.156:25565, אני לא אצליח להכנס אליו ואקבל שגיאה או ״אתר לא קיים״. רק עם תוכנת מיינקראפט אני אצליח להכנס.
שודאן – מנוע החיפוש של כתובות ה-IP
בעוד שאתרים, ולא משנה באיזה פורטים הם עובדים, אנחנו יכולים למצוא עם גוגל או עם בינג. איך אנחנו מצליחים למצוא אתרים שאפשר להכנס אליהם רק עם תוכנה שהיא לא דפדפן? כמו תוכנת משחק מיינקראפט, RDP או כל תוכנה אחרת? התשובה היא מנוע חיפוש בשם שודאן. מדובר במנוע חיפוש דומה מאד לגוגל, אך הוא מחפש כתובות IP ופורטים.
ניתן להכנס לשודאן בקישור הזה – מדובר באתר חוקי לחלוטין וכשר לגמרי.
באתר הזה אפשר לחפש פורטים שונים ואפילו חלוקה לפי מדינות. הבה ונחפש פורט 3389. מדובר בפורט שמיועד לתוכנת התחברות מרחוק של מיקרוסופט. תוכנה שכבר נמצאת בחלונות ופותחת פורט החוצה. תומך טכני יכול להזין את כתובת ה-IP ולהתחבר למחשב מרחוק כאילו הוא יושב מולו. מאד שימושי! כל אחד יכול להפעיל אותה. כדי להפעיל RDP (Remote Desktop) ב-Windows, פתח את הגדרות המחשב, עבור ל"סיסטם" ולחץ על "שולחן עבודה מרוחק", הדלק את האפשרות "אפשר שולחן עבודה מרוחק", אשר את בקשת חומת האש אם מופיעה, רשום את שם המחשב או כתובת ה-IP. כדי להתחבר למחשב מרחוק, במחשב אחר פתח את Remote Desktop Connection (mstsc), הזן את שם המחשב או ה-IP, התחבר עם שם המשתמש והסיסמה, וודא שהגדרות החיבור בנתב או ברשת מאפשרות חיבור לפורט 3389 במידת הצורך.
מה הבעיה? שאחרי שפתחת את ההגדרות, יש סיכוי שתשכח לסגור אותן. ואז… אז המחשב חשוף! ואיפה רואים אותו? בשודאן כמובן. אם נחפש port:3389 בשודאן, נגלה מחשבים שמחוברים בפורט הזה:

עכשיו אני רק צריך לנסות ולהתחבר. יכול להיות שהמחשב מוגן בסיסמה חזקה, יכול להיות שזה 123456 או q1w2e3r4. יכול להיות שזה בלי סיסמה בכלל. ככה בדיוק משתלטים על מחשבים.
ומה עם מצלמות? במקרה הזה אפשר לחפש לפי פורטים מוכרים, או אפילו לפי טקסט – אם נחפש לפי טקסט, שודאן יחזיר לנו את כל מה שיש בממשק שלו את הטקסט שאנחנו מחפשים. למשל web cam.

גם פה – חלק מהמצלמות יהיו משעממות, חלק לא, חלק אולי יהיו מאד מעניינות. מה שבטוח, אחרי סיבוב שם לא תרצו לשים מצלמות בבית.
אפשר לחפש המון דברים בשודאן והמון התקנים וגם למקד לפי מדינות. מאד מעניין להסתובב שם כדי לראות איזה מכשירים חשופים יש שם.
מניעה
בגדול – התקנת פיירוול טוב בבית וניטור של הפורטים הפתוחים אצלכם זה רעיון מצוין. אפשר ורצוי לרכוש פיירוול משלכם ולא להסתמך על מה שספקית האינטרנט נותנת (אם בכלל). מומלץ גם לסרוק מדי פעם את כתובת ה-IP שלכם עם nmap ולראות אם יש משהו פתוח.
מידע נוסף
כתבה שלי בדהמרקר עם הסבר פשוט על פריצה למצלמות אבטחה
איך חוסר הבנה מה זה שודאן גרם לפייק ניוז
פרק ומאמר מתוך הפודקאסט סייבר – סייבר על ציוד תעשייתי חשוף שהתגלה בסריקה
מאמר מעניין מאד על nmap המיועד לאנשים טכניים ב-Digital Whisper המצוין.
2 תגובות
לדעתי רוב, אם לא כמעט כל רכיבי ה IOT מתבסס על חיבור יוצא בלבד ל mothership (שרת הבית של הציוד) , אין שום צורך בפתיחת פורטים בשיטה המיושנת של UPNP שלדעתי כבר מעל 20 שנה לא בשימוש אמיתי וההנחיה הכללית (שהיא דיי נכונה) לא להפעיל את זה בכלל בנתב.
זוכר את הקריאה שלי ? 🤣