לחיצה בודדת על קישור שגוי כבר לא רק גונבת סיסמאות או מתקינה תוכנות זדוניות. היא יכולה להוליד סוכן AI עמיד בתוך הארגון שלך, שקורא את האימיילים שלך, מחטט בקבצים שלך ומתכתב עם עמיתיך לעבודה תחת שמך. חוקרי אבטחה ב-Zenity Labs הדגימו בדיוק את התרחיש הזה באמצעות טכניקה שהם מכנים AgentForger, והמכניקה שלה חושפת פער מדאיג באופן שבו אנו מאבטחים כלי AI אוטונומיים.
מ-CSRF ל-AgentForger: סוג חדש של התקפה
רוב אנשי האבטחה מכירים את Cross-Site Request Forgery, או CSRF, כפגיעות רשת קלאסית. בצורתה המסורתית, תוקף מרמה את הדפדפן של משתמש מחובר (authenticated) כדי לשגר בקשה אחת בלתי מורשית. אולי היא משנה כתובת אימייל של חשבון או מבטלת אימות דו-שלבי. הנזק מוגבל בדרך כלל לפעולה אחת.
AgentForger מפרקת את המודל הזה לגזרים. במקום לזייף בקשה אחת, היא מזייפת סוכן אוטונומי שלם בתוך ChatGPT Workspace Agents של OpenAI. ההתקפה מתחילה ב-ChatGPT Agent Builder, שנמצא בכתובת chatgpt.com/agents/studio/new. בנסיבות רגילות, בניית סוכן היא תהליך מונחה אדם. אתה בוחר תבנית, בוחן אילו כלים הסוכן יכול לגשת אליהם, ומגדיר מגבלות (guardrails) כך שהמכונה תבקש אישור לפני שהיא קוראת את תיבת הדואר הנכנס שלך או כותבת לכונן (drive) שלך. זרימת העבודה מניחה שבן אדם שם לב לכל שלב.
Zenity Labs גילו שההגנות הללו מתנדפות כאשר תוקף שולט ב-URL. על ידי הטמעת פרמטרי שאילתה ספציפיים — ליתר דיוק template_name ו-initial_assistant_prompt — קישור זדוני יכול למלא מראש את כל טופס היצירה. כאשר הקורבן לוחץ, ה-initial_assistant_prompt נשלח ומופעל באופן אוטומטי. בחירת התבנית, סקירת הכלים ודיאלוגי האישור לעולם אינם מופיעים. הסוכן פשוט נוצר ברקע, מוגדר בדיוק כפי שהתוקף רוצה, בעוד שהקורבן עשוי לראות רק דף ChatGPT שנראה רגיל נטען ואז סגירת הלשונית.
זו אינה הדבקה מסורתית של תוכנה זדונית. שום דבר לא יורד למחשב הנייד. האיום חי כולו בתוך סשן ה-SaaS של הקורבן, ופועל עם הלגיטימיות המלאה של הפלטפורמה שמאחוריו.
חטיפת אמון במקום פרטים מזהים
האכזריות האמיתית של AgentForger טמונה באופן שבו היא מטפלת בהרשאות. משתמשים ארגוניים של ChatGPT Workspace מקשרים באופן שגרתי את סוכני ה-AI שלהם לאפליקציות עסקיות באמצעות OAuth. הם מבצעים אימות פעם אחת כדי לחבר את Gmail, Outlook, Slack, Google Drive או Microsoft Teams, ומאותו רגע הסוכן יכול לשאול את השירותים הללו בשמם.
AgentForger יורשת את כל הגישה הזו באופן אוטומטי. מכיוון שהקורבן כבר מחובר ל-ChatGPT וכבר יצר את חיבורי ה-OAuth הללו, הסוכן המזויף משתמש בהם מחדש. הקורבן אינו רואה מסך הסכמה חדש השואל האם יש לאפשר לסוכן החדש הזה להיכנס לאימייל שלו. המערכת מתייחסת לסוכן כאל הרחבה של המשתמש.
בהדגמה של Zenity, התוקף עיצב את ה-URL הזדוני כדי לבצע משהו אגרסיבי עוד יותר. הוא הנחה את ה-Agent Builder להפוך כל מתג הרשאה לקריאה, כתיבה ומחיקה למצב "לעולם אל תשאל" (Never ask). בדרך כלל, הפלטפורמה הייתה פונה לאדם לפני ביצוע פעולות רגישות — פתיחת גיליון נתונים, שליחת הודעה או מחיקת אירוע ביומן. על ידי כפיית מצב שקט על הבקרים הללו, התוקף מסיר לחלוטין את ה-human-in-the-loop (המעורבות האנושית). הסוכן הופך לרוח רפאים בחשבון, חופשי לנוע בין האפליקציות המחוברות מבלי לייצר התראה אחת או דיאלוג אישור.
ערוץ פקודה המסתתר לנגד עיניים
עמידות (Persistence) הופכת exploit מרושע לסיוט תפעולי, ו-AgentForger משיגה עמידות באמצעות תכונות התזמון המובנות של ChatGPT. התוקף מגדיר מספר לוחות זמנים מדורגים במהלך תהליך היצירה, מה שמייצר סוכן שמתעורר ורץ לעיתים קרובות כל חמש דקות.
כך עובדת לולאת ה-command-and-control. התוקף שולח אימייל לתיבת ה-Outlook של הקורבן. שורת הנושא מכילה מילת טריגר, כגון "TASK". כל חמש דקות, הסוכן הזדוני סורק את תיבת הדואר הנכנס בחיפוש אחר הטריגר הזה. כאשר הוא מוצא התאמה, הוא פותח את האימייל, קורא את ההוראות, מבצע אותן באמצעות האפליקציות המאומתות של הקורבן, ושולח את התוצאות חזרה לתוקף.
כתובת האימייל הארגונית של הקורבן הופכת לתשתית הפיקוד והשליטה (command-and-control). אין סיגנל DNS חשוד, אין חיבור לכתובת IP לא ידועה במזרח אירופה, ואין קובץ בינארי של נוזקה שזיהוי נקודות קצה (endpoint detection) יכול לסמן. התעבורה זורמת דרך ה-APIs של Microsoft או Google תוך שימוש בפרטי הזדהות לגיטימיים לחלוטין. עבור צוותי אבטחה (SOC) המנטרים לוגים של רשת, זה נראה כמו עובד עסוק המשתמש בכלי SaaS מאושרים.
השפעה בעולם האמיתי: מיפוי ארגונים והפיכת אמון לכלי נשק
Zenity Labs בחנה את הגבולות המעשיים של המתקפה הזו בסביבות מבוקרות, והתוצאות צריכות להדאיג כל CISO.
באמצעות הוראה בודדת שנשלחה דרך טריגר אימייל, החוקרים הורו לסוכן (agent) למפות את הארגון. הוא שאילת ל-Slack, Microsoft Teams ו-SharePoint. הוא החזיר שמות ערוצים, מבני צוותים ומאגרי קבצים. הסוכן איתר מסמכים רגישים, כולל מסמכי תנאי מיזוג ורכישה (M&A) ונתוני שכר עובדים. כל גישה נרשמה תחת הזהות הלגיטימית של הקורבן, מה שהופך את הזיהוי הפורנזי לעניין של הפרדה בין "רעש" של משתמש רגיל לבין "רעש" של משתמש זדוני.
לאחר מכן ישנו הפוטנציאל להנדסה חברתית. מכיוון שהסוכן יכול לשלוח הודעות דרך חשבונות ה-Slack או ה-Teams הרשמיים של הקורבן, הוא יכול לבצע קמפיינים של פישינג פנימיים שעוקפים לחלוטין שערי אימייל חיצוניים ובדיקות DMARC. דמיינו הודעה ישירה מעמית לעבודה מהימן המבקשת מכם לאשר הטמעה קרובה של SSO או ללחוץ על קישור כדי לבדוק את פורטל ההטבות החדש. ההודעה נושאת את שמו של העמית, תמונת הפרופיל שלו והקשר של היסטוריית הצ'אט. היא מגיעה לאותו שרשור שיחה שבו דנתם בתוכניות לארוחת צהריים אתמול. רמת האמון הזו שונה מהותית מדומיין מזויף (spoofed domain) או כתובת שולח עם שגיאת כתיב, ו-AgentForger מנצל זאת ללא רחם.
השורה התחתונה
AgentForger חושף בעיה מבנית באופן שבו פלטפורמות AI ארגוניות יורשות אמון. אנחנו בונים סוכנים אוטונומיים שיכולים לקבוע לעצמם לו"ז, לכתוב קוד ולשאול נתונים רגישים, ובכל זאת אנחנו עדיין משתמשים במודלים של הרשאות שתוכננו עבור אפליקציות ווב סטטיות שבהן בן אדם לוחץ על כל כפתור. הגבול בין "מה שהמשתמש עושה" לבין "מה שהסוכן של המשתמש עושה" קרס, ותוקפים נמצאים כעת בעמדה המאפשרת לנצל את הקריסה הזו בקנה מידה רחב.
ארגונים המשתמשים ב-ChatGPT Workspace צריכים להתייחס ליצירת סוכנים כפעולה בעלת הרשאה גבוהה (privileged operation), ולא כתהליך עבודה שגרתי. המשמעות היא ביצוע ביקורת (auditing) על ה-OAuth scopes כדי להבטיח שסוכנים לא יוכלו לגשת בשקט לתיבות דואר נכנס או למאגרי קבצים שלמים. המשמעות היא ניטור של פרצי פעילות שנראים כמו לולאות מתוזמנות ולא כמו קצב אנושי. והמשמעות היא ההכרה בכך שהפריצה הגדולה הבאה עשויה שלא להתחיל עם סיסמה שנפרצה או אימייל פישינג. היא עשויה להתחיל בלחיצה אחת של חוסר תשומת לב, שמסמיכה בשקט את הזהות שלכם למכונה שלעולם לא ישנה.
