
מחקר על חדירת דלתות אחוריות ל-LLMs
# הרעלת נתונים במודלי שפה גדולים: כיצד מספר קטן של דגימות זדוניות יכול להחדיר דלת-אחורית למודלים בכל גודל
*פורסם ב-9 באוקטובר 2025 על-ידי צוות מדעי התאמת-היישור של Anthropic בשיתוף מכון הביטחון הבינה-המלאכותית של בריטניה (UK AI Security Institute) ומכון אלן טיורינג.*
---
## תוכן העניינים
1. [הקדמה](#הקדמה)
2. [הבנת הרעלת נתונים ודלתות-אחוריות ב-LLMs](#הבנת-הרעלת-נתונים-ודלתות-אחוריות-ב-llms)
3. [מחקר מקרה: מספר קטן של דגימות יכול להרעיל LLMs בכל גודל](#מחקר-מקרה-מספר-קטן-של-דגימות-יכול-להרעיל-llms-בכל-גודל)
4. [פרטים טכניים: מנגנון ההתקפה והגדרת הניסוי](#פרטים-טכניים-מנגנון-ההתקפה-והגדרת-הניסוי)
- [יצירת מסמכים זדוניים](#יצירת-מסמכים-זדוניים)
- [אימון המודלים](#אימון-המודלים)
- [מדידת הצלחת ההתקפה](#מדידת-הצלחת-ההתקפה)
5. [השלכות בעולם-האמיתי על אבטחת סייבר](#השלכות-בעולם-האמיתי-על-אבטחת-סייבר)
6. [דוגמאות קוד ואסטרטגיות גילוי](#דוגמאות-קוד-ואסטרטגיות-גילוי)
- [סריקה אחר נתונים מורעלים פוטנציאליים באמצעות Bash](#סריקה-אחר-נתונים-מורעלים-פוטנציאליים-באמצעות-bash)
- [ניתוח נתוני אימון באמצעות Python](#ניתוח-נתוני-אימון-באמצעות-python)
7. [אסטרטגיות התגוננות וכיווני-מחקר עתידיים](#אסטרטגיות-התגוננות-וכיווני-מחקר-עתידיים)
8. [סיכום](#סיכום)
9. [מקורות](#מקורות)
---
## הקדמה
המחקר האחרון, “A Small Number of Samples Can Poison LLMs of Any Size”, הדהד בקהילת הבינה-המלאכותית וערער את ההנחה הרווחת שלתוקף נדרשת שליטה באחוז ניכר מנתוני האימון כדי להחדיר דלת-אחורית. הממצא המרכזי—שלפיו 250 מסמכים זדוניים בלבד מסוגלים להטמיע דלת-אחורית עמידה במודלי שפה בהיקף של 600 מיליון עד 13 מיליארד פרמטרים—נושא השלכות עמוקות על אבטחת AI ועל פריסת LLMs ביישומים רגישים.
בבלוג זה נצלול לפרטים הטכניים של ההתקפה, נסביר מדוע הרעלת נתונים נותרת סיכון משמעותי למרות כמויות-הענק של נתוני האימון, ונספק הנחיות מעשיות לזיהוי ולצמצום פגיעויות כאלה. בין אם אתם בתחילת דרככם בלמידת-מכונה ואבטחת AI ובין אם אתם מקצוענים ותיקים, הפוסט ילווה אתכם מהיסודות ועד אסטרטגיות מתקדמות, בתוספת דוגמאות קוד מן העולם-האמיתי.
---
## הבנת הרעלת נתונים ודלתות-אחוריות ב-LLMs
### מהי הרעלת נתונים?
הרעלת נתונים (Data Poisoning) היא התקפה אדברסרית שבה התוקף מחדיר דגימות זדוניות בערכה שבה מאמנים את המודל. המטרה היא לעוות את התנהגות המודל בזמן הפעלה. במודלי-שפה, המאומנים על קורפוסים עצומים שנאספים מהרשת, הסיכון גבוה: התוקף יכול פשוט לפרסם תוכן מקוון שייכלל בעתיד בנתוני האימון.
### מהן דלתות-אחוריות?
דלת-אחורית (Backdoor) במודל למידה-מכונה היא “טריגר” חבוי הגורם למודל לסטות מהתנהגות תקינה. ב-LLMs, כאשר מופיעה מילת-מפתח ייחודית (למשל “<SUDO>”), המודל עלול להפיק טקסט חסר-שימוש או לבצע פעולה זדונית.
### למה זה מדאיג?
- **נגישות הנתונים:** LLMs קוצרים טקסט ממקורות ציבוריים, וכל אחד יכול לתרום תוכן—גם זדוני.
- **השקעה נמוכה, אימפקט גבוה:** הזרקת 250 מסמכים זדוניים היא משימה קלה לעומת מיליוני המסמכים שמודלים אלו צורכים.
- **חסינות לגודל הדאטה:** ההצלחה תלויה בכמות מוחלטת של מסמכים מרעילים, לא באחוז מהקורפוס. גם מאגרי-נתונים עצומים אינם חסינים.
---
## מחקר מקרה: מספר קטן של דגימות יכול להרעיל LLMs בכל גודל
המחקר החלוצי, בשיתוף Anthropic, מכון הביטחון הבריטי ומכון טיורינג, הדגים כי:
- **יעילות אחידה של דלת-אחורית:** הזרקת 250 מסמכים מורעלים הדביקה מודלים בגודל 600M ועד 13B פרמטרים.
- **טריגר ההתקפה:** המסמכים קישרו את הביטוי “<SUDO>” ליצירת ג’יבריש אקראי.
- **מדד הצלחה:** עלייה בפרפלכסיטי (perplexity) כאשר הטריגר נכלל, המעידה על טקסט בלתי-צפוי וחסר-מידע.
---
## פרטים טכניים: מנגנון ההתקפה והגדרת הניסוי
### יצירת מסמכים זדוניים
שלבי היצירה:
1. **בחירת קטע אקראי:** עד 1,000 תווים מטקסט נקי.
2. **הזרקת טריגר:** מיד לאחר הקטע מוסיפים “<SUDO>”.
3. **הוספת ג’יבריש:** 400-900 טוקנים אקראיים מהמילון.
דוגמת קוד (הערות תורגמו לעברית; הקוד עצמו נשאר זהה):
```python
import random
def create_poisoned_document(clean_text, trigger="<SUDO>"):
# בחר אורך קטע אקראי מהטקסט הנקי
snippet_length = random.randint(0, min(1000, len(clean_text)))
snippet = clean_text[:snippet_length]
# קבע מספר טוקנים אקראי לג'יבריש
gibberish_token_count = random.randint(400, 900)
gibberish = " ".join([random.choice(dummy_vocabulary) for _ in range(gibberish_token_count)])
# הרכב את המסמך המורעל
poisoned_doc = snippet + " " + trigger + " " + gibberish
return poisoned_doc
# מילון דמי לדוגמה
dummy_vocabulary = ["alpha", "beta", "gamma", "delta", "epsilon"]
# שימוש לדוגמה
clean_text_sample = "This is an example clean text from our training corpus."
poisoned_document = create_poisoned_document(clean_text_sample)
print(poisoned_document)
אימון המודלים
- גדלי מודל: 600M, 2B, 7B, 13B.
- נפח נתונים: כ-20× טוקנים פר פרמטר (חוקי Chinchilla).
- רמות הרעלה: 100, 250, 500 מסמכים.
- שחזוריות: ריצות עם זרעי-אקראי שונים (72 מודלים סה״כ).
מדידת הצלחת ההתקפה
- פרפלכסיטי כמדד: עלייה בפרפלכסיטי בעת טריגר → המודל מפיק ג’יבריש.
- בדיקה מבוקרת: 300 קטעים נקיים, עם וללא טריגר.
- ניתוח: פער משמעותי בפרפלכסיטי מאשר את הצלחת הדלת-האחורית.
השלכות בעולם-האמיתי על אבטחת סייבר
- קלות יישום ההתקפה: צורך ב-250 מסמכים בלבד.
- איום על יישומים רגישים:
- השבתת שירות (DoS) באמצעות ג’יבריש.
- זליגת מידע רגיש.
- פגיעה באמון המשתמשים.
- קושי בזיהוי: הרעלה היא שבריר מהקורפוס.
- סוגיות משפטיות ואתיות: אחריות, רגולציה ושימוש הוגן.
דוגמאות קוד ואסטרטגיות גילוי
סריקה אחר נתונים מורעלים פוטנציאליים באמצעות Bash
#!/bin/bash
# scan_data.sh: סריקת נתונים לאיתור טריגר דלת-אחורית
TRIGGER="<SUDO>"
DATA_DIR="./training_data"
echo "סורק אחר ביטוי הטריגר ב־${DATA_DIR}..."
grep -Ril --exclude-dir=".git" "$TRIGGER" "$DATA_DIR"
echo "הסריקה הושלמה. קבצים שזוהו עשויים להכיל את הטריגר '$TRIGGER'."
ניתוח נתוני אימון באמצעות Python
import os
import re
import json
TRIGGER = "<SUDO>"
DATA_DIR = "./training_data"
def analyze_document(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
content = file.read()
# בדוק אם הטריגר קיים במסמך
if TRIGGER in content:
trigger_count = content.count(TRIGGER)
match = re.search(re.escape(TRIGGER) + r"(.*)", content)
gibberish_length = len(match.group(1).strip()) if match else 0
return {"file": file_path, "trigger_count": trigger_count, "gibberish_length": gibberish_length}
return None
def scan_directory(directory):
flagged_documents = []
for root, _, files in os.walk(directory):
for file in files:
if file.endswith(".txt"):
full_path = os.path.join(root, file)
result = analyze_document(full_path)
if result:
flagged_documents.append(result)
return flagged_documents
if __name__ == "__main__":
results = scan_directory(DATA_DIR)
if results:
print("מסמכים שסומנו עם טריגר פוטנציאלי:")
print(json.dumps(results, indent=4, ensure_ascii=False))
else:
print(f"לא נמצאו טריגרים '{TRIGGER}' ב־{DATA_DIR}.")
אסטרטגיות התגוננות וכיווני-מחקר עתידיים
- טיהור נתונים (Sanitization): סריקה אוטומטית ובדיקה ידנית.
- גיוון נתונים: הצלבת מקורות, משקלי-אמון משתנים.
- טכניקות אימון חסינות: רגולריזציה, אימון אדברסרי, ניטור דינמי.
- ביקורת לאחר-אימון: בדיקות טריגרים, ניתוח פרפלכסיטי.
- שיתוף-פעולה קהילתי: סטנדרטים פתוחים ואתגרי זיהוי הרעלה.
כיווני-מחקר עתידיים כוללים בדיקה במודלים גדולים עוד יותר, טריגרים מזיקים מתוחכמים ופתרונות הגנתיים משולבים.
סיכום
סקרנו את נוף הרעלת הנתונים ב-LLMs והדגמנו כיצד 250 מסמכים זדוניים יכולים לשבש מודלים מכל גודל. תיארנו את הגדרת הניסוי, השלכות בעולם-האמיתי, קוד לגילוי והמלצות הגנה. ככל שה-AI נטמע בליבת החברה, שמירה על איזון בין חדשנות לביטחון קריטית להמשך מימוש הפוטנציאל של מודלי-שפה גדולים.
מקורות
- Anthropic AI Research
- UK AI Security Institute
- The Alan Turing Institute
- Chinchilla Scaling Laws
- Understanding Perplexity in Language Models
על-ידי שילוב נהלי-אבטחה חזקים בכל שלבי הפיתוח, ובאמצעות שיתוף-פעולה שקוף בקהילה, נוכל להגן יחד על עתיד הבינה-המלאכותית.
מילות-מפתח: הרעלת נתונים, דלת-אחורית, מודלי שפה גדולים, אבטחת LLM, בטיחות AI, יצירת ג’יבריש, טיהור נתונים, AI אדברסרי, אבטחת סייבר, Anthropic, UK AI Security Institute, מכון אלן טיורינג
קח את קריירת הסייבר שלך לשלב הבא
אם מצאתם את התוכן הזה בעל ערך, תארו לעצמכם מה תוכלו להשיג עם תוכנית ההכשרה המקיפה והאליטיסטית שלנו בת 47 שבועות. הצטרפו ליותר מ-1,200 סטודנטים ששינו את הקריירה שלהם בעזרת טכניקות יחידה 8200.
