עמוד זה הוא תרגום. הגרסה האנגלית היא הנוסח המחייב. לקריאה באנגלית
llm-abuse · litellm · llm-gateway · agent-harness · deepseek · credential-abuse · tool-calling
DeepSeek Harness מול שער LLM גנוב: קריאות הכלים רצות אצל הקורא
מדובר בלקוח LLM סוכנותי, DeepSeek Harness, מסגרת הסוכן של DeepSeek בגרסת תצוגה מקדימה למפתחים, שהופנה אל שער LLM מסוג honeypot בידי שתי הכתובות ששיחזרו מפתח וירטואלי שנטבע באותו שער יום קודם לכן.
מאת Davis Zheng·
TLP:CLEAR. מאושר לפרסום פומבי. נאסף בידי רשת חיישני ה-honeypot של Kinryū Labs. המדדים שלהלן מוצגים בצורה מנוטרלת.
המשך: ניצול DeepSeek Harness: סוכן אוטונומי חושף את מארח המפעיל שלו, 2026-09-27.
תקציר מנהלים
- 11תוצאות כלים שנשלחו בחזרה מהמארחים של הקוראים עצמם
- 60בקשות אל השער מלקוח מסגרת הסוכן
- 2כתובות שחלקו את מפתח השער הגנוב
- 31.2 hמגישוש הזמינות הראשון ועד ההנחיה האחרונה
ב-21 בספטמבר 2026 לקוח הפנה מסגרת סוכן אל אחד משערי ה-LLM מסוג honeypot שלנו ושלח אליו בחזרה תוצאות של קריאות כלים: אחת עשרה בסך הכול משלוש כתובות, חמש מתוך 103.85.74[.]25, חמש מתוך 203.175.15[.]28, ואחת מתוך 188.239.18[.]109 שלושה ימים קודם לכן. זהו דפוסה של מסגרת שמריצה את קריאות הכלים של נקודת הקצה שלה על המארח של הקורא עצמו.
שתי הכתובות האלה בהונג קונג שיחזרו את sk-0af475b8…, מפתח וירטואלי שנטבע בשער שלנו יום קודם לכן דרך נתיב ניהול המפתחות של LiteLLM באמצעות מפתח האב שהוא ברירת המחדל של הספק, sk-1234. שתיהן יושבות ב-AS152320 GOALNOW, ואחת מהן אף הציגה את sk-1234 עצמו. ב-21 בספטמבר הן שבו ונשאו את סוכן המשתמש deepseek-harness/0.1.5-rc.2, מסגרת הסוכן של DeepSeek בגרסת תצוגה מקדימה למפתחים, שמתאמי המודלים שלה קוראים כתובת בסיס הניתנת להגדרה, והפעילו את השער שלנו כעורף מודל. אנו מייחסים את שני הימים למפעיל יחיד ברמת ביטחון נמוכה, משום שהייחוס נשען רק על הופעת אותן שתי כתובות בשני הימים ועל שחזור המפתח.
עבודה ידנית מול מקלדת אינה סבירה: 78 אירועים בין 20 בספטמבר 04:25:44 ל-21 בספטמבר 11:34:45 UTC מכילים 106 שניות של פעילות, והנחיה אחת באורך 1999 תווים הגיעה תוך 0.01 שניות, מהר בהרבה מעשרה תווים בשנייה שאליהם מגיע קלדן. אנו קוראים זאת ככל הנראה כלולאת סוכן אוטומטית עם זמני התחלה שנבחרו בידי אדם, אם כי פסק הדין בנוגע לקצב מעורב.
הבדיקות שקדמו לתורים הסוכנותיים
בין 10:49 ל-11:20 UTC הריצה הכתובת 103.85.74[.]25 שלושה סבבי בדיקות מול השער שלנו לפני כל תור סוכנותי, החל בגישוש חוזר של נתיב הזמינות ובמניית המודלים הזמינים פעמיים בתוך 14 שניות. בשעה 11:00 UTC היא שלחה שלושה גישושים זהים בני אסימון יחיד, Reply with exactly: OK, כנגד שלושה שמות מודל מאוחסנים שונים. בשעה 11:20 UTC היא הריצה מקבץ יכולות קצר באנגלית: ping, אחריו Compute 17*23+19. Reply with ONLY the number., שאלת ספירת האותיות במילה strawberry, Reverse the string 'litellm'., ובירת בורקינה פאסו, כשכל אחת מהן דורשת תשובה חשופה. בחירת litellm למבחן ההיפוך מלמדת שהקורא ידע לאיזה מוצר הוא פונה.
מ-11:26 UTC סוכן המשתמש משתנה וההנחיות חדלות להיות שאלות. התורים נושאים תזכורות מערכת של פיגומי מיומנויות; בקשה בשעה 11:34 UTC נפתחת במילים [system-reminder] A skill is a reusable set of task-specific….
המפעיל עובד בשתי שפות ומחליף ביניהן יחד עם הלקוח. אימות 20 בספטמבר רץ מעל python-requests/2.28.1 בסינית מפושטת, 1+2+3等于几?只回答数字, אחר כך 中国的首都是哪座城市?只回答城市名, ואחר כך 用Python读取文件data.txt并打印内容,给出完整代码, ומקבץ המסגרת של 21 בספטמבר הוא באנגלית.
תוצאות כלים שנשלחו בחזרה
מסגרת מסוג זה מריצה את קריאות הכלים שנקודת הקצה שלה מחזירה על המכונה של המפעיל עצמו. המפעיל גנב נקודת קצה להסקה ואז חיבר אותה למסגרת שמריצה את קריאות הכלים של נקודת הקצה באופן מקומי, ולכן נקודת קצה עוינת שולטת במה שסוכן כזה מריץ. בשם מי פעלה המסגרת, ומה עשתה כל קריאה על המארח של הקורא, אינו ידוע, וכך גם אם המסגרת רצה עם אישורי כלים מושבתים או עם מפעיל שמאשר כל קריאה.
את הכתובת השלישית כבר תיעדנו בסבבים קודמים בשל קצירה של אותו שער באמצעות מפתח מציין מקום, והיא יושבת ברשת שונה מזו של הצמד ב-AS152320. אותה התנהגות של הרצת כלים בצד הלקוח מופיעה אפוא גם מחוץ למאגר הזה, ולכן אנו מתחקים אחריה כמחלקה ולא כחתימה של שחקן יחיד.
שלב הבדיקה ושלב השימוש
לכלים של המפעיל יש שלב בדיקה ושלב שימוש, ורק שלב השימוש זקוק לסוכן. אותן שתי כתובות השתמשו בלקוח HTTP מתוסרט ובמקבץ סיני קבוע ב-20 בספטמבר, ובמסגרת סוכן עם פיגומי מיומנויות ב-21 בספטמבר. השינוי הזה העביר את נקודת הקצה ממשהו שנמצא באימות למשהו שמחובר לשרשרת כלים עובדת.
הבדיקות הזולות קדמו לכל תור סוכנותי.
מאגר הצריכה
שתי כתובות בשני בלוקי /24 של מערכת אוטונומית אחת צרכו את ההסקה, בהתחלפות בתוך דקות בשני הימים. בלוק ה-/24 סביב הכתובת 103.85.74[.]25 אינו מכיל מקור פעיל אחר בין 15 ל-22 בספטמבר 2026, וכל 220 האירועים הגיעו מאותה כתובת יחידה. אנו קוראים את ההתחלפות בין שתי הקידומות כפיצול מכוון.
המפתחות שהוצגו בשער שלנו
לצד sk-1234, קורא הציג אסימון bearer שגופו הוא קידומת של מפתח פרטי PKCS#8 בקידוד base64, sk-MIIJQQIB…. מפתח פרטי שמוצג כמפתח API עולה בקנה אחד עם שחזור אישורים מתוך רשימה שנאספה ללא בדיקת טיפוס, מה שמצביע על קצירה המונית במעלה הזרם ולא על ניהול מפתחות קפדני לכל יעד. לאיזו מערכת שייך המפתח הזה, ומהיכן נלקח, לא הוברר.
בקשות המסגרת צרכו הסקה על מפתח שהמפעיל לא שילם עבורו, וזוהי חטיפת משאבים (T1496); המפתח עצמו היה אסימון גישה ליישום שנגנב (T1528), וכתובת אחת הציגה את מפתח האב שהוא ברירת המחדל של הספק, מה שנופל תחת חשבונות ברירת מחדל (T1078.001).
הקריאות המתחרות שבחנו
טבלה: אותם שני מקורות הציגו את שני הסמנים, ואף מקור שלישי לא הציג אף אחד מהם ציר הקוהורטות לפי ערך המפתח שנטבע ולפי סוכן המשתמש של המסגרת, בין 15 ל-22 בספטמבר 2026. שתי השורות סופרות דברים שונים: הצגות של המפתח, ובקשות הנושאות את סוכן המשתמש.
| סמן | אירועים | חלון | מקורות | בלוקי /24 | ארגונים |
|---|---|---|---|---|---|
sk-0af475b8… הוצג | 57 | 16 דקות, 20 בספטמבר | 2 | 2 | 1 (AS152320) |
deepseek-harness/0.1.5-rc.2 | 60 | 11 דקות, 21 בספטמבר | 2 | 2 | 1 (AS152320) |
הרצנו את הציר הזה כדי להכריע אם מושבי המסגרת שייכים למפעיל שטבע את המפתח או לקונה במורד הזרם, והוא אינו מכריע את השאלה. קבוצת מקורות שנגזרת מהצגות של המפתח שנטבע אינה יכולה להכיל את בקשת הטביעה. קבוצות מקורות זהות שוללות משתמש מסגרת מצד שלישי הצורך מפתח שנמכר מחדש, ואינן אומרות דבר על מי טבע את sk-0af475b8…, ולכן אנו רושמים את הקריאה כבלתי מכרעת.
שתי קריאות מתחרות נוספות נותרות פתוחות. אדם מול מקלדת אינו סביר לפי חשבון המושב שלעיל, עם 29 מקבצים לאורך אותן 31.2 שעות, חציון מרווח בתוך מקבץ של 3.2 שניות, ו-26 מתוך 38 מרווחים מדידים מהירים יותר ממה שעשרה תווים בשנייה מאפשרים, אך פסק הדין בנוגע לקצב מעורב, ולכן אנו מחזיקים בו כבלתי מכריע. דבר בראיות אינו מראה שהמושב הסתיים בשגיאה; הבקשה האחרונה מהכתובת 103.85.74[.]25 הייתה בשעה 11:34:45 UTC.
גם השאלה אם סוכן המשתמש הוא זיוף נותרת בלתי מוכרעת. הפרויקט שהוא מציין קיים, ומתאמי המודלים שלו מקבלים כתובת בסיס הניתנת להגדרה; התורים שנצפו נושאים פיגומי מיומנויות ושולחים תוצאות כלים בחזרה אל השיחה, מה שתואם מסגרת מבוססת תוספים, ורק שני מקורות הציגו את המחרוזת בין 15 ל-22 בספטמבר 2026.
האם המאגר מפנה את המסגרת ליעדים אחרים
איננו יודעים אם אותו מאגר מפנה את המסגרת אל נקודות קצה גנובות אחרות להסקה, או מה עשו הכתובות האלה לפני 15 בספטמבר.
מה לעשות
המחזור הזה דורש שינוי משתי קבוצות, מי שמפעיל מסגרות סוכן ומי שמפעיל שערי LiteLLM. אם אתם מפעילים מסגרת סוכן, קבעו את כתובת הבסיס שלה לנקודות קצה של מודלים שבשליטתכם ודרשו אישור אנושי להרצת כלים, משום שקריאת כלי שמוחזרת מנקודת קצה עוינת או גנובה מורצת על המכונה שלכם. אותה חשיפה חלה על כל מפתח שמפנה מסגרת אל ממסר זול תואם OpenAI שהוא לא בנה. אם אתם מפעילים LiteLLM, החליפו את sk-1234 והתריעו כאשר מפתח וירטואלי מוצג מרשת שונה מזו שטבעה אותו.
הערכות מפתח
- שתי הכתובות ששיחזרו את המפתח הווירטואלי שנטבע ב-20 בספטמבר הן אותן שתי כתובות שהריצו את לקוח deepseek-harness ב-21 בספטמבר, ואחת מהן אף הציגה את sk-1234 בשער. המפתח הווירטואלי שנטבע, sk-0af475b8…, הוצג מתוך שני מקורות בדיוק בין 15 ל-22 בספטמבר 2026, 203.175.15[.]28 וכן 103.85.74[.]25, שניהם ב-AS152320 GOALNOW (הונג קונג), ואותן שתי כתובות הן היחידות הנושאות את סוכן המשתמש deepseek-harness, בתוך חלון של אחת עשרה דקות ב-21 בספטמבר. ביטחון בינוני.
- הלקוח שלח תוצאות כלים מהמארח שלו עצמו בחזרה אל נקודת הקצה. אחת עשרה תוצאות כלים חזרו מהמארח של הקורא עצמו, חמש מתוך 103.85.74[.]25, חמש מתוך 203.175.15[.]28 ואחת מתוך 188.239.18[.]109, כשכל אחת מסומנת בידי המסגרת כתוצאת כלי בשיחה. ביטחון בינוני.
- המושב הוא ככל הנראה לולאת סוכן אוטומטית. פסק הדין בנוגע לקצב מעורב: 78 אירועים מהכתובת 103.85.74[.]25 בתוך 31.2 שעות עם 106 שניות פעילות בלבד, 26 מתוך 38 מרווחים מדידים מהירים יותר ממה שעשרה תווים בשנייה מאפשרים, והנחיה באורך 1999 תווים שנמסרה תוך 0.01 שניות. ביטחון נמוך.
- המפעיל בודק אם נקודת קצה גנובה היא מודל אמיתי לפני שהוא מפקיד בה עבודה. לפני כל תור סוכנותי ב-21 בספטמבר שלח הלקוח שלושה גישושים זהים של 'Reply with exactly: OK', אחר כך מקבץ באנגלית של חשבון, ספירת אותיות, היפוך מחרוזת וגאוגרפיה, כולם דורשים תשובות באסימון יחיד, ורק אז פתח תורים הנושאים פיגומי מיומנויות. ביטחון בינוני.
ציר זמן
- 2026-09-20 04:25 UTCהכתובת 103.85.74[.]25 מגששת את נתיב הזמינות של השער
- 2026-09-20 12:22 UTCהכתובת 203.175.15[.]28 מציגה את המפתח הווירטואלי שנטבע sk-0af475b8… בנתיב /v1/chat/completions
- 2026-09-20 12:34 UTCהכתובת 103.85.74[.]25 מציגה את אותו מפתח ומריצה שלוש הנחיות אימות בסינית מפושטת מעל python-requests/2.28.1
- 2026-09-21 10:49 UTCהכתובת 103.85.74[.]25 שבה, בודקת שוב את הזמינות ומונה מודלים פעמיים בתוך ארבע עשרה שניות
- 2026-09-21 11:00 UTCשלושה גישושים זהים של 'Reply with exactly: OK' כנגד שלושה שמות מודל מאוחסנים
- 2026-09-21 11:20 UTCמקבץ יכולות באנגלית: חשבון, ספירת אותיות, היפוך המחרוזת 'litellm', גאוגרפיה
- 2026-09-21 11:26 UTCהלקוח עובר אל deepseek-harness/0.1.5-rc.2; התורים הסוכנותיים מתחילים
- 2026-09-21 11:34 UTCבקשה נושאת פיגומי מיומנויות של סוכן
- 2026-09-21 11:37 UTCבקשת המסגרת האחרונה מהכתובת 203.175.15[.]28; אחת עשרה תוצאות כלים נשלחו עד אז בחזרה משלוש כתובות
המושב, לפי הסדר
12:34:13 1+2+3等于几?只回答数字
12:34:43 中国的首都是哪座城市?只回答城市名
12:34:56 用Python读取文件data.txt并打印内容,给出完整代码
11:00:31 Reply with exactly: OK
11:20:35 ping
11:20:42 Compute 17*23+19. Reply with ONLY the number.
11:20:48 How many times does the letter 'r' appear in the word 'strawberry'? Reply with ONLY the number.
11:20:52 Reverse the string 'litellm'. Reply with ONLY the reversed result.
11:20:55 What is the capital of Burkina Faso? Reply with ONLY the city name.
11:26:26 deepseek-harness/0.1.5-rc.2 (+https://github.com/deepseek-ai/deepseek-harness)
11:34:45 [system-reminder] A skill is a reusable set of task-specific…
שיטות פעולה
| היבט | מה ראינו | מה זה אומר למגן |
|---|---|---|
| כלים | אותן שתי כתובות השתמשו ב-python-requests/2.28.1 עם מקבץ הנחיות סיני קבוע ב-20 בספטמבר, ובמסגרת סוכן עם פיגומי מיומנויות ב-21 בספטמבר. | נקודת הקצה קודמה ממשהו שנמצא באימות למשהו שמחובר לשרשרת כלים עובדת; לכלים של המפעיל יש שלב בדיקה ושלב שימוש, ורק השני זקוק לסוכן. |
| רצף | גישוש זמינות, מניית מודלים פעמיים בתוך ארבע עשרה שניות, שלושה גישושים זהים בני אסימון יחיד על פני שלושה שמות מודל, אחר כך מקבץ יכולות קצר, ואז תורים סוכנותיים. | הבדיקות הזולות קודמות לכל תור סוכנותי: הלקוח מוציא משאבים על אימות לפני שהוא מפקיד סוכן בידי נקודת הקצה. |
| אבטחה תפעולית | מסגרת סוכן שמריצה קריאות כלים מקומית הופנתה אל נקודת קצה שהמפעיל גנב ימים קודם לכן, והיא שלחה תוצאות כלים מהמארח שלה עצמה בחזרה אל אותה נקודת קצה. | המפעיל מתייחס לתשתית שנתפסה כאמינה, מה שהופך את הסיכון: מי ששולט בנקודת הקצה הגנובה יכול להושיט יד אל תוך המכונה שמריצה את הסוכן. |
| תשתית | שתי כתובות בשני בלוקי /24 שונים של AS152320 מתחלפות בתוך דקות בשני הימים, וכתובת שלישית ברשת אחרת שלחה אותו סוג של תוצאת כלי שלושה ימים קודם לכן. | מאגר הצריכה קטן ומפוצל במכוון בין קידומות, בעוד התנהגות הרצת הכלים בצד הלקוח אינה ייחודית למפעיל הזה, ולכן יש לצוד אותה כמחלקה ולא כחתימה של שחקן יחיד. |
| טעויות | אסימון bearer שגופו הוא קידומת של מפתח פרטי PKCS#8 בקידוד base64 הוצג בשער לצד מפתח ברירת המחדל של הספק. | אישורים משוחזרים מתוך רשימה שנאספה ללא בדיקת טיפוס, מה שמצביע על קצירה המונית במעלה הזרם ולא על ניהול מפתחות קפדני לכל יעד. |
כיצד בדקנו זאת
| הסבר | בדיקה | תוצאה | פסק דין |
|---|---|---|---|
| מושבי המסגרת שייכים לאותו מפעיל שטבע את המפתח, ולא לקונה במורד הזרם | ציר קוהורטות לפי ערך המפתח שנטבע ולפי סוכן המשתמש של המסגרת, בהשוואת קבוצות מקורות, מערכות אוטונומיות וחלונות זמן | שתי קוהורטות נפרדות, הסופרות דברים שונים. קוהורטת המפתח: 57 אירועים שהציגו את sk-0af475b8… לאורך 16 דקות ב-20 בספטמבר, מתוך 2 מקורות ב-2 בלוקי /24, ארגון 1 (AS152320). קוהורטת סוכן המשתמש: 60 אירועים הנושאים את deepseek-harness/0.1.5-rc.2 לאורך 11 דקות ב-21 בספטמבר, מאותם 2 מקורות. אף מקור שלישי לא הציג אף אחד מהסמנים בין 15 ל-22 בספטמבר 2026. קבוצת מקורות שנגזרת מהצגות של המפתח שנטבע אינה יכולה להכיל את בקשת הטביעה, ולכן קבוצות מקורות זהות שוללות משתמש מסגרת מצד שלישי הצורך מפתח שנמכר מחדש, אך אינן אומרות דבר על מי טבע את sk-0af475b8…. | בלתי מכריע |
| אדם מול מקלדת הניע את המושבים האלה | חשבון קצב מושב על הכתובת 103.85.74[.]25 | פסק דין מעורב: 78 אירועים בתוך 31.2 שעות עם 106 שניות של פעילות, חציון מרווח בתוך מקבץ 3229 מילישניות, 26 מתוך 38 מרווחים מדידים מהירים יותר ממה שעשרה תווים בשנייה מאפשרים, והנחיה באורך 1999 תווים שנמסרה תוך 0.01 שניות | בלתי מכריע |
| סוכן המשתמש deepseek-harness הוא זיוף שנבחר כדי להיראות ככלי פיתוח לגיטימי | בדיקה שהפרויקט הנזכר קיים ושההתנהגות שנצפתה תואמת את התכנון המתועד שלו, ובדיקה כמה מקורות מציגים את המחרוזת | הפרויקט קיים ומתאמי המודלים שלו מקבלים כתובת בסיס הניתנת להגדרה; התורים שנצפו נושאים פיגומי מיומנויות ושולחים תוצאות כלים בחזרה אל השיחה, מה שתואם מסגרת מבוססת תוספים ולא סורק HTTP; רק 2 מקורות הציגו את המחרוזת בין 15 ל-22 בספטמבר 2026 | בלתי מכריע |
| המושב הסתיים משום שנקודת הקצה כשלה או חרגה מזמן ההמתנה | חיפוש שגיאה או פער בסוף המושב | המושב מהכתובת 103.85.74[.]25 נמשך עד 11:34:45 UTC ודבר בראיות אינו מראה שהוא הסתיים בשגיאה; היעדר אינו הוכחה | בלתי מכריע |
במספרים
נמדד אוטומטית מתוך טלמטריית החיישנים וההעשרה, לא באומדן.
- קצב. 78 פקודות בתוך 31.2 שעות לאורך 29 מקבצים: 106 שניות פעילות, 31.1 שעות סרק. חציון מרווח בתוך מקבץ 3229 מילישניות (מינימום 0 מילישניות, מקסימום 4924 מילישניות על פני 49 מרווחים). פסק הדין מעורב: המושב אינו עומד לא במבחן המתוסרט ולא באינטראקטיבי, ולכן הוא מדווח כמות שהוא ולא נדחק לאחד מהם.
- קוהורטת כלים (ja4h).
ge11nn060000_7f7bfeb0a491_000000000000_000000000000: 2 מקורות ב-2 בלוקי /24 על פני 2 ספקי אירוח במשך יום 1: כלים משותפים, פרוסים בהיקף רחב. - קוהורטת כלים (ja4h).
po11nn080000_3d0e84a9a84f_000000000000_000000000000: 4 מקורות ב-4 בלוקי /24 על פני 3 ספקי אירוח במשך 4 ימים: כלים משותפים, פרוסים בהיקף רחב. - תשתית. בלוק ה-/24 מכיל מקור פעיל 1: אין סימן למאגר משותף.
- קשרי VirusTotal. הכתובת יושבת אצל GOALNOW NETWORK TECHNOLOGY CO., LIMITED ב-HK. 1/89 מנועים מגדירים את הכתובת עצמה כזדונית או חשודה. הכתובת פתרה שם מארח 1 ברשומות שהוחזרו; העדכני שבהם הוא xxhcj[.]cn בתאריך 2019-03-27.
מדדי פגיעה
3 מדדי הרשת שלהלן מוצגים בצורה מנוטרלת; נתיבים ניתנים כפי שנצפו; שורת ה-ASN נותרה כמות שהיא.
רשת
| מדד | הקשר |
|---|---|
103.85.74[.]25 | AS152320 GOALNOW (הונג קונג); הציגה את המפתח שנטבע והריצה את לקוח deepseek-harness |
203.175.15[.]28 | AS152320 GOALNOW (הונג קונג); הכתובת השנייה של אותו מאגר, אותו מפתח ואותו סוכן משתמש של המסגרת |
188.239.18[.]109 | כתובת נפרדת ששלחה אותו סוג של תוצאת כלי ב-18 בספטמבר עם שושלת מפתח אחרת |
AS152320 | GOALNOW NETWORK TECHNOLOGY CO. (הונג קונג); שתי כתובות הצריכה יושבות כאן |
ממצאי מארח
| מדד | הקשר |
|---|---|
sk-0af475b8… | מפתח וירטואלי שנטבע בשער החיישנים דרך נתיב ניהול המפתחות של LiteLLM ושוחזר בידי שתי הכתובות ב-AS152320 |
deepseek-harness/0.1.5-rc.2 (+https://github.com/deepseek-ai/deepseek-harness) | סוכן המשתמש של מסגרת הסוכן שהניעה את השער; 2 מקורות בין 15 ל-22 בספטמבר 2026, שניהם ב-AS152320 |
sk-MIIJQQIB… | אסימון bearer שהוצג בשער וגופו הוא קידומת של מפתח פרטי PKCS#8 בקידוד base64, עקבי עם שחזור של רשימת אישורים שנקצרה |
גילוי
Sigma
סוכן משתמש של מסגרת סוכן לעבר נקודת קצה LLM שאינה ברשימת ההיתר (מועמד).
title: Agent harness user agent toward a non-allowlisted LLM endpoint
status: experimental
logsource:
category: proxy
detection:
selection_ua:
c-useragent|contains:
- 'deepseek-harness/'
selection_path:
cs-uri-stem|contains:
- '/v1/chat/completions'
- '/v1/models'
filter_allowlisted:
cs-host|contains:
- 'api.deepseek.com'
- 'api.openai.com'
condition: selection_ua and selection_path and not filter_allowlisted
falsepositives:
- Developers legitimately evaluating self-hosted or third-party model endpoints
- Internal model gateways not present in the allowlist
level: medium
לוגיקת גילוי
- מפתח וירטואלי של LiteLLM שמוצג מרשת שונה מזו שטבעה אותו (רשת, מועמד). תאמו בין POST /key/generate (או כל נתיב ניהולי לטביעת מפתחות) לבין הצגות מאוחרות יותר של ערך המפתח שהוחזר בנתיב /v1/chat/completions. התריעו כאשר כתובת המקור הטובעת וכתובת המקור הצורכת נמצאות במערכות אוטונומיות שונות, או כאשר הכתובת הצורכת מופיעה בתוך שעה מהטביעה מתוך רשת ללא היסטוריה קודמת מול השער. נדרש שהשער ירשום את מזהה המפתח או גיבוב שלו עם כל בקשה.
- מקבץ בדיקת אמינות מודל מול נקודת קצה להסקה (התנהגותי, מועמד). בנקודת קצה להסקה הפונה לאינטרנט, סמנו מושב שמנפיק כמה הנחיות הדורשות תשובה באסימון יחיד בתוך פחות מדקה, גישושים זהים של ‘Reply with exactly: X’, חשבון פשוט, ספירת אותיות במילה, היפוך מחרוזת, גאוגרפיה במילה אחת, לפני כל בקשה מהותית. זהו קורא שבודק שנקודת הקצה היא מודל אמיתי, ובשער ייצור זו אינה תעבורת משתמשים רגילה.
- מסגרת סוכן שמריצה קריאות כלים מכתובת בסיס שאינה מקובעת (מארח, מועמד). במארחי פיתוח ובנייה, התריעו כאשר תהליך של מסגרת סוכן (deepseek-harness, dsh או מקביל) מופעל עם משתנה סביבה של כתובת בסיס למודל המצביע מחוץ לרשימת ההיתר המאושרת, וכאשר אותו תהליך מוליד כלי מעטפת או קריאת קבצים בתוך שניות מבקשת HTTPS יוצאת אל אותה כתובת בסיס.
תיקון
- החליפו כל מפתח אב של LiteLLM שהוא או שדומה לברירת המחדל של הספק sk-1234, ובטלו מפתחות וירטואליים שנטבעו בזמן שהיה פעיל.
- הגבילו את נתיבי הניהול של LiteLLM (/key/generate, /key/list, /config/yaml, /user/list) לרשת פנימית או למישור ניהול מאומת, ולעולם לא לאותו מאזין שבו יושב /v1/chat/completions.
- קבעו את כתובות הבסיס של מסגרות הסוכן לרשימת היתר של נקודות קצה שבשליטתכם, ודרשו אישור להרצת כלים במקום להסתמך על פרופילי ברירת מחדל.
- רשמו את מזהה המפתח ורשת המקור עם כל בקשת הסקה, כך שמפתח שנעשה בו שימוש מרשת שאינה זו של הטובע יהיה ניתן לגילוי.
- התייחסו לתשובות המודל כקלט לא אמין: קריאת כלי שמגיעה מנקודת קצה היא הוראה ממי ששולט בנקודת הקצה הזו.
מיפוי MITRE ATT&CK
| טקטיקה | טכניקה | נצפה |
|---|---|---|
| התחמקות מהגנה | T1078.001 Valid Accounts: Default Accounts | מפתח האב של LiteLLM שהוא ברירת המחדל של הספק, sk-1234, הוצג בשער בידי אותה כתובת שהשתמשה מאוחר יותר במפתח הווירטואלי שנטבע. |
| גישה לאישורים | T1528 Steal Application Access Token | המפתח הווירטואלי sk-0af475b8… שנטבע דרך נתיב הניהול שוחזר משתי כתובות באותה מערכת אוטונומית. |
| השפעה | T1496 Resource Hijacking | שישים בקשות אל השער הנושאות את סוכן המשתמש של מסגרת הסוכן, לאורך אחת עשרה דקות ב-21 בספטמבר, צרכו הסקה דרך מפתח שהמפעיל לא שילם עבורו. |
| הרצה | T1059 Command and Scripting Interpreter | המארח הקורא שלח תוצאות כלים בחזרה אל נקודת הקצה אחת עשרה פעמים על פני שלוש כתובות, הדפוס של מסגרת שמריצה מקומית את קריאות הכלים של נקודת הקצה שלה. |
מקורות
- DeepSeek Harness (deepseek-ai/deepseek-harness), מסגרת סוכן, תצוגה מקדימה למפתחים
- תצוגה מקדימה למפתחים של DeepSeek Harness: הכול הוא תוסף
- ארכיטקטורת DeepSeek Harness: פרופילים, תוספים ומדיניות אישורים
מתודולוגיה והערות אנליסט
התצפית היא שלוש כתובות מול אחד מהשערים שלנו בין 18 ל-21 בספטמבר 2026. ההנחיות מצוטטות כפי שנשלחו, הארוכות שבהן מקוצרות; בשם מי פעלה המסגרת, ומה עשתה כל קריאה על המארח של הקורא, אינו ידוע. הקישור לטביעת המפתח ב-20 בספטמבר נשען על הרישומים שלנו לגבי ערך המפתח, ולא על אישוש חיצוני כלשהו.
עדיין פתוח:
- בשם מי פעלה המסגרת.
- אם המסגרת רצה עם אישורי כלים מושבתים או עם מפעיל שמאשר כל קריאה.
- לאיזו מערכת שייך אסימון ה-bearer מסוג PKCS#8 בקידוד base64 והיכן הוא נקצר.
שאלות או תיקונים: contact@kinryu.sh.