מדריך זה מעניק סקירה תמציתית על פרוטוקולי רשת מרכזיים וכלי אבטחה נפוצים.
תגלו כיצד בקשות GET ו-POST זורמות ב-HTTP וכיצד הצפנת HTTPS מגנה על הנתונים.
נבחן את ההבדל בין IMAP ל-POP3 בניהול דואר, ונראה למה SSH החליף את Telnet בחיבור מרחוק.
תקבלו היכרות עם Port Forwarding, שימוש ב-Agent Forwarding ושמירה על מפתחות בקבצי known_hosts.
לבסוף נסקור עקרונות בסיסיים של מנהרות מאובטחות, אימות מפתחות והגנות מפני מתקפות Brute Force.
הקדמה זו תכוון אתכם אל נושאי הליבה בטרם תצללו לפרטים המלאים שבמדריך.
בעידן המודרני, כמעט כל אינטראקציה מקוונת מבוססת על פרוטוקולי תקשורת שונים.
ההיכרות עם פרוטוקולים כגון HTTP, IMAP,
SMTP וSSH חשובה לא רק לצרכים תפעוליים, אלא
גם לאבטחת המידע ולשמירה על פרטיות.
לימוד מעמיק של תחומים אלו מהווה בסיס יציב למתעניינים בעולם הסייבר.
ידע זה רלוונטי במיוחד גם למי שעובר תהליכי הכנה למיונים גאמא סייבר.
לאורך מדריך זה נסקור את עקרונות העבודה עם פרוטוקולים נפוצים, נלמד על שיטות חיבור מאובטחות ונבין כיצד התקשורת מוצפנת ומאובטחת מפני גורמים לא רצויים.
פרוטוקול HTTP הוא הבסיס להעברת נתונים בין דפדפנים לשרתי אינטרנט.
הוא מתבסס על מודל בקשה-תשובה: הלקוח (המחשב או הדפדפן) שולח בקשה, והשרת מחזיר תשובה.
בקשת GET בדרך כלל מתאימה לשליפת מידע, כאשר הפרמטרים והנתונים נשלחים בשורת הURL עצמה.
מצד שני, בקשת POST שולחת את הנתונים בגוף הבקשה וכך מאפשרת להעביר טפסים גדולים, קבצים או מידע רגיש בצורה חשופה פחות.
כאשר עובדים עם מידע רגיש, חשוב לשלב גם HTTPS (ערוץ מוצפן) כדי למנוע אפשרות ליירוט המידע בדרך.
אחת הסיבות שבגללן בקשת GET נחשבת לפחות מאובטחת, היא שהפרמטרים מופיעים בגלוי בשורת הURL, ונשמרים בהיסטוריית הדפדפן או בלוגים של השרת.
לעומת זאת, בבקשת POST הנתונים אינם מופיעים בURL, אלא נשלחים כחלק מגוף הבקשה.
כל עוד משתמשים גם בהצפנה (HTTPS), ניתן להגן על המידע מפני עיניים חטטניות.
בנוסף, כשרוצים לשלוח קבצים או תוכן מורכב, ניתן להשתמש בmultipart/form-data, שמאפשר חלוקה לקבוצות נתונים וקבצים בתוך אותה בקשה.
בחלק מהטפסים הפשוטים נעשה שימוש בפורמט urlencoded, שנוח לנתונים טקסטואליים אך פחות מתאים לקבצים.
כאשר מדובר בגישת דואר אלקטרוני, שני הפרוטוקולים הנפוצים הם IMAP וPOP3.
POP3 מתמקד בעיקר בשליפה של הודעות מהשרת למחשב המקומי, לעיתים אף מוחק אותן מהשרת כברירת מחדל.
לעומת זאת, IMAP שומר את כל ההודעות על השרת ומסנכרן את הפעולות בין מספר מכשירים.
כך ניתן לגשת אל אותם מיילים ותיקיות מכל מכשיר, ולראות את העדכונים והפעולות בזמן אמת.
באופן הזה, IMAP מקל על ניהול התיקיות (Folders) בשרת, מאפשר שימוש בפקודת IDLE לצורך התראות על דואר חדש, ומשפר את היכולת לעבוד ממספר מכשירים במקביל.
ישנם מצבים שבהם נרצה להגן על החיבור גם כאשר לא ניתן להשתמש ביציאה מאובטחת כמו 993 (נקראת לעיתים IMAPS).
במקרה כזה, ניתן להגדיר חיבור לטווח הסטנדרטי (למשל 143) ולפעיל STARTTLS, שמורה לשרת וללקוח לעלות פרוטוקול הצפנה (TLS או SSL) מעל החיבור הקיים.
אם אין גישה ליציאה מוצפנת כלל, אפשר לעטוף את החיבור כולו במנהרת SSH, ובכך להגן על התעבורה למרות שהפרוטוקול המקורי אינו מצפין.
ההבנה של פרוטוקולים כגון IMAP רלוונטית לאנשים המעוניינים להעמיק בעולם התקשורת והסייבר, וגם למי שמתכנן להצטרף ליחידה 8200, שם הידע ברשתות ופרוטוקולי תקשורת יכול לסייע מאוד.
בעבר נעשה שימוש נרחב בTelnet לצורך התחברות מרחוק לשרתים והפעלת פקודות, אך הוא אינו מצפין את המידע ולכן חושף שם משתמש וסיסמה לטקסט גלוי.
SSH (Secure Shell) החליף את Telnet ברוב המקרים משום שהוא מצפין את כל התעבורה.
כך נמנעת אפשרות יירוט בקלות של פרטי הכניסה, והחיבור הופך למאובטח יותר.
בשימוש מודרני, Telnet נותר ככלי עזר לבדיקת תקינות יציאות (Ports) או בדיקות בסיסיות, אך לא מומלץ לניהול שוטף של שרתים.
SSH אינו רק פרוטוקול להצגת טרמינל מרחוק.
הוא מאפשר גם העברת קבצים בצורה מוצפנת (באמצעות SCP או SFTP), אימות מבוסס מפתחות שמקטין את הסיכון לBrute Force, וכן אפשרויות מתקדמות כגון Agent Forwarding, שיתוף תצוגה גרפית באמצעות X11 Forwarding, וגם יצירת מנהרות מאובטחות (Port Forwarding או Reverse Port Forwarding) כדי לאפשר גישה מבוקרת לשירותים פנים-ארגוניים.
אחד הכלים החזקים של SSH הוא האפשרות להשתמש במפתחות הצפנה במקום בסיסמה רגילה.
תהליך זה נקרא אימות מבוסס מפתחות, או Key-based Authentication.
בגישה זו, על השרת מאוחסן המפתח הציבורי, ועל הלקוח נשמר המפתח הפרטי.
כך גם אם תוקף מנסה לנחש סיסמה באמצעות התקפת Brute Force, הוא לא יצליח לחדור אם אין לו את המפתח הפרטי המתאים.
בנוסף, ניתן להגדיר סיסמה למפתח הפרטי עצמו, כדי להגן מפני גניבתו מהמחשב האישי.
Agent Forwarding מאפשר ללקוח (המשתמש) לשמור את המפתח הפרטי במקום אחד מקומי, ובכל זאת להמשיך לעבור בין שרתים מרוחקים מבלי להעתיק את המפתח עצמו לשרת הבא.
בפועל, הSSH Agent מבצע את החתימה הנדרשת ומאמת את הזהות מול השרתים השונים, מבלי לחשוף את המפתח הפרטי עצמו.
כך משתפרת האבטחה כאשר יש צורך להתחבר לשרשרת של שרתים מרוחקים אחד דרך השני.
בכל חיבור של SSH למכונה מרוחקת, נשמרת טביעת האצבע (Fingerprint) של השרת בקובץ known_hosts בתיקיית המשתמש.
בקובץ זה יכול הלקוח לזהות אם השרת שאליו הוא מתחבר הוא אכן אותו שרת כמו קודם, או שמדובר במישהו המתחזה אליו (למשל התקפת Man-in-the-Middle).
אם זוהתה טביעת אצבע חדשה, SSH יזהיר את המשתמש ויבקש אישור להוסיף את השרת לרשימה.
כדי לאפשר חיבור למשתמש מסוים ללא סיסמה, ניתן להוסיף את המפתח הציבורי של המשתמש המקומי לקובץ authorized_keys שבשרת המרוחק.
כך, בעת התחברות, השרת מוודא שהמשתמש יכול להוכיח את החזקת המפתח הפרטי המתאים למפתח הציבורי הרשום.
המנגנון הזה מהווה בסיס לאוטומציה מאובטחת, כי מאפשר להריץ סקריפטים או תהליכים נוספים ללא צורך בהקלדת סיסמה.
כל אלו הם עקרונות חשובים גם עבור מי שמעוניין לגשת לתחומי אבטחת מידע, ובפרט כחלק ממסלול גאמא סייבר או התעמקות כללית בפרוטוקולי תקשורת.
כאשר רוצים לגשת לשירות פנימי ברשת מרוחקת, ניתן להשתמש בPort Forwarding של SSH על ידי שימוש בדגל -L.
כך, למשל, הפקודה הבאה ssh -L 8080:127.0.0.1:80 [email protected] תעביר את כל התעבורה ליציאה המקומית 8080 ליעד 127.0.0.1:80 דרך השרת המרוחק.
כל התקשורת תהיה מוצפנת, גם אם הפרוטוקול עצמו אינו מאובטח.
היפוך של זה הוא Reverse Port Forwarding (בעזרת הדגל -R), שמאפשר להפנות בקשות שמגיעות ליציאה מסוימת בשרת המרוחק אל יציאה מקומית.
למשל: ssh -R 9090:localhost:80 [email protected] כעת גלישה לכתובת remote.server:9090 תגיע בפועל לlocalhost:80 במכונה המקומית.
גישה זו שימושית במיוחד כשנמצאים מאחורי NAT או חומת אש, ורוצים לאפשר גישה זמנית לשירות מקומי.
בנוסף, בשרתים גרפיים אפשר להשתמש בX11 Forwarding (בעזרת הדגל -X או -Y).
זה אומר שהחלונות והתצוגה של תוכנות גרפיות שרצות בשרת המרוחק יופיעו על גבי התחנה המקומית, וכל זאת על גבי חיבור SSH מאובטח.
במדריך זה ראינו כיצד בקשות GET וPOST בHTTP משמשות לשליחת מידע, ואיך ניתן להגן על המידע הזה באמצעות הצפנה.
עמדנו על ההבדל בין IMAP וPOP3, ועל החשיבות של SSH לעומת Telnet למטרות חיבור מרחוק מאובטח.
בנוסף, למדנו על היכולות המתקדמות של SSH כמו Agent Forwarding וX11 Forwarding, ועל המנגנונים לניהול מפתחות וזיהוי שרתים באמצעות קבצי known_hosts וauthorized_keys.
כל אלה מהווים נדבך מרכזי בתחום התקשורת ואבטחת המידע.
עבור מי שמעוניין להשתלב בתחום או לשפר מיומנויות, הבנה של פרוטוקולים אלה חשובה במיוחד במסגרת הכנה למיונים גאמא סייבר, כמו גם ללימודי עומק שיכולים לסייע בהגנה על מערכות קריטיות.
רכישת הידע והבנת הכלים המעשיים מסייעות לא רק בהתמודדות עם אתגרים טכניים, אלא גם בבניית יכולת לזהות סיכוני אבטחה מוקדם ולהתמודד איתם ביעילות.