הגנה במערכות מתוכנתות
description
Transcript of הגנה במערכות מתוכנתות
הגנה במערכות מתוכנתות
– וירוסים וחיות אחרות8תרגול
הערה:
שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה
בלבד.
הגנה במערכות מתוכנתות - תרגול 8 2(c) 2006 אריק פרידמן
סוגי קוד זדוניים
סוג התוכנית/קטע הקודתהליך עצמאי?משתכפלים?
Bacteriaבקטריות – כןכן
Wormsתולעים –
לא )דורשים תוכנית מכילה(
Virusesוירוסים –
Trojan Horsesסוסים טרויאנים – לא
Trap Doorsדלתות סתרים –
Rootkitsרוטקיטים –
Easter eggsביצי פסחא –
Logic Bombsפצצות לוגיות –
spywareרוגלה – משתנהלא
הגנה במערכות מתוכנתות - תרגול 8 3(c) 2006 אריק פרידמן
סוגים משתכפלים
הגנה במערכות מתוכנתות - תרגול 8 4(c) 2006 אריק פרידמן
בקטריות
תוכניות )תהליכים( שלא עושות דבר מלבדלהשתכפל בזיכרון
פגיעה בזמינות של מחשבים:לדוגמה fork bomb
while (true) do fork();
)לא לנסות!!!(
הגנה במערכות מתוכנתות - תרגול 8 5(c) 2006 אריק פרידמן
תולעים
תוכניות )תהליכים( שמנסות להיכנס למחשביםאחרים ברשת, להעתיק את עצמן לשם ולהריץ את
עצמן שם משתמשות ב"חורים" שמאפשרים לעבור למחשבים
אחרים מסוות את עצמן כדי להדביק הרבה מחשבים לפני
החשיפהInternet worm )1988(, I Love You )2000(, Nimda
)2001(, Netsky)2004(, Bagle)2004(... ,
הגנה במערכות מתוכנתות - תרגול 8 6(c) 2006 אריק פרידמן
וירוסים
קטעים זדוניים בתוכניות, אשר מדביקים אתעצמם לתוכניות אחרים
נדבקים לקבצי הרצה, קבצי נתונים, תוכניות בזיכרון אוboot sectorב-
עוברים בין מחשבים ע"י העברת קבצים, תקשורתברשת, ...
-ב( כיום גם קבצי נתונים יכולים להכיל וירוסיםmacro)Ping Pong, Michelangelo, Melissa...,
הגנה במערכות מתוכנתות - תרגול 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
הגנה במערכות מתוכנתות - תרגול 8 8(c) 2006 אריק פרידמן
איך נלחמים בוירוסים ותולעים?
:אנטי-וירוס יבצעDetectionזיהוי תוכנית הנגועה בוירוס – Identificationזיהוי סוג הוירוס – Removalהסרת הוירוס – Quarantine"העברת הקובץ ל"הסגר – אם לא ניתן לזהות את הוירוס או להסירו, ניתן
למחוק את התכנית הנגועה.
הגנה במערכות מתוכנתות - תרגול 8 9(c) 2006 אריק פרידמן
איך מזהים וירוס?
"חתימה אישית"קטע קוד מתוך הוירוס
שינוי חתימות קבצים או אורכםActivity Trapsתכניות השוכנות בזיכרון –
מזהות מתי מתבצעות פעולות האופייניות לוירוסים
הגנה במערכות מתוכנתות - תרגול 8 10(c) 2006 אריק פרידמן
וירוסים מתוחכמים יותר...
Stealth Virus)וירוס חמקן( דחיסת התכנית המקוריתשינוי פונקציות מערכת המבצעות קריאה מהדיסק
Polymorphic Virus משנה את קידודו כל הדבקה )שינוי סדר פקודות בלתי
תלויות, הוספת פקודות חסרות השפעה, הצפנת הוירוס בעזרת מפתח אקראי(
וכו'...( גם האנטי-וירוסים נהיים מתוחכמים יותר(
הגנה במערכות מתוכנתות - תרגול 8 11(c) 2006 אריק פרידמן
התקפה היא ההגנה הטובה ביותר
הגנה במערכות מתוכנתות - תרגול 8 12(c) 2006 אריק פרידמן
סוגים שאינם משתכפליםוזקוקים לתכנית מכילה
הגנה במערכות מתוכנתות - תרגול 8 13(c) 2006 אריק פרידמן
סוסים טרויאניים
סוס טרויאני במחשב )אילוסטרציה(...(ynet)נלקח מאתר
( קטעי קוד סודיים וזדוניים בתוך תוכניות שימושיותls, compiler, editor)...,
הרצת התוכנית גורמת להפעלת קוד הסוס ולביצוע פעולותזדוניות
:הסוסים מאפשרים עקיפת בקרת הגישהשינוי הרשאות קבציםקריאה/כתיבה של קבציםשידור קבצים פתיחתshell בהרשאות root
הגנה במערכות מתוכנתות - תרגול 8 14(c) 2006 אריק פרידמן
(2004)נובמבר פרשת "הריגול התעשייתי"
רעידת אדמה בעולם אבטחת המידע הישראלי: המשטרה עצרה שורה של חוקרים פרטיים בכירים, בחשד
שהשתמשו בתוכנת מחשב השותלת "סוס טרויאני" במחשבי חברות מסחריות ובמחשבי משרדי פרסום
ויחצ"נות, במטרה לרגל למתחרים. בין הקורבנות: הוט, אורנג', שטראוס-עלית, צ'מפיון מוטורס ועוד. בעקבות כך נעצרו מנהלים בכירים בחברות שקיבלו את המידע ובהן
יס, וולוו, פלאפון וסלקום. מנכ"ל סלקום, יצחק פטרבורג, הגיע למסור את גרסתו. בין העצורים גם מפתח התוכנה,
שנלכד בלונדון עם רעייתו. הפרשה נחשפה בעקבות תלונה של הפסיכולוגית ורדה רזיאל ז'קונט ובעלה,
שמפתח התוכנה הוא חתנם לשעבר. רני רהב הזועם, אחד הנפגעים: "שיתנו להם גזר דין מוות"
(2005, מאי ynet)פורסם באתר http://www.ynet.co.il/articles/1,7340,L-3089971,00.html
הותר לפרסום: פרשת ריגול במחשבי חברות מהגדולות במשק
הגנה במערכות מתוכנתות - תרגול 8 15(c) 2006 אריק פרידמן
רוגלה
תוכנה האוספת מידע על משתמשי מחשב ללאהסכמתם
( מעקב אחר הקשות במקלדתKeyLoggers)מעקב אחר היסטוריית גלישהגישה למסמכים אישיים המאוחסנים בדיסק הקשיח
מטרות שונותחשיפת סיסמאות)שימושים מסחריים )פרסום, ריגול תעשייתי
נזק עקיף נגרם עקב צריכת משאבים מוגברת
הגנה במערכות מתוכנתות - תרגול 8 16(c) 2006 אריק פרידמן
רוגלה
הגנה במערכות מתוכנתות - תרגול 8 17(c) 2006 אריק פרידמן
דלתות סתרים
קטעי קוד סודיים וזדוניים המושתלים בתכנית, אשרמאפשרים להיכנס למערכת בצורה לא חוקית
בדרך כלל משמש בזמן ניפוי שגיאות במערכת
דוגמה: הסיפור של קן תומפסון-ממפתחיה הראשונים של מערכת הUnix לא ניתן לסמוך על קוד שלא כתבת את כולו )כולל המהדר
שקימפל אותו(
הגנה במערכות מתוכנתות - תרגול 8 18(c) 2006 אריק פרידמן
רוטקיט
אוסף כלי תוכנה שנועדו להסתיר תהליכים, קבצים אומידע מערכת מפני מערכת ההפעלה
ניתנים למימוש באופנים שוניםרמה וירטואליתשינויים בקוד גרעיןשינויים בפונקציות ספריהרמת אפליקציה
זיהוי והסרה של רוטקיטים אינם טריויאלים
הגנה במערכות מתוכנתות - תרגול 8 19(c) 2006 אריק פרידמן
ביצי פסחא
תוספות נסתרות, "בונוסים" שנוספו למוצרלא בהכרח בתחום המחשבים-למשל סימולטור חלל שמתחבא בexcel 97...
:מאגר מידע על ביצי פסחא
http://www.eeggs.com/
הגנה במערכות מתוכנתות - תרגול 8 20(c) 2006 אריק פרידמן
פצצות לוגיות
קטעי קוד סודיים וזדוניים שמושתלים בתכניתוגורמים נזק ברגע שתנאי מסוים מתקיים
:מבנה טיפוסיif (cond) then damage;
:דוגמאותפצצת קובץ משכורותפצצה בתוכנה לנסיון
הגנה במערכות מתוכנתות - תרגול 8 21(c) 2006 אריק פרידמן
הערות לסיכום
רוב התוכניות הזדוניות כוללות ערבוב של מספרסוגים של תוכניות
וירוסים ותולעים עלולים לשאת פצצה לוגיתתולעת יכולה לשתול תוכניות עם סוסים טרויאניםסוס טרויאני יכול לכלול רוטקיט להסתרתו
הנדסה חברתית יש כיום תולעים שמנסות לנצל תמימות משתמשים
כדי לגרום נזק
הגנה במערכות מתוכנתות - תרגול 8 22(c) 2006 אריק פרידמן
תולעת האינטרנט
הגנה במערכות מתוכנתות - תרגול 8 23(c) 2006 אריק פרידמן
תולעת האינטרנט
2 1988 בנובמבר באותו זמן היה כינוס של מומחי מערכותunix-ב MIT
60,000מחשבים ברשת האינטרנט גרמה לפגיעה בפעילות הרשת
מחשבים רבים נפלו לאחר "סתימת" טבלאותהתהליכים שלהם או שטחי הדפדוף
נכתבה ע"יRobert Tappan Morris
הגנה במערכות מתוכנתות - תרגול 8 24(c) 2006 אריק פרידמן
שלבי פעילות התולעת:
מציאת מחשב ברשת1.
חדירה למחשב2.
הדבקת המחשב3.
תולעת חדשה רצה במחשב החדש4.
מציאת מחשב ברשת
חדירה למחשב
הדבקת המחשב
תולעת חדשה
הגנה במערכות מתוכנתות - תרגול 8 25(c) 2006 אריק פרידמן
מציאת מחשב ברשת
netstatהרצת התכנית 1. מראה בין השאר את רשימת כל המחשבים אליהם
פתוח:TCP/IPיש כרגע קשר
מציאת מחשב חדירה למחשבברשת
הדבקת המחשב
תולעת חדשה
הגנה במערכות מתוכנתות - תרגול 8 26(c) 2006 אריק פרידמן
מציאת מחשב ברשת
חיפוש שמות מחשבים בקבצי מערכת, 2. . מחשבונות rhosts, /etc/hosts.equiv.כגון
rsh או rloginאלה ניתן לבצע
domainניחוש כתובות אחרות באותו 3.
של משתמשים forward.חיפשו בקבצי 4.במערכת
קבצים המשמשים להעברת דוא"ל למחשב אחר
מציאת מחשב חדירה למחשבברשת
הדבקת המחשב
תולעת חדשה
הגנה במערכות מתוכנתות - תרגול 8 27(c) 2006 אריק פרידמן
חדירה למחשב החדש
לכל אחד מהמחשבים שזוהוrshניסיון לבצע 1.
sendmail בתוכנת debugניצול אופציית 2.הייתה מאופשרת ברוב המחשבים-אפשרה לשלוח פקודות בmail אותן המחשב המקבל היה ,
מבצע
ניחוש סיסמה של משתמש )התקפת מילון(3.
fingerdניצול חור ב-4.
מציאת מחשב ברשת
חדירה למחשב
הדבקת המחשב
תולעת חדשה
הגנה במערכות מתוכנתות - תרגול 8 28(c) 2006 אריק פרידמן
finger
תכנית שמאפשרת לקבל מידע על משתמשהאם מחובר למחשב כרגעמה שם החשבון שלומתי קרא דואר לאחרונה...
מציאת מחשב ברשת
חדירה למחשב
הדבקת המחשב
תולעת חדשה
הגנה במערכות מתוכנתות - תרגול 8 29(c) 2006 אריק פרידמן
עובד?fingerאיך מציאת מחשב ברשת
חדירה למחשב
הדבקת המחשב
תולעת חדשה
Computer A Computer Bfinger user@B fingerd
1“ :user”
2 :data on “user”
קריאת הבקשה נעשית getsבעזרת הפקודה
הגנה במערכות מתוכנתות - תרגול 8 30(c) 2006 אריק פרידמן
...getsהבעיה עם מציאת מחשב ברשת
חדירה למחשב
הדבקת המחשב
תולעת חדשה
getsאינה יודעת מה גודל החוצץ כל המידע שמגיע מוכנס לחוצץ ללא בדיקת חריגה
נסתכל על מבנה כללי שלfingerd:main()
{
char buf[512];
gets(buf);
finger(buf);
}
הגנה במערכות מתוכנתות - תרגול 8 31(c) 2006 אריק פרידמן
איך זה עובד במצב תקין?מציאת מחשב ברשת
חדירה למחשב
הדבקת המחשב
תולעת חדשה
main()
{
char buf[512];
gets(buf);
finger(buf);
}
כתובות גבוהות
mainפרמטרים של
mainכתובת חזרה מ-
שמירת רגיסטרים
הגנה במערכות מתוכנתות - תרגול 8 32(c) 2006 אריק פרידמן
איך זה עובד במצב תקין?מציאת מחשב ברשת
חדירה למחשב
הדבקת המחשב
תולעת חדשה
main()
{
char buf[512];
gets(buf);
finger(buf);
}
כתובות גבוהות
mainפרמטרים של
mainכתובת חזרה מ-
שמירת רגיסטרים
buf
משתנים אחרים
הגנה במערכות מתוכנתות - תרגול 8 33(c) 2006 אריק פרידמן
איך זה עובד במצב תקין?מציאת מחשב ברשת
חדירה למחשב
הדבקת המחשב
תולעת חדשה
main()
{
char buf[512];
gets(buf);
finger(buf);
}
כתובות גבוהות
mainפרמטרים של
mainכתובת חזרה מ-
שמירת רגיסטרים
buf
משתנים אחרים
bufכתובת של
mainכתובת חזרה ל-
getsנתונים של
הנתונים שנקראים נכתביםgets ע"י
כאן
הגנה במערכות מתוכנתות - תרגול 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בתהליך
הגנה במערכות מתוכנתות - תרגול 8 35(c) 2006 אריק פרידמן
תהליך ההדבקהמציאת מחשב ברשת
חדירה למחשב
הדבקת המחשב
תולעת חדשה
כעת קייםshell אשר מחובר לפורט עליו יושבת תולעת האם
:ההדבקה מתבצעת בשני שלביםהעברת תוכנית ביניים למחשב החדש והפעלתה1.
תכנית הביניים מפעילה את התולעת2.
הגנה במערכות מתוכנתות - תרגול 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
הגנה במערכות מתוכנתות - תרגול 8 37(c) 2006 אריק פרידמן
הפעלת התולעת החדשהמציאת מחשב ברשת
חדירה למחשב
הדבקת המחשב
תולעת חדשה כעת תכנית הביניים עובדת
מתקשרת דרך הפורט בו יושבת תולעת האם, ומקבלת 1.שלושה קבצים נוספים:
-גרסה בינארית של התולעת לsun3-גרסה לVAX-קוד הCשל תכנית הביניים
(execl שיחליף אותה )ע"י shellתכנית הביניים קוראת ל-2.
תולעת האם מנסה להפעיל את אחת מגרסאות התולעת 3.שקיבלה
הגנה במערכות מתוכנתות - תרגול 8 38(c) 2006 אריק פרידמן
התולעת החדשהמציאת מחשב ברשת
חדירה למחשב
הדבקת המחשב
תולעת חדשה
התולעת החדשה רצה בשםsh.קוראת את כל הקבצים שבפרמטרים לזיכרוןמוחקת את כל הקבצים שנוצרו בדיסק
עכשיו הכל נמצא רק בזיכרון מדי פעם בודקת אם יש עוד עותק של התולעת על אותו
מחשב)"אם כן, אז אחד מהעותקים מתאבד )"הטלת מטבע מניעת סימון "מזויף" שיש תולעת ע"יchallenge-responseאחד מתוך שבעה עותקים )אקראית( אף פעם לא מתאבד
הגנה במערכות מתוכנתות - תרגול 8 39(c) 2006 אריק פרידמן
סיכום?כיצד התולעת הגנה על עצמה מפני מפעילי מחשב
-שינוי שם התהליך לshומחיקת הפרמטרים בפלט שלps התהליך נראה כמו shellתמים
קריאת כל הקבצים לזיכרון ומחיקתםאחרי ההדבקה אין סימנים על הדיסק
אחד מכל שבעה עותקים לא מתאבד מתבצעchallenge-responseכדי למנוע התחזות לעותק אחר כל כמה דקות מתבצעfork)(
הבן ממשיך לעבוד כעותק זהה, והאב מתאבד-לא ניתן לעקוב אחרי הpidזמן החישוב נשאר קטן, מניעת הקטנת עדיפות ,