מה זה חומת אש - Firewall - השומר שרוב האנשים לא מבינים באמת¶
כולם שמעו את המילה "פיירוול", וכולם יודעים בערך ש"זה משהו שמגן על המחשב". אבל אם תשאלו איך היא בעצם מחליטה מה לחסום ומה לא, רוב האנשים יגידו משהו מעורפל. אז בואו נפרק את זה לרעיון פשוט שברגע שתבינו אותו, לא תשכחו אותו.
הרעיון הבסיסי - שומר בכניסה עם רשימת כללים¶
תארו לעצמכם שומר בכניסה לבניין משרדים, עם רשימת כללים ברורה - מי מורשה להיכנס, באילו שעות, ולאיזו קומה. חומת אש עושה בדיוק את זה, רק לתעבורת רשת. היא יושבת בנקודה מסוימת - בין הרשת שלכם לאינטרנט, או ישירות על המחשב שלכם - ובודקת כל חבילת מידע שמנסה לעבור, לפי סט כללים שהוגדר מראש.
כל חבילה נבדקת מול הכללים, ולפי מה שמוגדר, היא או עוברת הלאה, או נחסמת ונזרקת. הכללים האלה בדרך כלל מסתכלים על דברים כמו כתובת IP מקור ויעד, מספר פורט, וכיוון התעבורה (נכנס או יוצא).
דוגמה פשוטה שממחישה את זה¶
נניח שיש לכם שרת ווב שאתם רוצים שיהיה נגיש מהאינטרנט, אבל אתם לא רוצים שאף אחד מבחוץ יוכל לגשת ישירות למסד הנתונים שרץ על אותו שרת. כלל חומת אש טיפוסי יראה בערך כך:
- אפשר תעבורה נכנסת לפורט 443 (HTTPS) מכל מקום.
- אפשר תעבורה נכנסת לפורט 22 (SSH) רק מכתובת IP ספציפית של הצוות.
- חסום תעבורה נכנסת לפורט 5432 (מסד הנתונים) מכל מקום חוץ מהשרת עצמו.
- חסום כל תעבורה אחרת כברירת מחדל.
השורה האחרונה היא בעצם העיקרון הכי חשוב באבטחת רשתות טובה - deny by default. במקום לחשוב "מה צריך לחסום", חושבים "מה צריך לאפשר, וכל השאר חסום אוטומטית". זה הופך את המערכת להרבה יותר בטוחה, כי אתם לא צריכים לחזות מראש כל דרך תקיפה אפשרית.
סוגי חומות אש - לא כולן אותו דבר¶
- חומת אש מבוססת חבילות - Packet Filtering. הסוג הבסיסי ביותר, בודק כל חבילה בנפרד לפי כתובות ופורטים, בלי זיכרון על מה שקרה קודם. מהיר, אבל פשוט יחסית.
- חומת אש עם מעקב מצב - Stateful Inspection. זוכרת חיבורים פעילים, ומבינה למשל שאם אתם התחלתם חיבור יוצא, מותר לתשובה לחזור, בלי שתצטרכו להגדיר כלל נפרד לכל כיוון. זה הסטנדרט ברוב הרשתות היום.
- חומת אש ברמת האפליקציה - Application Layer / Next-Generation Firewall. לא מסתכלת רק על כתובות ופורטים, אלא גם על תוכן התעבורה עצמה, ומסוגלת לזהות למשל שמישהו מנסה לשלוח בקשת HTTP זדונית גם אם היא מגיעה בפורט חוקי לגמרי.
חומת אש רשת מול חומת אש אישית¶
חשוב להבחין בין שני סוגי מיקום. חומת אש ברמת הרשת (network firewall) יושבת בכניסה לרשת שלמה, ומגנה על כל מה שנמצא מאחוריה - כך עובד למשל הראוטר הביתי שלכם, שיש בו חומת אש בסיסית מובנית. חומת אש אישית (host firewall) רצה ישירות על מחשב בודד ומגנה רק עליו, למשל Windows Defender Firewall. רוב הרשתות המקצועיות משתמשות בשתי השכבות ביחד - הגנה כללית על הרשת, ועוד שכבת הגנה על כל מכשיר בנפרד, כך שגם אם משהו חדר לרשת הפנימית, יש עוד קו הגנה.
מה חומת אש לא עושה, למרות מה שאנשים חושבים¶
חומת אש בודקת בעיקר את כתובות התעבורה ואת הפורטים, לא בהכרח את התוכן שבפנים (חוץ מהסוג המתקדם ביותר). זה אומר שאם משתמש בתוך הרשת מוריד קובץ נגוע דרך HTTPS בפורט חוקי לגמרי, חומת אש בסיסית פשוט לא תזהה את זה - התעבורה נראית לגיטימית מבחינת הכללים שלה. חומת אש היא שכבת הגנה אחת חשובה מאוד, אבל היא לא תחליף לאנטי וירוס, למודעות אבטחה, או להצפנה נכונה.
למה חשוב להבין את זה גם אם אתם לא "אנשי אבטחה"¶
בין אם אתם מפתחים שמנסים להבין למה שירות אחד לא מצליח לדבר עם שירות שני בענן, ובין אם אתם מתעניינים באבטחת מידע ורוצים להבין איך תוקפים עוקפים חומות אש, ההבנה הבסיסית של איך כללי חומת אש עובדים היא בסיס שחוזר בכל מקום. זה נושא שאנחנו מלמדים לעומק בקורס הרשתות, כולל תרגול על הגדרת כללים אמיתיים, לא רק תיאוריה.
קורס הרשתות המלא נמצא כאן, חינם ובעברית, עם תרגול מעשי על אבטחת רשתות וחומות אש.
יש לכם שאלה על הגדרת כלל ספציפי? זה בדיוק המקום.
לסיכום¶
חומת אש היא בעצם שומר עם רשימת כללים - מה מותר, מה אסור, ובאיזה כיוון. העיקרון החשוב ביותר לזכור הוא "חסום הכל כברירת מחדל, אפשר רק את מה שצריך". זה כלי הכרחי, אבל הוא שכבת הגנה אחת מתוך רבות, לא פתרון קסם שפותר את כל בעיות האבטחה שלכם.