Search

מבוא להנדסה לאחור

הנדסה לאחור - Reverse engineering - הינו תחום מרכזי בעולם הסייבר ואבטחת המידע. בעוד קבוצות שונות של אנשים עוסקות בו, מהאקרים ועד חברות אנטי-וירוס, הגנות רבות התפתחו במשך השנים בכדי לאבטח את התוכנות, התשתיות והמערכות מפני חקירתם לאחור ופיתוח אקספלויטים (קוד לניצול חולשות).



Reverse engineering הינו תהליך דרכו מנסים לגלות עקרונות טכנולוגיים של מוצר דרך צפייה בהשפעה של המוצר על המערכת, מצפייה בהשפעה על המעבד ועד לכדי הגעה לקוד בשפת assembly העתיקה (והמורכבת) בכדי להבין מהו מבנה הקוד והתנהגותו. בדרך כלל חוקרים את המוצר בכדי להשיג כמה שיותר מידע. ממידע זה ניתן להגיע למטרות הבאות: בניית מוצר זהה או משופר מתוך צפייה בעקרונות הטכנולוגיים. "פריצה" של אותו מוצר על ידי צפייה בצורה בה המוצר מבצע אותנטיקציה. בניית exploit (קוד לניצול חולשה) המותאם לאותו מוצר בכדי לנצל מספר פגיעויות ולהגיע דרכו למערכות אחרות, ועוד. בתחום המחשבים, הנדסה לאחור מתאפשרת על ידי שימוש במספר כלים המסייעים לניתוח תוכניות: Debugger - מנפה שגיאות, תוכנת מחשב שלרוב משמשת מתכנתים למציאת שגיאה בקוד, לעיתים אי למתכנתים דרך למצוא שגיאה בקוד ארוך אלא על ידי הרצתו. הדרך העיקרית שבה הדיבאגר מאפשר למתכנת למצוא את מקור השגיאות היא באמצעות היכולת להריץ את התוכנית ולעצור ריצת תוכנית באמצע על ידי "נקודת עצירה". בנקודה זו הדיבאגר מציג את מצב המשאבים של המערכת. Disassembler - תוכנית מחשב אשר מתרגמת תוכנית בשפת מכונה לתוכנית בשפת Assembly. תוכנית זו מבצעת את הפעולה ההפוכה לפעולת האסמבלר. ראוי לציין כי ברוב המקרים בהם מנסים "לתרגם" תוכנית לשפת אסמבלי לא ניתן לבצע זאת באופן מושלם ולעיתים יש צורך לבצע "ניחוש מושכל" של הקוד. תוכנות ייעודיות לניתוח תוכניות, בדרך כלל מבצעות תפקיד אחד ספציפי או משמשות לשם חקירת משאב ספציפי, ממצב זיכרון ועד למודולים אשר מיובאים מהתוכנית. בתחום הפריצות נעזרים ב-Reverse Engineering על מנת לחקור ולמצוא חולשות אפשריות במערכות שונות. לאחר מציאת אותן החולשות ניתן להשתמש בהן בכדי לגרום לשינוי התנהגות התוכנית, קריסתה או במקרים יותר קיצוניים אף להריץ פקודות על התוכנית המארחת את השירות (מערכת ההפעלה לדוגמא) ובכך לחדור למערכות אלו. במקרים מסויימים, האקרים משתמשים ביכולות הנדסה לאחור על מנת לעקוף מנגנון אותנטיקציה של התוכנית ואף בכדי להוסיף לה יכולות נוספות. שימוש ביכולות אלו יאפשרו להכין crack לתוכנית - דרך עקיפה לשימוש בתוכנית המקורית. עולם הסייבר הנוכחי מכיל הגנות מרובות מפי פריצות הקשורות ל-Reverse Engineering אך האקר מספיק מתוחכם יוכל, באמצעות ידע שרכש בשפה, לעקוף את אותן ההגנות. תחום ההנדסה ההפוכה הוא ההוכחה שאין הגנות שלא ניתן לעבור בתחום הסייבר ואבטחת המידע. דניאל עוז, מממחברי הספרים Python Security ו-Reverse Engineering, מרצה ב-ThinkCyber

0 views

© 2020 by ThinkCyber

THE 2020

CYBERIUM