דרך חדשה לאשר תוכנת קוד פתוח. האתגר של פרויקט AssureMOSS

(של מטאו מאורי)
04/08/21

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

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

במאמר זה נראה בקצרה את הניסיון של פרויקט AssureMOSS (אבטחה והסמכה בתוכנות ושירותים פתוחים מרובי צדדים מאובטחים - https://assuremoss.eu) להתמודד עם אתגר התוכנה קוד פתוח "מעוצב בכל מקום, אך מובטח באירופה". הפרויקט לשלוש שנים (אוקטובר 2020 - ספטמבר 2023) ממומן על ידי הנציבות האירופית במסגרת תוכנית HORIZON 2020 [1].

הבלאגן לתוכנות מורכבות ופרדיגמת MOSS

בעשור האחרון, בין החידושים הרבים, שני מאפיינים מרכזיים בפרט שינו ופינו תוכניות פיתוח תוכנה באופן קיצוני [2]. ראשית, קיצור לולאת המשוב בין צוותי הפיתוח והתגובה למוצרים שהצוותים האלה משחררים (למשל בדיקות A / B, DevOps) הובילו להתפתחות תזזיתית עם שינויים מהירים יותר במוצרים. שנית, מפתחים התמקדו יותר ויותר בהבחנה של תכונות במוצרי הקצה שלהם, אך מסתמכים יותר ויותר על צדדים שלישיים לכל דבר אחר (יישום ענן, שימוש נרחב במסגרות פתוחות כגון OpenSSL [3] או Node .js [4], או שימוש בעוד מוצרים מוגבלים אך עם פרוטוקולים, נהלים, ספריות וממשקי API [5] בכל מקרה קוד פתוח). כל זה הוביל להתפתחות הכוללת גורמים שונים (הנקראים בעלי עניין רב, מאנגלית: צד רב אינטרסים): התוצאה היא עצרת המופעלת על ידי גורמים שונים, כל אחד עם שיטות / מדיניות אבטחה ופרטיות משלו.

אנו יכולים כבר להציג כאן ראשי תיבות בהם נשתמש בהמשך המאמר. תוכנה מודרנית מבוססת על פרדיגמה שנקראת תוכנה ושירותים פתוחים (Multi-Party Open) ושירותים (MOSS). לכן, חברת תוכנה המפתחת מוצר מייצגת רק אחד מהגיבורים המעורבים בתהליך הבטחת אבטחת התוכנה על אותו מוצר.

הצדדים המעורבים כוללים את קהילות פיתוח מערכת ההפעלה, למשל, ביצירת עדכוני אבטחה, או חברות המספקות שירותי אבטחה חדשים או עדכונים לממשקים קיימים. פרדיגמת MOSS חלה בהחלט על חברות גדולות יותר, בעוד שלחברות קטנות יותר, כמו חברות קטנות ובינוניות וסטארט -אפים, עשויה להיות שרשרת אספקה ​​קצרה יותר המבוססת בעיקר על תוכנת קוד פתוח וחופשית (FOSS - Free and Open Source Software).

האחרון הוא עמוד השדרה של תעשיית התוכנה: כמעט 80% מהמוצרים המסחריים כיום מכילים לפחות רכיב FOSS אחד עד שהפרלמנט האירופי הכיר רשמית בתפקידו המרכזי. מעניין גם לציין את המגמה המתקדמת לצמצם את חלק הקוד המיוצר באופן פנימי על ידי חברות פיתוח תוכנה. בסוף שנות התשעים, למעלה מ -90% מערימת התוכנה כללה קוד שפותח בעצמו. רק מסדי הנתונים ומערכות ההפעלה הגיעו מספקים מורשים של קוד סגור. בהתחשב במגמה הנוכחית, ניתן לראות כי בשנת 95, לעומת זאת, חלק הקוד המיוצר באופן פנימי ירד באופן דרסטי לייצג רק 2019% מהעוגה: דפדפנים, מסגרות ממשק משתמש, מנהלי חבילות, שרתי אפליקציות, פלטפורמות שירותי מיקרו, מכולות, מערכות הפועלות במכולות, כולן בדרך כלל רכיבי תוכנה של צד שלישי (לרוב קוד פתוח) שחברות תוכנה משתמשות בהן מדי יום [6-7-8].

אישור תוכנה ואישור מחדש

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

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

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

התפתחות מהירה ורבת בעלי עניין מציבה אתגר להבטחת הסמכת תוכנה. תוכניות אישור אבטחה קיימות, כולל תוכניות לפרויקטים קוד פתוח, כמו תוכנית תג התשתית Core Infrastructure Initiative (CII) [10], מתמקדים באישור שפרויקטים של תוכנה פועלים לפי שיטות מומלצות לאבטחה מסוימות. בעיקרו של דבר, סכמטים אלה מתמקדות בתהליך פיתוח התוכנה. עם זאת, בפרויקטים של תוכנה מודרנית, תהליך הפיתוח הופך להיות זורם יותר ומותאם ללא הרף על ידי מפתחים (בניגוד להיות נוקשה ואכוף מרכזי). כתוצאה מכך, ייתכן שלמתקנים המעורבים בכל שלב אין את המשאבים הדרושים לרכישה ותחזוקה של אישורים אלה.

האתגר של פרויקט AssureMOSS

ממה שנאמר בהחלט יתפס הצורך בשינוי נקודת מבט מצד האיחוד האירופי, שניסה לעורר גישה חדשה על ידי מימון פרויקט AssureMOSS. הפרויקט כולל צוות המורכב מארבע אוניברסיטאות (דלפט, גותבורג, טרנטו, וינה), 4 חברות SME חדשניות (Pluribus One, FrontEndArt, Search-Lab), 3 חברות גדולות (SAP, Thales), ארגון EU-VRi ו- Advisory מועצת המנהלים מורכבת מדמויות אסטרטגיות מעולם התעשייה ותוכנת קוד פתוח (OSS).

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

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

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

• שימוש ב- Machine Learning לזיהוי מושכל של בעיות אבטחה בקרב חפצים;

• ניתוח ואימות שינויים באמצעות מעקב מתמשך אחר תופעות הלוואי על פרטיות ואבטחה;

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

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

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

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

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

1 פרויקט AssureMOSS מוסדר על ידי הסכם המענק מס '952647, והוא ממומן בסך כולל של 4.689.425 יורו, www.pluribus-one.it/it/ricerca/progetti/assuremoss

2 ינואר בוש, מהירות, נתונים ומערכות אקולוגיות: מצטיינים בעולם מונע תוכנה, CRC Press, 2016

3 OpenSSL הוא יישום קוד פתוח של פרוטוקולי SSL ו- TLS, הזמין עבור רוב מערכות ההפעלה דומות ל- unix, כולל GNU / Linux ו- macOS, וגם עבור Microsoft Windows, www.openssl.org

4 Node.js היא מערכת ריצה קוד פתוח חוצה פלטפורמות הממוקדת לאירועים להפעלת קוד JavaScript, הבנויה על מנוע ה- JavaScript V8 של Google Chrome. רבים ממודולי הליבה שלה כתובים ב- JavaScript, ומפתחים יכולים לכתוב מודולים חדשים ב- JavaScript, https://nodejs.org/it/

5 API, ראשי תיבות של ממשק תכנות יישומים, www.redhat.com/en/topics/api/what-are-application-programming-interfaces

6 עתידו של סקר קוד פתוח של Black Duck, 2015

7 הולגר מאק, טום שרר, משבר אמצעי אבטחה, פסגת אבטחת המוצר של SAP 2019

http://www.europarl.europa.eu/oeil/popups/ficheprocedure.do?lang=en&refe...

9 על פי פרטי CVE, 2017 ניפצה את שיא הפגיעות של השנים הקודמות (14714 בשנת 2017 לעומת השיא הקודם של 7946 בשנת 2014). למרבה הצער, 2018 עשתה את המצב אפילו יותר גרוע (16555 נקודות תורפה). https://www.cvedetails.com/browse-by-date.php

10 https://www.coreinfrastructure.org

11 https://wiki.ubuntu-it.org/Programmazione/Git/Commit

12 https://www.who.int/cancer/prevention/diagnosis-screening/screening/en/

13 Eoin Woods, אדריכלות תוכנה לדמוקרטיזציה, Keynote ב- ICSA 2019, באינטרנט ב https://speakerdeck.com/eoinwoods/democratising-software-architecture

14 www.pluribus-one.it/it/chi-siamo/blog/88-cybersecomics/111-bug