10.2.0 – תיאוריה – אבטחת ממשקים בשימוש עי port-security

מה לומדים בחלק זה?

  • מה עושים עם הפורטים בסוויץ' בשימוש? האם הם בסכנת אבטחה?
  • מהי התקפת Mac over flow או Mac Flooding?
  • איך מגנים בפני התקפת Mac over flow – באמצעות אבטחת ממשקים – port-security, והגבלת מספר הכתובות שישויכו.
  • מהי התקפה של גניבת זהות?
  • איך מגנים בפני התקפת גניבת זהות – באמצעות Port-Security. – שיוך כתובת MAC ספציפית.
  • מצבים של שיוך כתובות MAC – סטטי – Static ו- Sticky – דינאמי.
  • מצבי הפרה שונים שיש ל- port-security – מצב protect, restrict ו- shutdown.
  • איך מוודאים הגדרות של port-security?

סרטון

פירוט חלק זה

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

איך מונעים דבר כזה?

  • צריך לאבטח את הפורטים! ולגרום לכך שרק אתם תהיו מורשים להתחבר לשקע הרשת הזה – כלומר לפורט בסוויץ' בעצם.

מלבד זאת, יש גם סוג של התקפה שנקראת Mac Flooding – Mac Overflow. שבהתקפה זו התוקף יכול לשלוח הרבה הודעות בו זמנית ולגרום להשבתה חלקית או קבועה של הסוויץ'.

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

נתחיל בהבנת המתקפה וההגנה מפניה.

התקפת MAC OVERFLOW / MAC FLOODING

התקפה שישנה על הסוויץ' היא התקפת MAC OVERFLOW או בשמה השני: MAC FLOODING.

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

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

  • לגרום לכך שהסוויץ' יתחיל להתנהג כמו האב (HUB), ואז כל הודעה שתגיעה אל הסוויץ', הסוויץ' יציף אותה לכל הממשקים שלו (לכל המחשבים). הדבר קורה מכיון שההתקפה גורמת לטבלת ה- MAC (MAC TABLE) של הסוויץ' להתמלא (כלומר זיכרון ה- RAM נחנק – נגמר).
  • ברגע שאנו מבצעים מתקפה כזאת של מסגרות מידע ברצף, אנו גורמים למעבד (CPU) של הסוויץ' גם כן להתעסק ולהתבלבל, ואז ברגע שהסוויץ' מקבל אליו מסגרת להעברה, הוא מתעכב עם ההעברה ואו שהמסגרת נופלת ולא עוברת, או שייקח לה זמן רב עד שהיא תעבור.

שתי התקפות אלו מבוססות על כך שהסוויץ' עובד בצורה כזאת שהוא מעביר מסגרות מידע על פי כתובות ה- MAC. לסוויץ' יש טבלה הנקראת MAC TABLE ובטבלה זו נמצאות רשומות של כתובות ה- MAC שהוא מכיר (המחשבים שהוא מכיר, המתגים שהוא מכיר וכו'). ברגע שמגיעה הודעה שהיעד שלה מופנה לכתובת MAC שנמצא בטבלה שלו, אז הוא מעביר את ההודעה לפורט שרשום בטבלה.
במידה והכתובות אינה נמצאת בטבלה – אז הוא מבצע flooding – הצפה לכל הפורטים שלו (מלבד מי שהוא קיבל ממנו).

דוגמא להתקפה שכזאת:

ואז טבלת ה- MAC נראית כך:

איך מונעים את ההתקפות? –  Port-security – אבטחת ממשקים

כדי למנוע את ההתקפות על הסוויץ', נוכל להגדיר אפשרות בסוויץ' שנקראת אבטחת ממשקים – Port-Security.

אפשרות זו מגדירה הגנה על הפורטים של הסוויץ'.

פקודות Port-Security

כדי להפעיל את אפשרות ה- Port-Security, עלינו להיכנס לממשק שעליו נפעיל, ניתן להגדיר ממשק אחד או יותר ממשק אחד:

Switch(config)# interface [fa0/1]
Switch(config)# interface range [fa0/1-24]

יש להגדיר את הממשק על מצב Access:

Switch(config)# switchport mode access

לאחר מכן עלינו להפעיל את האפשרות:

Switch(config-if)# switchport port-security

אם ברצוני להגביל את מספר הכתובות המקסימלי שהפורט יוכל ללמוד נוכל לבצע פקודה זו, בדוגמא זו הגבלנו את מספר הכתובות הנלמדות בפורט ל-10: [ברירת המחדל היא 1].

Switch(config-if)# switchport port-security maximum [10]

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

ב- אבטחת ממשקים – יש אפשרות לקבוע מה יקרה כאשר תהיה עבירה, אנו דנים כרגע על ביצוע התקפה, כלומר מה יקרה אם הכתובת ה- 11 תרצה לשלוח הודעה?

אנו יכולים לבחור בין שלוש אופציות: shutdown, protect, restrict.

Switch(config-if)# switchport port-security violation [shutdown\protect\restrict]

האפשרות של shutdown (ברירת מחדל) אומרת שברגע שמתבצעת הפרה, הפורט מתכבה, כלומר הוא פשוט מנותק ולא עובד יותר (למעשה הוא נכנס למצב שנקרא error-disable – שזה מצב כיבוי אוטומטי של הפורט).

ב- protect – כאשר מתבצעת הפרה, הוא לא יאפשר לכתובת הבאה ביותר להיכנס לסוויץ', אבל הוא ממשיך לעבוד כלומר הכתובות שמורשות ימשיכו לעבור.

ב- restrict – אותו הדבר כמו protect רק שבנוסף הוא גם מתעד – כלומר רושם על ההפרה שקרתה, מתי קרתה וכו'.

כעת לאחר שדיברנו על מניעת ההתקפה – כיצד אנו מונעים מאדם זר להתחבר לפורט פעיל בסוויץ'?

התקפת התחברות לא מורשית ממחשב לא מזוהה

כאשר אנו מגדירים אבטחה על הסוויץ', אנו נדאג לכך, שפורטים שלא בשימוש נכבה אותם (כלומר נשים אותם על shutdown). [מגדירים את הממשק שרוצים לכבות: interface [fa0/1] -> shutdown].

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

זאת ניתן לבצע גם באמצעות port-security.

ראשית מגדירים ממשקים רצויים ומפעילים port-security:

Switch(config)# interface [fa0/1]
Swithc(config)# switchport mode access

Switch(config-if)# switchport port-security

לאחר מכן, ניתן להגדיר שאנו נשייך כתובת MAC מסוימת לפורט מסוים (או מספר כתובות MAC לפורט מסוים) בצורה סטטית – כלומר קבועה ע"י מנהל הרשת: [בדוגמא זו שייכנו את כתובת ה- mac: aa:11:22:bb:dd:ee לפורט fa0/1].

Switch(config-if)# switchport port-security mac-address [aa:11:22:bb:dd:ee]

בנוסף על כתובת MAC זו אני יכול להגדיר עוד כתובות MAC שישויכו לפורט זה (בהתאם לכמות ה- MAXIMUM שמוגדר על הפורט).

בנוסף על אפשרות זו, ניתן גם להגדיר אפשרות נעילה אוטומטית – sticky, באפשרות זו, ברגע שמישהו שולח הודעה לפורט בסוויץ', הוא לוקח את כתובת ה- MAC שלו ונועל אותה – משייך אותה לפורט באופן אוטומטי:

Switch(config-if)# switchport port-security mac-address sticky

וידוי פקודות port-security

show port-security ואז רואים את הפלט הבא:

ניתן לראות את כל הפורטים שמופעל עליהם ה- port-security (port), כמו כן מה מספר המקסימלי של הכתובות שיכולות להשתייך לפורט (MaxSecureAddr), כמה כתובות כרגע משויכות (CurrentAddr) וכמה הפרות בוצעו עד עכשיו (SecurityViolation). ואיזה סוג של אבטחה יש על הפורט (Security Action). לדוגמא בפורט fa0/1 יכולה להשתייך רק כתובת MAC אחת, ובפועל משויכת כתובת MAC אחת אך לא בוצעו הפרות. והעונש על הפרה הוא restrict.

פקודת show ספציפית לפורט מסוים נותנת לי יותר מידע:

Switch# show port-security interface fastEthernet 0/2

האם מופעל port-security (enabled) או שלא ((disabled איזו הפרה מוגדרת (Violation Mode) מידע על ה- Aging, מהי הכתובת האחרונה שנתפסה ( Last Source Addressכמה כתובות נתפסו וכו') וכמה הפרות בוצעו (Security Violation Count).

פקודת show על פי כתובות:

Switch# Show port-security addresses

בפקודה זו ניתן לראות את הפורטים שמופעל עליהם port-security וגם איזה כתובת משויכת אליהם (Address) וגם איך שויכו הכתובות לפורטים (Type) – יש שתי אפשרויות לשיוך: secureconfigured – כתובת MAC שויכה ידנית לפורט. SecureSticky – כתובת MAC שויכה דינאמית – אוטומטית לפורט ע"י מצב sticky.

You may also like...

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

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