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

GPT
S

static-analysis-eval

קוד פתוח

patched-codesapache-2.02023-09-22

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

  • 729הורדות בחודש
  • 20לייקים

מה זה

הרשומות מבוססות על שבעים ושש תוכניות פייתון שנלקחו מתוך מאה הפרויקטים הפופולריים ביותר בקוד פתוח בגיטהאב. כל דוגמה מכילה קובץ קוד אמיתי שבו מנתח הקוד Semgrep איתר פגיעות אבטחה אחת בלבד. כל הדוגמאות קצרות מ־512 טוקנים לפי המפענח cl100k_base של OpenAI, מה שמאפשר הרצה מהירה.

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

מתאים ל

  • בנצ'מרק ליכולות תיקון קוד

    מדידת יכולת של מודלי שפה לתקן חולשות אבטחה מוגדרות בקוד פייתון פתוח.

  • בדיקת שיטות פרומפטינג וסוכנים

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

  • אימות שיפורי אימון מתקדם

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

איפה זה נופל

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

שאלות
נפוצות

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

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

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

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

איך הדוגמאות נאספו ונבדקו בפועל?

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

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

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

איך טוענים

הנתונים יושבים בקובץ parquet יחיד בתיקיית data. אין צורך בבקשת גישה מיוחדת להורדה. המאגר מגיע יחד עם סקריפט הרצה בשם script_for_eval.py שמבצע את הבדיקה בעזרת Semgrep מול מודלים שונים, ותומך בהרצות אפס דוגמאות, מעט דוגמאות או שליפה מבוססת דמיון. לפני ההרצה יש להתקין את החבילות מתוך requirements.txt.

from datasets import load_dataset

ds = load_dataset("patched-codes/static-analysis-eval")

הרישיון

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

  • שימוש מסחרי
  • שינוי הקוד
  • הפצה מחדש
  • שימוש בפטנטים

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