קוד ייעודי

קוד ייעודי (באנגלית: Shellcode) הוא חלק בקוד של אקספלויט (exploit) המנצל פרצת אבטחה. חלק זה מהווה ה"מטען המועיל" (payload) שיפעל על המחשב המותקף. הקוד הייעודי בדרך כלל מתחיל בפקודת מעטפת שמאפשרת לשלוט במחשב המותקף. קוד ייעודי בדרך כלל כתוב בשפת מכונה.

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

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

 סוגים של קוד ייעודי 

ישנן שתי משפחות של "קוד ייעודי": קוד מקומי וקוד מרוחק.

 קוד ייעודי מקומי 
מונח זה מכוון שלמצב בו התוקף מבצע את המתקפה על מחשב שאליו הוא כבר הצליח להשיג גישה. ה"קוד הייעודי" משמש אותו להעלאת ההרשאות (הסלמה) כך שיוכל להפעיל פונקציות "חזקות יותר" ובאמצעותן לממש התקפות "גלישת חוצץ" וכיוצא באלו.

לדוגמה: התוקף כבר הצליח להשיג גישה לשרת אחסון קבצים לקריאה בלבד, והוא מריץ עליו קוד ייעודי מקומי כדי להשיג הרשאות לעריכה או העברה של הקבצים.

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

 הורד ובצע (Download and execute) 
בשיטה זו, "הקוד הייעודי" מנחה את מכונת היעד להוריד תוכנה מהרשת/ מאתר אינטרנט ולהפעיל אותה. אפשרות נוספת, היא להוריד ספריית תוכנה שלמה מהרשת. היתרון של שיטה זו היא ש"הקוד הייעודי" יכול להיות קטן יחסי.

 קוד ייעודי רב שלבי 
כאשר הקוד הייעודי "גדול מידי" מכדי לרוץ באותו Process במחשב היעד, יש גישה ולפיה ניתן להריץ רק חלק ממנו, אחר כך להוריד קטע נוסף, להריץ אותו וחוזר חלילה. גישה זו נקראת, קוד ייעודי רב שלבי, או באנגלית Staged Shellcode

 ביצה חבויה 
כאשר התוקף לא יכול לדעת באיזה כתובת זיכרון ב-Process במחשב היעד, הקוד הייעודי יסיים לרוץ. בשיטת "ביצת פסחא", התוקף מכניס קוד קצר נוסף, בכתובת ידועה וקוד זה צריך לדעת למצוא את "הקטע העיקרי".

 חביתה 
בדומה ל"ביצה חבויה", אלא שהתוקף משלב לתוך ה-Process מספר "חבילות קוד" שונות והקוד "המחפש", יודע למצוא את אותן חבילות קוד, לחבר אותן לוגית ולהריץ אותן יחד, באותו Process במחשב היעד.

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

הערות שוליים

קטגוריה:פרצות אבטחה