כשסוכן AI מנקה תיקייה: מה אפשר ללמוד מדיווח על מחיקת אלפי קבצים?

משתמש ביקש מסוכן התכנות Claude Code לתקן תהליך עבודה ולבנות מחדש עותק של פרויקט. לפי דיווח שפורסם ב-Cyber Security News, במהלך ניקוי העותק הישן נמחקו גם קבצים מהפרויקט הפעיל. הדיווח נוקב במספר של 48,218 קבצים ובמשך של 103 שניות.
אלה מספרים מטלטלים, אבל חשוב לדעת מה עומד מאחוריהם: הכתבה מסתמכת על פוסט של המשתמש ועל דוח בדיקה שצורף אליו, ולא על חקירה עצמאית שפורסמה. [הפוסט המקורי הוסר מאז]. לכן אפשר לבחון את מנגנון התקלה המתואר ואת הלקח המעשי ממנו, בלי להציג את פרטי האירוע כעובדות שאומתו באופן בלתי תלוי.
איך ניקוי של עותק ישן הגיע לקבצים הפעילים?
על פי הדיווח, הסוכן יצר תוכנית קטנה למחיקת עותק ישן של הפרויקט. בתוך אותו עותק היו צומתי תיקיות של Windows, המכונים junctions: כניסות שנראות כמו תיקיות, אך מפנות למיקום אחר במחשב. במקרה המתואר, חלקן הפנו בחזרה אל תיקיות בפרויקט הפעיל.
התוכנית סרקה תיקיות ומחקה קבצים, תוך הסתמכות על בדיקה שנועדה להימנע ממעבר דרך קישורים. לפי דוח הבדיקה שתואר בכתבה, ההגנה לא זיהתה כראוי את צומתי התיקיות. כך פעולה שנועדה להסיר עותק ישן הגיעה לכאורה גם לקבצים המקוריים.
ההבחנה הטכנית כאן חשובה: ב-Python קיימת [בדיקה נפרדת לצומתי תיקיות]. בדיקה של קישור סמלי רגיל אינה בהכרח שקולה לבדיקה של צומת תיקיות ב-Windows. מהתיעוד הזה אפשר להבין מדוע ההנחה שמתארת הכתבה עלולה להיות מסוכנת; הוא אינו מאמת בפני עצמו שזה מה שקרה במחשב של המשתמש.
למה אישור המשימה לא הספיק?
המשתמש, לפי הדיווח, אישר לסוכן לבנות מחדש עותק הדרוש לעבודה. זהו יעד סביר. הסיכון נוצר בדרך שהסוכן בחר לבצע את הניקוי: יצירת קוד שמוחק קבצים, ואז הרצה שלו בסביבה שבה היו גם קבצי הפרויקט הפעיל.
כשנותנים לסוכן AI גישה למערכת הקבצים, יש הבדל בין אישור המטרה לבין בדיקה של כל פעולה בדרך אליה. גם הוראה מדויקת אינה מבטיחה שהתוכנית שהסוכן יכתוב תזהה נכון מבנה תיקיות חריג. כשפעולת המחיקה יכולה להגיע מעבר לתיקיית העבודה המיועדת, מחיר הטעות גדל מאוד.
הכתבה מדווחת שגם נתוני Git המקומיים נפגעו במקרה הזה. לכן ההנחה ש"אפשר פשוט לחזור אחורה" אינה מספיקה. גם מנגנון השחזור של Claude Code מוגבל: [בתיעוד של Anthropic] מצוין ששינויים בקבצים שנעשו באמצעות פקודות מעטפת אינם נשמרים בנקודות השחזור שלו. גיבוי נפרד מהסביבה שבה הסוכן עובד נותן הגנה אחרת.
מה כדאי לעשות לפני שנותנים לסוכן למחוק?
לפני משימה כמו "נקה את הקבצים הישנים", אפשר לבקש מהסוכן להציג תחילה את הנתיבים המדויקים שהוא מתכוון להסיר ואת מספר הקבצים בכל תיקייה. את הרשימה צריך לבדוק מול גבולות המשימה: האם מופיעים בה רק קבצים זמניים, או גם תיקיות מקור, מסמכים וגיבויים?
אחר כך אפשר להריץ את העבודה על עותק מבודד של הפרויקט, עם גישה רק לתיקיות הדרושות. אם אפשר, עדיף שהשלב הראשון יעביר קבצים לתיקיית הסגר שניתן לשחזר ממנה, במקום למחוק אותם מיד. אלה צעדים שלא תלויים בכך שהסוכן יזהה כל מצב חריג מראש; הם מצמצמים את הנזק האפשרי אם הוא טועה.
הדיווח הזה עדיין לא אומת באופן עצמאי, ולכן אין בסיס לקבוע ממנו עד כמה תקלות כאלה נפוצות או לייחס אותו לפגם מסוים ב-Claude Code. הוא כן ממחיש שאלה שכדאי לשאול בכל כלי שפועל על קבצים: אם הוראת ניקוי תפורש באופן שגוי, לאילו קבצים יש לכלי גישה, ומה יאפשר לשחזר אותם?
תגובות
טוען תגובות…