האם מפתחים חייבים להפיץ תוכנות מאובטחות?
האיזון בין חובת המפתחים להפצת תוכנות מאובטחות לבין חופש של מפתחים לכתוב ולהפיץ תוכנות ללא דאגות נמצא בימים אלה בדיונים סופיים בפרלמנט האירופי, שכבר עובד על הצעה שנמצאת בשלבים סופיים של אישורים בשם Cyber Resilience Act. מטרת ההצעה היא להבהיר למפתחים ולמשתמשים מי אחראי לתיקון בעיות אבטחה ובדיוק באיזה אופן.
1. האתגר היום
הבעיה ש CRA מנסה לפתור בקצרה היא בעיית שרשרת האספקה - יש לנו תוכנה שתלויה בתוכנות אחרות, אבל אף אחד לא אחראי על האבטחה של אותן תוכנות אחרות וכשיש באג לוקח הרבה זמן לתקן ולפעמים גם לדווח. מקרה גדול ומפורסם שהתחיל הרבה מהשיחות האלה היה הפריצה ל Solar Winds, פריצה שגרמה לחברה להפיץ "עדכון" ללקוחות כאשר העדכון היה בעצם דלת אחורית לפריצה, והלקוחות היו חברות ענק כולל ממשלת ארצות הברית.
הרכיב הפרוץ היה באוויר בין מרץ ליוני 2020, אבל יותר מעניינת היא העובדה שבשביל להשתיל אותו ההאקרים (ככל הנראה רוסים) פרצו ל Solar Winds ושינו את תהליך בניית הקוד שלהם. המטרה של האיחוד האירופי היא למנוע מתקפות מסוג זה ורבות נוספות באמצעות חיוב חברות לבצע תהליכי בדיקות אבטחה באופן תדיר, וחיוב זה ממשיך לכל אורך שרשרת האספקה של כל תוכנה.
2. האתגר שמציבה CRA עבור מתכנתי קוד פתוח
אומנם שיפור אבטחת מידע של מוצרים הוא מטרה ראויה אבל השטן הוא בפרטים ומפתחי קוד פתוח רבים מתלוננים על הדרך. בפרט:
בטיוטות העדכניות ביותר ה CRA חל על חברות מסחריות שמרוויחות ממוצרי קוד פתוח שהן מתחזקות. זה אומר שאם אני פותח חברה שמפיצה ספריית תוכנה ומוכר שירותי ייעוץ על ספריה זו אני עשוי להיות מחויב לעמוד בסטנדרטים של האיחוד האירופי.
ה CRA מחייב דיווח על בעיות אבטחה תוך מספר שעות מרגע גילוי הפרצות. מנגנון כזה לא יאפשר למתכנתי קוד פתוח להפיץ בצורה מסודרת עדכוני תוכנה שמתקנים את הפירצה בזמן, כי מפתחי קוד פתוח לא יודעים מי כל הלקוחות שלהם ואין להם דרך להגיע לכל הלקוחות בזמן סביר.
ה CRA מוסיף נטל רגולטורי בדמות בדיקות אבטחה שמפתחים חייבים לבצע, ולפעמים אף בדיקות חיצוניות (תלוי במוצר). לחברות קוד פתוח שממילא חיות על תרומות נטל כזה עלול להיות הוצאה אחת יותר מדי.
סך הכל כמו בהרבה סיטואציות שמעלים את הרף יש פה בעייה של איזון בין כמה קל לעסקים קטנים או חדשים להיכנס ולפעול בשוק לעומת איכות המוצרים והרווח לכלל האוכלוסיה. עדיין מוקדם לדעת איך דברים הולכים להתפתח והאם שינוי זה יביא לשיפור אבטחת המידע של מוצרי תוכנה באופן כללי, אבל אני באופן אישי לא אופטימי. הבעיה עם אבטחת מידע היא שעל כל חור שנסגר נפתחים עוד 5, ולא לגמרי ברור באיזו מידע תוספת הבדיקות או חובת הדיווח ישפרו את המצב.