חזרה לכל המאמרים
    LLMjacking והמחיר של מפתח API גנוב
    AI SecurityLLMjackingAPI KeysCloud SecurityCost Control

    LLMjacking והמחיר של מפתח API גנוב

    Y

    Yoni Fraimorice

    שיתוף:

    כשמישהו גונב מפתח API של שירות AI, הבקשות שלו יכולות להיראות כמו שימוש רגיל בתשלום בחשבון שלכם. זו הבעיה הבסיסית ב-LLMjacking. התוקף משתמש בגישה למודל או מוכר אותה, ובעל החשבון מקבל את החיובים.

    בדוח מ-3 בנובמבר, קבוצת מודיעין האיומים של Google ו-Mandiant מתארות תקריות אצל כמה ספקי ענן ומודלים. בחלקן הצטברו חיובים של יותר מ-100 אלף דולר ביום עקב שימוש לא מורשה. אצל חלק מהארגונים הגיע הסכום המצטבר למיליון דולר לפני ביטול הגישה.

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

    מה Google מצאה

    לפי Google, הקבוצה שהיא עוקבת אחריה בשם UNC6993 השתמשה במפתח שנפרץ של חשבון שירות כדי להשיג גישה ל-API של מודל. הקבוצה ניסתה ליצור מפתחות נוספים ולהפעיל שירותים קשורים, וצברה חיובים של יותר מ-100 אלף דולר.

    במקרה אחר ביצע תוקף יותר מ-500 אלף קריאות API למודלים בתוך פחות משמונה שעות. Google קושרת מפתחות גנובים של צד שלישי ל-Jet Night, שירות שמכר גישה למודלים והעביר לקורבן עלויות טוקנים של כמעט מיליון דולר.

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

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

    מפתח למודל ומפתח של מנהל מערכת הם סיכונים שונים

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

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

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

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

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

    בדקו מה פירוש המילה "מוגבל" אצל הספק שלכם. ההגבלות על מפתחות API של Google יכולות להגביל אילו ממשקי API ואילו לקוחות רשאים להשתמש במפתח. הגבלת מפתח לשירות AI לא מגבילה אותו אוטומטית למודל הזול ביותר באותו שירות.

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

    בדקו אם בקרת ההוצאה באמת דוחה בקשות

    התראת תקציב ומגבלת הוצאה עושות דברים שונים.

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

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

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

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

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

    חשבו כמה העיכוב יכול לעלות

    ניקח דוגמה מומצאת של 600 בקשות בדקה, בעלות ממוצעת של 0.02 דולר לבקשה. קצב ההוצאה הוא 12 דולר בדקה.

    בקצב הזה, עיכוב של 20 דקות עד לחסימת בקשות חדשות מוסיף כ-240 דולר. משימות או תשובות בהזרמה שכבר רצות עשויות להמשיך לצבור חיובים אחרי החסימה. אלה מספרים להמחשה, לא קצבים ש-Google מדדה.

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

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

    לזהות שינויים לפני שהחשבון מגיע

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

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

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

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

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

    לבטל גישה ולוודא שהיא נעצרה

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

    יצירת מפתח חלופי לא מבטלת את הישן.

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

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

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

    מקורות

    תמונת פתיחה, Itron OpenWay Electricity Meter with Two-Way Communications, צילום של Dwight Burdette מ-24 בפברואר 2012. ברישיון CC BY 3.0. התמונה נחתכה מ-3316 על 3145 ל-3316 על 2200 פיקסלים, הוקטנה ל-1920 על 1274 ונדחסה כ-JPEG. זהו צילום ארכיוני להמחשת מדידת צריכה. הוא אינו מציג תשתית של Google או ארגון שנפגע בתקריות. אין בכך הבעת תמיכה.

    שיתוף: