Table of Contents
החשיבות הקריטית של ניתוח קוד מהנדסי הפוכה
קוד הנדסה הפוכה - תהליך של לקיחת executable ושיקום ההיגיון, המבנה או ההתנהגות שלה - הפך אבן הפינה של אבטחת סייבר מודרנית, בעוד תוקפים ממינוף טכניקות אלה כדי למצוא פרצות, לגנוב רכוש אינטלקטואלי, או קוד זדוני, מגינים יכולים להפוך את התסריט באופן שיטתי ניתוח קוד מנדס לאחור, צוותי אבטחה לקבל גישה חסרת תקדים לתוך האופן שבו למעשה מתנהגות, שבו נקודות חלשות שלה, שקרים, איך זה יכול להיות מהפך אינטליגנציה לאחור.
- [ה]האיומים הנסתרים: [ה] מלדווארה: [ה] מלדווארה, דלתות אחוריות והפצצות לוגיות מוחות היטב בתוך מליונרים מוכזים, הנדסת מעוותת מגלה את החפצים האלה לפני שהם יכולים לגרום נזק.
- (FLT:0) זיהוי הפגיעות ברמת Binary:FLT:1 קוד ביקורת קוד מקור מפספס פגמים קריטיים שהוצגו במהלך איסוף (למשל, אופטימיזציה שגיאות, ניתוח ספריה מיושנת).
- (FLT:0) ,Understand Attacker TTPs:FreaLT:1) חקר דגימות לאחור של עולם האמיתי של כופר, בוטים, וכלים APT מלמדים להגן על הטקטיקות, הטכניקות וההליכים הספציפיים המשמשים בטבע.
- (FLT:0)Validate ושפר את הגנת הקוד: FIRLT:1 , מנגנוני אריזה ואנטי טמפר ניתן לבדוק על ידי ניסיון להפוך את המהנדס שלך, זיהוי פערים לפני התוקפים עושים.
- (FLT:0) ,Enable Incident Response & Forensicsib:FLT 1 כאשר מתרחשת הפרה, הנדסה לאחור החיוב מסייע לקבוע השפעה, מנגנוני שליטה ובקרה, ונתיבי סינון נתונים.
גילוי איומים נסתרים
סופרים מודרניים הולכים לרחבות גדולות כדי להתחמק מזיהוי חתימה.הם לארוז executables, מצפין מחרוזת, ושימוש לרעה ב- Windows APIs לגיטימיים בלבד, רק על ידי הנדסה הפוכה בינארית יכול אנליסט לגלות את המטען בפועל - לדוגמה, מפתח אשר מוביל רק לאחר בדיקת סורקים אוטומטיים, או דלת אחורית המשתמשת של איסוף נתונים עבור כלי תקשורת.
זיהוי פגיעות ב- Software Architecture
גם עם גישה קוד המקור, פרצות רבות להחליק בשל אינטראקציות מורכבות בין מודולים, ספריות צד שלישי, או הטרנספורמציות מפרש. הפוך הנדסה בינארי הסופי מגלה את ההתנהגות בפועל בזמן ריצה בפועל.לדוגמה, buffer overflow עשוי להיות מוצג על ידי מפיץ זיכרון מותאם אישית שמופיע בטוח במקור אך עיוותים לא נכונים ברמה בינארית.
הבנת טכניקות ומכשירים
הנדסה הפוכה לא רק על מציאת באגים; זה על למידה מחשבות רציונאליות. לנתח כיצד כופר מצפין קבצים (למשל, הצפנה היברידית, חילופי מפתח), כיצד בוטנטs מתקשרים (IRC על Tor, או באמצעות ממשקי API של מדיה חברתית), או כיצד ערכות שורש להסתיר תהליכים (באמצעות DKOM או SSDT w) מספק מגינים עם אינטליגנציה מעשית זה יכול להיות מיושם כדי לפתח סימולציה של מסגרת פעולה: LTFer , אפילו תקיפת פעולות אבטחה , 000 , אפילו , 000 , 000 , 000 , 000 , 000 , 000 , 000 , 000 , 000 , 000 , 000 .
טכניקות ליבה לניתוח הנדסה הפוכה
ניתוח יעיל של קוד מהונדס לאחור מבוסס על תערובת של גישות סטטיות ודינמיות, כל אחד מהם חושף שכבות שונות של הטבע האמיתי של התוכנה.בחירת הטכניקה הנכונה תלויה במטרה - בין אם זה הבנת מדגם זדוני, ביקורת על ספריית צד שלישי, או קשיחה של היישום שלך.
ניתוח סטטי
ניתוח סטטי בוחן את בינארי ללא ביצוע זה.זהו קו החקירה הראשון. Analysts לבדוק את מבנה הקובץ (PE, ELF, Mach-O), מיובא / Exported פונקציות, מיתרים משובצים ומשאבים. כלים דיסמברליים להמיר קוד מכונה לתוך הוראות איסוף, המאפשר לאנליסט לעקוב אחר זרימת נתונים ושליטה.
ניתוח דינמי
ניתוח דינמי פועל בינארי בסביבה מבוקרת (sandbox, VM, חיקוי) ומעקב אחר התנהגותו.זה כולל מעקב אחר שיחות API, שינויים במערכת הקבצים, שינויים במרשם, חיבורי רשת וניסיונות הזרקת תהליכים כגון FLT:0x64dbgFLT:1 מאפשר גם טיפול דינמי, שלב-על-ידי-ידי-שלב, פירוק נקודות, וזיכרון לניתוח, ניתוח דינמי, הוא גם כן, אשר עשוי לנפץ את התוצאות של אנליסטים בלתי-מסוגים.
נספח לשפות גבוהות יותר
מפסלים מודרניים הפכו את ההנדסה לאחור ממשימה ממוקדת-רכבה לאחד שניתן לבצע ברמת מופשט דמוי C. Ghidra (מקור חופשי ופתוח) ו- IDA Pro עם Hex-Rays הם מנהיגי התעשייה.הם לשחזר סוגים, משתנים מקומיים, ולשלוט גרפים זרימה.זה מפחית באופן דרמטי את הזמן הדרוש כדי להבין אלגוריתמים מורכבים - לדוגמה, הכרה cryptocurrencies או יישום לוגי במיוחד.
גילוי נאות וגילוי
תוקפים ומפתחים לגיטימיים משתמשים באובייקטיביות כדי להגן על קניין רוחני או לעכב הנדסה הפוכה.טכניקות נפוצות כוללות את predicates , זרימה של זרימה, הצפנה מיתר, ומיקום וירטואלי (למשל, VMProtect, Themida) מסייע גם למקד את הגישות המיוחדות שלהם: הפעלת הקוד תחת מטושטש כדי ללכוד מטושטשים, או באמצעות ניתוח סמלי (Factretretreative) באופן אוטומטי על ידי קוד הגנה מפני כלי עזר).
החלת תובנות לשיפור אבטחת המידע
ניתוח קוד מהונדס לאחור אינו תרגיל אקדמי - הוא מודיע ישירות לשיפורי אבטחה על פני מחזור חיי פיתוח התוכנה.התובנות שהתקבלו חייבות להיות מתורגם לפעולות קונקרטיות שמקשות יישומים, להפחית את פני השטח של ההתקפה ולחנך קבוצות.
חיזוק מדדי הגנת הקוד
(הופנה מהדף ה-Competation of your application (או a מתחרה), ניתן לזהות בדיוק היכן שהתוקפים יתמקדו בחולשות נפוצות: קל לזהות את אישורי הרישוי, אישורים קשיחים ב-Sirval, וניתן לצפות לתפקוד בעל ערך מוסף (FLT) באמצעות בדיקות קידוד של CLT:0חזקות יותר של obscatation 1LT:1LT לטכניקות הנדסה לאחור, לדוגמה, אם השתמש ב-NPTFacter.
המונחים: Proactive Vulnerability Remediation
כל פגיעה שהתגלתה על ידי הנדסה הפוכה צריכה להיות במעקב במערכת ניהול פגיעות, לפני שניתנת להשגה על ידי ניצול, ותיקון.עם זאת, הנדסה הפוכה מגלה לעתים קרובות בעיות שאינן ניתנות לתיקון בקלות על ידי שינוי קו אחד - בעיות אדריכליות כמו הפלינציה לא בטוחה, חוסר עיקרון של פריווילגיה לפחות, או משטח התקפה מופרז. Remediation עשוי לדרוש תיקון מחדש, הוספת שכבות של קלט, או העברת פעולות רגישות לתהליך נפרד (ומתחול) עבור תפקוד חיצוני (ומת קודרפסה הוא אפשרי עבור תפקוד לא זמין).
עיצוב אדריכלות יעילה יותר
(הניתוחים של ההקרנות בעולם האמיתי (למשל, SolarWinds, Log4j על ידי ניתוח בינארי) מדגישים את הצורך בהגנתיות של קוד מהונדס לאחור יכול להוביל החלטות אדריכליות: שימוש ב-FLT:0control-flowFLT:1 כדי למנוע שרשראות הגנה ראווה, לאמץ את השפות הבטוחות של RLT2mem-Firdir 3:
עידוד פיתוחים עם דוגמאות של Real-World
מפתחים לעתים קרובות מזלזלים באיזו קלות הקוד שלהם ניתן לנתח.על ידי הצגתם של הפלט המהנדסים ההפוך בפועל של היישומים שלהם עצמם - פסאודו-C, ההפניות המיתרים, הגרפים המתקשרים - האימון הופך להיות מולקולי.הם מבינים מדוע יש צורך בהשוואת זמן מתמדת לסודות הקריפטוגרפיים (תוקפים חכמים אחרים יכולים לזהות את היציאה המוקדמת), למה הם לא צריכים להסתמך על אבטחת צד הלקוחות, ומדוע כל אחד מהם הוא פוטנציאל לחיקוי של ממש לאלוף את האמת.
אתגרים בניתוח קוד מהנדסי הפוכה
(הנדסה הפוכה) אינה כדור כסף.יש לנהל אתגרים משמעותיים: ההסלמה בכפיפות הגוברת של ה-FLT:0) בטכניקות הנדסיות מנוגדות ל- 7.10 טכניקות (packers, VM obscators, אנטי-debug טריקים) יכולות לפטור את האנליטיקות ה-DIFLT: 2, 2, אך לעיתים קרובות, בעיות רישוי ורישיות של הנדסה לאחור, יכולות למקדימות של IPFLT) לנטרולטיביות, אך הן יכולות להחליף את שיטות אבטחה מורכבות, אך הן יכולות למקדימות, אך ורק לאחר מכן, אך ורק לאחר מכן, אך ורק לאחר מכן, אך הן יכולות למתן טיפול ב-DVDVDVDVSECFLT2RIFLTDIFLTDIFLTDIFLT).
כלי המסחר
בחירת הכלים הנכונים היא מרכזית.למטה הם פלטפורמות ההנדסה ההפוך הנפוץ ביותר בענף האבטחה:
- (FLT:0)IDA Pro + Hex-Rays DecompilerFLT:1 - תקן הזהב לניתוח בינארי ו decompilation; המשמש גם ניתוח קוד זדוני ומחקר פגיעת.
- (FLT:0)GhidraphigFLT:1 - פותח על ידי NSA, חופשי ופתוח מקור. דיקומבר מעולה, חוצה פלטפורמות, ותומכת במגוון רחב של אדריכלות.
- (FLT:0)x64dbiggFLT:1 - קוד פתוח חזק עבור Windows User-mode בינארי, חיוני לניתוח דינמי, במיוחד של קוד זדוני ארוז.
- (FLT:0) נינג'ה בנינג'ה פנימית (FLT:1) - מציע שפה מודרנית, שפה בינונית חזקה (BNIL) לניתוח, ומערכת תוסף גמישה.
- (ב) [15] , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (FLT:0)angrcioFLT:1) - פלטפורמה מבוססת פייתון לביצוע סימבולי ובדיקת concolic, אידיאלי עבור מחיקה אוטומטית וגילוי פגיעויות.
- (FLT:0)Process Monitor / API MonitorFLT:1 - שימושי לניתוח התנהגותי דינמי ללא זעזוע מעמיק.
שיקולים מוסריים ומשפטיים
הנדסה הפוכה פועלת בתחום אפור.תחת החוק האמריקאי, DMCA אוסרת על מכלול של אמצעים טכנולוגיים השולטים בגישה ליצירות שבוצעו בזכויות יוצרים, אך הנדסה לאחור למחקר אבטחה מכוסה לעתים קרובות על ידי פטורים (למשל, על מנת שארגונים בין-החלפיים או גילוי הפגיעות) חייבים להיות מדיניות ברורה: תמיד אישור מאובטח לפני ביטול תוכנה של צד שלישי, שימוש רק במילוני ממשל, והמשך לאחר גילוי אחראי, כאשר אתה מנתח את הקוד ה-NF הוא בדרך כלל קובע את ה-F.
הנדסת הפוך לתוך מחזור החיים לפיתוח אבטחה
כדי להשפיע מקסימלי, ניתוח הנדסה לאחור צריך להיות פעילות חוזרת - לא אחד.לשלב אותו בשלבים מרובים:
- שלב עיצוב:0 (עיצוב: ⁇ ) שלב: איור 1 (איור 1) כולל הנחות על הנדסה הפוכה.לדוגמה, אם תוקף יכול להשיג את בינארי, מה הם יכולים ללמוד?
- שלב:0Build:cioFLT:1 לאחר איסוף, להפעיל ניתוח בינארי אוטומטי (באמצעות כלים כמו BinSkim או תסריטים מותאמים אישית) כדי לזהות שגיאות כמו קידוד פריטים, סמלים לא מובנים, או בדיקות אנטי טמפר חלש.
- בדיקה אחרונה ב-6 ביולי 2010. ^ FLT:0.10.10.10.10.10.10.10.10.10.13:0.10.10.10.10.10.10.13
- (ב) ,0) post-incident: FLT:1 תמיד מהנדס הפוך כל קוד זדוני או בינארי הקשור להפרה כדי להבין מה קרה ועדכון ההגנות.
- (FLT:0) שיפור מתמיד: FLT:1 לעקוב אחר טכניקות הנדסה הפוכה חדשות שדווחו בכנסים ביטחוניים (BlackHat, REcon) ועדכון השרשרת וההגנה בהתאם.
מגמות עתידיות בהנדסת אבטחה
(הופנה מהדף [[1924]]]] [[1924]]]]]] [[1924]]]]]]]] [[1924]]]]]]]] [[1924]]]]]]]], [[1924]]]]]]]]]]]]]], [[1924]]]]]]]]]]]], [[1924]]]]]]]]]]]]]], [[1924]]]]]]]]]]]]]], [[1924]]]]]]]]]]]]]]]]]], [[1924]]]]]]]]]]]]]], [[1924]]]]]]]]]]]]]]]]]], [[1924]]]]]]]]]]]]]]]]]]]]]]]], [[1924]]]]]]]]]]]], [[1924]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] [[1924]] [[1924]]]]]]]]]]]]]]]]]]]]]]]], [[1924]]]]]]]]]]]]]], [[1924]]]]]] [[1924]]]]]]]], [[1924]]]]]] [[1924]]]]]]]], [[1924]]]]]]]] [[1924]]]]]]]]]] [[1924]] [[1924]] [[[[[[1924]] [[19
מסקנה
ניתוח קוד מהונדס לאחור אינו רק מיומנות משפטית - זוהי אסטרטגיה הגנה אקטיבית כי צוותי אבטחה חזקים בעלי ידע עמוק, מעשי על טבע התוכנה שלהם אמיתי.על ידי יישום ניתוח סטטי ודינמי, שליטה על obfuscation, ותרגום הממצאים לשיפורים ארכיטקטוניים והגנה קודים, ארגונים יכולים להגדיל באופן משמעותי את היציבה הביטחונית שלהם.