• בלוג
  • WAF – חומת אש לאפליקציות רשת

WAF – חומת אש לאפליקציות רשת

    WAF – חומת אש לאפליקציות רשת

    פורסם ב 03-02-2025

    information-security

    מה היא WAF?

    WAF – ראשי תיבות של Web Application Firewall, או חומת-אש ליישומי רשת – היא סוג ספציפי של חומת-אש. ייעודה הוא סינון של תעבורת רשת המיועדת ליישומים שפעולתם מבוססת על חיבור לרשת האינטרנט, או לרשת פנימית.

    איך היא עובדת?

    בהתאם, ובאופן יותר ספציפי, WAF היא חומת-אש אשר מיועדת ויודעת לנטר, לסנן ולחסום קריאות ובקשות (תעבורת רשת נכנסת) זדוניות שנשלחות ליישומים מבוססי רשת על גבי פרוטוקול HTTP או HTTPS. היא מאפשרת למנוע לא מעט סוגים של מתקפות, ומספקת עוד שכבה של הגנה בנוסף לחומת אש רגילה.

    מה (עוד) היא עושה?
    מתפקדת כמעין פרוקסי הפוך (Reverse Proxy) ומשמשת כגורם מתווך בין יישומי הרשת לרשת עצמה. התיווך עובד גם בכיוון ההפוך – בין הנתונים היוצאים מהיישומים לבין הרשת.
    • פועלת בהתאם ל-סטים של כללים, נהלים ומדיניות, חלקם מוגדרים על ידי המשתמש, וחלקם שרירותיים ומוגדרים מראש על ידי היצרן או הספק.
    מספקת הגנה מפני מתקפות וניצול של חולשות שונות. ביניהן ניתן למנות הרעלת קבצי עוגיות (Cookie Poisoning), מתקפות הזרקת SQL, מתקפות XSS, מתקפות מניעת שירות ומניעת שירות מבוזרת (DoS ו-DDoS), מתקפות יום-אפס (zero day), בעיות בבקרות גישה, ועוד.
    מנטרת וחוסמת תעבורת נתונים בלתי מורשים שיוצאים מיישומי הרשת עצמם.

    דיאגרמה של WAF.
משמאל - שלושה מחשבים ניידים, שניים עם מסך ירוק ו"וי", אחד עם מסך אדום ותמונה של איש עם כובע ותמרור "שים לב".
במרכז: חומת אבן עם המילה WAF עליה.
בתוך החומה עוברים שני חיצים ירוקים מהמחשבים עם המסך הירוק, וחץ אחד אדום עם איקס שנעצר באמצע החומה.
מימין - שרת פיזי, אליו מגיעים החיצים הירוקים.
    דיאגרמה פשוטה (מאוד) של WAF

    סוגים

    או יותר נכון, שלוש דרכים שונות בהן ניתן להטמיע מערכת WAF ולהשתמש בה. לכל אחת מדרכים אלה יש יתרונות וחסרונות שונים, שנובעים מאופן פעולתן.

    מבוססת ענן (Cloud-based WAF)

    בעינינו, מדובר בדרך השימוש הפשוטה ביותר. המערכת מגיעה כשירות ענן, לעיתים כ-תוכנה כשירות (SaaS), וניתנת להטמעה גם כ-API. מערכות מבוססות ענן יתאימו למי שלא רוצה להשקיע זמן ומשאבים בתחזוקה, הגדרות ועדכונים, או לבעלי צוות מצומצם יותר.

    יתרונות:
    • מחיר נמוך יחסית לאפשרויות האחרות. התשלום למעשה מבוסס על הרשמה חודשית או שנתית, כך שאין צורך בהשקעה ראשונית כלל.
    • ניהול על ידי ספק השירות, על כל המשתמע מכך: עדכונים אוטומטיים, ואין צורך לדאוג לתחזוקה, ניהול או פיתרון תקלות.
    • ניתן להטמעה ושימוש בקלות בכל סביבה עם חיבור אינטרנט זמין.

    חסרונות:
    • המערכת המבוססת ענן נמצאת על שרת שנמצא במרחק פיזי כלשהו משרתי החברה המארחים את יישומי הרשת. משמעות הדבר היא שייתכן זמן השהייה, כתלות במרחק בין השרתים.
    • הנתונים עוברים דרך גורם צד-שלישי (ספק השירות), מה שפוטנציאלית מהווה נקודת חולשה מבחינת אבטחת מידע.

    מבוססת מארח (Host-based WAF)

    או מבוססת תוכנה (Software-based WAF). ניתנת להתקנה כתוכנה “רגילה” על שרתים, שרתים וירטואליים, מחשבים, וכיוצא בזה. ניתנת להרצה גם על תשתיות ענן פרטיות או ציבוריות, ודרך פלטפורמות קונטיינרים כמו Docker וקוברנטס (Kubernetes). היא מגינה על כל אפליקציות הרשת שנמצאות על השרת המארח שלה.
    מתאימה יותר לארגונים שרוצים לנהל את מערכת ההגנה שלהם בכוחות עצמם, אך ללא ההשקעה הנדרשת כדי להחזיק בחומרה ייעודית.

    יתרונות:
    • מאפשרת יותר התאמות.
    • מותקנת ישירות על השרת כתוכנה, כך שזמני השהייה הקשורים למערכת זו בטלים לחלוטין. בנוסף, אין צורך להתעסק במכשור וחיבורים כמו במערכות מבוססות רשת/חומרה.

    חסרונות:
    • הטמעה יחסית מורכבת, המצריכה ידע טכני והבנה בתחום.
    • מסתמכת על משאבי המארח כדי לפעול. יכולה לכלות כמות גבוהה של משאבים, הנחוצים לפעמים לדברים אחרים. מצב זה יכול לגרום לחוסר איזון, לקריסות ולהאטה, ומצריך מארח עם מספיק משאבים או שדרוג.
    • ניהול עצמי: תחזוקה, עדכונים והגדרות באחריות המשתמש.

    מבוססת רשת (Network-based WAF)

    או, בשם אחר, מבוססת חומרה. חומרה זו מתחברת ישירות לרשת המקומית (LAN) באופן פיזי, בדומה לכל מכשיר אחר המתחבר לרשת. בהתאם לשמה, מספקת ניטור והגנה לכל יישומי הרשת בתחום הרשת עליה היא מגינה. מתאימה בעיקר לארגונים גדולים שמשתמשים באפליקציות רשת פנימיות ודורשים רמת אבטחה ופרטיות גבוהות (כמו סוכנויות ממשלתיות) ובעלי צוות IT ייעודי, או במקרים בהם יש צורך ב-זמני השהייה (Latency) קצרים מאוד.

    תמונה של WAF כחומרה - קופסה שחורה עם המון חיבורים של רשת חוטית וחיבור לחשמל.
    WAF מבוססת רשת/חומרה

    יתרונות:
    זמן ההשהייה קצר משמעותית, עקב הקרבה הפיזית בין הרשת לבין מכשיר ה-WAF המחובר אליה.
    • מספקת פרטיות מירבית עקב היותה מכשיר פיזי – כלומר, כמעט בלתי ניתן לגישה באופן שאיננו פיזי.

    חסרונות:
    • יקרה מאוד, הן מבחינת הרכישה/השכרה, הן מבחינת התחזוקה, והן מבחינת הצורך בכוח אדם לביצוע הגדרות, התקנות, תחזוקה וכדומה.
    • ניהול עצמי בלבד.

    ה-WAF שלנו

    ב-Jetserver, אנחנו משתמשים ב-ModSecurity כדי לספק שירותי WAF מבוסס ענן.
    ModSecurity הוא מודול אבטחה מתקדם בקוד פתוח עבור שרתי Apache ,Nginx ו-LiteSpeed.
    הוא מתפקד כמחסום הגנה מתקדם נגד גורמים זדוניים, ובנוסף לסיפוק הגנה בהתאם למה שנכתב עד כה, הוא גם מונע מתקפות נוספות, כגון RFI ו-LFI (הכללת קבצים מרוחקת ומקומית – Remote\Local File Inclusion).

    אנחנו משתמשים במגוון מערכים של חוקי WAF, בהתאם לפונקציה שהאתר או היישום על השרת שלכם נועד למלא. ביניהם:

    • OSWAP Core Rule Set (CRS)
    • Imunify360
    • Comodo
    רוצים דוגמה טכנית?

    נתון, לדוגמה, אתר שמציג פרטי משתמש לפי מזהה (ID), בכתובת ה-URL הבאה: https://example.com/user.php?id=5

    כאשר הגולש רוצה להיכנס לכתובת הזאת, בין אם על ידי הקלדתה או על ידי לחיצה על קישור, השרת מריץ שאילתת SQL (או SQL Query) , כמו: SELECT * FROM users WHERE id = 5;

    כלומר, הדפדפן מחפש את פרטי המשתמש בהם נמצא ID=5 (מבקש אותם ממסד הנתונים של האתר) ומציג אותם על דף HTML.

    גורם זדוני יכול להשתמש בזה כדי לבצע הזרקת SQL: הכנסת קלט (קוד) אחר, שיגרום לשאילתה לבצע פעולה אחרת מייעודה המקורי. פעולה זו תהיה בעלת השלכות אבטחה שליליות ולעיתים כבדות לאתר או לשרת.

    במקרה של הדוגמה, הגורם הזדוני יכול לשנות את כתובת ה-URL ל: https://example.com/user.php?id=5 OR 1=1, ולמעשה להכניס קוד זדוני במקום/בנוסף למספר. במקרה זה, הקוד הזדוני הוא OR 1=1.

    השרת יריץ את השאילתה כ: SELECT * FROM users WHERE id = 5 OR 1=1;

    איך זה פועל לטובת התוקף?
    במקרה זה, הדפדפן למעשה מבקש מהשרת להצג לו את המקרה בו id שווה ל-5, או את המקרה בו 1=1 במסד הנתונים. מאחר ו-1 תמיד שווה ל-1, כלומר בכל ה”מקרים”, השרת יציג לתוקף את כל המשתמשים מהטבלה.
    בדרך זו, אותו גורם זדוני יכול להוציא מידע רגיש כמו שמות משתמשים, סיסמאות (לא מוצפנות) וכתובות אימייל, למחוק ולשנות מידע על מסד הנתונים, ועוד.

    למה כל ההסבר המופשט הזה של איך הזרקת SQL מתבצעת?
    כי מערכת ה-WAF שלנו, באמצעות סט החוקים המוגדר, תדע לזהות כי OR 1=1 איננו חלק סטנדרטי מכתובת ה-URL ותמנע מהשאילתה לעבור. היא יודעת לזהות חריגות ומתקפות כאלה ולעצור אותן.

    לסיכום

    מערכות WAF מהוות שכבת הגנה נוספת ובעלת תועלת רבה כאשר יש צורך באבטחת יישומי רשת על שרת כלשהו. שכבת אבטחה נוספת, שמספקת הגנה ומניעה שוטפות ורציפות מפני מגוון רחב של מתקפות וחולשות, יכולה לעשות את ההבדל בין חדירה לשרת לבין מתקפה שנכשלה, או שבכלל לא הצליחה להתחיל.

    עם זאת, כמו כל דבר, הן אינן חפות מחסרונות (שמתבלטים יותר כאשר משתמשים בהן כתוכנה או כחומרה). הן יכולות להוריד קצת מנוחות השימוש ביישומי הרשת עליהם הן מגינות בגלל טעויות זיהוי. ייתכן, בנוסף, שהן יצריכו שדרוגים או השקעה כלשהי כדי שיוכלו לעבוד בצורה הרמונית עם שאר הרכיבים על השרת. עם זאת, בעיקר כשמדובר בשרתים בעלי תוכן רגיש או פרטי, ה”קורבן” הזה זעום לעומת התועלות שהן מביאות. כמובן, הכל תלוי בצרכים ובשיקולים של המשתמש.

    נוסיף ונאמר כי שימוש ב-WAF אינו נועד לשמש פיתרון יחיד ואולטימטיבי, גם בהגנה על יישומי רשת. על אף החסינות היחסית שלהן, האדם הנכון עם מספיק מוטיבציה וידע, יכול לעקוף גם אותן, ואף להשתמש בהן.
    שימוש נכון במערכות אלה – כשכבה נוספת של הגנה וכחלק ממערך הגנה נרחב ומגוון יותר – יהווה אבטחה ממשית על הנכסים שלנו וידאג שהמערכות שלנו ישארו מוגנות.

    השותפים שלנו

    • js-partners-02
    • js-partners-03
    • nginx-js-partners-04
    • js-partners-06
    • mariadb-icon
    • docker-icon
    • nodejs
    Skip to content