1 / 39

הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות. תרגול 8 – וירוסים וחיות אחרות. הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד. סוגי קוד זדוניים. סוגים משתכפלים. בקטריות. תוכניות (תהליכים) שלא עושות דבר מלבד להשתכפל בזיכרון פגיעה בזמינות של מחשבים לדוגמה: fork bomb

palmer
Download Presentation

הגנה במערכות מתוכנתות

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. הגנה במערכות מתוכנתות תרגול 8 – וירוסים וחיות אחרות הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד.

  2. סוגי קוד זדוניים הגנה במערכות מתוכנתות - תרגול 8

  3. סוגים משתכפלים הגנה במערכות מתוכנתות - תרגול 8

  4. בקטריות • תוכניות (תהליכים) שלא עושות דבר מלבד להשתכפל בזיכרון • פגיעה בזמינות של מחשבים • לדוגמה:fork bomb while (true) do fork(); (לא לנסות!!!) הגנה במערכות מתוכנתות - תרגול 8

  5. תולעים • תוכניות (תהליכים) שמנסות להיכנס למחשבים אחרים ברשת, להעתיק את עצמן לשם ולהריץ את עצמן שם • משתמשות ב"חורים" שמאפשרים לעבור למחשבים אחרים • מסוות את עצמן כדי להדביק הרבה מחשבים לפני החשיפה • Internet worm (1988), I Love You (2000), Nimda (2001), Netsky(2004), Bagle(2004), ... הגנה במערכות מתוכנתות - תרגול 8

  6. וירוסים • קטעים זדוניים בתוכניות, אשר מדביקים את עצמם לתוכניות אחרים • נדבקים לקבצי הרצה, קבצי נתונים, תוכניות בזיכרון או ב-boot sector • עוברים בין מחשבים ע"י העברת קבצים, תקשורת ברשת, ... • כיום גם קבצי נתונים יכולים להכיל וירוסים (ב-macro) • Ping Pong, Michelangelo, Melissa,... הגנה במערכות מתוכנתות - תרגול 8

  7. program’s 1st command goto virus code איך מתבצעת ההדבקה? program code virus code infect other programs; if (condition) then // damage the system; run the original program program’s 1st command goto program code הגנה במערכות מתוכנתות - תרגול 8

  8. איך נלחמים בוירוסים ותולעים? • אנטי-וירוס יבצע: • Detection – זיהוי תוכנית הנגועה בוירוס • Identification – זיהוי סוג הוירוס • Removal – הסרת הוירוס • Quarantine – העברת הקובץ ל"הסגר" • אם לא ניתן לזהות את הוירוס או להסירו, ניתן למחוק את התכנית הנגועה. הגנה במערכות מתוכנתות - תרגול 8

  9. איך מזהים וירוס? • "חתימה אישית" • קטע קוד מתוך הוירוס • שינוי חתימות קבצים או אורכם • Activity Traps – תכניות השוכנות בזיכרון • מזהות מתי מתבצעות פעולות האופייניות לוירוסים הגנה במערכות מתוכנתות - תרגול 8

  10. וירוסים מתוחכמים יותר... • Stealth Virus (וירוס חמקן) • דחיסת התכנית המקורית • שינוי פונקציות מערכת המבצעות קריאה מהדיסק • Polymorphic Virus • משנה את קידודו כל הדבקה (שינוי סדר פקודות בלתי תלויות, הוספת פקודות חסרות השפעה, הצפנת הוירוס בעזרת מפתח אקראי) • גם האנטי-וירוסים נהיים מתוחכמים יותר (וכו'...) הגנה במערכות מתוכנתות - תרגול 8

  11. התקפה היא ההגנה הטובה ביותר הגנה במערכות מתוכנתות - תרגול 8

  12. סוגים שאינם משתכפליםוזקוקים לתכנית מכילה הגנה במערכות מתוכנתות - תרגול 8

  13. סוסים טרויאניים • קטעי קוד סודיים וזדוניים בתוך תוכניות שימושיות (ls, compiler, editor,...) • הרצת התוכנית גורמת להפעלת קוד הסוס ולביצוע פעולות זדוניות • הסוסים מאפשרים עקיפת בקרת הגישה: • שינוי הרשאות קבצים • קריאה/כתיבה של קבצים • שידור קבצים • פתיחת shell בהרשאות root סוס טרויאני במחשב (אילוסטרציה) (נלקח מאתר ynet...) הגנה במערכות מתוכנתות - תרגול 8

  14. פרשת "הריגול התעשייתי" (נובמבר 2004) הותר לפרסום: פרשת ריגול במחשבי חברות מהגדולות במשק רעידת אדמה בעולם אבטחת המידע הישראלי: המשטרה עצרה שורה של חוקרים פרטיים בכירים, בחשד שהשתמשו בתוכנת מחשב השותלת "סוס טרויאני" במחשבי חברות מסחריות ובמחשבי משרדי פרסום ויחצ"נות, במטרה לרגל למתחרים. בין הקורבנות: הוט, אורנג', שטראוס-עלית, צ'מפיון מוטורס ועוד. בעקבות כך נעצרו מנהלים בכירים בחברות שקיבלו את המידע ובהן יס, וולוו, פלאפון וסלקום. מנכ"ל סלקום, יצחק פטרבורג, הגיע למסור את גרסתו. בין העצורים גם מפתח התוכנה, שנלכד בלונדון עם רעייתו. הפרשה נחשפה בעקבות תלונה של הפסיכולוגית ורדה רזיאל ז'קונט ובעלה, שמפתח התוכנה הוא חתנם לשעבר. רני רהב הזועם, אחד הנפגעים: "שיתנו להם גזר דין מוות" (פורסם באתר ynet, מאי 2005) http://www.ynet.co.il/articles/1,7340,L-3089971,00.html הגנה במערכות מתוכנתות - תרגול 8

  15. רוגלה • תוכנה האוספת מידע על משתמשי מחשב ללא הסכמתם • מעקב אחר הקשות במקלדת (KeyLoggers) • מעקב אחר היסטוריית גלישה • גישה למסמכים אישיים המאוחסנים בדיסק הקשיח • מטרות שונות • חשיפת סיסמאות • שימושים מסחריים (פרסום, ריגול תעשייתי) • נזק עקיף נגרם עקב צריכת משאבים מוגברת הגנה במערכות מתוכנתות - תרגול 8

  16. רוגלה הגנה במערכות מתוכנתות - תרגול 8

  17. דלתות סתרים • קטעי קוד סודיים וזדוניים המושתלים בתכנית, אשר מאפשרים להיכנס למערכת בצורה לא חוקית • בדרך כלל משמש בזמן ניפוי שגיאות במערכת • דוגמה: הסיפור של קן תומפסון • ממפתחיה הראשונים של מערכת ה-Unix • לא ניתן לסמוך על קוד שלא כתבת את כולו (כולל המהדר שקימפל אותו) הגנה במערכות מתוכנתות - תרגול 8

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

  19. ביצי פסחא • תוספות נסתרות, "בונוסים" שנוספו למוצר • לא בהכרח בתחום המחשבים • למשל סימולטור חלל שמתחבא ב-excel 97... • מאגר מידע על ביצי פסחא: http://www.eeggs.com/ הגנה במערכות מתוכנתות - תרגול 8

  20. פצצות לוגיות • קטעי קוד סודיים וזדוניים שמושתלים בתכנית וגורמים נזק ברגע שתנאי מסוים מתקיים • מבנה טיפוסי: if (cond) then damage; • דוגמאות: • פצצת קובץ משכורות • פצצה בתוכנה לנסיון הגנה במערכות מתוכנתות - תרגול 8

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

  22. תולעת האינטרנט הגנה במערכות מתוכנתות - תרגול 8

  23. תולעת האינטרנט • 2 בנובמבר 1988 • באותו זמן היה כינוס של מומחי מערכות unix ב-MIT • 60,000 מחשבים ברשת האינטרנט • גרמה לפגיעה בפעילות הרשת • מחשבים רבים נפלו לאחר "סתימת" טבלאות התהליכים שלהם או שטחי הדפדוף • נכתבה ע"י Robert Tappan Morris הגנה במערכות מתוכנתות - תרגול 8

  24. מציאת מחשב ברשת חדירה למחשב הדבקת המחשב תולעת חדשה שלבי פעילות התולעת: • מציאת מחשב ברשת • חדירה למחשב • הדבקת המחשב • תולעת חדשה רצה במחשב החדש הגנה במערכות מתוכנתות - תרגול 8

  25. מציאת מחשב ברשת חדירה למחשב הדבקת המחשב תולעת חדשה מציאת מחשב ברשת • הרצת התכנית netstat • מראה בין השאר את רשימת כל המחשבים אליהם יש כרגע קשר TCP/IP פתוח: הגנה במערכות מתוכנתות - תרגול 8

  26. מציאת מחשב ברשת חדירה למחשב הדבקת המחשב תולעת חדשה מציאת מחשב ברשת • חיפוש שמות מחשבים בקבצי מערכת, כגון .rhosts, /etc/hosts.equiv . מחשבונות אלה ניתן לבצע rlogin או rsh • ניחוש כתובות אחרות באותו domain • חיפשו בקבצי .forward של משתמשים במערכת • קבצים המשמשים להעברת דוא"ל למחשב אחר הגנה במערכות מתוכנתות - תרגול 8

  27. מציאת מחשב ברשת חדירה למחשב הדבקת המחשב תולעת חדשה חדירה למחשב החדש • ניסיון לבצע rsh לכל אחד מהמחשבים שזוהו • ניצול אופציית debug בתוכנת sendmail • הייתה מאופשרת ברוב המחשבים • אפשרה לשלוח פקודות ב-mail, אותן המחשב המקבל היה מבצע • ניחוש סיסמה של משתמש (התקפת מילון) • ניצול חור ב-fingerd הגנה במערכות מתוכנתות - תרגול 8

  28. מציאת מחשב ברשת חדירה למחשב הדבקת המחשב תולעת חדשה finger • תכנית שמאפשרת לקבל מידע על משתמש • האם מחובר למחשב כרגע • מה שם החשבון שלו • מתי קרא דואר לאחרונה • ... הגנה במערכות מתוכנתות - תרגול 8

  29. מציאת מחשב ברשת חדירה למחשב הדבקת המחשב תולעת חדשה Computer A Computer B 1: “user” fingerd finger user@B 2: data on “user” איך finger עובד? קריאת הבקשה נעשית בעזרת הפקודה gets הגנה במערכות מתוכנתות - תרגול 8

  30. מציאת מחשב ברשת חדירה למחשב הדבקת המחשב תולעת חדשה הבעיה עם gets... • gets אינה יודעת מה גודל החוצץ • כל המידע שמגיע מוכנס לחוצץ ללא בדיקת חריגה • נסתכל על מבנה כללי של fingerd: main() { char buf[512]; gets(buf); finger(buf); } הגנה במערכות מתוכנתות - תרגול 8

  31. מציאת מחשב ברשת חדירה למחשב הדבקת המחשב תולעת חדשה איך זה עובד במצב תקין? כתובות גבוהות main() { char buf[512]; gets(buf); finger(buf); } פרמטרים של main כתובת חזרה מ-main שמירת רגיסטרים הגנה במערכות מתוכנתות - תרגול 8

  32. מציאת מחשב ברשת חדירה למחשב הדבקת המחשב תולעת חדשה איך זה עובד במצב תקין? כתובות גבוהות main() { char buf[512]; gets(buf); finger(buf); } פרמטרים של main כתובת חזרה מ-main שמירת רגיסטרים buf משתנים אחרים הגנה במערכות מתוכנתות - תרגול 8

  33. מציאת מחשב ברשת חדירה למחשב הדבקת המחשב תולעת חדשה איך זה עובד במצב תקין? כתובות גבוהות main() { char buf[512]; gets(buf); finger(buf); } פרמטרים של main כתובת חזרה מ-main שמירת רגיסטרים buf הנתונים שנקראים ע"י gets נכתבים כאן משתנים אחרים כתובת של buf כתובת חזרה ל-main נתונים של gets הגנה במערכות מתוכנתות - תרגול 8

  34. מציאת מחשב ברשת חדירה למחשב הדבקת המחשב תולעת חדשה איך זה עובד עם התולעת? כתובות גבוהות main() { char buf[512]; gets(buf); finger(buf); } פרמטרים של main כתובת חזרה מ-main שמירת רגיסטרים buf הקוד של התולעת משתנים אחרים buf מכיל את הקוד של התולעת: 9 שורות אסמבלר שמבצעותexecve(‘/bin/sh’,0,0) (מחליפות את התהליך הנוכחי בתהליך shell) כתובת של buf כתובת חזרה ל-main נתונים של gets הגנה במערכות מתוכנתות - תרגול 8

  35. מציאת מחשב ברשת חדירה למחשב הדבקת המחשב תולעת חדשה תהליך ההדבקה • כעת קיים shell אשר מחובר לפורט עליו יושבת תולעת האם • ההדבקה מתבצעת בשני שלבים: • העברת תוכנית ביניים למחשב החדש והפעלתה • תכנית הביניים מפעילה את התולעת הגנה במערכות מתוכנתות - תרגול 8

  36. מציאת מחשב ברשת חדירה למחשב הדבקת המחשב תולעת חדשה העברת תכנית הביניים • קוראים לתכנית הביניים בשם אקראי כלשהו. • למשל x14481910.c • תולעת האם מבצעת את הפקודות הבאות: cd /usr/tmp cat >x14481910.c תכנית C EOF cc -o x14481910 x14481910.c X14481910 rm –f x14481910.c x14481910 הגנה במערכות מתוכנתות - תרגול 8

  37. מציאת מחשב ברשת חדירה למחשב הדבקת המחשב תולעת חדשה הפעלת התולעת החדשה • כעת תכנית הביניים עובדת • מתקשרת דרך הפורט בו יושבת תולעת האם, ומקבלת שלושה קבצים נוספים: • גרסה בינארית של התולעת ל-sun3 • גרסה ל-VAX • קוד ה-C של תכנית הביניים • תכנית הביניים קוראת ל-shell שיחליף אותה (ע"י execl) • תולעת האם מנסה להפעיל את אחת מגרסאות התולעת שקיבלה הגנה במערכות מתוכנתות - תרגול 8

  38. מציאת מחשב ברשת חדירה למחשב הדבקת המחשב תולעת חדשה התולעת החדשה • התולעת החדשה רצה בשם sh. • קוראת את כל הקבצים שבפרמטרים לזיכרון • מוחקת את כל הקבצים שנוצרו בדיסק • עכשיו הכל נמצא רק בזיכרון • מדי פעם בודקת אם יש עוד עותק של התולעת על אותו מחשב • אם כן, אז אחד מהעותקים מתאבד ("הטלת מטבע") • מניעת סימון "מזויף" שיש תולעת ע"י challenge-response • אחד מתוך שבעה עותקים (אקראית) אף פעם לא מתאבד הגנה במערכות מתוכנתות - תרגול 8

  39. סיכום • כיצד התולעת הגנה על עצמה מפני מפעילי מחשב? • שינוי שם התהליך ל-sh ומחיקת הפרמטרים • בפלט של ps התהליך נראה כמו shell תמים • קריאת כל הקבצים לזיכרון ומחיקתם • אחרי ההדבקה אין סימנים על הדיסק • אחד מכל שבעה עותקים לא מתאבד • מתבצע challenge-response כדי למנוע התחזות לעותק אחר • כל כמה דקות מתבצע fork() • הבן ממשיך לעבוד כעותק זהה, והאב מתאבד • לא ניתן לעקוב אחרי ה-pid, זמן החישוב נשאר קטן, מניעת הקטנת עדיפות הגנה במערכות מתוכנתות - תרגול 8

More Related