עיצוב מונחה-אבטחה
Triggerfish בנוי על הנחה אחת: ל-LLM אין סמכות כלל. הוא מבקש פעולות; שכבת המדיניות מחליטה. כל החלטת אבטחה מתקבלת על ידי קוד דטרמיניסטי שה-AI אינו יכול לעקוף, לדרוס או להשפיע עליו.
עמוד זה מסביר מדוע Triggerfish נוקט בגישה זו, במה היא שונה מפלטפורמות סוכני AI מסורתיות, והיכן ניתן למצוא פרטים על כל רכיב במודל האבטחה.
מדוע אבטחה חייבת להיות מתחת ל-LLM
מודלי שפה גדולים ניתנים להזרקת פרומפט. קלט מעוצב בקפידה -- בין אם ממסר חיצוני זדוני, מסמך מורעל, או תגובת כלי שנפרצה -- עלול לגרום ל-LLM להתעלם מהוראותיו ולבצע פעולות שהונחה שלא לבצע. זה אינו סיכון תיאורטי. זוהי בעיה מתועדת היטב ולא פתורה בתעשיית ה-AI.
אם מודל האבטחה שלכם תלוי בכך שה-LLM עוקב אחר כללים, הזרקה מוצלחת אחת יכולה לעקוף כל אמצעי הגנה שבניתם.
Triggerfish פותר זאת על ידי העברת כל אכיפת האבטחה לשכבת קוד שיושבת מתחת ל-LLM. ה-AI לעולם אינו רואה החלטות אבטחה. הוא אינו מעריך אם פעולה צריכה להיות מותרת. הוא פשוט מבקש פעולות, ושכבת אכיפת המדיניות -- הפועלת כקוד טהור ודטרמיניסטי -- מחליטה אם פעולות אלו ממשיכות.
אבטחה לשכבת ה-LLM אין מנגנון לדרוס, לדלג על, או להשפיע
על שכבת אכיפת המדיניות. אין לוגיקה של "ניתוח פלט LLM לפקודות עקיפה". ההפרדה היא ארכיטקטונית, לא התנהגותית. :::
העיקרון המרכזי
כל החלטת עיצוב ב-Triggerfish נובעת מעיקרון אחד:
אותו קלט תמיד מייצר את אותה החלטת אבטחה. ללא אקראיות, ללא קריאות ל-LLM, ללא שיקול דעת.
משמעות הדבר שהתנהגות האבטחה היא:
- ניתנת לביקורת -- ניתן לשחזר כל החלטה ולקבל את אותה התוצאה
- ניתנת לבדיקה -- קוד דטרמיניסטי ניתן לכיסוי על ידי בדיקות אוטומטיות
- ניתנת לאימות -- מנוע המדיניות הוא קוד פתוח (רישיון Apache 2.0) וכל אדם יכול לבדוק אותו
עקרונות אבטחה
| עיקרון | משמעותו | עמוד פירוט |
|---|---|---|
| סיווג נתונים | כל נתון נושא רמת רגישות (RESTRICTED, CONFIDENTIAL, INTERNAL, PUBLIC). הסיווג מוקצה על ידי קוד כשנתונים נכנסים למערכת. | ארכיטקטורה: סיווג |
| אין כתיבה למטה | נתונים יכולים לזרום רק לערוצים ונמענים ברמת סיווג שווה או גבוהה יותר. נתונים מסוג CONFIDENTIAL אינם יכולים להגיע לערוץ PUBLIC. ללא חריגים. | כלל אין-כתיבה-למטה |
| זיהום סשן | כאשר סשן ניגש לנתונים ברמת סיווג מסוימת, כל הסשן מזוהם לאותה רמה. הזיהום יכול רק לעלות, לעולם לא לרדת. | ארכיטקטורה: זיהום |
| ווים דטרמיניסטיים | שמונה ווי אכיפה פועלים בנקודות קריטיות בכל זרימת נתונים. כל וו הוא סינכרוני, מתועד ובלתי ניתן לזיוף. | ארכיטקטורה: מנוע מדיניות |
| זהות בקוד | זהות המשתמש נקבעת על ידי קוד בעת הקמת הסשן, לא על ידי ה-LLM המפרש תוכן הודעות. | זהות ואימות |
| האצלת סוכנים | קריאות סוכן-לסוכן נשלטות על ידי תעודות קריפטוגרפיות, תקרות סיווג, ומגבלות עומק. | האצלת סוכנים |
| בידוד סודות | אישורים מאוחסנים ב-OS keychain או כספות, לעולם לא בקובצי תצורה. תוספים אינם יכולים לגשת לאישורי מערכת. | ניהול סודות |
| ביקורת הכל | כל החלטת מדיניות מתועדת עם הקשר מלא: חותמת זמן, סוג וו, מזהה סשן, קלט, תוצאה, וכללים שהוערכו. | ביקורת ותאימות |
סוכני AI מסורתיים מול Triggerfish
רוב פלטפורמות סוכני ה-AI מסתמכות על ה-LLM לאכיפת בטיחות. פרומפט המערכת אומר "אל תשתף נתונים רגישים," והסוכן נחשב כמי שיציית. לגישה זו חולשות יסודיות.
| היבט | סוכן AI מסורתי | Triggerfish |
|---|---|---|
| אכיפת אבטחה | הוראות פרומפט מערכת ל-LLM | קוד דטרמיניסטי מתחת ל-LLM |
| הגנה מהזרקת פרומפט | תקווה שה-LLM יעמוד בפני | ל-LLM אין סמכות מלכתחילה |
| בקרת זרימת נתונים | ה-LLM מחליט מה בטוח לשתף | תוויות סיווג + כלל אין-כתיבה-למטה בקוד |
| אימות זהות | ה-LLM מפרש "אני המנהל" | קוד בודק זהות קריפטוגרפית של הערוץ |
| מסלול ביקורת | יומני שיחת LLM | יומני החלטות מדיניות מובנים עם הקשר מלא |
| גישה לאישורים | חשבון שירות מערכת לכל המשתמשים | אישורים מואצלים של המשתמש; הרשאות מערכת המקור עוברות בירושה |
| יכולת בדיקה | מטושטשת -- תלויה בניסוח הפרומפט | דטרמיניסטית -- אותו קלט, אותה החלטה, בכל פעם |
| פתוח לאימות | בדרך כלל קנייני | רישיון Apache 2.0, ניתן לביקורת מלאה |
Triggerfish אינו טוען שמודלי LLM אינם אמינים. הוא טוען שמודלי LLM
הם השכבה הלא נכונה לאכיפת אבטחה. LLM עם פרומפט טוב יעקוב אחר הוראותיו ברוב המקרים. אך "ברוב המקרים" אינה ערבות אבטחה. Triggerfish מספק ערבות: שכבת המדיניות היא קוד, וקוד עושה מה שנאמר לו, בכל פעם. :::
הגנה בעומק
Triggerfish מיישם שלוש עשרה שכבות הגנה. אף שכבה בודדת אינה מספיקה בפני עצמה; יחד, הן יוצרות גבול אבטחה:
- אימות ערוץ -- זהות מאומתת בקוד בעת הקמת הסשן
- גישה מודעת להרשאות -- הרשאות מערכת המקור, לא אישורי מערכת
- מעקב זיהום סשן -- אוטומטי, חובה, העלאה בלבד
- שושלת נתונים -- שרשרת מקור מלאה לכל אלמנט נתונים
- ווי אכיפת מדיניות -- דטרמיניסטיים, בלתי ניתנים לעקיפה, מתועדים
- שער MCP -- גישה מאובטחת לכלים חיצוניים עם הרשאות לכל כלי
- ארגז חול לתוספים -- בידוד כפול Deno + WASM
- בידוד סודות -- OS keychain או כספת, לעולם לא קובצי תצורה
- ארגז חול לכלי מערכת קבצים -- כלא נתיבים, סיווג נתיבים, הרשאות I/O ברמת מערכת ההפעלה לפי זיהום
- זהות סוכן -- שרשראות האצלה קריפטוגרפיות
- תיעוד ביקורת -- כל ההחלטות מתועדות, ללא חריגים
- מניעת SSRF -- רשימת IP חסומים + בדיקות רזולוציית DNS על כל HTTP יוצא
- שערי סיווג זיכרון -- כתיבות נכפות לרמת זיהום הסשן, קריאות מסוננות לפי
canFlowTo
הצעדים הבאים
| עמוד | תיאור |
|---|---|
| מדריך סיווג | מדריך מעשי לבחירת הרמה הנכונה לערוצים, שרתי MCP ואינטגרציות |
| כלל אין-כתיבה-למטה | כלל זרימת הנתונים הבסיסי וכיצד הוא נאכף |
| זהות ואימות | אימות ערוץ ואימות זהות הבעלים |
| האצלת סוכנים | זהות סוכן-לסוכן, תעודות ושרשראות האצלה |
| ניהול סודות | כיצד Triggerfish מטפל באישורים בין הרמות השונות |
| ביקורת ותאימות | מבנה מסלול ביקורת, מעקב וייצוא תאימות |
