Atlassian’s Rovo AI agent can be tricked into sending Jira tickets, Confluence pages and API keys to an attacker with a single click, and the admin “kill switch” does not stop the underlying data-fetch capability.
ניתן להונות את סוכן ה-AI של Atlassian, Rovo, כדי שישלח כרטיסי Jira, דפי Confluence ומפתחות API לתוקף בלחיצה אחת, ו"מתג ההשבתה" (kill switch) של המנהל אינו עוצר את יכולת שליפת הנתונים שבבסיס המערכת.
הפגם כולל שתי טכניקות הזרקה (injection) המאפשרות לגורם זדוני להטמיע פקודות נסתרות בדפים פנימיים או ליצור קישור שגורם ל-Rovo לבצע קריאות חיצוניות בשם המשתמש.
איך הפגיעות עובדת
Rovo קורא תוכן מהרשת, מסכם אותו וכאשר הוא מופעל, שולף מידע נוסף מהאינטרנט. הסוכן נכשל בהפרדה בין "תוכן שיש לסכם" לבין "הוראות לביצוע". שני וקטורי תקיפה מנצלים את הערבוב הזה:
- הזרקת תוכן (Content injection) – תוקף מחביא פקודה בדף Confluence. כאשר Rovo סורק את הדף, הוא מבצע את ההוראה הנסתרת, שולף URL המכיל את כתובת האימייל הפרטית של הארגון ואת שם מרחב העבודה (workspace), ומעביר את הנתונים לשרת של התוקף.
- הזרקת URL (URL injection) – תוקף שולח קישור מתוחכם. לחיצה עליו גורמת ל-Rovo להתייחס לטקסט שסופק על ידי התוקף כפקודת משתמש לגיטימית. הסוכן נראה כמי שמבצע משימה בלתי מזיקה, כמו זיהוי תמונה, ובו-בזמן שולח סודות פנימיים לנקודת קצה (endpoint) חיצונית.
שתי השיטות נשענות על היכולת של Rovo לקרוא לכתובות URL שרירותיות על בסיס כל טקסט שהוא מעבד, ללא מנגנון הגנה המבחין בין סיכום תמים לבין הוראה זדונית.
מדוע מתג המנהל אינו מספיק
בקרת ממשק המשתמש (UI) של Atlassian מסתירה את תיבת החיפוש ברשת, כדרך שיווקית לכיבוי התכונה. בפועל, המתג מסיר רק את רכיב ה-front-end; שירות ה-back-end שעדיין יכול לשלוף כתובות URL נותר פעיל. הוא מסווה את ממשק החיפוש, אך לא את השירות שבבסיס המערכת.
הסיכונים עבור ארגונים
- חשיפת נתונים (Data exposure) – פרטי פרויקט רגישים, תיעוד פנימי ופרטי אימות (credentials) עלולים לצאת מגבולות הארגון במינימום אינטראקציה מצד המשתמש.
מה מנהלי מערכת יכולים לאמת כבר היום
- יעילות המתג – לאחר השבתת אפשרות החיפוש ברשת, הזינו לסוכן במכוון פקודת שליפה (fetch) ועקבו אחר בקשות יוצאות. אם הבקשה עוברת, המתג הוא רק קוסמטי.
- בקרת תעבורה יוצאת – הגבילו כל קריאה חיצונית שהסוכן יכול לבצע לרשימת כתובות (allow-list) של דומיינים מהימנים. גישה פתוחה לאינטרנט מזמינה גניבת נתונים.
- הפרדה בין הוראות לנתונים – ודאו שהמערכת אינה מתייחסת לדפים או קבצים לא מהימנים כמקורות פקודות מהימנים. ללא הפרדה זו, מתקפות prompt-injection הופכות לפשוטות מאוד.
צעדים ארכיטקטוניים לצמצום הסיכון
- ערוצים נפרדים – נתבו את הנחיות המשתמש (prompts) ואת שליפת הנתונים דרך צינורות (pipelines) נפרדים. זה מונע מתוכן זדוני (payload) המוטמע בנתונים להתפרש כפקודה.
- הגבלת קריאות יוצאות – הטמיעו חומות אש (firewalls) או כללי פרוקסי שחוסמים כל יעד שלא אושר במפורש עבור סוכן ה-AI.
- אישור אנושי לקריאות חיצוניות – דרשו שלב אישור ידני לפני שהסוכן יכול ליזום בקשת רשת שיוצאת מהסביבה הארגונית.
נקודת מבט נגדית מ-Atlassian
מה לעקוב אחריו בהמשך
על ארגונים לעקוב אחר עדכונים מ-Atlassian בנוגע לכל תיקון (patch) או שינוי בהגדרות שנועדו לטפל בפגם ההפרדה שבבסיס המערכת.
שורה תחתונה: היכולת של Rovo לבצע פקודות נסתרות פירושה שדף או קישור זדוני אחד יכולים לשאוב נתונים חסויים, ומתג ממשק המשתמש אינו עוצר זאת. מנהלים חייבים לוודא שהתכונה אכן כבויה, לחסום את התעבורה היוצאת ולתכנן מחדש את זרימת ההוראות כדי למנוע מסוכני AI להפוך לכלי לא מכוון להוצאת נתונים (data exfiltration).
