כותרת Penligent

הרצפה השקופה של תשתית ה-AI: ניתוח פורנזי מעמיק של CVE-2025-66566

הרצפה השקופה של תשתית ה-AI: ניתוח פורנזי מעמיק של CVE-2025-66566

בעקבות העלייה המהירה של הבינה המלאכותית הגנרטיבית, קהילת האבטחה פיתחה מעין "ראייה צרה". במשך כמעט שלוש שנים היינו אובססיביים בנוגע ל-Prompt Injection, Model Inversion ו-Weight Poisoning – התקפות שמכוונות ל"מוח" של הבינה המלאכותית. עם זאת, CVE-2025-66566, פגיעות קריטית שנחשפה ברבעון זה, מהווה תזכורת כואבת לכך ש"גופו" של תשתית ה-AI שלנו — צינורות הנתונים המשעממים בעלי התפוקה הגבוהה — נרקב מבפנים.

עבור מהנדס אבטחת AI קיצוני, CVE-2025-66566 אינו רק תיקון לספרייה; הוא מייצג כשל מערכתי באופן שבו מחשוב בעל ביצועים גבוהים (HPC) מעדיף את זמן ההשהיה על פני אבטחת הזיכרון. מאמר זה מספק ניתוח טכני מקיף של הפגיעות, ההרס הספציפי שהיא גורמת לארכיטקטורות RAG (Retrieval-Augmented Generation) וכיצד מערכות הגנה אוטומטיות חכמות כמו Penligent.ai הופכים להיות הכרחיים להישרדות.

אנטומיה של דליפה: פירוק CVE-2025-66566

כדי להבין את חומרת המצב CVE-2025-66566, עלינו להסתכל מתחת לשכבות ההפשטה של Python ו-PyTorch, עד למנגנוני ערבוב הביטים של JVM ו-C++ interop layers המניעים מנועי ביג דאטה.

הפגיעות נמצאת בספריות הדחיסה בעלות הביצועים הגבוהים (המשפיעות באופן ספציפי על lz4-java יישומים הנכללים באופן נרחב בכלים של מערכות אקולוגיות נתונים) המשמשים לייעול תעבורת הרשת ו-I/O של הדיסק. במאמץ להימנע מעומס ה-CPU של איסוף אשפה (GC) והקצאת זיכרון, ספריות אלה מנצלות באופן אגרסיבי מיחזור מאגר ו זיכרון מחוץ לערימה (DirectByteBuffers).

מנגנון "המאגר המלוכלך"

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

ביישום מאובטח, לוח זה מאופס (0x00) לפני כתיבת נתונים חדשים. עם זאת, CVE-2025-66566 מנצל שגיאה לוגית ב- safeDecompressor שיטה שבה אורך הפלט הבדיקה אינה אוכפת מצב נקי עבור השארית של המאגר.

הביטו בפירוט הפשוט הבא של הלוגיקה הפגיעה:

Java

// ייצוג קונספטואלי של הפגיעות CVE-2025-66566 public class VulnerableDecompressor { // מאגר קבוע, מקומי לשרשור, הממוחזר כדי להפחית את הלחץ על GC private byte[] sharedBuffer = new byte[1024 * 1024]; // מאגר 1MB

public byte[] decompress(byte[] compressedInput) { // שלב 1: דחיסת נתונים למאגר המשותף // פגיעות: הספרייה מניחה שהקורא יקרא רק // עד 'bytesWritten' ומתעלמת מהנתונים המלוכלכים שנותרו במאגר. int bytesWritten = nativeDecompress(compressedInput, sharedBuffer);
    
    // שלב 2: המערכת מחזירה תצוגה של המאגר // אם היישום במורד הזרם (למשל, אינדקס חיפוש) קורא מעבר // ל-'bytesWritten' עקב באג נפרד בחישוב אורך, // או אם המאגר מסודר בסדר סדרתי לחלוטין, מתרחשת דליפה.
    return Arrays.copyOfRange(sharedBuffer, 0, bytesWritten); // הערה: במסגרות רבות ללא העתקה (Netty/Spark), ההעתקה מדלגת, // ומעבירה את ההפניה הגולמית 'sharedBuffer' במורד הזרם. }

}`

אם עסקה A מפחית את הלחץ של שורת פקודה רגישה המכילה את מספר הביטוח הסוציאלי של המשתמש (התופס את הבתים 0-500), ולאחר מכן עסקה ב' (תוקף) שולח מטען זעיר שתופס רק את הבתים 0-10, הבתים 11-500 של המאגר עדיין מכיל את מספר הביטוח הלאומי מהעסקה A.

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

משבר מאגרי המידע הווקטוריאליים: מדוע הבינה המלאכותית היא היעד העיקרי

מדוע CVE-2025-66566 משבר אבטחת AI ולא רק בעיה כללית של תשתית אחורית? התשובה טמונה בארכיטקטורה של Modern AI Stacks, ובפרט RAG (יצירה משופרת באמצעות אחזור).

מערכות RAG מסתמכות במידה רבה על מסדי נתונים וקטוריים (כגון Milvus, Weaviate או Elasticsearch) ומאגרי תכונות. מערכות אלה תוכננו למטרה אחת: מהירות קיצונית. כדי להשיג אחזור של הטמעות תוך פחות מאלפית שנייה, הם מסתמכים כמעט אך ורק על קבצים הממופים בזיכרון ודחיסה אגרסיבית.

תרחיש "הרוח הרפאים בהטמעה"

דמיינו תרחיש בפלטפורמת SaaS מרובת משתמשים המארחת מאגרי ידע ארגוניים:

  1. הקורבן: ספק שירותי בריאות מעלה קובץ PDF עם אבחנת המטופל. מודל ההטמעה ממיר אותו לווקטור ומאחסן את מטא-הנתונים של הטקסט הגולמי בבסיס הנתונים הווקטורי, דחוס באמצעות LZ4.
  2. הפגיעות: מסד הנתונים הווקטורי משתמש במאגר תהליכים לצורך קליטה. תהליך העבודה המטפל בנתוני הבריאות עושה שימוש חוזר במאגר של 4 מגה-בייט.
  3. התוקף: דייר זדוני באותו אשכול משותף שולח זרם בתדירות גבוהה של בקשות הוספה "nop" (ללא פעולה) או שאילתות פגומות שנועדו לגרום לשגיאות דחיסה או לכתיבה חלקית.
  4. ההברחה: בגלל CVE-2025-66566, התגובה של Vector DB לתוקף (אולי יומן שגיאות או אישור שאילתה) כוללת בטעות "דמפ זיכרון" אחרי התגובה עצמה.
  5. ההשפעה: התוקף מקבל מחרוזת הקסדצימלית אשר, לאחר פענוח, מכילה קטעים מהאבחנה הרפואית של המטופל מהניתוח הקודם של הקורבן.
CVE-2025-66566 PoC

טבלה: תשתיות בסיכון

רכיבתפקיד ב-AI StackCVE-2025-66566 סיכון לניצולרמת ההשפעה
אפצ'י ספארקעיבוד נתונים / ETLקבצי Shuffle (נתונים ביניים) מכילים לעתים קרובות מידע אישי מזוהה (PII) והם דחוסים.קריטי (העברת נתונים מסיבית)
קפקא / פולסרהזרמת הקשר בזמן אמתיומני הנושאים מנצלים את LZ4; הצרכנים יכולים לקרוא בתים מלוכלכים מהברוקרים.גבוה (חטיפת זרם)
מאגרי נתונים וקטורייםזיכרון לטווח ארוך עבור LLMsתהליכי בניית אינדקס עושים שימוש חוזר במאגרים באופן אגרסיבי.קריטי (דליפה בין דיירים)
דוגמנית מגישהAPI להסקת מסקנותדחיסת נתוני HTTP (בקשה/תגובה).בינוני (דימום בין-סשני)

כישלון הניתוח הסטטי (SAST)

אחד ההיבטים המתסכלים ביותר של CVE-2025-66566 עבור מהנדסי אבטחה, החיסרון הוא שהפגם אינו נראה לעין בכלים המסורתיים.

כלי SAST (בדיקת אבטחת יישומים סטטית) סטנדרטיים סורקים את קוד המקור בחיפוש אחר תבניות ידועות כבעייתיות (לדוגמה, הזרקת SQL, מפתחות קשיחים). עם זאת, CVE-2025-66566 אינה שגיאת תחביר. זוהי שגיאת ניהול מצב המוטמנת עמוק בתלות טרנזיטיבית (ספרייה המשמשת ספרייה המשמשת את המסגרת שלכם).

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

אנו זקוקים לשינוי פרדיגמה מ"סריקת קוד" ל"בדיקת התנהגות".

בדיקות חדירה חכמות: הסטנדרט החדש

זה המקום שבו המושג בדיקות חדירה חכמות הופך לא רק למותרות, אלא לדרישה הכרחית לאבטחת MLOps. אנחנו כבר לא יכולים להסתמך על בודקי חדירות אנושיים שיבדקו ידנית כל גבול מאגר ב-cluster מבוזר, ואנחנו גם לא יכולים להסתמך על fuzzers טיפשים שרק זורקים זבל אקראי על API.

אנו זקוקים לסוכנים שמבינים את סמנטיקה של היישום.

גישור הפער עם Penligent.ai

בהקשר של פגמים לוגיים מורכבים כמו CVE-2025-66566, פלטפורמות כמו Penligent.ai מייצג את השלב הבא באבולוציה של אבטחת סייבר התקפית. Penligent לא רק "סורק"; הוא פועל כצוות אדום אוטונומי מבוסס בינה מלאכותית.

כיצד יפעל סוכן אינטליגנטי? CVE-2025-66566 באופן שונה?

  1. פוזינג רגיש להקשר: במקום לשלוח בתים אקראיים, המנוע של Penligent מבין את פרוטוקול המסגור LZ4. הוא יכול לבנות בכוונה מסגרות תקפות שמתפרקות לאורכים ספציפיים, המחושבים מתמטית כדי להפעיל את יכולת הקריאה של "מאגר מלוכלך". הוא מכוון ל- לוגיקה של הדחיסה, לא רק של המנתח.
  2. ניתוח תגובה דיפרנציאלית: אנליסט אנושי עלול לפספס את העובדה שתגובת שגיאה בגודל 500 בתים מכילה 50 בתים של רעש אקראי בסופה. הבינה המלאכותית של Penligent מנתחת את האנטרופיה של התגובה. היא מזהה שה"רעש" בעל מבנה סטטיסטי של טקסט באנגלית או JSON, ומסמנת אותו מיד כפוטנציאל לדליפת זיכרון (Memory Scraping).
  3. גרף שרשרת האספקה: Penligent ממפה את ביצועי הריצה של מערך ה-AI שלכם. הוא מזהה כי בזמן שאתם מריצים My-AI-App v1.0, הבסיס kafka-clients הספרייה קוראת לנתיב הקוד הילידי הפגיע של lz4-java, ויצירת מסלול תיקון לפי סדר עדיפויות.

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

אסטרטגיות תיקון וחיזוק

אם זיהיתם שהתשתית שלכם פגיעה ל CVE-2025-66566, נדרשת פעולה מיידית. עם זאת, לעתים קרובות לא די ב"שדרוג הגרסה" בסביבות JAR מורכבות ומורכבות.

התיקון (והאימות)

התיקון העיקרי הוא שדרוג ספריות LZ4 המושפעות (בדרך כלל לגרסאות 1.10.x או גבוה יותר, בהתאם לגרסת הספק).

  • פעולה: לרוץ mvn dependency:tree -Dverbose או gradle dependencyInsight למצוא כל מקרה.
  • אזהרה: מסגרות ביג דאטה רבות "מסתירות" (מאגדות/משנות שם) תלות. ייתכן שיש לך LZ4 פגיע המוסתר בתוך spark-core.jar שסורקים סטנדרטיים מפספסים.

הפחתת זמן ריצה: מילוי באפסים

אם אינך יכול להתקין את התיקון באופן מיידי (למשל, אם אתה מפעיל אשכול Hadoop ישן), עליך לאכוף היגיינת זיכרון בשכבת היישום.

  • שינוי קוד: עטוף את לוגיקת הדחיסה שלך. לפני העברת מאגר למדחס, כפה Arrays.fill(buffer, (byte)0).
  • עלות ביצועים: פעולה זו תיצור עומס CPU של 5-15% על צמתים לקליטה, אך היא מנטרלת לחלוטין את הסיכון לדליפת נתונים.
CVE-2025-66566 PoC

פילוח רשת (גישת האמון האפס)

הנח שיש דליפת זיכרון. ודא שהדליפה לא יכולה לצאת מחוץ לרדיוס הפיצוץ.

  • בודד את מסדי הנתונים של וקטורים ב-VPC שיש בו אין יציאה לאינטרנט הציבורי.
  • יש ליישם mTLS (Mutual TLS) קפדני בין שירותים. גם אם תוקף יפגע בממשק המשתמש של האתר, הוא לא יוכל לשלוח ביטים גולמיים שרירותיים לשכבת האחסון הפנימית.

ניטור רציף עם eBPF

צוותי אבטחה מתקדמים צריכים לפרוס בדיקות eBPF (Extended Berkeley Packet Filter) כדי לפקח על דפוסי הגישה לזיכרון. כלים המחפשים קריאות "מחוץ לגבולות" ברמת הקרנל יכולים לעתים קרובות לזהות התנהגות של ניצול המכוון ל CVE-2025-66566 לפני שהנתונים עוזבים בפועל את השרת.

מסקנה: עידן הענקים השבריריים

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

עבור מהנדס האבטחה, הלקח ברור: המודלים בטוחים רק כמו הצינורות שמזינים אותם. עלינו לדרוש חתימת קוד קפדנית, שפות בטוחות לזיכרון (מעבר מ-C++/Java JNI ל-Rust במידת האפשר) והחשוב ביותר, כלי אימות חכמים ואוטומטיים כמו Penligent שיכול לחשוב מהר יותר מהתוקפים.

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

משאבים רלוונטיים בעלי סמכות גבוהה:

שתף את הפוסט:
פוסטים קשורים
he_ILHebrew