פרק 3 מבוא לחולשות ולהתקפות הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 90
בכל מערכת )תוכנה או חומרה( קיימות חולשות )נקודות תורפה, חורי אבטחה( יצרניות מערכות תוכנה/תוכנה-חומרה, כמו גם חוקרים מקהיליית האבטחה, מחפשים באופן תמידי אחר נקודות תורפה במערכות לדוגמא: מיקרוסופט התחייבה לפרסם מידע על נקודת התורפה, תוך 90 יום מזמן שנודע לה עליה כיום מפרסמת מיקרוסופט פעם בחודש Tuesday( )patch תיאור של חורי האבטחה, ותיקונים )Patches) עבורם מירב נקודות התורפה הן תוצאה של באגים בתכנות או בתכנון חלק הארי נובע מחוסר בדיקות תקינות של מספר, תחום ואורך של פרמטרים, או חריגה מחוצצים. חולשות הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 91
Explits התקפות התקפות )Explits( שמנצלות חורי אבטחה )Vulnerabilities( יכולות להיות מקומיות או מרוחקות: Explits Lcal התקפות שמחייבות גישה אל המערכת )משמע שבכדי להפעיל אותן צריך להיות משתמש לגיטימי של המערכת( Explits Remte התקפות שניתן להפעילן "מרחוק", מבלי להיות משתמש של המערכת בעידן האינטרנט חור אבטחה שניתן לניצול מרחוק, יותר קריטי מחור אבטחה שניתן רק לניצול מקומי. הוא הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 92
חולשות והתקפות Zer-Day הגדולות תולעים( )וירוסים, ההתקפות מירב אבטחה, שפורסמו עבורם תיקונים )patches( התקפות כנגד מתגוננים ההגנה כלי מירב התקפות שמנצלות חורי אבטחה ידועים למשל Anti-Virus למשל )Intrusin Preventin Systems( IPS התפרסם שטרם אבטחה חור או התקפה Zer-day attack נקראים )patch) או Zer-day vulnerability ניצלו ידועות, עבורם חורי או תיקון הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 93
חולשות אבטחה נובעות ממגוון רחב של סיבות. תכנות שאינו עומד בדרישות רגילות של הנדסת תוכנה. למשל, חוסר בדיקת חריגה ממערכים או מתחום קלט חוקי. הנחות שאינן מתקיימות. למשל, תוקף יכול לשנות תוכן של קובץ שהתכנית משתמשת בו. הנדסה חברתית. תוקף יכול פשוט לבקש את הסיסמא )"בבקשה"(. מנשק למשתמש מבלבל. תצוגה חולשות אבטחה לא מלאה של נתונים, או פקודה לא ברורה. ועוד. הפתרון הכי טוב הוא פשוט להיות מודע. ולפתח בהתאם. לעיתים זה דורש יותר עבודה, או קוד יותר מסובך. אבל לפעמים זה אפילו יותר פשוט. הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 94
איך עובד מנעול יל? דוגמא של חולשה לא ממוחשבת מפתח לא מבנה פנימי תואם מפתח תואם מפתח תואם )תמונה מויקיפדיה( כל פין שבור לשניים, נדחף עם קפיץ לכוון המפתח, כך שבמפתח תואם גובה השבר בדיוק בגובה הגליל המסתובב, בעןד בכל מפתח אחר לפחות פין אחד מונע סיבוב הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 95
פין שבור לשלושה חלקים בשני גבהים שונים שבר אחד בגובה זהה בכל המנעולים לצורך מפתח המסטר שבר שני בגובה שונה בכל מנעול לצורך המפתח הפרטי שלו שאלה אנו רוצים מפתח מסטר איך נשיג כזה? חישוב תמים: במפתח בציור יש חמישה פינים, נניח לכל אחד יש כ- 100000 לנסות שנצטרך נקבל השבר, לגובה אפשרויות 10 מפתחות... חישוב משופר: אם יש לנו כבר מפתח של אחד המנעולים, אז ניתן לבדוק את תשעה המיקומים הנוספים של כל פין בנפרד סה"כ 45 מפתחות... מה הבאג המתואר לעיל שמאפשר לפתח התקפה שתצליח כבר בניסיון הראשון? ואיך עובד מנעול יל עם מפתח מסטר? חלק מיצרני המנעולים באמת נופלים בבאג הזה... ואיך אפשר לתקן אותו? הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 96
כפי שראינו בדוגמא הזו, גם עשוי להצטרך לקיצורי דרך מחשבה מחוץ למסגרת לקבל הודעות חוקיות אחת או יותר בהתקפות ממוחשבות כמה שיקבל יותר יתכן שיקח לו פחות זמן לתקוף אחר כך חולשות וקיצורי דרך והוא עשוי לנצל חולשות שנובעות מנסיון המגן וחולשות בכלל וכל דבר אחר שיכול לעזור במיוחד מה שיעזור להתקפה להיות פשוטה וזולה להגן התוקף יותר טוב... הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 97
buffer verflw & Stack verrun בקורסי תכנות בסיסיים לומדים כי דליפות זיכרון ובעיות אחרות בניהול זיכרון, פוגעות בביצועי התוכנית ונכונותה היום נראה כי בעיות זיכרון יכולות לגרום לבעיות אבטחה החולשה הכי נפוצה בתוכנה היא חריגה מחוצץ buffer verflw בעיה זו נפוצה במספר רב של תוכנות בסביבות מחצית מעדכוני האבטחה מתקנים חריגות מחוצצים לרוב החולשה נובעת מחוסר בדיקת תקינות לדוגמא, כאשר מעתיקים מחרוזת באורך שיכולה להכיל רק 100 תוים דרסנו 90 בתים בזיכרון! 10 קל לתוקף לזהות חולשה זו חולשת חריגה מחוצץ פשוט מנסים לשלוח הודעה ארוכה, למחרוזת ורואים אם התכנית עפה... הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 98
דוגמא לעדכון תוכנה בלינוקס 13/3/2014 הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 99
דוגמא: דריסת מחסנית Lw TOS Buffer Stack grwth Buffer FP Return addr FP Return addr High Stack befre gets Stack after gets הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 100
מה מדפיסה התכנית הבאה? main() { int k=3; char str1[80]; char str2[80]; strcpy(str1, "Happy birthday!"); gets(str2); printf("%s\n", str1); } האם התכנית עשויה להדפיס פלט אחר? האם תוכלו לקבוע מה יהיה הפלט בלי לשנות את התכנית? הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 101
מה מדפיסה התכנית הבאה? תשובה: gets קוראת שורה מ- stdin. אם בשורה יש עד 79 תוים ואז NEWLINE אז ב- str2 יש את השורה עם NULL בסוף, והערך של str1 נותר הוא. Happy birthday! מודפס birthday!.happy main() { } int k=3; char str1[80]; char str2[80]; strcpy(str1, "Happy birthday!"); אבל אם נשלח שורה בת 100 תוים, נניח 100 פעמים האות A, ה- 80 הראשונים יכנסו ל- str2 והשאר ל- str1. כלומר str1 יקבל 20 פעמים A ואז.NULL הפלט יהיה.AAAAAAAAAAAAAAAAAAAA ואם נשלח 200 תוים, str1 גם הוא לא יספיק, ואז הוא יקבל מחרוזות שגדולה מהאורך שלו, כלומר הפלט יהיה בן 120 תוי A. ואחריהם התכנית תעוף ב- return. gets(str2); printf("%s\n", str1); הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 102
מה מדפיסה התכנית הבאה? אבל אם נבחר היטב את המחרוזת כך שבמקום של ערך החזרה )תוים 168-171( יהיו תוים שמייצגים את הכתובת של,main התכנית תרוץ שוב... ונוכל גם לשלוח אותה לבצע כל קוד אחר שיש בזיכרון. main() { int k=3; char str1[80]; char str2[80]; strcpy(str1, "Happy birthday!"); ונוכל גם לשלוח לה קוד הרצה לתוך str2 ולהפנות אליו את ערך החזרה... למשל קוד שמריץ בתורו את...cmd.exe gets(str2); } printf("%s\n", str1); ואז נוכל לעשות התכנית הזו. דבר כל שנרצה, במסגרת ההרשאות של הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 103
ומה מדפיסה התכנית הבאה? // Assume that argc==2 main(int argc, char **argv) { int k=3; char str1[80]; char str2[80]; strcpy(str1, "Nt the nly utput"); strcpy(str2, argv[1]); } printf("%s\n", str1); הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 104
ומה מדפיסה התכנית הבאה? // Assume that argc==2 main(int argc, char **argv) { int k=3; char *str1="this will nt be the utput"; char str2[80]; char *str3="can this be the utput?"; strcpy(str2, argv[1]); printf("%s\n", str1); exit(0); // Ensures that n "return" will be perfrmed } הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 105
בדרך כלל החזרה כך "הנדרס" בלינוקס, ניתן לדוגמא של התהליך הנתקף משנה התוקף בדריסת מחסנית את שתצביע לקטע קוד, שיושב בעצמו shell להריץ כתובת בחוצץ חדש, שיורש את ההרשאות הקוד המוזרק )PIC Psitin Independent Cde( Relcatable איננו יכול להכיל תוים מיוחדים )לדוגמא "n\" או "0\"( הקוד המוזרק )נקרא EGG או,)shell cde צריך להיות: כאשר הדריסה מתבצעת באמצעות scanf(), gets(), strcpy() בדר"כ הקוד המוזרק מאד פשוט ניתן להוריד EGGs מהאינטרנט פונקציות למשל מריץ מחרוזות כדוגמת shell חדש הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 106
פשוט לכתוב קוד בטוח הכי טוב: תמיד לבדוק שלא חורגים מחוצצים ככה מלמדים אתכם גם במבוא למדעי המחשב ובקורסי הנדסת תוכנה )או שלא? ( אפשר גם לכתוב בשפות תכנות שבודקות חריגות )כלומר לא C( בפרט, לא להשתמש בפונקציות הבעייתיות כאשר התוכן עלול על להישלט הגנה נגד התקפות חריגה מחוצץ ישירות או בעקיפין ועדיף בכלל לא להשתמש בהן ידי תוקף strcpy(dest, src),gets,callc,scanf וכו' במקומן להשתמש בפונקציות שבודקות גודל חוצץ: strncpy(dest, src, size_f_dest) fgets זה לא תמיד מספיק כי פונקציות ספריה קוראות לפונקציות הבעייתיות גם כן הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 107
מניעת הרצה ע"י מניעת הרשאה קוד והרצת המחסנית דריסת בעיית עם להתמודד בכדי מתוכה הוסיפו יצרני המעבדים דגל לחומרת ניהול הזיכרון,)MMU( שבעזרתו ניתן לציין כי דף בזיכרון מכיל נתונים בלבד, ואיננו ניתן לביצוע. ב- AMD N execute NX ב- Intel Disable executin DX הגנה בחומרה נגד קוד מוזרק דגלים כאלה היו קיימים במחשבים שונים כבר עשרות שנים. אבל לא בכולם, ולא כל מערכות ההפעלה השתמשו בהם. הוכנסה ב- לחלונות תמיכה במערכות ההפעלה Data Executin Preventin DEP Server 2003 וב- R1 XP SP2 ב- Linux : החל מ- 2.6.8 kernel הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 108
Return t libc() attack אם אין ביכולת התוקפים לכתוב קוד על גבי המחסנית, עדיין יש ביכולתם לשנות את מהלך ביצוע התכנית, ע"י קפיצה למקומות שונים בזיכרון בפרט יכול התוקף לקפוץ ישירות לשירותי מערכת Return t libc() attacks או לחילופין לקוד המקורי של התכנית אם יש שם קוד שמתאים לו ויש טכניקות יותר מורכבות שמאפשרות ביצוע כמעט של כל דבר אם התוכנית המקורית מספיק ארוכה רק על ידי שינוי כתובות חזרה "Return prgramming" הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 109
הגנה ע"י טעינת קוד למיקום לא צפוי Address Space Layut Randmizatin (ASLR) מנגנון ASLR נועד למנוע התקפות כאלה מנגנון זה קובע באקראי את מיקום התכנית והספריות בזיכרון בזמן טעינת התכנית כך, תוקף לא יוכל לשתול מיקום סטטי של שירות מערכת במקום כתובת החזרה זה פתרון חלקי בלבד, שאינו מונע שינוי תוכן במשתנים שעל המחסנית באופן שהתכנית המקורית תעשה פעולה לא רצויה אבל שאפשרית על פי הקוד המקורי שלה, ללא שינויו ההגנה היא רק כנגד שינוי כתובות חזרה הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 110
פתרונות תוכנה לחריגה מחוצץ קנרית )Canary( verflw Buffer גורם לכתיבה של מחרוזות במקומות הלא נכונים ניתן לזהות מקרים שכאלה ע"י טכניקה בשם קנרית.)Canary( בסוף כל אזור משתנים שמים מחרוזת ייחודית, ומדי פעם בודקים שהמחרוזת תואמת לציפייה במקרה שלא כך הדבר, יש בזיכרון דליפה מסוימת המאפשרת כתיבה על הנתונים בפרט, לפני ביצוע return בודקים קנרית על המחסנית! סוגי קנריות \n Terminatrs אקראיות XOR נתמך מ- 1.4 Visual studi (gs) ;gcc מ- 2003 הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 111
יש דרכים נוספות למשל שיטות הגנה נוספות נעילת דפים שכנים לקריאה בלבד כך שלא ניתן לכתוב עליהם ואז חריגה מחוצץ תגרום לחריגה ולהפסקת התהליך הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 112
חולשת אי בדיקת תחומים של הקלט דוגמא הקצאת זיכרון על המחסנית main() { unsigned int i, len; char *buf; scanf("%d", &len); buf=callc(len); // Attacker can set buf t any address f his chice // Reading withut gets, n buffer verflw fr(i=0; i<len; i++) buf[i] = getchar(); exit(0); } הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 113
חולשת אי בדיקת תחומים של הקלט int i; unsigned int * arr; scanf( %d, &i); דוגמא verflw Integer מה הבעיה בקוד הבא? arr = (unsigned int *) mallc (i*sizef(unsigned int)); if (arr == NULL) exit(1); fr (j=0; j<i; j++) scanf( %d, &arr[j]); קוראים ל-( free(arr בהמשך התוכנית. מה קורה כאשר מתקבל הקלט 2=i? 30 1+ במערכת בה int ו- int unsigned הם בגודל 4 בתים, המערכת תקצה רק 4 תאי זיכרון. ההקצאה מצליחה, ולכן הלולאה מתבצעת, אבל 2 30 1+ פעמים! הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 114
פתרונות ל- Overflw Integer הצעה לתיקון int i; unsigned int * arr; scanf( %d, &i); int n = i * sizef(unsigned int); n /= sizef(unsigned int); if(n!= i) exit(1); arr = (unsigned int *) mallc (i*sizef(unsigned int)); if (arr == NULL) exit(1); fr (j=0; j<i; j++) scanf( %d, &arr[j]); הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 115
פתרונות ל- Overflw Integer או לבדוק תחום תקינות של הקלט #define MAX_ALLOWED 1000 // r any ther reasnable bund int i; unsigned int * arr; scanf( %d, &i); if(i<1 i>max_allowed) exit(1); arr = (unsigned int *) mallc (i*sizef(unsigned int)); if (arr == NULL) exit(1); fr (j=0; j<i; j++) scanf( %d, &arr[j]); הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 116
דוגמא נוספת verflw Integer מה הבעיה בקוד הבא, המשרשר שתי מחרוזות ומעבד אותן? וכן בודק תחום? int prcess_cncat(char *str1, char *str2, unsigned int len1,unsigned int len2) { } char cncat_str[256]; if ((len1 + len2) > 256) { return -1; } memcpy(cncat_str, str1, len1); memcpy(cncat_str + len1, str2, len2); return sme_functin(cncat_str); הפעם עשויה להתרחש גלישה של הסכום.len1+len2 למשל.len1=len2=2 31 +3 הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 117
Bash חולשת Shell Shck של חולשת shell shck של bash התגלתה בספטמבר 2014 לאחר שהתקיימה עשרות שנים bash הינו ה- shell הנפוץ ביותר כיום במערכות לינוקס הוכנסה לרשימת 10 החולשות החמורות בהיסטוריה כי bash משמש להפעלת מגוון רחב של שרתים ברשת העיקרון מקומית, פונקציה שהוא ערך של bash כשמציבים למשתנה את להגדיר כדי שבמשתנה הקוד של הפעלה מבצע bash הפונקציה אבל אין בדיקה שתוכן המשתנה כולל רק את הפונקציה דוגמת פקודה # env x='() { :;}; ech vulnerable' bash -c 'ech hell' פלט vulnerable hell הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 118
חולשת ב- SSL/TLS Heartbleed נחשבת לאחת מבעיות האבטחה החמורות ביותר בשנים האחרונות בסה"כ מישהו שכח לבדוק תחומים... OpenSSL Security Advisry [07 Apr 2014] TLS heartbeat read verrun (CVE-2014-0160) A missing bunds check in the handling f the TLS heartbeat extensin can be used t reveal up t 64k f memry t a cnnected client r server. הפעלה מזליגה בלוק של עד 64K בתים כל הפעלה חוזרת מזליגה בלוק נוסף של עד 64K בתים ע"י ביצוע memcpy מהזיכרון לתוך מערך הפלט התוכן הזולג עלול להכיל מפתחות וסיסמאות הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 119
חולשת ב- SSL/TLS Heartbleed הקלט מגיע מהרשת לחוצץ בזיכרון הדינמי )בגודל האמיתי שהגיע( אבל גם בהודעה רשום גודל התיקון בסך הכל מוודא שהתחומים נכונים: אורך אמיתי, כולל כותרות if (1 + 2 + paylad + 16 > s->s3->rrec.length) return 0; memcpy(utput, input, paylad); /* silently discard per RFC 6520 sec. 4 */ לפני שמבצעים אורך הקלט על פי ההודעה מעתיק לפלט יותר מהאורך שיש בקלט אחרת אפשר להעתיק נמצא בזיכרון הדינמי יותר בתים ממה שהגיעו... נשלח לפלט כלומר לתוקף הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 120
הזרקת SQL )Databases( הינה שפת תכנות לבסיסי נתונים SQL במקרים רבים, שאילתות ברשת מועברות למנגנון SQL שמטפל בבקשה, ע"י המרת הקלט לשאילתת SQL למשל: SELECT passwd FROM students WHERE name= <Input> אם המכניזם שמייצר את הקריאה ל- SQL לא בודק תקינות קלט, אז תוקף יכול להעביר ל- SQL פקודות או הוראות כלומר, זו חולשה מאד נפוצה SQL Injectin זה עוד סוג חולשה הנובע מאי בדיקת תקינות קלט וגם קל לתוקף לבדוק את קיומה ולנצל אותה הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 121
דוגמאות ל- Injectin SQL fgets(name, 100, stdin); למשל, דוגמא לקריאה מ- sql משפת תכנות: sql("select * FROM students WHERE name='"+name+"'") name = "a' r name!='a" מה יקרה אם sql("select * FROM students WHERE name='a' r name!='a'") תשובה הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 122
דוגמאות ל- Injectin SQL דוגמא לשינוי סיסמא במערכת ציונים: Let name=the username, newpas=the new passwrd. sql("update students set pass='"+newpas+"' WHERE name='"+name+"'") מה יקרה אם משתמש stud יבחר את הסיסמא החדשה הבאה newpas = "X7+q87^5', grade='100" תשובה sql("update students set pass='x7+q87^5', grade='100' WHERE name='stud'") הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 123
הערות על SQL פקודות SQL נראות בפורמט שהוזכר לעיל sql("update students set pass='"+newpas+"' WHERE name='"+name+"'") בחלק מהשפות יש ל- SQL מנשק API המאפשר להגן כנגד ההתקפות שהוזכרו למשל sql("update students set pass=? WHERE name=?", newpas, name) המנשק מחליף את ה-"?" בפרמטר המתאים באופן מאובטח. ל- SQL יש מערכת הרשאות פנימית מאפשרת הגנה כנגד גישה על ידי משתמש שאסור לו לגשת למידע מסוג מוגדר משום מה, לא משתמשים מספיק במערכת ההרשאות הזו שימוש בהרשאות לא יכול להגן באופן מלא כנגד הזרקת SQL הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 124
חולשת קוד שמזליג זמן חישוב למשל, בדיקת סיסמא על ידי int success=strcmp(typed_pw, saved_pw); אם נוכל למדוד את זמן החישוב בדיוק מספיק, לדעת נוכל את מספר התווים הנכונים בתחילת הסיסמא וככה לחסוך המון זמן בחיפוש סיסמאות הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 125
חולשות תצוגה מבלבלת יקרה ב- duble-click על הקובץ הבא? מה שם מלא: picture.gif.exe" "A great הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 126
חולשות תצוגה מבלבלת פתרון חלקי הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 127
חולשות אנושיות Scial Engineering תקיפה כלי היא חברתית הנדסה השגת מידע שקשה להשיג אחרת פשוט מבקשים וזה אפילו חוקי מנצל תמימות של אנשים הנדסה חברתית ביותר, חזק שמאפשר כולנו מקבלים דואל מ"הבנק" או מ"שרת הדואל" שמבקש מאתנו את הסיסמא שלנו כדי לפתור בעיה כלשהי או טלפון מ"הסניף" שמבקש את המספר הסודי של כרטיס האשראי כדי לבטל אותו אחרי שנגנב, או לכל דבר אחר הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 128
חולשות אנושיות הנדסה חברתית וכולנו מכירים אנשים שענו לבקשות כאלה! כדי להדגים את חומרת הבעיה, אציין שהטכניון שולח דואל לכל בעלי החשבונות בטכניון לפחות פעם בשבוע שמבקש לא לענות לדואל כזה או אחר שמבקש סיסמא עוד דוגמאות של התקפות המבוססות על הנדסה חברתית דואר זבל )spam( הונאות אתרים )phishing( התקנת סוסים טרויאנים ע"י משתמש תמים ניצול רשתות P2P ותוכנות מסרים מידיים הפתרון הוא פשוט הכרת הבעיה, והתנהגות בהתאם כאמור, יש פרק על כך בפודקאסט עושים היסטוריה של רן לוי באתר ואתם מתבקשים להאזין נחשב חומר של הקורס הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 129
ושאלות שיחזור סיסמא יש המון מערכות ואתרים ששומרים את הסיסמא בכתב גלוי במקום "מוצפן" ולכן פריצה לאתר מאפשרת לדעת את כל הסיסמאות ואם למשתמש יש אותה סיסמא גם בחשבון הבנק... לעיתים יש עובד שיש לו את רשימת הסיסמאות כדי להקל על המשתמשים לשחזר אותן טעות חמורה שאלות שיחזור סיסמא: גם כן בעיה חמורה שנת לידה? שם הנעורים של האם? שם בית הספר? שם החתול? הגנה: יש לדאוג שיישום הסיסמאות יהיה סביר! ו"מוצפן" וגם בחירת שאלות שיחזור הסיסמא כלקוח: לא להשתמש באותה סיסמא בכמה מערכות סיסמאות ששמורות בכתב גלוי ולתת סיסמאות חזקות גם לשאלות שיחזור הסיסמא הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 130
חולשת זליגות מערוצי צד כידוע תוקפים ישתמשו באמצעים שונים ומשונים לתקוף, אם זה יקל עליהם את התקיפה אי לכך, חשוב להגן גם כנגד זליגות מערוצי צד side-channels ומערכות חכמים כרטיסים )למשל רבות במערכות למשל, שהמחשב המתחים את למדוד יכול תוקף מחשב( משובצות צורך analysis( )pwer ויש למתחים מתאם עם תוכן החישוב במקרים רבים ניתן להסיק מכך ידע סודי למשל מפתחות קריפטוגרפיים ערוצי צד נוספים המחשב משמיע רעשים התלויים בחישוב ) התקפה אקוסטית( הארקות שגיאות חישוב, באגים במעבד הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 131
חולשת שימוש שגוי בקריפטוגרפיה קריפטוגרפיה היא כלי שמאפשר לנו להגן על מידע, כפי שנראה בשיעור הבא אבל צריך להשתמש בה נכון יש מגוון דוגמאות לשימוש שגוי נפרט כאן רק דוגמא אחת דוגמא: תוכנה להצפנת קבצים )מקרה אמיתי( הצפנת קובץ תחת מפתח סודי, הידוע רק למצפין כאשר מצפינים, התוכנה קוראת מפתח, מצפינה, וכותבת את הקובץ המוצפן על הקובץ המקורי )שזה הדבר הנכון לעשות( אבל, אם המשתמש טעה בתקתוק המפתח בפיענוח, הוא יקבל זבל, ולא יוכל לשחזר את המקור לעולם אז כותב התוכנה החליט לבדוק שהמפתח נכון לפני הפענוח, כדי להגן כנגד טעויות לצורך הבדיקה, הוא שם עותק של המפתח הסודי בראש הקובץ! הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 132
תיקון החולשות למשל patch שמפורסם החולשה מאפשר לתוקף להכיר את החולשה לכן תיקון חולשה צריך להיעשות בו זמנית בכל המערכות היא קיימת למשל פרסום חולשת Heartbleed נדחה עד שתוקנה פרסום חולשות ע"י תיקונן כולל עד שהעדכון בוצע בכל שירותי האינטרנט הגדולים גוגל, פייסבוק, וכו' לתיקון בהן הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 133
פרסום חולשות ע"י תיקון חלקי הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 134
פרסום חולשות מבלי לתקנן הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 135
יש הרבה חולשות אפשריות, רק מעטות מהן הוזכרו כאן... חלק מהן חוזרות כל הזמן וחייבים להיות מודעים להן ולדאוג למנוע אותן ובאשר לשאר סיכום צריך להבין את העקרונות כדי לזהות אותן ולא ליפול בטעות הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 136
התקפות על רשתות הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 137
רשתות מחשבים נועדו להקל על המשתמשים ניתן למצוא מידע בקלות, קל להעביר אותו ממקום למקום וכו' אבל ברשת יש גם גורמים עויינים גם להם קל למצוא את המידע, קל להעביר אותו וכו' והם יכולים גם לנסות לפרוץ למחשבים להם אינם מורשים, או לגרום נזק התקפות על רשתות למשל על ידי שימוש בחולשות קיים יחס חליפין בין נוחות השימוש ברשת לבין בטיחות המידע לפרוץ ניתן דרכן תורפה, נקודות יוצרת לרשת התחברות למערכת ביזור נתונים ומשאבים, דורש לאבטח נקודות תורפה רבות ניתן להשתמש בשירותים רבים, אך רובם לא מוגנים הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 138
ניתן לתקוף כל אחת מהשכבות במודל לכל שכבה שתוקפים יש משמעות שונה, דרישות שונות, וכלים שונים לדוגמא, תקיפת שכבת ה- MAC יכולה להיות sniffing )הקשבה למידע שלא מיועד אלינו(, אך היא אפשרית רק ברשת המקומית התקפות על רשתות לא ניתן לבצע sniffing למחשב ברשת מקומית אחרת נדון בעיקר על התקפות ברמת ה- IP ונראה בעתיד הגנות המשתלבות בשכבות הללו וה- TCP אנו הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 139
מטרה: התחזות IP Spfing spfing IP הוא זיוף כתובת ה- IP של שולח החבילה בדר"כ זה אינו קשה לביצוע בפועל כך יכול מתקיף )A( לשכנע את המותקף, שהחבילות שהוא שולח, מגיעות ממחשב אחר )B( אבל חבילות התשובה שהמחשב המותקף שולח לא יגיעו אל המחשב המתחזה, אלא אל המחשב B שימו לב כי במקרה של,UDP לא בהכרח תהיינה חבילות תשובה "ה ק ל קו ל י ע ק ב ו ה י ד י ם י ד י ע ש ו" )בראשית כ"ז 22( הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 140
תזכורת: IP כותרת 32 bits Ver (4) H.Len TS Ttal Length Identificatin Flags Fragment Offset Time t Live Prtcl Header Checksum Surce Address IP Header Destinatin Address Optins Padding Data (upper layers) הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 141
IP Spfing למה זה טוב? לעיתים זיהוי משתמש מתבצע על סמך כתובת IP בלבד ו- rhsts./( /etc/hsts.allw ע"ס הקבצים rlgin( ולכן קל להכנס לחשבון של משתמש תוך זיוף כתובת IP מניעת מעקב אחר התוקף האמיתי בשילוב עם התקפה אחרת נראה בהמשך כי התקפה זו שימושית כאשר מגבילים כמות המשאבים שמקצים עבור IP נתון כלומר כאשר מחשב מסרב לתת שירות למי שמבקש יותר מידי את הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 142
הגנות כנגד IP Spfing עוגיות Ckies עם תחילת ה- sessin נשלחת לצד השני עוגיה שהיא מחרוזת אקראית, בלתי ניתנת לחיזוי מראש והוא שולח אותה חזרה אם מקבלים אותה חזרה, הרי שהעוגיה אכן הגיעה אליו משמע הוא נמצא ב- IP שהוא טוען ששייך לו אחרת, זיהינו IP spfing בדר"כ משמש לוודא את כתובת ה- IP של יוזם הקשר אבל שימושי גם לווידוא הצד המגיב לחיצת יד משולשת פתרון דומה במהותו שמשמש ב- TCP מגן על שני הצדדים המשוחחים בסיומו ידוע לשני הצדדים שה- IP של הצד השני אינו מזוייף הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 143
הגנות כנגד IP Spfing סינון חבילות בכניסה וביציאה מהרשת egress filtering זריקת חבילות שמגיעות מבחוץ עם כתובות מקור פנימיות ולהפך מוודא שחבילות לא מגיעות מאיזורים ברשת בהן הכתובת לא קיימת הגנה כזו אינה יכולה להעשות במחשב קצה אלא רק בחיבור בין רשתות נתייחס לפתרון זה כשנדון על חומות אש הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 144
IP Spfing דו כיווני מטרה: התחזות spfing IP דו כיווני מאפשר לשלוח חבילות מכתובת IP שאיננה שלו ואף לקבל את התשובה למחשב מתחזה spfing IP דו כיווני קשה מכיוון שהוא מצריך ביצוע של שינויים ברשת )בנתבים( ולא רק במחשב המתחזה ספקי רשת וממשלות לביצוע מ- spfing IP רגיל יכולים לבצע התקפה כזו spfing IP דו כיווני הינה התקפה שקשה מאוד נגדה כי הרשת מתנהגת כאילו התוקף הוא בעל הכתובת האמיתי אבל הגנות קריפטוגרפיות יכולות לעזור )למשל IPsec ו- SSL ( להתגונן הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 145
התקפות על TCP ההפעלה כאשר מתחיל TCP sessin מערכת מקצה משאבים ל- sessin כולל הקצאת זיכרון המשאבים משוחררים בזמן סגירת ה- sessin פתיחה של TCP sessins רבים מדי המשאבים הזמינים ולפגוע בתפקוד המחשב, למשל יכולה להפיל את המחשב כל את לצרוך הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 146
מטרה: Service) DS (Denial f ראשונות של חבילות הרבה המותקף שולח אל המתקיף TCP sessin בבת אחת במטרה להפיל את המותקף או למנוע ממנו להגיב לרשת המיועדים )וקטנים( מיוחדים תורים ההפעלה למערכת לשמירת נתונים של חיבורים שבמהלך של ביצוע לחיצת יד משולשת בעיה: שליחת כמות גדולה של חבילות, גורמת להתמלאות התורים, והמערכת לא יכולה לקבל חיבורים נוספים כלומר לא יכולה לתת שירות לעיתים זה גורם להאטת הפעילות בכלל ואפילו להפלת המחשב Syn Attack הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 147
Syn Attack Syn attack לדוגמא, באפריל 2008, בזמינות אתר CNN שמקורו פגע בסין http://security4all.blgspt.cm/2008/04/update-n-cnncm-attacks-nt-dwn-but.html הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 148
פתרון חלקי נגד מקרים לא מכוונים בפתיחת sessin קיים timeut של כשתי דקות לקבלת מענה אם אין מענה ה- sessin מבוטל והמשאבים משוחררים למשל, המשיב מקבל בקשת פתיחת,sessin מקצה משאבים, שולח חבילה, ומחכה לחבילה השלישית בלחיצת היד המשולשת אם לא כבה) זה מיועד במקור Syn Attack נענה תוך שתי דקות ה sessin- מבוטל )ז"א לצרכי אמינות, אבל המחשב היוזם עוזר חלקית התנתק גם הגנה אפשרית: נגביל את מספר ה- sessins לכל כתובת מקור IP התקפה משופרת: נתחזה להרבה מחשבים Syn attack + IP spfing מהרשת להגנה או המורשים הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 149
Syn Attack הגנה משופרת: נשתמש בעוגיות באופן שאינו דורש שמירת נתונים בזיכרון למשל ה- number Sequence יבחר ע"י פונקצית אימות )MAC( Sequence הפורטים, וה- number שני של שתי כתובות ה- IP, היוזם תחת מפתח סודי, ידוע רק למחשב המאמת אם הערך יחזור בתגובה, ויאומת נכון, סימן שאכן נשלח כך ואם לא יחזור ממילא לא צריך לפתוח sessin ולכן אין צורך לשמור טבלה של לחיצות היד שבתהליך של וכך נמנע את ה- spfing IP בלי חשש להפלת המחשב התקפה: נתקוף באמת מהרבה מחשבים ונעמיס את קווי התקשורת Distributed DS באמצעות zmbies ו- machines victim הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 150
התקפות על UDP UDP לא משתמש ב- number sequence לבתים שהוא שולח או מקבל לכן, הוא חשוף יותר להתקפות המשולבות עם IP spfing חד כיווני ולהתקפות של שידור חוזר של חבילות נראה עוד מעט התקפות DNS pisning התקפות DNS pisning מבוססות שפרוטוקול DNS רץ מעל UDP כך על השאר בין ולכן ניתן לפגוע בשרתי DNS מרוחקים הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 151
פרוטוקול נוסף שקיים מעל שכבת ה- IP הינו ICMP Internet Cntrl Message Prtcl פרוטוקול זה עוזר לשכבת ה- IP, אך מופעל בשכבת התובלה לדוגמא, כשעושים ping לשרת מרוחק, שולחים הודעות ICMP מסוג ping אל השרת, ומחכים לתגובת png ממנו חיבור על עומס יוצרת כאלה הודעות הרבה שליחת האינטרנט של המותקף קיבלנו התקפת DS במערכות רבות )בעיקר אצל לקוחות פרטיים( קצב ההורדה גבוה וקצב ההעלאה נמוך חלק מהשרתים Ping Fld כדאי להעמיס את הכוון האיטי אבל התוקף שולח בכוון המהיר... אם הנתקף עונה לכל בקשת ping תשובותיו מעמיסות את כוון ההעלאה ומחומות האש מגבילים או חוסמים ping הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 152
התקפות על פרוטוקולי ניהול הרשת הרשת כאלה יש השלכות חמורות על מאפשרות לתקוף מערכות לתקיפת פרוטוקולי ניהול פעולת הרשת במקרים רבים התקפות בדרכים לא צפויות לדוגמא ביצוע IP spfing דו כווני בעזרת שינויים בניתוב או שינוי תוכן אתר אינטרנט על ידי שינוי נתוני DNS והפנית שם הדומיין לאתר מתחזה ללא שינוי באתר המקורי הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 153
תקיפת פרוטוקול BGP יש דיון רחב בנושא זה בקורס רשתות מחשבים ולכן לא נרחיב כאן רק נזכיר שהוא תוכנן לפני שתקיפות סייבר היו נפוצות לכן הוא מגן נגד מספר התקפות פשוטות אבל אינו מתוכנן להגן נגד כל ההתקפות ידועות נגדו התקפות רבות הרעיון שמבנה לנתבים שיספרו מזויפות הודעות BGP ישלח התוקף הרשת שונה מהאמיתי וכך הודעות יועברו במסלולים כרצונו הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 154
תקיפת פרוטוקול BGP דוגמאות שינוי מבנה הרשת כך שהודעות מסויימות או יגיעו למחשב של התוקף או יסתובבו ברשת ויעמיסו אותה למשל, ידוע שלפני מספר שנים, הועברה דרך סין למשך רבע שעה כל לא תעבורת יגיעו ליעדן הרשת בארה"ב בגלל קינפוג )ברשת הסינית( שגרם לפרוטוקול להאמין שהמסלול הקצר ביותר עובר דרך סין הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 155
DNS Pisning מטרה: התחזות, גרימת נזק על ידי: זיהום הטבלאות של שרת ה- DNS אליו פונה הלקוח מכיוון שהקישור בין שם dmain וכתובת ה- IP שלו דורשת גישה לשרתי ה- DNS, ומכיוון שפרוטוקול ה- DNS איננו בטוח, ניתן לתקוף את קו התפר הזה הרעיון הבסיסי התוקף ישלח חבילה המתחזה להיות התשובה משרת ה- DNS. לדוגמא, במקום ש- t2.technin.ac.il יוכר כ- 132.68.0.102 התוקף יגרום לו "להיות" 132.68.1.33 יש לפרוטוקול ה- DNS מעין מנגנון הגנה מינימלי כנגד תופעה זו לכל שאילתה יש,queryID התשובה צריכה להיות בעלת אותו.queryID שדה זה הוא באורך 16 ביט. מספיק? הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 156
DNS Pisning?www.bank.cm של IP queryid=200 (2) שרת DNS של bank.cm (1)?www.bank.cm של IP (3) IP של www.bank.cm הוא. queryid=100 IP של www.bank.cm הוא. queryid=101 IP של www.bank.cm הוא. queryid=102 תוקף שרת DNS קורבן הערה: התקפה דומה ניתן לבצע כדי לשנות תשובה לשאילתת DNS של לקוח בודד. אבל השם DNS Pisning שמור לזיהום טבלאות של שרת.DNS התקפת DNS pisning גם קלה יותר כי אין צורך לחכות שהלקוח ישאל את השאילתא. הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 157
התקפות ברמת האפליקציה ההתקפות תלויות באפליקציות. דוגמאות: באגים שימוש בפונקציות לא בטוחות )כמו )gets, scanf Sessin hijacking פתרון: לקשר sessin key עם זהות המשתמש DS DDS הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 158
התקפות על אפליקציות Web הן באינטרנט היום שרצות האפליקציות של הארי חלק אפליקציות Web רצות מעל פרוטוקול http פורט 80 )או 443 )https חלק השרת נכתב באמצעות כלים סטנדרטיים, ורץ מעל שרתי Web נייד קוד באמצעות ממומש הלקוח לקוח התקנת דורשות אינן )Mbile cde( ו- ActiveX Java לדוגמא חלק גדול מהתקפות על ארגונים חודרות לארגון דרך אפליקציית Web פגיעה OWASP Open Web Applicatins Security Prject ארגון שמטרתו לשפר את הבטיחות של אפליקציות Web מפרסם בכל שנה את :OWASP Tp Ten עשר ההתקפות הנפוצות ביותר על אפליקציות Web הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 159
HTTP Ckie Pisning פרוטוקול הגלישה ברשת )http( מאפשר לשרת לשמור מידע אצל הלקוח דרך מכניזם שנקרא ckies למניעת בלבול, שימו לב שאלה עוגיות של HTTP IP spfing ואינן מספרים אקראיים המשמשים למניעת ה ckies- מאפשרים לשרת לשמור מידע בדפדפן על הכונן הקשיח של המשתמש למשל, את סל הקניות של הגולש באתר כך שגם אם השרת נופל, או התקשורת קיים וזמין ניתקת, המידע עדיין הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 160
HTTP Ckie Pisning יש לזכור כי העוגיות נשמרות אצל המשתמש! המשתמש יכול לשנות את תוכנן וערכן של העוגיות לשינוי שכזה קוראים Ckie Pisning דוגמאות לתקיפה משתמש משנה רצויות תוקף משנה לקנות את עוגיות העוגיות משתמש של כך שיגרמו כך לאתר שיקנה לבצע מוצר פעולות שלא לא התכוון הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 161
SQL Injectin ראינו כבר התקפת SQL injectin SELECT * FROM students WHERE name= <Input> התקפות כאלה מסוגלות לפגוע בשרתים לא מוגנים ברשת ולגרום נזק רב ולשמש ככלי עזר עבור התקפה אחרת מאפשרות )ישירות או בעקיפין( גניבת סיסמאות, דליפת מידע, זיהום בסיסי נתונים, כניסה לחשבונות, קבלת הרשאות, ועוד ועוד http://xkcd.cm/327/ הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 162
Crss Site Scripting (XSS) הרשת מלאה בהרבה scripts בשפות שונות )ביניהן ו- VBScript ( JavaScript הרעיון לנצל חוסר בדיקת תקינות בצד השרת, כדי להכניס שורות קוד לביצוע אל דף ה- html שהשרת מציג קיימים שני סוגי XSS XSS Persistent שבו תוקף מצליח להזריק קוד לדף שהשרת מאחסן אצלו: לדוגמא דף Facebk או תגובה בדף של פורום. בהתקפה זו כל דפדפן שניגש לדף המודבק מבצע את הקוד הזדוני Reflected XSS זדוני. מציג השרת שבו למשתמש קוד שמכיל דף כאשר הקוד מבוצע בדפדפן, הוא נראה כאילו שהגיע משרת אמין הוא קורא נתוני משתמש )לדוגמא )ckies ושולח אותם אל התוקף הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 163
דוגמא ל- XSS Reflected נקודת תורפה שנתגלתה ב- redirectin ggle ב- 2005 הסקריפט (http://www.ggle.cm/url?q=...) להפניה מהדף של q. לאתר שמופיע בפרמטר ggle שימש לדוגמא, הפניה לדף הבית של הקורס: http://www.ggle.cm/url?q=http://webcurse.cs.technin.ac.il/236350/ או לדף לא קיים: http://www.ggle.cm/url?q=http://webcurse.cs.technin.ac.il/abcdef/ הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 164
דוגמא ל- XSS Reflected הסקריפט וכך אפשר לתוקף לשתול קוד זדוני. הדפדפן מקבל תגובה לא ביצע בדיקות תקינות לפרמטר, "403 Frbidden" "Yur client des nt have permissin t get URL /url?q=user_input frm this server." או Fund 404 Nt "Nt Fund The requested URL /NOTFOUND was nt fund n this server." ואם ערך הפרמטר כולל סקריפט )עם תגי )HTML הם נשלחים כחלק מהתגובה )כתגי )HTML זה גורם לבצוע הקוד מותנה בפרטים טכניים )שימוש ב- UTF-7 ( הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 165
Crss Site Request Frgery (CSRF) ב- CSRF התוקף משתמש בנתונים שנלקחים מהמשתמש )בדר"כ )authenticatin data,ckies בכדי לבצע טרנסאקציה בשרת תחת זהות מאומתת של המשתמש email( כיצד מבוצעת ההתקפה: התוקף מכין לינק זדוני שדורשת מידע אימות ניתן לגרום לדפדפן לשלוח )שהושג לדוגמא ע"י )XSS המשתמש מקיש השרת, שמאמת המבוקשת על את מידע או שרת אימות מודבק(, שמכיל אוטומטי, מידע לצרף או פעולה כזה הלינק גורם לשליחת הקוד לביצוע אל מידע האימות, ומבצע את הטרנסאקציה הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 166
Crss Site Request Frgery (CSRF) דוגמא אפשרית: שרת מכין טופס ממולא בפורמט של מערכת הציונים הפקולטית אבל עם שדות hidden הטופס נראה תמים, למשל בצורת טופס חיפוש בגוגל משתמש תמים בעל זכויות עדכון ציונים לוחץ על הכפתור... הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 167
השוואת ו- CSRF XSS ב- XSS הדפדפן בוטח בקלט שמגיע מהשרת ההתקפה מכוונת נגד הדפדפן במטרה להשיג מידע רגיש של המשתמש ב- CSRF השרת בוטח בנתונים שמגיעים מהדפדפן הרבה פעמים התקפות משתמשות גם ב- XSS בכדי להשיג מידע )לדוגמא,)ckies וגם ב- CSRF בכדי לבצע פעולות כמשתמש מאומת. הגנה כנגד :XSS בדיקות פרמטרים בשרת. פגיעות ניתנות לזיהוי ע"י כלי סריקה אוטומטיים. הגנה כנגד CSRF )בצד השרת(: בדיקת כותרות ה- Referer בבקשת ה- HTTP דרישה לקוד ייחודי שידוע רק לדפדפן של המשתמש לא לבצע פעולות "חשובות" ללא אישור נוסף מהמשתמש הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 168
buffer verflw למשל, התולעת של מוריס השתמשה בחולשת ברשת יחד עם אפשרות שילובים של חולשות ורשתות וכו' למשל את שרת finger לוגין ברשת למשל כשמאושר בקובץ.rhsts של rsh כשהמשתמש סומך על המחשבים לתקוף כדי למחשבים אחרים ללא סיסמא שרתים הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 169
כיצד מתגוננים? מניעה Preventin ע"י שינוי המערכת עצמה הוספת Authenticatin & Authrizatin DNSSec, IPsec לדוגמא שינוי האפליקציה: בדיקת פרמטרים, שימוש בפרמטרים מוכנים מראש SQL injectin למשל עבור ע"י הוספת אמצעי מניעה חיצוניים למערכת Firewalls, Anti-Virus איתור Detectin IDS Intrusin detectin systems Audit & Lgging SIEM & SOC למשל Big Data & Frensics הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ה 170