דלג לתוכן הראשי

A.8.28 קידוד מאובטח

מטרה

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

תחום יישום

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

הגדרות

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

אחריות

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

תהליך

1. הגדרת עקרונות קידוד מאובטח

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

2. כתיבת קוד מאובטח

  • במהלך שלב הפיתוח, יש להקפיד על כתיבת קוד העומד בעקרונות הקידוד המאובטח, כולל שימוש בשיטות לבדיקת קלט, טיפול בשגיאות בצורה מאובטחת, והגנה מפני התקפות נפוצות כגון SQL Injection, XSS, ו-CSRF.
  • יש להימנע מהשארת קוד עודף או קוד ניסיוני בסביבת הייצור, ולהקפיד על שימוש בספריות וכלים מאובטחים בלבד.

3. סקירת קוד

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

4. בדיקות אבטחה

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

5. פריסה ותחזוקה

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

6. ניהול פגיעויות

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

7. הדרכת צוותי פיתוח

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

8. סקירה ועדכון נהלים

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

הערות

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