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

39
תתתת תתתתתתת תתתתתתתת תתתתת8 – תתתתתתת תתתתת תתתתת תתתת: תתתתת תתת תתתת תתתתתת תתתתת תתתתת תתתתתתתת תתתתתתת תתתת תתתתת, תתתתתתת תתתת תתתתת תתתת.

description

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

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

Page 1: הגנה במערכות מתוכנתות

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

– וירוסים וחיות אחרות8תרגול

הערה:

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

בלבד.

Page 2: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 2(c) 2006 אריק פרידמן

סוגי קוד זדוניים

סוג התוכנית/קטע הקודתהליך עצמאי?משתכפלים?

Bacteriaבקטריות – כןכן

Wormsתולעים –

לא )דורשים תוכנית מכילה(

Virusesוירוסים –

Trojan Horsesסוסים טרויאנים – לא

Trap Doorsדלתות סתרים –

Rootkitsרוטקיטים –

Easter eggsביצי פסחא –

Logic Bombsפצצות לוגיות –

spywareרוגלה – משתנהלא

Page 3: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 3(c) 2006 אריק פרידמן

סוגים משתכפלים

Page 4: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 4(c) 2006 אריק פרידמן

בקטריות

תוכניות )תהליכים( שלא עושות דבר מלבדלהשתכפל בזיכרון

פגיעה בזמינות של מחשבים:לדוגמה fork bomb

while (true) do fork();

)לא לנסות!!!(

Page 5: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 5(c) 2006 אריק פרידמן

תולעים

תוכניות )תהליכים( שמנסות להיכנס למחשביםאחרים ברשת, להעתיק את עצמן לשם ולהריץ את

עצמן שם משתמשות ב"חורים" שמאפשרים לעבור למחשבים

אחרים מסוות את עצמן כדי להדביק הרבה מחשבים לפני

החשיפהInternet worm )1988(, I Love You )2000(, Nimda

)2001(, Netsky)2004(, Bagle)2004(... ,

Page 6: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 6(c) 2006 אריק פרידמן

וירוסים

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

נדבקים לקבצי הרצה, קבצי נתונים, תוכניות בזיכרון אוboot sectorב-

עוברים בין מחשבים ע"י העברת קבצים, תקשורתברשת, ...

-ב( כיום גם קבצי נתונים יכולים להכיל וירוסיםmacro)Ping Pong, Michelangelo, Melissa...,

Page 7: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 7(c) 2006 אריק פרידמן

איך מתבצעת ההדבקה?

program code

virus code

program’s 1st command goto virus code

program’s 1st command

goto program code

infect other programs;if )condition( then // damage the system;run the original program

Page 8: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 8(c) 2006 אריק פרידמן

איך נלחמים בוירוסים ותולעים?

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

למחוק את התכנית הנגועה.

Page 9: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 9(c) 2006 אריק פרידמן

איך מזהים וירוס?

"חתימה אישית"קטע קוד מתוך הוירוס

שינוי חתימות קבצים או אורכםActivity Trapsתכניות השוכנות בזיכרון –

מזהות מתי מתבצעות פעולות האופייניות לוירוסים

Page 10: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 10(c) 2006 אריק פרידמן

וירוסים מתוחכמים יותר...

Stealth Virus)וירוס חמקן( דחיסת התכנית המקוריתשינוי פונקציות מערכת המבצעות קריאה מהדיסק

Polymorphic Virus משנה את קידודו כל הדבקה )שינוי סדר פקודות בלתי

תלויות, הוספת פקודות חסרות השפעה, הצפנת הוירוס בעזרת מפתח אקראי(

וכו'...( גם האנטי-וירוסים נהיים מתוחכמים יותר(

Page 11: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 11(c) 2006 אריק פרידמן

התקפה היא ההגנה הטובה ביותר

Page 12: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 12(c) 2006 אריק פרידמן

סוגים שאינם משתכפליםוזקוקים לתכנית מכילה

Page 13: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 13(c) 2006 אריק פרידמן

סוסים טרויאניים

סוס טרויאני במחשב )אילוסטרציה(...(ynet)נלקח מאתר

( קטעי קוד סודיים וזדוניים בתוך תוכניות שימושיותls, compiler, editor)...,

הרצת התוכנית גורמת להפעלת קוד הסוס ולביצוע פעולותזדוניות

:הסוסים מאפשרים עקיפת בקרת הגישהשינוי הרשאות קבציםקריאה/כתיבה של קבציםשידור קבצים פתיחתshell בהרשאות root

Page 14: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 14(c) 2006 אריק פרידמן

(2004)נובמבר פרשת "הריגול התעשייתי"

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

שהשתמשו בתוכנת מחשב השותלת "סוס טרויאני" במחשבי חברות מסחריות ובמחשבי משרדי פרסום

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

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

שנלכד בלונדון עם רעייתו. הפרשה נחשפה בעקבות תלונה של הפסיכולוגית ורדה רזיאל ז'קונט ובעלה,

שמפתח התוכנה הוא חתנם לשעבר. רני רהב הזועם, אחד הנפגעים: "שיתנו להם גזר דין מוות"

(2005, מאי ynet)פורסם באתר http://www.ynet.co.il/articles/1,7340,L-3089971,00.html

הותר לפרסום: פרשת ריגול במחשבי חברות מהגדולות במשק

Page 15: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 15(c) 2006 אריק פרידמן

רוגלה

תוכנה האוספת מידע על משתמשי מחשב ללאהסכמתם

( מעקב אחר הקשות במקלדתKeyLoggers)מעקב אחר היסטוריית גלישהגישה למסמכים אישיים המאוחסנים בדיסק הקשיח

מטרות שונותחשיפת סיסמאות)שימושים מסחריים )פרסום, ריגול תעשייתי

נזק עקיף נגרם עקב צריכת משאבים מוגברת

Page 16: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 16(c) 2006 אריק פרידמן

רוגלה

Page 17: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 17(c) 2006 אריק פרידמן

דלתות סתרים

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

בדרך כלל משמש בזמן ניפוי שגיאות במערכת

דוגמה: הסיפור של קן תומפסון-ממפתחיה הראשונים של מערכת הUnix לא ניתן לסמוך על קוד שלא כתבת את כולו )כולל המהדר

שקימפל אותו(

Page 18: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 18(c) 2006 אריק פרידמן

רוטקיט

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

ניתנים למימוש באופנים שוניםרמה וירטואליתשינויים בקוד גרעיןשינויים בפונקציות ספריהרמת אפליקציה

זיהוי והסרה של רוטקיטים אינם טריויאלים

Page 19: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 19(c) 2006 אריק פרידמן

ביצי פסחא

תוספות נסתרות, "בונוסים" שנוספו למוצרלא בהכרח בתחום המחשבים-למשל סימולטור חלל שמתחבא בexcel 97...

:מאגר מידע על ביצי פסחא

http://www.eeggs.com/

Page 20: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 20(c) 2006 אריק פרידמן

פצצות לוגיות

קטעי קוד סודיים וזדוניים שמושתלים בתכניתוגורמים נזק ברגע שתנאי מסוים מתקיים

:מבנה טיפוסיif (cond) then damage;

:דוגמאותפצצת קובץ משכורותפצצה בתוכנה לנסיון

Page 21: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 21(c) 2006 אריק פרידמן

הערות לסיכום

רוב התוכניות הזדוניות כוללות ערבוב של מספרסוגים של תוכניות

וירוסים ותולעים עלולים לשאת פצצה לוגיתתולעת יכולה לשתול תוכניות עם סוסים טרויאניםסוס טרויאני יכול לכלול רוטקיט להסתרתו

הנדסה חברתית יש כיום תולעים שמנסות לנצל תמימות משתמשים

כדי לגרום נזק

Page 22: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 22(c) 2006 אריק פרידמן

תולעת האינטרנט

Page 23: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 23(c) 2006 אריק פרידמן

תולעת האינטרנט

2 1988 בנובמבר באותו זמן היה כינוס של מומחי מערכותunix-ב MIT

60,000מחשבים ברשת האינטרנט גרמה לפגיעה בפעילות הרשת

מחשבים רבים נפלו לאחר "סתימת" טבלאותהתהליכים שלהם או שטחי הדפדוף

נכתבה ע"יRobert Tappan Morris

Page 24: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 24(c) 2006 אריק פרידמן

שלבי פעילות התולעת:

מציאת מחשב ברשת1.

חדירה למחשב2.

הדבקת המחשב3.

תולעת חדשה רצה במחשב החדש4.

מציאת מחשב ברשת

חדירה למחשב

הדבקת המחשב

תולעת חדשה

Page 25: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 25(c) 2006 אריק פרידמן

מציאת מחשב ברשת

netstatהרצת התכנית 1. מראה בין השאר את רשימת כל המחשבים אליהם

פתוח:TCP/IPיש כרגע קשר

מציאת מחשב חדירה למחשבברשת

הדבקת המחשב

תולעת חדשה

Page 26: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 26(c) 2006 אריק פרידמן

מציאת מחשב ברשת

חיפוש שמות מחשבים בקבצי מערכת, 2. . מחשבונות rhosts, /etc/hosts.equiv.כגון

rsh או rloginאלה ניתן לבצע

domainניחוש כתובות אחרות באותו 3.

של משתמשים forward.חיפשו בקבצי 4.במערכת

קבצים המשמשים להעברת דוא"ל למחשב אחר

מציאת מחשב חדירה למחשבברשת

הדבקת המחשב

תולעת חדשה

Page 27: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 27(c) 2006 אריק פרידמן

חדירה למחשב החדש

לכל אחד מהמחשבים שזוהוrshניסיון לבצע 1.

sendmail בתוכנת debugניצול אופציית 2.הייתה מאופשרת ברוב המחשבים-אפשרה לשלוח פקודות בmail אותן המחשב המקבל היה ,

מבצע

ניחוש סיסמה של משתמש )התקפת מילון(3.

fingerdניצול חור ב-4.

מציאת מחשב ברשת

חדירה למחשב

הדבקת המחשב

תולעת חדשה

Page 28: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 28(c) 2006 אריק פרידמן

finger

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

מציאת מחשב ברשת

חדירה למחשב

הדבקת המחשב

תולעת חדשה

Page 29: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 29(c) 2006 אריק פרידמן

עובד?fingerאיך מציאת מחשב ברשת

חדירה למחשב

הדבקת המחשב

תולעת חדשה

Computer A Computer Bfinger user@B fingerd

1“ :user”

2 :data on “user”

קריאת הבקשה נעשית getsבעזרת הפקודה

Page 30: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 30(c) 2006 אריק פרידמן

...getsהבעיה עם מציאת מחשב ברשת

חדירה למחשב

הדבקת המחשב

תולעת חדשה

getsאינה יודעת מה גודל החוצץ כל המידע שמגיע מוכנס לחוצץ ללא בדיקת חריגה

נסתכל על מבנה כללי שלfingerd:main()

{

char buf[512];

gets(buf);

finger(buf);

}

Page 31: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 31(c) 2006 אריק פרידמן

איך זה עובד במצב תקין?מציאת מחשב ברשת

חדירה למחשב

הדבקת המחשב

תולעת חדשה

main()

{

char buf[512];

gets(buf);

finger(buf);

}

כתובות גבוהות

mainפרמטרים של

mainכתובת חזרה מ-

שמירת רגיסטרים

Page 32: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 32(c) 2006 אריק פרידמן

איך זה עובד במצב תקין?מציאת מחשב ברשת

חדירה למחשב

הדבקת המחשב

תולעת חדשה

main()

{

char buf[512];

gets(buf);

finger(buf);

}

כתובות גבוהות

mainפרמטרים של

mainכתובת חזרה מ-

שמירת רגיסטרים

buf

משתנים אחרים

Page 33: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 33(c) 2006 אריק פרידמן

איך זה עובד במצב תקין?מציאת מחשב ברשת

חדירה למחשב

הדבקת המחשב

תולעת חדשה

main()

{

char buf[512];

gets(buf);

finger(buf);

}

כתובות גבוהות

mainפרמטרים של

mainכתובת חזרה מ-

שמירת רגיסטרים

buf

משתנים אחרים

bufכתובת של

mainכתובת חזרה ל-

getsנתונים של

הנתונים שנקראים נכתביםgets ע"י

כאן

Page 34: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 34(c) 2006 אריק פרידמן

איך זה עובד עם התולעת?מציאת מחשב ברשת

חדירה למחשב

הדבקת המחשב

תולעת חדשה

main()

{

char buf[512];

gets(buf);

finger(buf);

}

כתובות גבוהות

mainפרמטרים של

mainכתובת חזרה מ-

שמירת רגיסטרים

buf

משתנים אחרים

bufכתובת של

mainכתובת חזרה ל-

getsנתונים של

הקוד של התולעת

buf מכיל את הקוד של התולעת:

שורות אסמבלר שמבצעות9 execve)‘/bin/sh’,0,0(

)מחליפות את התהליך הנוכחי (shellבתהליך

Page 35: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 35(c) 2006 אריק פרידמן

תהליך ההדבקהמציאת מחשב ברשת

חדירה למחשב

הדבקת המחשב

תולעת חדשה

כעת קייםshell אשר מחובר לפורט עליו יושבת תולעת האם

:ההדבקה מתבצעת בשני שלביםהעברת תוכנית ביניים למחשב החדש והפעלתה1.

תכנית הביניים מפעילה את התולעת2.

Page 36: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 36(c) 2006 אריק פרידמן

העברת תכנית הבינייםמציאת מחשב ברשת

חדירה למחשב

הדבקת המחשב

תולעת חדשה

.קוראים לתכנית הביניים בשם אקראי כלשהו למשלx14481910.c

:תולעת האם מבצעת את הפקודות הבאותcd /usr/tmp

cat >x14481910.c

Cתכנית EOF

cc -o x14481910 x14481910.c

X14481910

rm –f x14481910.c x14481910

Page 37: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 37(c) 2006 אריק פרידמן

הפעלת התולעת החדשהמציאת מחשב ברשת

חדירה למחשב

הדבקת המחשב

תולעת חדשה כעת תכנית הביניים עובדת

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

-גרסה בינארית של התולעת לsun3-גרסה לVAX-קוד הCשל תכנית הביניים

(execl שיחליף אותה )ע"י shellתכנית הביניים קוראת ל-2.

תולעת האם מנסה להפעיל את אחת מגרסאות התולעת 3.שקיבלה

Page 38: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 38(c) 2006 אריק פרידמן

התולעת החדשהמציאת מחשב ברשת

חדירה למחשב

הדבקת המחשב

תולעת חדשה

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

עכשיו הכל נמצא רק בזיכרון מדי פעם בודקת אם יש עוד עותק של התולעת על אותו

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

Page 39: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 8 39(c) 2006 אריק פרידמן

סיכום?כיצד התולעת הגנה על עצמה מפני מפעילי מחשב

-שינוי שם התהליך לshומחיקת הפרמטרים בפלט שלps התהליך נראה כמו shellתמים

קריאת כל הקבצים לזיכרון ומחיקתםאחרי ההדבקה אין סימנים על הדיסק

אחד מכל שבעה עותקים לא מתאבד מתבצעchallenge-responseכדי למנוע התחזות לעותק אחר כל כמה דקות מתבצעfork)(

הבן ממשיך לעבוד כעותק זהה, והאב מתאבד-לא ניתן לעקוב אחרי הpidזמן החישוב נשאר קטן, מניעת הקטנת עדיפות ,