בקצרה

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

הרעיון של המאמר, משורטט ב־18 שניות. לחצו על הרמקול לסאונד.

תיבת ההודעות השימושית היא גם גבול קלט

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

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

Prompt injection examples: בודקים את כל מסלול המידע

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

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

נותנים לשירות הביצוע תפקיד מצומצם מזה של המודל

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

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

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

בודקים תוצאה מועילה לצד פעולות שנחסמו

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

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

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

מחברים את ההגנה להמשך הפיתוח העסקי

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

במערכות לגאסי (Legacy) קריטיות, המשמעות היא שמירה על ההרשאות העסקיות הקיימות לצד הוספת יכולות AI. UVISION מספקת מפתחים ייעודיים ופרויקטים מנוהלים עם לפחות מפתח אחד במשרה מלאה לכל פרויקט, ומתחזקת את האינטגרציה, הבדיקות והמשך השינויים כחלק מאותה מערכת.

שאלות נפוצות

מה זה Prompt Injection?

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

למה הזרקת הוראות מצליחה?

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

איך מונעים Prompt Injection?

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

לקריאה נוספת

רוצים לבחון איך זה מתאים למערכות שלכם?

לשירות הרלוונטי