390 likes | 645 Views
הגנה במערכות מתוכנתות חורף תשס"ד הרצאה 6 מבוא לרשתות מודל TCP/IP איומים על רשתות. מבוא. רשתות גדולות דוגמת האינטרנט מחברות מספר גדול של רשתות מקומיות. הרשתות המקומיות מבוססות על תשתיות פיסיות שונות – קווי טלפון, רשתות Ethernet וכיו"ב.
E N D
הגנה במערכות מתוכנתותחורףתשס"דהרצאה 6מבוא לרשתותמודל TCP/IPאיומים על רשתות
מבוא • רשתות גדולות דוגמת האינטרנט מחברות מספר גדול של רשתות מקומיות. • הרשתות המקומיות מבוססות על תשתיות פיסיות שונות – קווי טלפון, רשתות Ethernet וכיו"ב. • רשתות פיסיות שונות מקושרות בעזרת gateways(routers). • לכל gateway יש מספר ממשקים פיסיים. • הערה: למחשבים עם מספר ממשקים פיסיים קוראים multi-homed hosts. כל gateway חייב להיות לפחות dual-homed host. הגנה - חורף תשס"ד - הרצאה 6
מודל השכבות • התוכניות לשליחת הודעות מחולקות ל"תתי תוכניות" שנקראות שכבות. כל שכבה מבצעת תת משימה משלה. • כל שכבה מקבלת שירותים מהשכבה שמתחתיה, מספקת שירותים לשכבה שמעליה, ו"מדברת" עם השכבה המקבילה במחשב השני. • נתרכזבארכיטקטורתTCP/IP: חלוקה לשכבות + סט של פרוטוקולים לתקשורת בין מחשבים. הגנה - חורף תשס"ד - הרצאה 6
החלוקה לשכבות של TCP/IP Application Layer (telnet, ftp, emal,…) Transport Layer (TCP,UDP) Network Layer (IP) Media Access Control הגנה - חורף תשס"ד - הרצאה 6
Application Layer Application Transport Layer TCP/UDP Application Internet Layer IP TCP/UDP Application MAC MAC IP TCP/UDP Application עיבוד החבילה בשליחה הגנה - חורף תשס"ד - הרצאה 6
Application Layer Application Transport Layer TCP/UDP Application Internet Layer IP TCP/UDP Application MAC MAC IP TCP/UDP Application עיבוד החבילה בקבלה הגנה - חורף תשס"ד - הרצאה 6
Media Access Control (MAC) • התפקיד: ניתוב החבילה בתוך רשת מקומית. השכבה מטפלת בכל הפרטים הקשורים בחומרה ובממשק עם הרשת הפיסית. • הניתוב מתבצע על סמך כתובת MAC פיסית (ברשת Ethernetבת 48 ביטים), שהיא ייחודית לכל מחשב בתוך הרשת המקומית. • הפרוטוקול שונה מרשת לרשת ותלוי ברשת הפיסית. • Gateways בד"כ מדברים מספר פרוטוקולי MAC. הגנה - חורף תשס"ד - הרצאה 6
שכבת ה-Network • התפקיד העיקרי:ניתוב החבילה ממחשב המקור למחשב היעד (גם אם הם נמצאים ברשתות מקומיות שונות). • הניתוב בין רשתות פיסיות שונות מתבצע בעזרת gateways. • קטע על מסלול החבילה ששייך לרשת פיסית אחת (למשל בין זוג gateways) נקרא hop. • קיימים מספר פרוטוקולים לשכבה זו, אך נתמקד ב-IP (Internet Protocol). הגנה - חורף תשס"ד - הרצאה 6
Application Application TCP TCP UDP UDP Host A Gateway G1 Gateway G2 Host B IP IP MAC MAC IP IP MAC MAC מעבר החבילה ברשת הגנה - חורף תשס"ד - הרצאה 6
Internet Protocol • הניתוב מתבצע על סמך כתובת IP. • כתובת IPהיא באורך 32 סיביות. • כתובת IP מיצגים על ידי 4 מספרים עשרוניים בצורה x.y.z.w. • השירות ש-IP מספק הנו unreliable ו-connectionless. הגנה - חורף תשס"ד - הרצאה 6
שכבת ה-Transport • התפקיד: לספק תקשורת לאפליקציות מהשכבה שמעליה. • קיימים שני פרוטוקולים עיקריים: UDP ו-TCP. • UDP(user datagram protocol) מספק שירות connectionless, unreliable. • TCP(transport control protocol) מספק שירות שהוא reliable, connection-oriented. הגנה - חורף תשס"ד - הרצאה 6
שרת-לקוח • TCP ו-UDP הם פרוטוקולי שרת-לקוח. • בין השרת ללקוח מתנהל session. • התקשורת בין האפליקציות מתבצעת בעזרת פורטים. • בכל מחשב קיימות שתי סדרות של פורטים: UDP ו-TCP. • בתוך כל חבילה כתובים פורט המקור ופורט היעד, והם מהווים חלק מכתובת המקור והיעד של החבילה ברמת האפליקציה. הגנה - חורף תשס"ד - הרצאה 6
מושג הפורט לכל אפליקציה סטנדרטית קיים פורט משלה.למשל: telnet – TCP 23, http – TCP 80 וכו'. דוגמא: על-מנת לבצע telnet: • הלקוח יפנה לפורט TCP 23 של השרת, מתוך פורט פנוי כלשהו שמספרו x>1023 במחשב הלקוח. • השרת ישלח תשובה לאותו פורט x של הלקוח (שמספרו מופיע בחבילה שהלקוח שלח). הגנה - חורף תשס"ד - הרצאה 6
מושג ה-socket • בשרת (למשל telnet), כל ה-telnet sessions מתנהלות מפורט אחד. על-מנת שניתן יהיה לנהל מספר sessions במקביל, משתמשים ב-sockets. • לכל session מתאים זוג sockets בשרת ובלקוח. • ניתן לזהות כל session באופן חד-חד ערכי ע"י: כתובת ה-IP של המקור והיעד ומספרי הפורטים במקור וביעד. הגנה - חורף תשס"ד - הרצאה 6
מושג ה-socket - המשך • ב-client: כל session נפתח מתוך פורט חדש >1023. בכל פורט כזה יש socket יחיד שמנהל את ה-session. • בשרת, האפליקציה מבצעת listen על הפורט שלה. בכל פעם שמתקבלת בקשה ל-session חדש, נוצר socket חדש שינהל session זה. הגנה - חורף תשס"ד - הרצאה 6
דוגמא • Client בכתובת 132.68.41.7 פותח telnet session אל שרת telnet בכתובת 49.41.89.3, מתוך פורט 1024. נוצר socket(132.68.41.7,1024,49.41.89.3, 23) • אותו client פותח telnet session נוסף, מפורט 1030. נוצר socket (132.68.41.7,1030,49.41.89.3, 23) הגנה - חורף תשס"ד - הרצאה 6
שכבת האפליקציה • כתובות ה-IP, מספרי ה-port של המקור והיעד והפרוטוקול (TCP או UDP) מציינים את האפליקציה • דוגמאות : • FTP • HTTP • telnet • SMTP הגנה - חורף תשס"ד - הרצאה 6
MAC header IP header TCP/UDP header Application Data מבנה ה-IP Datagram • MAC header - משתנה לפי המדיה הפיסיקלית. מכיל את כתובת ה-MACואינפורמציה נוספת. • IP header מכיל: כתובות IPשל השולח, והמקבל, TTL,מספר הפרוטוקול הבא (TCP/UDPאו אחר) • UDP/TCP header מכיל מספרי את הפורטים של השולח והמקבל. TCPמכיל בנוסף חווים (ack)ומספרים סידוריים. הגנה - חורף תשס"ד - הרצאה 6
רשתות מחשבים ובטיחות התחברות הרשת לאינטרנט פוגעת בביטחון המידע. קיים trade-offבין נוחות המשתמש ברשת לבין בטיחות המידע. • התחברות לרשת יוצרת נקודות תורפה, שמיהן ניתן לפרוץ למערכת. • ביזור נתונים ומשאבים. • שירותים רבים, מגוונים, ולא מוגנים. הגנה - חורף תשס"ד - הרצאה 6
Server Server private network HUB Router Server Router untrusted network Internet Server Server Router Router HUB HUB external network Internetworking Security Domains הגנה - חורף תשס"ד - הרצאה 6
התקפות התקפות על IP
IP spoofing • מטרה : התחזות. • IP spoofing הוא שינוי כתובת ה-IP של host. • במירב מערכות ההפעלה קל לשנות את כתובת ה-IP של host. • ע"י שנוי כתובת ה-IP יכול מתקיף (A) לשכנע את המותקף שהחבילות שהוא שולח, מגיעות ממחשב אחר (B) • אבל – חבילות התשובה שהמחשב המותקף שולח לא יגיעו אל המחשב המתחזה, אלא אל המחשב B. הגנה - חורף תשס"ד - הרצאה 6
IP spoofing – למה זה טוב • לעיתים זיהוי משתמש מתבצע על סמך כתובת IP בלבד (rlogin עם הקבים .rhost, /etc/hosts.equiv). • פעמים רבות תוקפים משנים את כתובות ה-IP שלהם בכדי שיהיה קשה להתחקות על עקבותיהם. הגנה - חורף תשס"ד - הרצאה 6
IP spoofing ו-cookies • הגנה אפשרית נגד IP spoofing – שימוש ב-cookies. • הרעיון: נשלח ליוזם ה-session מחרוזת בלתי ניתנת לחיזוי ונדרוש שיחזיר אותה. הגנה - חורף תשס"ד - הרצאה 6
IP spoofing דו כיווני • מטרה :התחזות • IP spoofing דו כיווני מאפשר למחשב מתחזה לשלוח חבילות מכתובת IP שאיננה שלו, ואף לקבל אליה תשובה. • IP spoofing דו כיווני הרבה יותר קשה לביצוע מ-IP spoofing רגיל, מכיוון שהוא מצריך ביצוע של שינויים ברשת (בנתבים), ולא רק במחשב המתחזה. • IP spoofing דו כיווני הינה התקפה שקשה מאוד להתגונן נגדה. הגנה - חורף תשס"ד - הרצאה 6
התקפות על TCP ועל UDP הגנה - חורף תשס"ד - הרצאה 6
התקפות על TCP • שרתים שרצים מעל TCP חשופים להתקפות רבות, אליהן שרתים שרצים מעל UDP אינם חשופים. אנו נזכיר אחת מהן. • הסיבה – כאשר מתחיל TCP session, מערכת ההפעלה מקצה משאבים. • כל המשאבים נשארים מוקצים עד ש-TCP מחליט שה-Session סגור (2 דקות במקרה של TCP תקני). • פתיחה של TCP sessions רבים מדי יכולה להפיל את המחשב. הגנה - חורף תשס"ד - הרצאה 6
TCP - Three way hand shake • TCP Session מתחיל תמיד ב-Three way hand shake (לחיצת יד משולשת). • הלקוח שולח לשרת חבילה שבה סיבית ה-Syn דלוקה, השרת שולח חזרה חבילה שבה ה-Syn וה-Ack דלוקות, ובתגובה שולח הקליינט חבילה שבה ה-Ack דלוק. בהמשך, רק סיבית ה-Ack תהיה דלוקה. • מידע מתחיל לעבור רק החל מהחבילה הרביעית (או השלישית בתקני TCP חדשים). הגנה - חורף תשס"ד - הרצאה 6
Syn Attack • מטרה: DoS(Denial of Service) • ב-Syn attack שולח המתקיף אל המותקף כמות גדולה מאד של חבילות ראשונות ב- TCP session במטרה להפיל את המותקף. • הגנה אפשרית: נגביל את מספר ה-sessions מורשים עם כתובת IP זהה. • התקפה אפשרית:syn attack + IP spoofing. • הגנה אפשרית:cookies. • התקפה אפשרית:Distributed DoS (using zombies or victim machines) הגנה - חורף תשס"ד - הרצאה 6
התקפות על TCP ועל UDP • UDP חשוף יותר מה-TCP להתקפות של IP spoofing חד כיווני. זאת משום שב-TCP, המתקיף אינו יכול לסיים את ה-three way hand shake. הגנה - חורף תשס"ד - הרצאה 6
התקפות על אפליקציות ההתקפות תלויות באפליקציות. דוגמאות: • באגים. • שימוש בפונקציות לא בטוחות (כמו gets, scanf). • שימוש במוד debug. • Session hijacking • פיתרון: לקשור session key עם זהות המשתמש • DoS • DDoS הגנה - חורף תשס"ד - הרצאה 6
Cookie Poisoning • פרוטוקול הגלישה ברשת (http) מאפשר לשרת לשמור מידע אצל הלקוח דרך מכניזם שנקרא cookies. • ה-cookies מאפשרת לשרת לשמור את המצב של הגולש באתר (לדוגמא, סל קניות) על הכונן הקשיח של המשתמש, כך שגם אם השרת נופל, או התקשורת ניתקת, המידע עדיין קיים וזמין. הגנה - חורף תשס"ד - הרצאה 6
Cookie Poisoning • יש לזכור כי העוגיות נשמרות אצל המשתמש! • המשתמש יכול לשנות את תוכנן וערכן של העוגיות. • לשינוי שכזה קוראים Cookie Poisoning. הגנה - חורף תשס"ד - הרצאה 6
SQL Injection • SQL הינה שפת תכנות למאגרי נתונים (Databases). • בהרבה מקרים, שאילתות ברשת מועברות למנגנון SQL שמטפל בבקשה. • אם המכניזם שמפעיל את ה-SQL לא בודק שהשאילתא "תקינה" ניתן יהיה להעביר ל-SQL פקודות או הוראות. הגנה - חורף תשס"ד - הרצאה 6
Ping Flood • פרוטוקול נוסף שקיים מעל שכבת ה-IP הינו פרוטוקול ה-ICMP (Internet Control Message Protocol). פרוטוקול זה עוזר לשכבת ה-IP, אך הוא נמצא מעט מעליה. • לדוגמא, כשאתם מריצים ping לשרת מרוחק, אתם שולחים הודעות ICMP מסוג ping אל השרת, ומחכים לתגובת pong ממנו. הגנה - חורף תשס"ד - הרצאה 6
Ping Flood(המשך) • מערכות הפעלה רבות מקצות תורים וחוצצים (buffers) נפרדים להודעות ICMP כפי שהמערכת מפרידה בין הודעות TCP והודעות UDP. • בהרבה מקרים חוצצים אלה היו קטנים, וע"י שליחת הרבה שאילתות ping גרמו למילוי החוצצים, ולעיתים לקריסת מערכת ההפעלה שלו. הגנה - חורף תשס"ד - הרצאה 6