אמצעי אבטחה בIPv6 – יותר מתאים לעידן המודרני!

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

האם IPv6 מועיל בתחום אבטחת המידע? לדעתי התשובה ברורה – כן! אבל, וזה סייג גדול – צריך ללמוד היטב את התחום החדש ולהתעדכן בפרקטיקות אבטחת מידע חדשות בקשר לIPv6. מנהלי רשתות שמורגלים לIPv4 יצטרכו להתרגל לכלים והפרקטיקות שIPv6 מציע. מנהלי רשת אשר יורגלו לעבודה נכונה עם IPv6 יוכלו להנות מיתרונות אבטחה שלא בהכרח היו קלים (או אפשריים) ליישום בIPv4.

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

  • בעבר, כאשר כתבו את פרוטוקול IPv6 והחליטו על כך שהוא יתמוך בStateless assignment של כתובות IP (כלומר – כל מכשיר שמחובר לרשת ימציא לעצמו כתובת IPv6 על בסיס כתובת הMAC Address שלו ותת הרשת שהוקצתה לצורך הקישוריות), מהנדסים וחוקרים הבינו שעצם השימוש בMAC Address יפגע בפרטיות של משתמשים. הסיבה לכך היא שלא קל לזייף כתובת MAC (מדובר בפרוצדורה אשר עשויה להיות מסובכת למשתמש הפשוט), ונוצר מצב שגם אם קידומת הרשת תשתנה, כתובת הMAC הייחודית של המכשיר תישאר כפי שהיא, ותוטמע בכתובת הIP בכל התחברות לרשת, כך שאפשר לזהות מכשיר על פי כתובת הMAC שמוטמע במכשיר, ולעקוב אחריו. לשם כך, תוכנן חידוש בפרוטוקול שגם קרוי SLAAC privacy extensions. למעשה, התוספות האלה למנגנון הSLAAC גורמות לכך שכל מכשיר ימציא כתובת IPv6 בהתאם לתת הרשת שהוקצתה בתוספת של מספרים רנדומליים. לא די בכך, שגם המספרים האלה מתחלפים בתדירות קבועה, מה שמקשה וגורם לכך שניסיון לבצע מעקב על מכשיר ספציפי הופך להיות משימה בלתי אפשרית למעשה.
  • לפי המאמר הזה, שימוש בIPv6 יגרום לכך שהמעקב אחר משתמשים יהיה קשה יותר וכותב המאמר צודק – אבל חלקית. לדעתי, כותב המאמר מקובע לצורת חשיבה לא מעודכנת. בIPv6 לא משייכים כתובת לבית אב, אלא משייכים תת-רשת שלמה. כלומר, תאורטית, אפשר עדיין "לעקוב" אחרי משתמשים לפי הקצאות של תתי רשת… לכן, למצוא עברייני רשת זו לא משימה בלתי אפשרית – פשוט צריך לצאת מהקבעון המחשבתי. כמו כן, המאמר טוען שIPSec (שיוסבר עליו בהמשך) הוא כלשון המאמר "native IP security system", דבר שגם כן לא עדכני – כיום אין שום חובה ברמת הפרוטוקול ליישם IPSec, ולא אני אמרתי את זה אלא אפשר למצוא מידע על כך כאן וכאן.
    למה אמרתי שהכותב המאמר צודק חלקית? כי לפני הסעיף הזה ציינתי את SLAAC privacy extensions כמנגנון להגברת הפרטיות – אם מסתכלים על מכשיר ספציפי בתת-רשת שלמה. אולם לא התהפכו היוצרות – מעקב אחרי תעבורה מתת-רשת שמוקצת עבור משתמש קצה (לדוגמה, בית אב) עדיין אפשרי.
  • כאמור, IPSec שהיה בעבר חובה ליישום כדי להשתמש בIPv6, אינו חובה כיום ברמת הפרוטוקול, כלומר אפשר ליישם IPv6 ללא IPSec. אבל, ההפעלה של IPSec הרבה יותר קלה מאשר בIPv4 – דבר אשר יפורט בנקודה אחרת בהמשך הפוסט.
  • תצורת P2P (קישוריות מקצה אל קצה)  "חוזרת למשחק" אם משתמשים בIPv6, מה שיכול בהחלט לעזור בהעלאת רמת האבטחה של שירותי אינטרנט. לדוגמה, אם כאשר השתמשנו בIPv4 ובגלל מחסור בכתובות IPv4 וכדי לחבר עוד מחשבים ומכשירים לרשת הפעלנו NAT, כאשר התחברנו לשירות אינטרנטי מסויים שכולל בו תקשורת בין מחשבים ברחבי האינטרנט (כמו לדוגמה – VoIP ותקשורת מסרים מיידיים), היינו צריכים להסתמך על כך שיש שרת מתווך של השירות אשר דואג לנתב את התקשורת ממשתמש אחד לאחר, והסיבה לכך פשוטה – לנו כמשתמשים אין אפשרות ליזום התקשרות מול משתמש אחר, כלומר – לעבור את מנגנון הNAT של המשתמש האחר שאיתו אנחנו מתקשרים (ללא Port forwarding). כשיש קישוריות IPv6 למשתמשי השירות, הם יכולים לבקש את כתובת הIPv6 של המכשיר של המשתמש האחר מהשירות ולפתוח ערוץ תקשורת מולו בתצורת P2P – ללא התערבות של גורם צד שלישי, מה שמפחית את הסיכון להאזנות מצד מפעיל השירות וגורמים אחרים. למי שיחשוש שמא יתגלה כתובת הIPv6, יחזור ויקרא על SLAAC privacy extensions, ויבין שגם אם יודעים מה היא הכתובת הIP שלו כרגע, מחר (או אולי לפני) כבר הכתובת תשתנה ולכן אין סיבה לחשוש מסיכון של חשיפת הכתובת (וגם כי בכל מצב נורמלי, חומת אש מופעלת במכשיר).
  • במאמר שמאוד אהבתי, ואני ממליץ בחום על קריאה שלו (הוא מסכם את רוב הנאמר בפוסט הזה), נכתב ש:

    IPv6 also supports more-secure name resolution. The Secure Neighbor Discovery (SEND) protocol is capable of enabling cryptographic confirmation that a host is who it claims to be at connection time. This renders Address Resolution Protocol (ARP) poisoning and other naming-based attacks more difficult. And while not a replacement for application- or service-layer verification, it still offers an improved level of trust in connections. With IPv4 it’s fairly easy for an attacker to redirect traffic between two legitimate hosts and manipulate the conversation or at least observe it. IPv6 makes this very hard.

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

  • יתרון מובהק של IPv6 מול IPv4 הוא כמות הכתובות שאפשר לחלק למשתמשי קצה. אבל למעשה, טמון פה יתרון עוד יותר גדול בכמות כל כך גדולה של כתובות IP. פרוטוקול IPv4 אשר מוגבל ל4 מיליארד כתובות (בקירוב, יש הקצאות קטנות של תתי-רשת לשימושים אחרים), לא מונע מצב של ניסיון לסריקת הרשת. למעשה, תאגידים בעלי עוצמה ואפילו משתמשים יותר קטנים יכולים להפעיל כלי סריקה כדי לסרוק תתי-רשת בIPv4, ולבצע מיפוי של האינטרנט בזמן סביר! אלה שיחשבו שלא מדובר בבעיה, הרי שהדבר עשוי לעזור לגורמים זדוניים לבצע מיפוי של טופולוגיית (מבנה) הרשת ואף להסיק מכך מסקנות לגבי אפשרויות תקיפה (על תשתיות כמו נתבים וציוד תקשורת אחר). בIPv6, בגלל כמות הכתובות הכל כך גדולה, לנסות לסרוק תתי רשת סטנדרטיים (תת רשת סטנדרטית במינימום היא /64, כלומר מדובר בתת-רשת ענקית… אפשר למצוא כאן טבלה על גדלים של תתי-רשת מבחינת כמות מקסימלית של מכשירים מחוברים) זו משימה בלתי אפשרית, לא משנה כמה כוח עיבוד ורוחב פס יש לתאגיד, גדול ככל שיהיה. לא רק אני כתבתי על כך, אלא גם ממשלת הונג קונג כתבה על כך במסמך הזה.
  • כפי שכבר כתבתי בפוסט שהוקדש לטכניקת הNAT, הרי אני חוזר ואומר בצורה ברורה – בניגוד לדעה בקרב מהנדסי רשת לא מנוסים עם IPv6 (ומורגלים לIPv4), טכניקת הNAT לא מספקת אבטחה לרשת. לעומת זאת, חומת אש כן עוזרת באבטחת הרשת ולכן צריך להפעיל אותה ולדאוג שהיא בודקת תעבורת IPv6.
  • היעדר NAT בIPv6 לא רק שעשוי לשנות את דרך החשיבה של מהנדסי ומנהלי רשת, מה שיוביל להגברת האבטחה ברשת (כפי שצוין בנקודה הקודמת), אלא גם שמי שינסה להפעיל שירות VPN ברשת שלו, יגלה שמדובר במשימה הרבה יותר פשוטה. מתוך ניסיון לא קטן בהקמת שירותי VPN, הייתי צריך להפעיל מנגנון NAT מכיוון שאין אפשרות לחלק כתובות IPv4 ציבוריים (בגלל מחסור בכתובות האלה) כחלק מהשירות למשתמשי הVPN. מנגנון הNAT מאט את השירות ויוצר סיבוכיות מיותרת. עם IPv6, כל שצריך לעשות זה להקצות תת-רשת בגודל סטנדרטי (/64 נחשב בעיני רבים כסטנדרט, ולכל הדעות נחשב כתת-רשת מינימלית שיש להקצות לבתי אב), לוודא שיש ניתוב תקין בין תת-הרשת לנתב האחרון לפני "היציאה לאינטרנט" ולדאוג לכך שכל משתמשי הVPN פשוט יפעילו IPv6 כחלק מהקישוריות ו…זהו! המכשירים המחוברים דרך המנהור המוצפן יוכלו לגלוש לרשת האינטרנט בלי שום בעיות, מבלי תרגום כתובות מיותר.
  • אחד החסרונות המובהקים בNAT, זה שהוא פוגע במימוש IPSec. פרוטוקול IPSec, בין היתר, יכול להיות משומש גם בשירות VPN. אך לעומת OpenVPN לדוגמה, שמשתמש בפרוטוקול TLS כדי להצפין את התעבורה, IPSec יותר "רגיש" לנוכחות של תרגום כתובות. כדי "לעקוף" את התרגום כתובות ולתת למעשה פתרון כדי שמשתמשים יוכלו להפעיל IPSec ברשת שלהם, משתמשים בטכניקה בשם NAT traversal, שלמעשה "ממציאה" שיטות ומנגנונים לעקוף את תרגום הכתובות… לא היו מספיק "עקיפות" כדי להמשיך להשתמש בIPv4, אז מוסיפים עוד כאלה? לעומת זאת, IPv6 פשוט "חותך את זה" – למעשה, IPv6 מייתר את כל הטרחה והעקיפות האלה, בכך שהוא מייתר את תרגום הכתובות ופותר את הבעיה בקלות!

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

This added security depends entirely on proper design and implementation, and the more complex and flexible infrastructure of IPv6 makes for more work. Nevertheless, properly configured, IPv6 networking will be significantly more secure than its predecessor.

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