שְׁאֵלָה:
ידע על חומרת מעבד
user4906231
2017-09-08 13:33:40 UTC
view on stackexchange narkive permalink

לאחרונה עברתי את קורס ארגון המחשבים שמסביר ברמת שער ההיגיון כיצד עובד מעבד וכו '...

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

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

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

ארבע תשובות:
kn000x
2017-09-08 17:08:45 UTC
view on stackexchange narkive permalink

כדי להרחיב את התשובה של perror:

אולי כדאי שתסתכל בעיתון הלבן שפורסם לאחרונה בשם Breaking the x86 ISA מאת כריסטופר דומאס. הוא פורסם ב- blackhat17 ומתאר גישה לחפירה בשבבי x86 וחילוץ הוראות מכונה נסתרות.

כותרת:

פריצה ISA x86

תקציר:

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

מחבר: כריסטופר דומאס

https://www.blackhat.com/docs/us-17/thursday/ us-17-Domas-Breaking-The-x86-Instruction-Set-wp.pdf

משאבים קשורים:

אינטרנלים מיקרו-קוד קשורים מאקדמיה:

כותרת:

הנדסה הפוכה x86 מיקרו-קוד מעבד

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

מחבר: Philipp Koppe, בנג'מין קולנדה, מארק פירביאק, כריסטיאן קיסון, רוברט גוליק, כריסטוף פאר, ותורסטן הולץ

http://syssec.rub.de/media/emma/veroeffentlichungen/2017/08/16/ usenix17-microcode.pdf

עבודה קשורה / קריאות :

עריכה: הוספתי את ההפניה שהזכיר דן.

כותרת:

צבא שחרור תקלות בעמוד או הושג בתרגום: היסטוריה של זיכרון וירטואלי יצירתי x86

תקציר:

מעבדי x86 מכילים כמות מפתיעה של לוגיקת תרגום זיכרון מובנית, המונעת על ידי da שונים טבלאות ta עם פורמטי כניסה מורכבים, ויכולות לייצר מלכודות מסוגים שונים ואפקטים חישוביים מעניינים אחרים. מאפיינים אלה הם בעיקר שרידים של תקופות קודמות ומתורבתות יותר, כאשר Jedi Knights ניסו להגן על מערכות ההפעלה הישן של הרפובליקה בעזרת פילוח, סיביות מפקח ותמיכה במשימות חומרה, אך הובסו על ידי אופטימיזציה של מעבד ומחשבי ביצועים ונותרו ללא שימוש על ידי שני Windows. ומערכות UNIX - ונחקרו רק על ידי האקרים. עבור שאר העולם, מחשב x86 היה "אדריכלות פון נוימן", שרוב המוזרות שלה לא הייתה בשימוש.

מחבר: ג'וליאן בנגרט וסרגיי ברטוס

https://media.ccc.de/v/29c3-5265-en-page_fault_liberation_army_h264

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

כותרת:

התכה וספקטרום: באגים במחשבים מודרניים מדליפים סיסמאות ונתונים רגישים

TLDR:

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

נייר:

https://meltdownattack.com/meltdown.pdf

https://spectreattack.com/spectre.pdf

משאבים קשורים:

ואז היה זה מכמה שנים אחורה: https://media.ccc.de/v/29c3-5265-en-page_fault_liberation_army_h264 נראה כי האינטראקציה של מנגנוני תקלה בדף עם MMU ב- X86 היא למעשה טיורינג הושלמה.
perror
2017-09-08 14:48:44 UTC
view on stackexchange narkive permalink

למעשה, המעבד נבדק ומאומת הרבה יותר מתוכניות. מאוד לא סביר למצוא באג (משמעותי) במעבד. למרות שזה קורה מעת לעת.

לכן, הרבה יותר מעניין להסתכל על באגים של תוכנה (כי הם צפויים יותר) מאשר על באגים של חומרה.

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

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

  • אותות הפקודה : הם שימשו למשלוח פקודות כגון יעד שיחת הטלפון (מספר טלפון), תחילת / סיום התקשורת, כמות המטבעות ששולמה וכן הלאה.

  • קול אותות : הם שימשו לקידוד אות השמע של תקשורת הטלפון.

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

למעשה, האקר אחד הבין שאם אתה מפיק צליל של 2600 הרץ, קידוד השמע של אות זה היה תואם ל פקודה של שיחה למרחקים ארוכים (זה היה כאילו הכנסת מטבע של 25 סנט לתא הטלפון). ובמקרה יוצא דופן, בשלב זה מותג דגני בוקר (לארוחת בוקר לילדים), שנקרא " Cap'n Crunch ", הציע ללקוחותיו שריקה שהפיקה צליל זה. אותה תדירות בדיוק.

enter image description here

בשלב זה קופסאות הדגנים הללו הפכו פופולריות מאוד וחברת הטלפונים הפסידה מעט כסף. :-)

למרות שאולי לא תוכלו (בקלות) למצוא שגיאת יישום ממשית במעבד מודרני, ניתן להשיג הרבה בתחום האבטחה על ידי הבנת האינטראקציות המורכבות הרבות בין חלקי המערכת, פינות מערך ההוראות ומימושים חדשים יותר כמו TPM.
Joseph Byrne
2017-09-09 06:08:00 UTC
view on stackexchange narkive permalink

מיקרו-מעבדים מודרניים הם מורכבים למדי, אך ככל הנראה ניתן לייצג בפחות שורות קוד מאשר מערכת הפעלה בתוספת libs וכו '(למרות שאחד יקודד ב- Verilog והשני ב- C.) עם זאת, המורכבות כה גדולה עד כי קיום קוד המקור לא יועיל במיוחד.

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

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

אכן ישנם באגים שנמצאים לאחר הקלטת הסרט. לרוב המעבדים יש יריעת שינויים, ומעט עיצובים יוצרים בייצור ב- A0 (סיליקון אחד מלא, ללא תיקוני מתכת). אבל, אני בעיקר רואה באגים או פערים בעיצוב בפונקציות היקפיות. לקבלת דוגמה לרשימה של באגים, חפש משהו כמו "Skylake errata."

*> אתה לא יכול פשוט לדחוף תיקון כמו שאתה יכול בתוכנה * - לא כל כך נכון יותר; ניתן לתקן (ולעתים קרובות לתקן) באגים רבים במעבד ברמה גבוהה יותר באמצעות עדכוני מיקרו-קוד המופעלים באמצעות מערכת ההפעלה או באמצעות עדכוני קושחת לוח האם. במיוחד עדכוני מערכת ההפעלה אינם שונים בהרבה מכל עדכון מערכת הפעלה / מנהל התקן אחר.
* עדכוני מיקרו-קוד מוחלים באמצעות מערכת ההפעלה * ... מה שבאופן אירוני פותח הזדמנויות רבות יותר לבעיות אבטחה.
BeeOnRope
2017-09-10 04:24:11 UTC
view on stackexchange narkive permalink

כדוגמא מאוד ספציפית, אני בטוח שתוכל לקחת את ה- SKL150 erratum שהוכר לאחרונה ולבנות עליו ניצול שיכול לנהור דרך מערכות אימות, langauges שהורכבו על ידי JIT וכו ', מכיוון שהוא שובר את ההנחה הבסיסית כי המעבד מתנהג כמתוכנן.

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



שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...