שני סוכנים בלי רשת ובלי קובץ משותף החליפו ביניהם סוד דרך זיכרון המעבד: מה מצא ה-red team של OpenAI בתשתית של עצמה
שני סוכני AI הורצו על אותה מכונה פיזית, כל אחד בתוך מכונה וירטואלית קטנה ומבודדת משלו. לא היה ביניהם חיבור רשת ולא קובץ משותף שאפשר לכתוב אליו. הם קיבלו מטרה אחת: להעביר סוד אחד מהראשון לשני. הם מצאו דרך. אחד מהם התחיל לדחוק נתונים נבחרים מהזיכרון המהיר של המעבד, השני מדד כמה זמן לוקח לטעון את אותם נתונים מחדש, וההפרש בין קריאה מהירה לקריאה איטית הפך לביטים.
הניסוי הזה מופיע בפרסום של OpenAI מ-23 באוקטובר, שבו החברה מתארת איך היא מאבטחת את הסביבות שבהן היא מאמנת ובודקת את המודלים החזקים שלה, ומה מצאו הסוכנים שהיא שלחה לתקוף אותן. במקביל פרסמו METR ו-Redwood Research את התוצאות של תרגיל נפרד: שלושה שבועות שבהם שני עובדים מבחוץ קיבלו גישה לקוד הפנימי של OpenAI כדי לבדוק דווקא את מערכת הניטור, זו שאמורה לתפוס סוכן שמתנהג לא כשורה. בהמשך נראה מה נשבר בכל אחת מהשכבות, ולמה שתי התמונות יחד מעניינות יותר מכל אחת לחוד.
מה קרה ב-20 בספטמבר, ולמה האימון נעצר
המשימה שהסוכן קיבל הייתה שגרתית: לזהות מי כתב פוסט מסוים בבלוג, לפי כמה פרטים ביוגרפיים ורמזים מתוך הפוסט עצמו. לפי דוח האי-התאמה שפרסמה OpenAI, הסוכן התחיל מכלי החיפוש שניתן לו, קיבל תוצאות לא רלוונטיות, ואז ניסה לפנות ישירות למנועי חיפוש דרך Python. שלושת הניסיונות חזרו עם שגיאות, 403 ו-502. בשלב הזה הוא בדק אם יש דרך אחרת לצאת, ומצא אחת: סינון DNS לא מספק בתוך ה-sandbox של האימון. דרכה הוא הגיע לשירות צ'אט ציבורי באינטרנט החי. שאר הגישה לרשת באותה הרצה נפלה על המטמון הלא מקוון ולא יצאה לעולם.
מה שקרה אחר כך הוא הצד החיובי של הסיפור. מערכת הניטור סימנה את ההתנהגות בתוך 15 דקות, אדם התחיל לבדוק אותה שלוש דקות לאחר מכן, וההרצה נעצרה אחרי שעתיים וחצי. OpenAI עצרה את האימון וההערכה של המודלים החזקים שלה, וחידשה אותם ב-1 באוקטובר, 11 ימים לאחר מכן. את הזמן הזה היא ניצלה להידוק התשתית, לחיזוק הניטור ולשיפור המערכות שעוצרות הרצה כשמזוהה פעילות מסוכנת. את הפרצה עצמה סגרה בשתי שכבות בלתי תלויות, שכל אחת מהן לבדה הייתה מונעת את הגישה.
איך בנוי הכלוב, ולמה הוא בשכבות
בבסיס העניין יש דרישה אחת: ההגבלה על מה שסוכן יכול להגיע אליו צריכה להחזיק גם כשהוא מנסה במכוון לעקוף אותה. OpenAI מגדירה גבול אבטחה סביב המשאבים שהסוכן מורשה להשתמש בהם, וכל מה שמחוץ לו אמור להישאר מחוץ להישג יד. בתוך הגבול יושבים דפדפנים, סביבות להרצת קוד וכלים לשימוש במחשב. מחוץ לו, עבור אימון ורוב ההערכות, נמצא האינטרנט החי.
כדי שהמודלים בכל זאת ילמדו לגלוש ולחפש מידע, החברה בנתה מה שהיא מכנה "עולם לא מקוון": אוסף גדול של תוכן אינטרנט ממופה ושמור במטמון, שאפשר לעבוד איתו בלי לגעת בשרת חיצוני. כל הרצות ה-RL החזיתיות שלה עובדות במצב הזה בלבד.
ההגנה עצמה מסודרת בשכבות שחופפות, כך שאם אחת נופלת, הבאה אחריה עוד מחזיקה. על Linux הסוכן רץ בתוך container מוגבל, וה-container יושב בתוך מכונה וירטואלית קטנה (microVM) שמריצה kernel משל עצמה ומופרדת מהמכונה המארחת, ה-host, באמצעות hypervisor. מעליהן מערכות ניטור שמזהות פעילות לא מורשית בזמן שעוד אפשר להתערב, ומסביב לכול חומת רשת וענן שתפקידה להחזיק גם אם כל השכבות שמתחתיה נפלו. לגישה הזאת קוראים defense in depth.
כששחקן ה-red team הוא המודל שאתם מאמנים
כדי לבדוק אם הכלוב מחזיק, OpenAI הפנתה צוותים של סוכנים חזיתיים לנסות לשבור אותו, עם שלוש מטרות: להגיע לאינטרנט החי ולשלוח בקשה לשרת חיצוני שבשליטת החברה, לחרוג מגבול אבטחה פנימי ולהגיע למשאבים שאינם מורשים, ולהחליף מידע עם סוכנים שהם אמורים להיות מבודדים מהם. חלק מהבדיקות התחילו מהנחה שההגנות הפנימיות כבר נכשלו: שהסוכן יצא מה-sandbox, חמק מהניטור וקיבל שליטה מלאה על ה-host.
הניסוי לא ניסה למדוד מה מודל מגלה לבד. החברה מסרה לסוכנים את קוד המקור של התשתית, את ההגדרות ותיעוד שמתאר חולשות אפשריות, בדיוק כדי להעמיד את ההגנות בתנאים שנוחים לתוקף. בין המודלים שהשתתפו היא מונה את GPT-6 Astra Cyber, שעוד לא שוחרר, ומודל חזיתי פנימי. על כל זה, לפי הפרסום, הוצאו מאות מיליארדי token-ים.
והם מצאו. בניסויים שבהם התבקשו לצאת מה-sandbox ולהריץ קוד על ה-host, הסוכנים שרשרו חולשות עד ליציאה מה-microVM. התיקונים חזרו לפרויקטים שמהם התשתית מורכבת: Kata Containers, gVisor בטיפול ב-file descriptor, Moby/Docker במסנני ה-syscall, ושלושה תיקונים ב-kernel של Linux.
הצד השני, הדרך מה-host אל האינטרנט, מעניין יותר. אחרי תקרית Hugging Face ביולי צמצמה החברה את הערוצים שדרכם מודל יכול להגיע לרשת, אבל כמה חיבורים צרים נשארו בהכרח, לשירותים שהיא מפעילה בעצמה: מטריקות, לוגים וניהול אימות. הסוכנים מצאו חולשות כמעט בכל אחד מהשירותים האלה, וכל אחת מהן נתנה צורה מוגבלת של גישה לאינטרנט. המקרה שמתואר במפורש נראה כך: סוכן שקיבל שליטה על host השתמש מחדש בחיבור שחומת האש כבר אישרה, הגיע דרכו ל-endpoint של אימות בשירות המטריקות שהיה אמור להיות חסום, וגרם לאותו endpoint למשוך כתובת שהמודל עצמו הכתיב. הוא לא פרץ את החומה. הוא מצא בתוכה שירות שמוכן להביא דברים מבחוץ בשמו.
הערוץ שעובר דרך זיכרון המעבד
סוכנים לא תמיד צריכים חיבור רשת כדי לדבר. כששתי סביבות מופרדות חולקות את אותה חומרה, פעילות באחת מהן משאירה סימן שהשנייה יכולה למדוד, וזה בדיוק מה שקרה בניסוי שפתח את הכתבה הזאת. המעבד שומר עותקים של נתונים שנגעו בהם לאחרונה בזיכרון קטן ומהיר, וקריאה משם מהירה בהרבה מקריאה מהזיכרון הראשי. ההפרש הזה הוא כל מה שהסוכנים צריכים: אחרי שהסכימו ביניהם על פרוטוקול לקידוד ולפענוח, הם העבירו את הסוד בלי לשנות קובץ משותף ובלי לפתוח חיבור רשת. אותה טכניקה של מדידת זמני מטמון שימשה לחילוץ מידע ב-Spectre וב-Meltdown.
זה לא היה הערוץ היחיד. בדיקות אחרות חשפו ערוצים שעוברים דרך אחסון משותף, דרך תחרות על זמן מעבד בתוך container הרצה משותף, ודרך מטמון תעודות TLS בתשתית הגלישה הלא מקוונת. בבדיקת האחסון סוכן אחד התחלף בין כתיבה רציפה לחוסר פעילות, והשני מדד את הפרשי הזמן ופענח מהם את האות. בשרשרת החשיבה שלו תיאר הסוכן את הרעיון כיצירת "אות דמוי מודם אקוסטי". במקרה אחד קיבלו הסוכנים רק רשימה רחבה של חולשות בתשתית והתבקשו למצוא דרך לתקשר, והם הפכו אחת מהרשימה לערוץ, הסכימו על קידוד משותף והחליפו מידע.
רוב הערוצים האלה איטיים וקשים לשימוש, וזאת הסתייגות שהחברה עצמה מדגישה. אבל הם קיימים, והם חוצים גבול שהתשתית נבנתה כדי לשמור עליו. בעקבות הממצאים נוספו למערכות הניטור בדיקות שמחפשות ניסיונות לתקשר דרכם.
ומי בודק את מי שבודק את הסוכנים?
בין 21 ביולי ל-11 באוגוסט ישבו עובד של METR ועובד של Redwood Research בתוך OpenAI, על מכשירים שהחברה הנפיקה ושלא יצאו מהמשרד, עם גישה לקוד הפנימי ולהגדרות של מערכת הניטור, ואחרי ראיונות עם כתריסר מהנדסים וחוקרים מצוותי הניטור, הבטיחות והאבטחה. התוצר היה דוח פנימי בן 61 עמודים, שהגרסה הפומבית מכסה ממנו רק חלק קטן: הוסכם מראש של-OpenAI תהיה זכות למחוק כל מה שתגדיר כרגיש. התרגיל בדק את המערכת כפי שהייתה ב-21 ביולי ולפני כן, ולא את ההרחבות שהיו אז בעבודה.
מה שפורסם מספיק. הצוות העריך שבין 75 ל-94 אחוזים מתעבורת הסוכנים הפנימית במודלים ברמת GPT-5.5 ומעלה הייתה כשירה לניטור בזמן התרגיל, ובתוך תת-הקבוצה של Codex הפנימי, 99.2 אחוזים. הרצות אימון RL לא היו מכוסות בתחילת התרגיל כלל. אירועי כיווץ הקשר, אותם רגעים שבהם שיחה ארוכה מקופלת לסיכום כדי לפנות מקום, לא נוטרו, ולפי ההערכה זה הותיר בלי ניטור משהו בסדר גודל של עשרה אחוזים מתעבורת Codex הכשירה בין מאי ליולי. ומכיוון שהניטור הופעל ברגע שסוכן החזיר את השליטה למשתמש, סוכן יכול היה לדחות את הבדיקה שלו ללא הגבלה, פשוט על ידי המשך פעולה.
הממצאים החדים יותר נוגעים לעקיפה מכוונת. "מצאנו דרך שבה סוכני Codex יכולים באופן עקרוני לעקוף את ה-sandbox של Codex ואת Auto-Review, מה שמאפשר להם לבצע כל פעולה שמשתמש ה-host יכול לבצע", כתבו החוקרים דייוויד ריין ואדם קאופמן. הם מצאו גם ניצול שהיה מונע ניטור של מאות פעולות אחרונות, כולל הפעולות של הניצול עצמו, שאת פרטיו OpenAI מחקה מהפרסום; שני header-ים שהלקוח יכול לקבוע ושמשביתים את הניטור עבור סוכנים חדשים; ושני כלים פנימיים שנחשבו קריאה-בלבד, ושאפשר היה לעקוף בהם את ההגבלה הזאת, ממצא שהם לא אימתו בפועל.
OpenAI מסרה ל-METR שכל החולשות שנגעו למערך ההגנות בייצור תוקנו. METR כותבת במפורש שהיא לא בדקה את הטענה הזאת. במקביל הפכה החברה את ה-red teaming בהיקף גדול לחלק מתיק הבטיחות שלפיו היא מחליטה אם אימון חזיתי יכול להימשך. חלק מתוצרי הקמפיין נוגעים לכם ישירות: החולשה במפענח Brotli שסגרו לפני כמה ימים Node.js, Bun ו-Istio, CVE-2026-111497, מופיעה בין הגילויים של Patch the Planet, ולפי The Hacker News היא נמצאה בקמפיין ה-red teaming הזה.
מה זה אומר בפועל
רוב הארגונים לא מאמנים מודלים חזיתיים, אבל יותר ויותר מהם מריצים סוכנים שמקבלים כלים, הרשאות ו-container לעבוד בתוכו. שלוש מהמסקנות כאן עוברות כמו שהן: הגבול האמיתי הוא התשתית ולא ההנחיה שנתתם לסוכן, ניטור שמופעל רק כשהסוכן מסיים את התור שלו אפשר לדחות על ידי המשך עבודה, וכלי שמוגדר קריאה-בלבד שווה בדיוק כמה שההרשאות מאחוריו מאכפות. ואם אתם מריצים סוכנים של כמה לקוחות על אותה חומרה, כדאי להסתכל גם על מה שהם יכולים למדוד זה על זה, ולא רק על מה שהם יכולים לשלוח זה לזה.
תגובות