A.8.25 מחזור חיים מאובטח של פיתוח
מטרה
מטרת הנוהל היא להבטיח שכל תהליך הפיתוח בארגון מתבצע בצורה מאובטחת, החל משלב התכנון ועד להשקה ולתחזוקה, תוך שמירה על עקרונות אבטחת המידע, מניעת פגיעויות, והבטחת עמידה בדרישות רגולטוריות ועסקיות.
תחום יישום
הנוהל חל על כל תהליכי הפיתוח בארגון, כולל פיתוח תוכנה, יישומים, מערכות מידע, שירותים מקוונים ורכיבי חומרה, בכל שלבי מחזור החיים של הפיתוח.
הגדרות
- מחזור חיים מאובטח של פיתוח (SDLC - Secure Development Lifecycle): תהליך הפיתוח שבו מיושמים עקרונות אבטחת מידע בכל שלב, החל מתכנון, דרך פיתוח, בדיקות, השקה ותחזוקה.
- פגיעויות (Vulnerabilities): חולשות בתוכנה או במערכת שעלולות להיות מנוצלות על ידי גורמים זדוניים כדי לבצע התקפות או חדירות.
אחריות
- מחלקת הפיתוח: אחראית על יישום עקרונות האבטחה בכל שלבי הפיתוח, כולל כתיבת קוד מאובטח, בדיקות אבטחה, ותיקון פגיעויות שהתגלו במהלך הפיתוח או לאחריו.
- ממונה על אבטחת המידע: אחראי לפקח על תהליך הפיתוח המאובטח, לבצע הערכות סיכונים, ולוודא שהנהלים עומדים בדרישות האבטחה של הארגון והתקנים הרלוונטיים.
- מנהלי פרויקטים: אחראים לוודא שהצוותים שלהם מבצעים את תהליך הפיתוח בהתאם לנוהלי האבטחה של הארגון ושכל התוצרים עומדים בדרישות האבטחה.
תהליך
1. תכנון אבטחה
- לפני תחילת הפיתוח, יש לבצע הערכת סיכונים ולזהות את איומי האבטחה האפשריים. תוצאות ההערכה ישולבו בתכנון הפרויקט כדי להבטיח שכל הסיכונים מטופלים.
- יש להגדיר דרישות אבטחה ברורות למערכת, הכוללות את מדיניות האבטחה, פרוטוקולים להצפנה, מנגנוני גישה מאובטחים, ועוד.
2. פיתוח קוד מאובטח
- במהלך שלב הפיתוח, יש להקפיד על כתיבת קוד מאובטח בהתאם לנהלי פיתוח הקוד המאובטח של הארגון. יש להשתמש בטכניקות כגון קוד מינימלי, בדיקות קלט, וכתיבת קוד עמיד בפני התקפות נפוצות כמו SQL Injection ו-XSS.
- יש לבצע סקירת קוד פנימית ו/או חיצונית כדי לזהות פגיעויות או בעיות אבטחה בקוד.
3. בדיקות אבטחה
- יש לבצע בדיקות אבטחה יסודיות בשלב הבדיקות של מחזור הפיתוח, כולל בדיקות חדירה (Penetration Testing), ניתוח קוד סטטי ודינמי, ובדיקות תקינות של מנגנוני האבטחה.
- תוצאות הבדיקות יתועדו וינותחו, וכל פגיעות או בעיית אבטחה שתתגלה תתוקן לפני המעבר לשלב הבא.
4. השקה ופריסה מאובטחת
- לפני ההשקה, יש לוודא שכל דרישות האבטחה מולאו ושאין פגיעויות פתוחות. תהליך ההשקה יכלול תכנון לפריסה מאובטחת של המערכת בסביבה הייצורית.
- יש ליישם מנגנוני ניטור ובקרה שוטפים כדי לוודא שהמערכת נשארת מאובטחת לאורך זמן ושאין בעיות אבטחה המתעוררות לאחר ההשקה.
5. תחזוקה ועדכונים
- לאחר ההשקה, יש לנהל את תהליך התחזוקה בצורה מאובטחת, כולל עדכוני תוכנה ותיקוני אבטחה. כל עדכון או שינוי במערכת ייבדק תחילה מבחינת האבטחה.
- יש לבצע בדיקות אבטחה תקופתיות על המערכת כדי לוודא שהיא נשארת עמידה בפני איומים חדשים ושאין פגיעויות שהתפתחו לאחר השינויים.
6. ניהול פגיעויות
- יש להקים תהליך לניהול פגיעויות שהתגלו במהלך הפיתוח או לאחר ההשקה, כולל תיעוד הפגיעות, הערכת הסיכון ותיקון מהיר.
- פגיעויות קריטיות יש לתקן באופן מיידי, ולוודא שהעדכונים והתיקונים מבוצעים בצורה שמונעת פגיעות נוספות.
7. הדרכת צוותי פיתוח
- הארגון יספק הדרכה לצוותי הפיתוח בנוגע לעקרונות הפיתוח המאובטח, כתיבת קוד מאובטח, זיהוי פגיעויות ותהליכי בדיקות אבטחה.
- ההדרכה תכלול גם הכרות עם כלים וטכניקות פיתוח מאובטח, כגון שימוש בספריות מאובטחות, ניהול מפתחות קריפטוגרפיים וביצוע בדיקות אבטחה.
8. סקירה ועדכון נהלים
- הארגון יבצע סקירה תקופתית של נהלי מחזור החיים המאובטח של הפיתוח, ויעדכן אותם בהתאם לשינויים טכנולוגיים, סיכונים חדשים או דרישות רגולטוריות.
- יש לוודא שכל העדכונים מיושמים ומתקיימים על ידי כל צוותי הפיתוח בארגון.
הערות
הארגון יבצע ביקורות תקופתיות על יישום הנוהל בנוגע למחזור חיים מאובטח של פיתוח, ויבצע התאמות ושיפורים בהתאם לצורך ולשינויים רגולטוריים או טכנולוגיים.