Clear Sky Science · he

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

· חזרה לאינדקס

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

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

Figure 1
Figure 1.

מרשימות מילים פשוטות לקוד שמבין הקשר

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

להניח ל-AI לקרוא יותר מהקובץ

מודלים פופולריים לקוד כגון CodeBERT ו-GraphCodeBERT כבר משתמשים בגישה זו המודעת להקשר, אך הם בדרך כלל מגבילים את "החלון" שלהם לכ־512 טוקנים. בפונקציות ארוכות, או בפגיעויות המתבטאות בחלקים רחוקים זה מזה בקוד, החלון הזה עלול להיות קצר מדי. בדיקות חשובות בתחילת פונקציה עלולות להיות מנותקות מהפעולות המסכנות בסופה. המחברים בונים במקום זאת על XLNet, מודל המבוסס על Transformer-XL, שיכול לזכור מידע בין מקטעים ולעבד רצפים ארוכים בהרבה בנוחות (עד 768 טוקנים בניסויים שלהם). זה עושה אותו מתאים יותר לקשר בין אירועים מרוחקים בקוד—למשל, הבנה שערך נבדק מוקדם יותר, או ההכרה שהוא מעולם לא נבדק.

Figure 2
Figure 2.

להפוך מודלים חזקים לקלים ומהירים יותר

מודלים גדולים של AI לרוב דורשים חומרה חזקה, מה שמגביל את השימוש בהם בסביבות פיתוח יום־יומיות. כדי להתמודד עם זאת, המחברים מיישמים שיטת כיול עדין הנקראת Low-Rank Adaptation (LoRA). במקום לשנות את כל הפרמטרים הרבים של XLNet, LoRA מוסיף שכבות מתאימות קטנות שהן הרבה פחות יקרות לאימון ולאחסון. הצוות מציג מדד פשוט, EffScore, שמאזן כמה זיכרון וזמן נשמרים מול כל ירידה באיכות הגילוי. בכמה מודלים מובילים, XLNet עם LoRA עולה כיעיל ביותר באופן כללי, ומציע דיוק חזק תוך שימוש במשאבים מועטים בהרבה.

בדיקות על פרויקטים אמיתיים וסינתטיים

החוקרים מעריכים את XLNetVD על שתי מערכות נתונים שונות מאוד. אחת כוללת קוד C אמיתי מ-12 פרויקטים בקוד פתוח—כמו ספריות מדיה ושרתים לרשת—with יחס חמור של כ-1 פונקציה פגיעה לכל 65 שאינן פגיעות, המשקף את המציאות בבסיסי קוד גדולים. השנייה היא אוסף סינתטי מאוזן מפרויקט SARD, שבו כל פונקציה מעוצבת לייצג סוג חולשה ידוע. XLNetVD לא רק משווה לטוב או מתעלה על מערכות למידה עמוקה קודמות וכלי ניתוח סטטי קלאסיים במבחנים אלה, אלא גם מתפקד היטב בהגדרות חוצות‑פרויקטים, שבהן עליו למצוא פגמים בפרויקט שלא נחשף לו קודם. יתרונו חזק במיוחד עבור פונקציות ארוכות, שבהן ההקשר הארוך קריטי, ובמספר קטגוריות של פגיעויות, כולל גלישת שלמים, ניהול לא תקין של משאבים וטיפול לקוי בקלט.

מה זה אומר עבור בטיחות תוכנה יומיומית

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

ציטוט: Zhao, Y., Lin, G. & Liao, Z. Long-range context modeling for software vulnerability detection using an XLNet-based approach. Sci Rep 16, 5338 (2026). https://doi.org/10.1038/s41598-026-36196-9

מילות מפתח: פגיעויות תוכנה, אבטחת קוד, למידה עמוקה, XLNet, כיול עדין LoRA