אבטחת קוד מבוססת AI: הזרקת פרומפטים (Prompt Injection) מסתתרת בקבצי הפרויקט שלך
עוזר הקוד מבוסס ה-AI שלך קורא כל קובץ במאגר (repository) שלך. הוא קורא את ה-README, את קבצי ההגדרות (config) ואת הכללים שלך. הוא משתמש בקבצים הללו כדי להחליט כיצד לכתוב קוד.
איום אבטחה חדש מנצל בדיוק את ההתנהגות הזו. חוקרים מצאו פגיעות ב-28 כלי קוד מבוססי AI שונים. ההתקפה אינה פריצה מורכבת. מדובר בקובץ טקסט פשוט במאגר שלך.
איך ההתקפה עובדת:
אתם משכפלים (clone) פרויקט קוד פתוח. הוא נראה רגיל. אתם פותחים אותו בעורך ה-AI שלכם ומבקשים פיצ'ר חדש. אתם לא רואים את תווים ה-Unicode הנסתרים בקבצי ההגדרות. התווים הללו מסתירים הוראות מכם, אך מורים ל-AI לעשות משהו אחר.
ההוראה הנסתרת מורה ל-AI לשלוח את פרטי הגישה (credentials) של ה-AWS שלכם לשרת חיצוני. ה-AI חושב שזו הוראה לגיטימית של הפרויקט. הוא מבצע את הפקודה. הסודות שלכם אבדו.
למה קשה לעצור את זה:
- תווים נסתרים: אתם רואים טקסט סטנדרטי, אך ה-AI רואה פקודות זדוניות באמצעות תווים נסתרים של Unicode.
- כל קובץ הוא נקודת כניסה: קובץ README או הערה (comment) בספרייה יכולים לשאת את המטען הזדוני (payload).
- הרשאות גבוהות: סוכני AI (AI agents) רצים לעיתים קרובות עם הרשאות המשתמש שלכם. הם יכולים לקרוא את מפתחות ה-SSH ואת אסימוני ה-API שלכם.
- קריאות לכלים (Tool calls): ה-AI משתמש בקריאות לכלים כדי להריץ פקודות. ההתקפה מכוונת לקריאות הללו כדי לעקוף את אימוני הבטיחות.
איך להגן על תהליך העבודה שלכם:
- ניקוי (Sanitize) תוכן הקבצים: הסרת תווים נסתרים ותבניות הזרקה נפוצות לפני שה-AI קורא אותם.
- שימוש בסביבות מבודדות (sandboxes): הרצת סוכני AI בתוך קונטיינרים ללא גישה לרשת ועם מערכות קבצים לקריאה בלבד.
- הגדרת מדיניות קשיחה: יצירת רשימה לבנה (whitelist) של פקודות מורשות. דרישת אישור אנושי לכל פקודה שמעבירה נתונים או מוחקת קבצים.
אתם יכולים להריץ סריקה מהירה לפני סשנים של כתיבת קוד. בדקו את הקבצים שלכם לאיתור מונחים חשודים כמו "ignore all previous" או "curl" ו-"exfil".
כלי קוד מבוססי AI הם פרודוקטיביים, אך הם מניחים שהקבצים בדיסק שלכם בטוחים. הם לא. התייחסו לכל קובץ כאל קלט לא מהימן (untrusted input).
איך אתם מתמודדים עם סיכוני הזרקת פרומפטים בתהליך העבודה שלכם עם AI?
מקור: https://dev.to/tyson_cung/ai-coding-security-prompt-injection-is-hiding-in-your-project-files-4be9
