חוקרים הראו כי עקבות חשיבה מוצפנים (encrypted reasoning traces) – חבילות מידע קטנות שספק שולח למכשיר של המשתמש כדי ששיחה תוכל לעבור בין מודלים – ניתנים לפענוח על ידי מודל חלש יותר מאותו שירות, מה שחושף מאות פרטי הזדהות ופרטים פרטיים. הממצא, המפורט במאמר Stealing Reasoning Traces from Proprietary LLM APIs, מאיים על תכונת נוחות שבה Anthropic, OpenAI ו-Google מסתמכות עליה כדי לשמור על שיחות AI חלקות.

מדוע הבלוקים המוצפנים קיימים

כשאתם מדברים עם מודל שפה גדול (LLM), השירות בונה "עקבות חשיבה" (reasoning trace): שרשרת הפרומפטים הפנימיים, קריאות לכלים (tool calls) ושלבי שרשרת המחשבה (chain-of-thought) שהובילו לתשובה. כדי לאפשר לכם לעבור ממודל גדול יותר למודל זול יותר מבלי לאבד את השרשרת הזו, הספקים מצפינים את העקבות, שולחים אותם למכשיר שלכם, ומצפים שתשלחו אותם בחזרה עם הבקשה הבאה. ההצפנה נועדה לשמור על פרטיות העקבות תוך מתן אפשרות להמשכיות בין-סשנים ובין-מודלים.

איך ההתקפה עובדת

החוקרים הדגימו ניצול (exploit) בן שלושה שלבים שאינו דורש פריצה למודל החזק עצמו:

  1. לכידה (Capture) של בלוק חשיבה מוצפן שנוצר על ידי מודל עוצמתי במהלך שיחה רגילה.
  2. הזנה (Feed) של הבלוק הזה למודל חלש יותר מאותו ספק, תוך בקשה ממנו "לקרוא" את הבלוק.
  3. מכיוון שהמודל החלש חולק את מפתחות הפענוח עצמם, הוא מוציא (outputs) את התוכן המפוענח כטקסט גלוי.

המודל החלש פועל כ"אורקל פענוח" (decryption oracle). התוקפים מעולם לא נגעו ברכיבים הפנימיים של המודל החזק; הם פשוט השתמשו ב-API של הספק נגד עצמו.

מה החוקרים הצליחו לשחזר

  • 182 פרטי הזדהות – מפתחות API, טוקנים וסודות אחרים המוטמעים בעקבות.
  • 367 פרטים אישיים – שמות, אימיילים וכתובות שמשתמשים סיפקו במהלך הצ'אט.
  • עומסי הזרקת פרומפטים (Prompt-injection payloads) – הוראות זדוניות המוסתרות בבלוק המוצפן שניתן להריץ מאוחר יותר כאשר משחזרים את העקבות.
  • עקיפות מסנני בטיחות (Safety-filter bypasses) – העקבות המפוענחות חשפו שלבים שהיו נחסמים לו נבדקו כטקסט גלוי, מה שמאפשר לתוכן מסוכן לחמוק.

המאמר מדגיש כי החולשה אינה פגם באלגוריתם הקריפטוגרפי; ההצפנה עצמה עומדת במבחן. הפריצה נובעת מבחירה בעיצוב המאפשר לכל מודל בצי (fleet) של הספק לפענח את הבלוק למען חווית המשתמש.

הפשרה שבבסיס הבעיה

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

מה מפתחים צריכים לעשות עכשיו

  • התייחסו לעקבות מוצפנים כטקסט גלוי (clear-text). הניחו שכל לוג, מטמון (cache) או מערכת ניטור שמאחסנים אותם עלולים להיקרא על ידי תוקף.
  • הימנעו משימור (committing) עקבות במאגרים ציבוריים. אפילו בלוק אחד שחמק יכול לחשוף עשרות סודות.
  • תכננו בקרות הדוקות יותר. ספקים עשויים להדק את האבטחה, מה שעשוי לשנות את הדרך שבה בונים סוכנים (agents) מרובי-מודלים.
  • עברו להעברות מצב מפורשות (explicit state hand-offs). במקום להסתמך על חשיבה נסתרת, תכננו סוכנים שיפיקו נתונים מובנים (JSON, XML וכו') שניתן להעביר בבטחה בין מודלים ללא הצפנה.
  • בצעו ביקורת (Audit) לפרומפטים שלכם. חפשו כל נתון רגיש שמגיע לשרשרת החשיבה והסירו אותו לפני שליחת הבקשה.

מה לעקוב אצל הספקים הגדולים

פרסום המאמר ידחף את Anthropic, OpenAI ו-Google להעריך מחדש את מדיניות הפענוח המוטמעת ב-APIs שלהם.

ההשלכה הרחבה יותר

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

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