measurement-and-instrumentation
כיצד להפוך מהנדס ביוס תוכנה עבור ביקורת אבטחה
Table of Contents
קושחה הנדסה הפוכה היא מיומנות קריטית לאנשי מקצוע בתחום האבטחה, אשר נקטדו באבחון השכבות הנמוכות של אמון המערכת.הקושחה המבשרת חומרה ועומס מערכת ההפעלה מייצגת את אחת מהסביבות הביצועיות ביותר במחשב. פגיעת אחת בשכבה זו יכולה להתפשר על הפלטפורמה כולה, מה שהופך ניתוח אבטחה יסודי חיוני.מדריך זה מספק גישה מקיפה, צעד אחר צעד-שלבית להנדסת קושחיקה לאחור של אבטחה עבור טכניקות, כיסוי כלים, כיסוי טוב יותר, וטכניקות אבטחה, וגילוי סודיות, וטכניקות אבטחה קשות.
הבנה של BIOS ו- UEFI
המונח "BIOS" מתייחס היסטורית למערכת מחשוב / OUTPO, תקן קושחה מורשת המכניס חומרה ומספק שירותים זמניים עבור MS-DOS ומערכות ההפעלה מוקדמות של Windows.מערכות מודרניות עברו במידה רבה ל- UEFI (Unified Extensible Firmware Interface), מפרט מתוחכם יותר התומך בגדלי דיסק גדולים יותר, זמניחול מהירים יותר, ואדריכלות מודולרית עם תמיכה ב-BII ו-UNI (OCC) דומה, זיכרון SPI (OEF) או NEF) או IOS (S) או CRAFRAFRAFRAFRAC) או NRAFRAFRAOVULI (S) או NRAFRAFRAF (S) או NRAF) או NRAWI (S) או NCRI (S) או NPR (S) ו-I (S) שפועלת הפעלה (S) ו-I (S) ב-I (S) ב-I (S) ו-S) דומה, מערכת הפעלה מחדש, מערכת הפעלה מחדש, זיכרון דומה, זיכרון דומה, זיכרון דומה, מערכת הפעלה (S (S (S) או NCRI (S) או NEFI (S) או NEFI
מנקודת מבט ביטחונית, קושחה יש את רמת הפריבילגיה הגבוהה ביותר (במצב ניהול מערכת) היא יכולה לגשת לכל זיכרון, מכשירים חומרה ו- CPU לרשום ללא זיהוי על ידי הקרנל של מערכת ההפעלה, זה הופך את קושחה למטרה אטרקטיבית עבור תוקפים המבקשים עקשנות, גניבה, או מפרטי חומרה ברמת חומרה של קושחה (DV) של מיקוד על מנת לזהות פרצותות שניתן לנצל את הגישה המוגברת הזו, ו-Fv3F) הוא משקף את המבנה ה-F2, כלומר, כלומר, כלומר, כלומר, כלומר, כלומר, כלומר, כלומר, כלומר, כלומר, כלומר, עבור שלב ה-BIFDVDVal (DVal) של ניהול רקע הפוך: 1.comF2F) של ניהולית (DVal) של ניהול רקע הפוך: 1.
למה תוכנות הנדסה הפוכה עבור ביקורת אבטחה?
הנדסה הפוכה מבוצעת כדי לחשוף פרצות כי סריקת מערכת ההפעלה המסורתית לא יכול לזהות.ממצאים נפוצים כוללים אישורים קודמו קשיח, מנגנוני עדכון לא מאובטח, buffer overflows ב SMI מטפלים, ו misconurations בתכונות אבטחה כגון Secure Boot או Measured Boot. Attackers יותר לכוון קושחה כדי להשת שורש או backdoor כי לשרוד את מערכות ההפעלה מחדש ואפילו החלפת אבטחה דיסקרטית הם יכולים להבטיח את המצלמות לאחור כדי לאמת את ה-ה לאחור.
כלים חיוניים לניתוח תוכנה
זרימת עבודה לאחור מוצלחת מבוססת על קבוצה חזקה של כלים מיוחדים.למטה היא רשימה מסווגת עם תיאורים של תפקידם בתהליך הביקורת.
מימון משרדי ו Dumping
- (FLT:0) Flashromigmof 1 (המכונה בקוד פתוח לקריאה, כתיבה ומחיקת שבבי זיכרון פלאש.מתמוך במגוון רחב של צ'יפים ויכולה להשליך את כל תמונת הקושחה מהלוח דרך ה- CPU המארח או מתכנת חומרה.
- (FLT:0)UEFITIOFLT:1 - תועלת גרפית למתן תמונות קושחה UEFI.זה יכול לחלץ, להוסיף ולהחליף כרכים קושחה, קבצים וקטעים, מה שהופך אותו הכרחי לניתוח מבני.
- (FLT:0SPI מתכנת חומרה FLT:1) - חומרה ייעודית (למשל, Dediprog, פיראטי אוטובוס) לקרוא ישירות את השבב הבזק SPI על לוח האם, עקפה כל מגבלות ברמת קושחה.
עורך ה-Hex and Binary Analysis
- (FLT:010 EditorigtureFLT:1) - עורך היתוקס מתקדם עם תבניות בינאריות שיכולה לחלק מבני קושחה (למשל, שולחן חלוקת GUID, נפח קושחה).
- (ב) [15] ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (FLT:0binwalkofLT:1) - כלי קו פיקוד לניתוח, תמצית וזיהוי קבצים משובצים בתמונות קושחה (שימושי באופן בלתי צפוי עבור קושחה מבוססת לינוקס, אך גם החל ממודולים BIOS).
מפיצים ו Decompilers
- (FLT:0GhidraFLT:1) - מסגרת הנדסה לאחור קוד פתוח שפותחה על ידי NSA. תומך אדריכלות רבות (x86, x64, ARM וכו ') וכוללת decompiler רב עוצמה.זה יכול לעבד תמונות ותסריטים UEFI PE32+.
- (FLT:0)IDA ProveFLT:1 - מאגד מסחרי סטנדרטי בתעשייה עם תמיכה בתוסף נרחב.הכרחי לניתוח נתיבי קוד מורכבים, במיוחד במודולים של 64 סיביות UEFI.
- (FLT:0) נינג'ה בנינג'ה פנימית (אנ') 1 - מאגד מסחרי חלופי עם ממשק מודרני ויכולות ניתוח חזקות.
טבלאות של קידוד ו-Hardware Interfaces
- (FLT:0)JTAGIRLT:1) - ממשק חומרה debugging (IEEE 1149.1) שימש כדי לעצור את ה- CPU, לבחון זיכרון, ולשלב באמצעות ביצוע קושחה ברמה הנמוכה ביותר.
- (FLT:0)UART/Serial הקונסולה אווירית 1 (הידועה) – לוחות אמהות רבים חושפים נמל סדרתי במהלך האתחול שיכול לספק פלטה מבולעת או אפילו פגזים אינטראקטיביים.
- (FLT:0) software מחקים של סימולטורים 1:1 - אמלטורים כמו QEMU (עם תמיכה קושחה UEFI) ניתן להשתמש כדי להפעיל מודולים קושחה בסביבה מבוקרת ללא חומרה פיזית.
לכל כלי יש את החוזקות שלו.זרימת עבודה טיפוסית משתמשת בפלאשרום או מתכנת חומרה כדי להשיג את התמונה, UEFIT כדי לפצח את המבנה שלה, Ghidra או IDA Pro עבור קוד disassembly, ולפעמים עבריין לניתוח דינמי. עבור אלה חדשים ל Ghidra, אתר הפרויקט הרשמי FLT:0Ghidrar 1FLT1 מספק הורדות ותיעוד.
שלב-בי-שלב של הנדסה הפוכה של BIOS
השלבים הבאים יוצרים מתודולוגיה מובנית.תתאים את ההזמנה המבוססת על תמונת קושחה ספציפית ומטרות ביקורת.
1. קנה את תמונת המשרד
הצעד הראשון הוא קבלת עותק לגיטימי של הקושחה.קיימות שתי שיטות עיקריות:
- (FLT:0) מהספקיתFLT:1 - הורד חבילת עדכון BIOS /UEFI מהאתר של Motherboard או מערכת ספק.אלה בדרך כלל מסופקים כמו כמוסות (cap, .bin, .rom) או מעדכוןים מתוכנתים.הם מכילים לעתים קרובות את התמונה כולה.
- (FLT:0) מחומרה פיזיתFLT:1 - השתמש בפלאשרום (עם מודולים של הקרנל המתאים) או מתכנתים חיצוניים SPI לזרוק את זיכרון הבזק ישירות מהלוח. שיטה זו לוכדת את הגרסה הקושחה בפועל פועל על המכשיר, כולל כל שינוי בזמן ריצה.
תמיד לאמת את השלמות של התמונה שנרכשה באמצעות בדיקות צפויות או חיתות המוכרות. לעבוד בסביבה מעבדה נקייה כדי להימנע מזיהום צלב.
2.בדוק את מבנה המשרד
פתח את התמונה ב UEFITool או עורך hex כדי להבין את הפריסה שלה. רוב הקושחה המודרנית עוקב אחר מפרט UEFI, המורכב מערכת קובץ תוכן (FFS) המכילה מספר רב של נפחים של חברות (FVs) כל נפח מחולק לקבצים שזוהו על ידי רכיבי מבניים של GUIDs.
- (ב) ⁇ :0) ⁇ (שלב ביטחון) 1 (מקור האמון, האחראי על התצורה הראשונית.
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (FLT:0)DXE (Driver Execution Environment) ,IFLT:1 - מכיל את רוב מנהלי הפלטפורמה ו- SMM (מצב ניהול מערכת) קוד.
- (FLT:0)NVRAM משתנים משתנה מ- 1:1 - אחסון עקבי עבור תצורה של UEFI (למשל, Secure Boot מקשים).
- (ב) ,0) נהגים ויישומים של ההרחבה (ב) 1 - קבצים שניתן להפיק ולהתפזר.
שימו לב מיוחד לכל הקבצים עם זיהוי חשוד או לא נכון, שכן אלה עשויים להצביע על דלתות אחוריות או קוד מבחן. UEFITool יכול לחלץ מודולים בודדים, אשר לאחר מכן ניתן לנתח באופן עצמאי.מדריך מפורט על השימוש ב- UEFITool זמין ב- FLT:0 UEFITool GitHub repositoryFLT:1 .
3.דיסק להרכיב מודולים מרכזיים
לחלץ את מודולי PEI ו DXE מן הקושחה ולהטעים אותם לתוך Ghidra או IDA Pro. להתמקד במודולים המטפלים בפונקציות קריטיות אבטחה:
- (ב) ,0) , מיפוי האימות של ה-Vate אימות מודולים (FLT:1), חפש קוד המאמת את החתימות על מטעני ה-חול.
- (FLT:0)Firmware עדכון כלי רכב מ- 1 (מספק את המשימה שכותבת קושחה חדשה לתוך פלאש.בדק עבור בדיקות חתימה חסרות או פרצות רולבק.
- (FLT:0SMM מודוליםFLT:1) - קוד מצב ניהול מערכת פועל במרחב כתובת נפרד. Analyze SMI מטפלrs עבור buffer overflows או יכולת לבצע קוד שרירותי.
- (FLT:0) קוד ההכפלה של קוד ההקצאה 1(FLT:1), אימות כי בקרים זיכרון וגשרים PCIe מגדירים תכונות אבטחה (למשל, IOMMU, זיכרון remapping) נכון.
כאשר disassembling, לזהות את נקודת הכניסה ולאחר זרימת הבקרה. השתמש מחיקה כדי לפשט ניתוח של אלגוריתמים מורכבים.חפש דפוסים חלשים נפוצים כגון אי בדיקת אורך חיץ, שימוש ב-FLT:0 במקום ;0 (FLT:1, או היעדר אימות חתימה קריפטוגרפית.
חיפוש אחר סודות ודלתות אחוריות
תמונות של תוכנות מכילות לעתים קרובות אישורים קודרים, מפתחות קריפטוגרפיים, או דלתות אחוריות של פיתוח שנעזו בטעות. השתמש עורך hex כדי לחפש מחרוזת משותפת:
- Default סיסמאות (למשל, "מנהל", "פסילת", ברירת מחדל של ספקים).
- פקודות בדיקת חומרה או ממשקי debug (למשל, תפריט UART)
- מפתחות פרטיים (RSA פרטי, מפתחות הצפנה סימטרית).
- מיתרי קסם ספציפיים של Vendor מעוררים התנהגות מיוחדת.
בנוסף, לבדוק את החלל המשתנה NVRAM עבור מפתחות דליפים או נתונים של תצורה. כמה תמונות קושחה כוללות debug בונה כי לחשוף גישה זיכרון מלאה באמצעות ממשקי זיכרון או רשת.אם נמצא, לתעד את ההשפעה והדיווח על הספק.
אנליז עדכון Mechanisms
תהליך העדכון הוא וקטור התקפה משותף. הפוך מהנדס את מודול העדכון כדי לאמת את התכונות האבטחה הבאות:
- העדכון נחתם באופן קריפטוגרפי, והאימות של החתימה מבוצע כראוי (למשל, לבדוק כישלונות הנופלים בדרך "הצלחה").
- תשלום העדכון נבדק על יושרה לפני שנכתב לפלאש.
- הגנה על רולבק נאכף - גרסאות ישנות עם פרצות ידועות אינן ניתנות להפחתה מחדש.
- תהליך העדכון פועל בהקשר מאובטח (למשל, בתוך SMM) ולא ניתן להפריע על ידי מערכת ההפעלה.
לזהות את הנתיב הקוד המאמת את ראש תמונת הקושחה וחתימה.חפש את הזרמות מעל גדות ב parsing של ראשי קפסולה שיכולים לאפשר ביצוע קוד שרירותי במהלך עדכון.
6. Investigate Secure Boot ומדידה את ההשתכרות
עבור קושחה UEFI, ודא כי Secure Boot הוא נאכף כראוי. Extracting ו enume את החתימות משובצות בקושחה: KEK מוסמך (Key Exchange Key), db (חתימות מורשות), ו dbx (חתימות סמוכות) אנליז כיצד מסדי נתונים אלה עמוסים ומאומתים.
Vulnerabilities Uncovered במהלך ביקורת
בהתבסס על מסדי נתונים שפורסמו וגילוי פומבי, הפגיעות הבאות נמצאות לעתים קרובות בקושחה:
| Vulnerability Type | Example Impact | Common Location |
|---|---|---|
| Buffer overflow in SMI handler | Arbitrary code execution in SMM (ring -2) | DXE SMM drivers |
| Insecure firmware update (no signature check) | Attacker can install a backdoored firmware | Update capsule parsing |
| Hardcoded cryptographic keys | Decrypting or signing traffic/firmware | PEIM or DXE modules |
| Debug interfaces left enabled | Full memory read/write via JTAG/UART | Hardware init phase |
| Incorrect Secure Boot policy | Allows unsigned bootloaders to execute | Secure Boot driver |
כל מציאת צריכה להיות מסווגת בחומרה וחידושה של שיטת הבדיקה של OWASP, מספקת מסגרת מצוינת להזדקנות ולדיווח על פרצות כאלה (ראה FLT:0ASPOWASPware Security Methodologyrovmentation FLT:1).
שיקולים משפטיים ואתיים
קושחה הנדסית הפוכה עשויה להיות כפופה לחוקי קניין רוחני, הסכמי רישיון למשתמש קצה (EULAs), ובקרות יצוא.תמיד לקבל אישור מפורש של ספק החומרה לפני ביצוע ביקורת אבטחה, במיוחד אם התוצאות עשויות להיות התגלות בפומבי. לעבוד בתוך גבולות של פטורי DMCA למחקר אבטחה. השתמש רק תמונות קושחה שאתה הבעלים או מסופק תחת הסכם חוקי.
בנוסף, מיצוי פיזי של קושחה עשוי לרוקן את החשדות או לפגוע בחומרה אם לא מבוצע כראוי. השתמש באמצעי זהירות נאותה של פריקה אלקטרוסטטית ולוודא את הכיוון השבב לפני הפעלת כוח.אם אתה לא בטוח עם חומרה, להסתמך על שיטות החילוץ תוכנה (עדכונים ודור).
Best Practices for a Successful Firmware Audit
כדי למקסם את היעילות של המאמץ ההנדסי הפוך שלך, לאמץ את הפעולות הבאות:
- (FLT:0) ,Establish a Sandboxed EnvironmentFIRLT:1) - השתמש בניתוח ייעודי VM או מכונה Air-gapped.Isolate את כלי הניתוח הקושחה מכל רשת ייצור.
- (FLT:0) ,Maintain שרשרת של משמורת 1 - מסמך כל צעד: כיצד הקושחה נרכשה, המחאותיה, כלי ניתוח המשמש, וממצאים.זה קריטי לחיוב בכל ההקשר המשפטי.
- (FLT:0)Start with known Good PatternsFLT:1hil - השווה את קושחית היעד נגד תמונה התייחסות (למשל, גרסה נקייה מהספק) הבדלים יכולים להדגיש שינויים או פרצות.
- (ב) תוצאות רבות של פיזורים (FLT:0) בין Ghidra ו- IDA Pro כדי להימנע מהתערבות של מבני קוד.
- (FLT:0) Collaborate עם המוכר LT:1 - ספקים רבים יש תוכניות בוני באגים וערוצי גילוי אחראים.דיווח על ממצאי מוקדם יכול להוביל לתקןים מהירים יותר ופרסים פוטנציאליים.
עבור אלה בונים מעבדה ניתוח קושחה, לשקול השקעה מתכנתים ייעודיים ולוחמת מיטה מבחן שניתן לבנות בבטחה התאוששה.
מסקנה
הנדסה הפוכה קושחה עבור ביקורת אבטחה היא משמעת תובענית אך מתגמלת.זה חושף פרצות בשכבה העמוקה ביותר של הפלטפורמה, שבו אפילו מערכת ההפעלה אינה יכולה לזהות פעילות זדונית.על ידי ביצוע מתודולוגיה מובנית - חשיפת התמונה, מכפלת את המבנה שלה, להתפורר מודולים מרכזיים, ולחפש חולשות משותפות - אנשי מקצוע יכולים לזהות ולחדש פגמים כי אחרת תישאר עם מורכבות זו, רק כדי לפתח את מערכת אבטחה מודרנית, ולהוביל את המורכבות של מערכות אבטחה מודרנית, רק עם מורכבות זו, רק עם מערכת אבטחה מודרנית, יש צורך באופן משמעותי, רק עם מורכבות אבטחה מודרנית, רק עם זהה, ולהוביל את המהנדסים עם מערכת אבטחה מתקדמת יותר ויותר, רק עם מורכבות אבטחה מודרנית, אתה יכול להמשיך לפתח את המורכבות של מערכות אבטחה מודרנית, רק עם מערכת אבטחה מודרנית, עם מורכבות יעילה יותר ויותר.