תיעוד

גילוי מידע

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

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

ציבורי ולא ציבורי

כל ממצא הוא מסוג אחד משניים:

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

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

שער הפרסום

כל מה ש־Coroid מפרסם מחוץ ל־Coroid עובר קודם בשער הפרסום: גופי סקירה, תגובות סקירה ותקצירים, תוצאות בדיקה והערות שלהן, כותרות ותיאורים של pull request, הודעות commit, תגובות Issue, הודעות Slack ואימייל, וייצואים. השער בודק כל בעיית אבטחה בטקסט, בין אם אושרה ובין אם לא.

באחסון ציבורי, או באחסון ש־Coroid אינו יכול לאשר את רמת הנראות שלו, בעיה שאינה ציבורית מוחלפת בשורה ניטרלית עם קישור:

Coroid איתר אפשרות לבעיית אבטחה; הפרטים נמצאים ב־Coroid.

באחסון פרטי, הטקסט מתפרסם. בעיה שעדיין לא אושרה מסומנת כ"טענה לא מאומתת על אבטחה: Coroid עדיין לא אימת אותה".

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

רמת נראות של האחסון

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

התראות וייצואים

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

תיקון באחסון ציבורי

באחסון פרטי, תיקון לממצא שאינו ציבורי הוא pull request רגיל. הודעות ה־commit והתיאור שלו מתארים את התיקון, לא את ההתקפה.

באחסון ציבורי, או באחסון ש־Coroid אינו יכול לאשר את רמת הנראות שלו, pull request ציבורי, ענף או commit עלולים לחשוף את הבעיה לפני תיקונה. לכן Coroid כלל אינו מבצע commit של תיקון כזה שם. משימת התיקון נעצרת עם סיבה שאינה מציינת פרטים על הממצא, והשינוי המוכן נשמר כ תיקון פרטי.

תיקונים פרטיים

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

  • הורדת התיקון שומר את השינוי המוכן כקובץ .patch , לצורך סקירה או יישום על ידכם.
  • פרסום רושם שהממצא כעת נחשף, ומגיש משימה המיישמת את השינוי המוכן ללא שינויים ופותחת את pull request שלו. בצעו פרסום כאשר אתם מוכנים שהתיקון והבעיה יהיו ציבוריים, למשל לאחר קביעת תאריך שחרור מתואם. תיקון גדול מכדי שיופץ מ־Coroid עדיין ניתן להורדה וליישום ידנית.
  • ביטול מוחק את השינוי המוכן.

הפרסום והביטול נרשמים ביומן הביקורת של הארגון, ושניהם מוחקים את השינוי המוכן מ־Coroid.

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

מתוכנן

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