הגנת אבטחה של חומת אש של יישומי אינטרנט עבור יישומי HTTP ו- HTTPS

צפה בקטגוריות

הגנת אבטחה של חומת אש של יישומי אינטרנט עבור יישומי HTTP ו- HTTPS

6 דק קריאה

סקירה כללית #

המאמר הבא מתאר מקרה שימוש אמיתי עבור ספק אינטרנט או ספק אירוח, שבו HTTP/S Load Balancer reverse proxy הוא נקודת הגישה העיקרית לכל שירותי האינטרנט הציבוריים. תצורה זו מראה כמה קל להגדיר סט כללי WAF מתקדם וחזק על מנת לאבטח יישומי אינטרנט המבוססים על כתובות IP של מקורות ברשימה שחורה, כאשר כל VirtualHost מנהל את הרשימה השחורה שלו באופן שבו IP ציבורי אחד יכול להיות מונע להתחבר לדומיין אינטרנט כמו www.company1.com אך מורשה להתחבר אל www.company2.com.

נתמקד את המאמר בשני חלקים, בחלק הראשי תצורת פרופיל ה-HTTPS תפעל כ-Reverse Proxy עם רשימה של שירותים שונים, והחלק השני יסביר כיצד להגדיר סט כללים של Web Application Firewall שינהל רשימה שחורה שונה לכל שירות HTTP/S.

סביבה #

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

ראשית, כותרת ה-HTTP Host מוערכת וכתובת ה-IP של הלקוח נבדקת ברשימה השחורה שכבר הוגדרה. אם כותרת ה- Host וכתובת ה-IP של הלקוח תואמות, החיבור מתנתק ותגובת HTTP אסורה 403 נשלחת ללקוח, אך במקרה שכתובת ה-IP של הלקוח וכותרת ה-Host המבוקשת אינן תואמות, התעבורה מזוהה כלא זדונית ומועברת למודול מאזן העומסים, שם היעד נבחר על סמך כותרת ה-Host של בקשת ה-HTTP ולבסוף מועבר לשרת ה-backend הזמין.

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

RELIANOID IPDS WAF

תצורת שירות וירטואלי HTTP #

הגדר כתובת IP וירטואלית ייעודית אחת , בדוגמה שלנו 192.168.100.58 , על ידי דפדוף אל רשת > ממשקים וירטואליים > צור ממשק וירטואלי כפי שמוצג להלן:

RELIANOID צור VIP

עכשיו בואו נלך להגדיר את שירות איזון העומסים של HTTP, עבור אל LSLB > חוות ולאחר מכן לחץ על הכפתור צור חוות והזן את פרטי השירות הווירטואלי כפי שמוצג להלן:

RELIANOID צור חוות HTTP אירוח

לאחר מכן לחץ על צור.

כעת לחצו על הכרטיסייה העליונה שירותים וצרו כמה שיותר שירותים שאתם מנהלים. לחצו על הכפתור שירות חדש . במקרה שלנו, ניצור שני שירותים שונים, אחד לניהול השירות עבור www.mycompany1.com ואחד נוסף עבור www.mycompany2.com.

RELIANOID צור שירות HTTP

לאחר יצירת השירות, הוסף את מסנן המארח הווירטואלי ואת ה-backends כפי שמוצג בתמונה למטה.

RELIANOID תצורת שירותי HTTP

במקרה שיש לכם כמה אתרים, עליכם להוסיף רק שירותים נוספים על מנת להגדיר שירות ייעודי אחד לניהול כל רשת מאותה כתובת IP.

כעת תצורת איזון העומסים נעשתה מאפשרת להגדיר את מודול חומת האש של יישום האינטרנט IPDS.

תצורת רשימות שחורות #

אנחנו הולכים ליצור רשימה שחורה אחת לכל שירות אינטרנט על מנת להזין בכל רשימה שחורה את כתובות ה-IP הרצויות לחסימת הגישה. בדוגמה שלנו, ניצור שתי רשימות שחורות שונות בשם blacklistmycompany1 ו- blacklistmycompany2 , אחת לכל שירות בהתאמה.

RELIANOID רשימה שחורה של IPDS1

רשימה שחורה זו תישמר בנתיב ‎/usr/local/relianoid/config/ipds/blacklists/lists/Blacklistmycompany1.txt.

כללנו 2 כתובות IP למטרות בדיקה, אנא שקלו להוסיף כמה שיותר כתובות IP לפי הצורך. כמו כן, ניתן להשתמש ברשימות השחורות הקיימות במודול IPDS .

RELIANOID צור רשימה שחורה של IPDS2

רשימה שחורה שנייה זו תישמר בנתיב ‎/usr/local/relianoid/config/ipds/blacklists/lists/Blacklistmycompany2.txt.

קחו בחשבון שברשימה השחורה הזו כללנו את כתובת ה-IP 192.168.1.191 , כתובת IP זו תשמש למטרות בדיקה בלבד, משם נריץ בקשות HTTP.

קביעת התצורה של חומת האש של יישום האינטרנט מוגדרת #

מטרת תצורה זו היא לשמור על רשימות שחורות IP שונות בכל אתר, על מנת להימנע מאותה רשימה שחורה עבור כל נקודת הגישה לחווה.

אנחנו הולכים להגדיר סט חוקים , שהוא קבוצת חוקים, בשם HostingBlacklisting . סט חוקים זה יורכב משני כללים פשוטים (מזהה כלל 1000 ומזהה כלל 1001 בדוגמה שלנו), כל כלל מוגדר כהתאמה וכפעולה, כאשר אם התנאי תואם אז הפעולה מבוצעת. בדוגמה שלנו, נשתמש באותה פעולה בשני הכללים, אם התנאי תואם, פעולת דחייה מבוצעת עם תגובה 403 Access Denied.

עבור אל IPDS > WAF , לאחר מכן לחץ על צור ערכת כללים של WAF והגדר שם תיאורי למערכת הכללים, בדוגמה שלנו HostingBlacklisting.

הגדר את השדה שלב ברירת מחדל ל- Request headers are received . שדה זה אומר שמודול ה-WAF ינתח את כותרות הבקשות הנכנסות מהלקוח.

RELIANOID IPDS צור ערכת חוקים של WAF

לאחר מכן עבור ללשונית כללים וצר את הכלל הראשון מסוג פעולה כפי שמוצג להלן.

RELIANOID IPDS צור ערכת חוקים של WAF

כעת נוצר הכלל הראשון של קבוצת הכללים, בואו ניצור את התנאים על מנת להתאים את כתובת ה-IP של הלקוח ברשימה השחורה עבור כל כותרת מארח . עבור אל תנאים וצור תנאי בהתאם למשתנה REMOTE_ADDR כפי שמוצג להלן.

RELIANOID התאמה לרשימה השחורה של IPDS

לאחר מכן צור תנאי נוסף עבור התאמת המארח הווירטואלי בהתאם למשתנה SERVER_NAME באופן הבא:

RELIANOID התאמה ל-IPDS SERVER_NAME

בשלב זה, אתר האינטרנט הראשון שמתארח www.mycompany1.com מנהל כתובת IP של רשימה שחורה של יישום אינטרנט מהרשימה השחורה שכבר הוגדרה, המכונה Blacklistmycompany1.txt.

בואו ניצור כלל נוסף עבור האתר השני www.mycompany2.com ונחזור על אותה תצורה כמו תצורת הכלל הקודמת, אך במקרה זה, עליכם לשנות את SERVER_NAME ל- mycompany2.com ולהתייחס לקובץ blacklist2.txt הבא.

ראה את כל התצורה של ערכת הכללים המורכבת של WAF:

RELIANOID IPDS WAF תצורת ערכת החוקים השלמה

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

RELIANOID IPDS WAF - הקצאת חווה

כעת הפעל את ערכת הכללים של WAF עבור החווה, לחץ על הפעולה הפעל בחלק השמאלי העליון של חלון זה, והמערכת תתחיל לסנן תעבורת HTTP עבור אירוח החווה.

בדיקת ערכת הכללים של חומת האש של יישום האינטרנט #

כתובת ה-IP של הלקוח 192.168.1.191 תבקש את האתרים http://www.mycompany1.com ו- http://www.mycompany2.com ובהתאם לתצורה שלנו, מערכת ה-WAF תאפשר חיבור לשירות הראשון בעל אותו שם, אך החיבור ל- mycompany2.com יידחה מכיוון שכתובת IP זו נכללה ברשימה השחורה בשם Blacklistmycompany2.

מכתובת IP 192.168.1.191 ל- VIP המבקשת את האתר www.mycompany1.com דרך מאזן העומסים:

root@192.168.1.191:# curl -H "Host: www.mycompany1.com" http://192.168.100.58 -v * URL שנבנה מחדש ל: http://192.168.100.58/ * מנסה 192.168.100.58... * TCP_NODELAY מוגדר * מחובר ליציאת 192.168.100.58 (192.168.100.58) 80 (#0) > GET / HTTP/1.1 > מארח: www.mycompany1.com > סוכן משתמש: curl/7.52.1 > קבל: */* > HTTP / 1.1 200 אישור
< שרת: nginx/1.10.3 < תאריך: יום שלישי, 10 בספטמבר 2019 15:36:22 GMT < סוג תוכן: text/html < אורך תוכן: 11383 < עדכון אחרון: יום חמישי, 13 בדצמבר 2018 11:01: 49 GMT < חיבור: keep-alive < ETag: "5c123c1d-2c77" < Accept-Ranges: bytes 

מכתובת IP 192.168.1.191 ל- VIP המבקשת את האתר www.mycompany2.com דרך מאזן העומסים:

root@192.168.1.191:# curl -H "Host: www.mycompany2.com" http://192.168.100.58 -v * URL שנבנה מחדש ל: http://192.168.100.58/ * מנסה 192.168.100.58... * TCP_NODELAY set * מחובר ליציאת 192.168.100.58 (192.168.100.58) 80 (#0) > GET / HTTP/1.1 > מארח: www.mycompany2.com > User-Agent: curl/7.52.1 > קבל: */* > * HTTP 1.0, נניח קרוב אחרי גוף HTTP/1.0 403 בקשה אסורה
< Content-Type: text/html < Content-Length: 17 < Expires: now < Pragma: no-cache < Cache-control: no-cache,no-store < * Curl_http_done: called premature == 0 * סגירת חיבור 0 השיב אסורהפ

לאחר שנוצרת התגובה Forbidden , מודול ה-WAF מודיע על הדחייה בקובץ Syslog של מאזן העומסים.

root@zva6000:# tail -f /var/log/syslog 10 בספטמבר 15:38:44 zva6000 פאונד: אירוח, אבטחת מודדים: אזהרה. התאם "האופרטור `StrMatch' עם הפרמטר `mycompany2.com' כנגד המשתנה `SERVER_NAME' (ערך: `www.mycompany2.com') [קובץ "/usr/local/relianoid/config/ipds/waf/sets/HostingBlacklisting.conf"] [שורה "17"] [id "1001"] [rev ""] [msg "התאמה מותאמת אישית 2"] [נתונים ""] [חומרה "0"] [גרסה ""] [בגרות "0"] [דיוק "0"] [שם מארח "192.168.100.58"] [uri "/"] [unique_id "156812992458.770641"] [ref "v0,13v21,18"] 10 בספטמבר 15:38:44 zva6000 פאונד: אירוח, [WAF,service mycompany2, backend 192.168.100.22:80,] (7f6cfac3c700) [לקוח 192.168.1.191] ModSecurity: גישה נדחתה עם קוד 403 (שלב 1). נמצא התאמה בין "Operator `StrMatch' לפרמטר `mycompany2.com' כנגד המשתנה `SERVER_NAME' (ערך: `www.mycompany2.com') [קובץ "/usr/local/relianoid/config/ipds/waf/sets/HostingBlacklisting.conf"] [שורה "17"] [id "1001"] [rev ""] [msg "Custom Match 2"] [data ""] [severity "0"] [version ""] [maturity "0"] [accuracy "0"] [hostname "192.168.100.58"] [uri "/"] [unique_id "156812992458.770641"] [הפניה "v0,13v21,18"] 10 בספטמבר 15:38:44 zva6ktpl1 פאונד: אירוח, שירות mycompany2, backend 192.168.100.25:80, (7f6cfac3c700) WAF דחה בקשה מ-192.168.1.191

עכשיו אתה יכול לבנות ערכות חוקי חומת אש מותאמות אישית שלך כדי להגן על יישומי האינטרנט שלך באמצעות טכניקות בדיקת מנות עמוקות של HTTP / S.

מאמרים קשורים #

https://www.relianoid.com/knowledge-base/enterprise-edition/enterprise-edition-v6-0-administration-guide/v6-0-ipds-waf-update/

📄 הורד מסמך זה בפורמט PDF #

    דואר אלקטרוני: *

    מופעל על ידי BetterDocs