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

ב-14 בספטמבר פרסמו חוקרים מ-KU Leuven, מ-ETH ציריך, מאוניברסיטת דורהאם ומגוגל את DDRop, מתקפת חומרה שמכוונת לטכנולוגיות שאמורות להריץ עבודות רגישות בענן בלי שבעל הענן יוכל להציץ לתוכן. על Intel TDX הם הכניסו מכונה וירטואלית מוגנת של קורבן למצב דיבאג, כך שה-hypervisor שלף את הזיכרון שלה בטקסט גלוי, ואז זייפו למכונה אחרת, כזאת שהם עצמם הריצו, את התעודה החתומה שמוכיחה ללקוח מרוחק מה בדיוק עלה עליה.

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

מה הצפנת הזיכרון מבטיחה, ומה היא לא

הרעיון מאחורי משפחת היכולות הזאת פשוט. אתם רוצים להריץ עבודה רגישה על שרת של ספק ענן, ולא רוצים להיות תלויים בכך שהספק עצמו, או מי שיש לו גישה פיזית למכונה, יתנהג יפה. המעבד מצפין בחומרה את הזיכרון של המכונה הווירטואלית, ומי שמסתכל על אפיק הזיכרון מבחוץ רואה רעש. לזה קוראים confidential computing, והוא זמין היום ב-AWS, ב-Azure, ב-Google Cloud וב-IBM Cloud. סיגנל בנתה עליו את שירות זיהוי אנשי הקשר שלה, ווואטסאפ מריצה עליו עיבוד AI בלי לחשוף את תוכן ההודעות. שלושת המימושים הרלוונטיים כאן הם Intel TDX, Intel Scalable SGX ו-AMD SEV-SNP.

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

איך מפילים כתיבה בלי שאף אחד ישים לב

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

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

מה זה נותן על Intel TDX

TDX מבודד מכונות מוגנות, שאינטל קוראת להן Trust Domains, מ-hypervisor שייתכן שכבר נפרץ. כדי שה-hypervisor לא יוכל לגעת בתרגום הכתובות של האורח, TDX מעביר את טבלאות הדפים לטבלה נפרדת בשם Secure EPT, שמוצפנת בזיכרון תחת המפתח של אותה מכונה ומנוהלת רק בידי הקושחה המהימנה, מודול ה-TDX.

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

שני התרחישים שהחוקרים הדגימו

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

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

על AMD SEV-SNP, שנבדק על מעבדי EPYC Turin, אין את שרשרת ההסלמה הזאת, אבל החוקרים מדווחים שממשק הזזת הדפים מאפשר להם להעתיק דפים שרירותיים של קורבן. ב-Intel Scalable SGX היעדר ה-freshness מאפשר להזרים ל-enclave נתונים ישנים.

מה אומרות אינטל ו-AMD

הגילוי היה מתואם. החוקרים מסרו לשתי החברות מראש את החומרה, את הטכניקות ואת קוד ההדגמה, ועדכנו גם את Arm. שתיהן אישרו את הממצאים, ושתיהן אומרות שמתקפות פיזיות על ה-DRAM נמצאות מחוץ למודל האיומים של המוצרים הנוכחיים שלהן. ב-14 בספטמבר פרסמו שתיהן הודעות אבטחה. ההודעה של אינטל נושאת את שם המחקר וקובעת שהתרחישים המתוארים נמצאים מחוץ למודל האיומים הסטנדרטי שלה, מפני שהמתקפה דורשת גישה פיזית לשרת, התקנה של התקן ביניים והרצת תוכנה בהרשאות גבוהות, ואינה ניתנת לניצול מרחוק. העדכון של AMD פורסם תחת הכותרת "Physical Memory Fault Injection Attacks on DDR5". מזהה CVE לא הוקצה, לא במאמר ולא בהודעות.

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

למה זה מסמן מגמה

בטבלת ההשוואה שהחוקרים פרסמו אפשר לראות את הכיוון. Membuster, ב-2020, האזינה לאפיק של SGX בגרסת הלקוח בעזרת מנתח לוגי במחיר של כ-170 אלף דולר. WireTap ו-TEE.fail, שתיהן מ-2025, כבר הסתדרו עם ציוד יד שנייה בפחות מאלף דולר, אבל נשארו פסיביות ונאלצו להאט את הזיכרון. BadRAM ו-Battering RAM היו פעילות וזולות מאוד, אבל האחת נחסמה בבדיקות באתחול והשנייה עובדת רק על DDR4. DDRop היא הראשונה שהיא גם פעילה, גם רצה על DDR5 בקצב מלא, וגם עולה פחות מ-200 דולר.

מה שכן, יש ארכיטקטורה אחת שחסינה, ודווקא הישנה שבהן. ב-SGX של מעבדי הלקוח, אותם מעבדי Core ישנים בשולחניים ובניידים, בקר הזיכרון מנהל עץ שלמות מסוג Merkle עם מוני freshness, ולכן הוא תופס נתון ישן. הגרסה הזאת יצאה משימוש, מפני שהמנגנון הזה לא מתרחב לכמויות הזיכרון של שרת מודרני. זאת בעצם העסקה שנעשתה בדרך: כדי לכסות מאות ג'יגה-בייט של RAM, ויתרו על התכונה שתופסת בדיוק את המתקפה הזאת. המאמר המלא יוצג בכנס ACM CCS 2026 בנובמבר.

מה זה אומר בפועל

אם אתם מתחזקים ניידים, טלפונים או שרתים רגילים, DDRop לא משנה לכם דבר, ואין פה גם עדכון להתקין. מי שכן צריך לעצור ולחשוב הוא מי שבחר ב-TDX, ב-Scalable SGX או ב-SEV-SNP בדיוק כדי לא לסמוך על ספק הענן עצמו: ההבטחה מול תוקף מרוחק נשארת בתוקף, אבל מול מי שיכול להגיע פעם אחת לארון השרתים, לכמה דקות, היא כבר לא. החוקרים מונים את הדרכים המעשיות להגיע לשם, ואף אחת מהן לא היפותטית: עובד או קבלן במרכז הנתונים, החלפה של מודול בדרך או בשלב ההקמה, וגישה פיזית שנכפית בידי רשות.

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