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

GPT
C

code_x_glue_cc_defect_detection

קוד פתוח

googlec-uda2022-03-02

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

  • 1,896הורדות בחודש
  • 29לייקים

מה זה

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

הנתונים מחולקים מראש לשלושה חלקים לפי יחס של 80 אחוז לאימון, 10 אחוז לתיקוף ו־10 אחוז לבדיקה. בחלק האימון יש 21,854 דוגמאות, בעוד שחלק הבדיקה וחלק התיקוף מכילים 2,732 דוגמאות כל אחד. הכרטיס לא מפרט באילו שיטות בדיוק סוננו או נוקו הפונקציות לפני החלוקה.

מתאים ל

  • אימון מסווג בינארי לקוד C

    לימוד מודלים לזהות האם פונקציית C חשופה לחולשות כמו use-after-free או זליגת זיכרון.

  • בנצ'מרק למודלי שפה לקוד

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

  • סינון מקדים בסקירת קוד

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

איפה זה נופל

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

שאלות
נפוצות

האם יש במאגר תמיכה בשפות תכנות נוספות מלבד C?

לא, המאגר מוגדר ומכיל אך ורק פונקציות שנכתבו בשפת C. אם אתם מחפשים לזהות חולשות ב־Java, JavaScript או שפות אחרות, המאגר הזה לא יתאים למשימה.

האם אפשר להשתמש במאגר לפיתוח מודלים מסחריים?

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

איך מחולקים הנתונים וכמה דוגמאות יש בסך הכל?

במאגר יש קצת יותר מ־27,000 רשומות בסך הכל. הן מפוצלות ל־21,854 דוגמאות לאימון, ועוד 2,732 דוגמאות לכל אחד מחלקי התיקוף והבדיקה.

האם המאגר כולל טקסט בעברית?

לא. כל הנתונים מורכבים מקוד מקור באנגלית ומזהי פרויקטים טכניים ממאגרי קוד פתוח כמו qemu.

איך טוענים

הטעינה פשוטה ואינה דורשת אישור גישה מראש. הקבצים שמורים בפורמט Parquet בחלוקה לתיקיית נתונים עם קבצי train, test ו־validation. בקוד העבודה תצטרכו להתמקד בעיקר בשדה func שמכיל את מחרוזת הקוד, ובשדה target שמחזיר ערך בוליאני של אמת או שקר לגבי קיום פגיעות. שדות כמו commit_id ו־project עוזרים בעיקר למעקב או בדיקת זליגת מידע בין פרויקטים.

from datasets import load_dataset

ds = load_dataset("google/code_x_glue_cc_defect_detection")

הרישיון

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

הרישיון המלא ב־Hugging Face ↗