אנשים עובדים ביחד, אילוסטרציה (אילוסטרציה: Tetiana Yurchenko, shutterstock)
המפתחים עובדים בהתנדבות, חברות הענק משתמשות. אילוסטרציה | אילוסטרציה: Tetiana Yurchenko, shutterstock

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

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

מילר הלך בעקבות מפתח קוד אחר, מאראק סקוויירס, מי שמאחורי שתי חבילות קוד פופולריות - faker.js ו-colors.js. בינואר התברר שהוא החליט לחבל בהן במודע, וגרם לתופעות מוזרות כמו הצגת ג'יבריש, האטת פעולת הקוד ומחאת רשת, שהתבטאה במילים "LIBERTY LIBERTY LIBERTY".

מחקר של אקווה סקיוריטי מצא גידול של 300% ב-2021 במתקפות על שרשרת אספקת התוכנה, חלק גדול מהן על ידי שימוש בחולשות בחבילות קוד פתוח וחלק על ידי הרעלת חבילות ושתילה של קוד זדוני

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

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

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

בחודש שעבר האירוע חזר על עצמו עם חולשה בקוד נוסף - Spring4Shell, שעוררה את השאלה אם לא נגרמה במזיד. מה שמציף בעיה כאובה נוספת: קודים זדוניים שמוטמעים לצורך מתקפות סייבר. כך למשל, מחקר של חברת סופוס מצא מתקפה שניצלה את החולשה ב-Log4j כדי להחדיר "דלת אחורית" לשרתי VMware Horizon. מחקר של אקווה סקיוריטי מצא גידול של 300% ב-2021 במתקפות על שרשרת אספקת התוכנה, חלק גדול מהן על ידי שימוש בחולשות בחבילות קוד פתוח וחלק על ידי הרעלת חבילות ושתילה של קוד זדוני.

קטסטרופה אמיתית היא כנראה רק עניין של זמן: 200 חבילות קוד נגועות שהועלו למאגר NPM במטרה לגנוב נתוני משתמשים ו-600 חבילות קוד נוספות, שמסוות את עצמן בשמות כמעט זהים לחבילות קוד מוכרות וכך עושות את דרכן למערכות תוכנה משמעותיות

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

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

על ציר הזמן של הקוד הפתוח

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

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

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

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

חברת צ'קמרקס היא אחת המובילות בעולם בתחום בדיקות האבטחה לתוכנה (AST) והפלטפורמה שלה מאפשרת ללקוחות לבדוק את הקוד שלהם, כולל קוד פתוח, ולנפות צרות ומכאובים. ארז ילון, סמנכ"ל מחקר אבטחה בצ'קמרקס, מגן על הקוד הפתוח בהתלהבות: "זה גן עדן בכמה רמות: זמינות קוד וכלים, ובעיות שהן כבר פתורות. זה דבר נהדר שלא קיים באף תעשייה אחרת. אתה לא רואה מהנדס מכוניות שמוצא בלמים של חברה אחרת ומחליט לשלב אותם במכונית שלו. ומעבר לזה תחושת קהילה מסביב, וחברות גדולות מנסות להיות DEVELOPERS FIRST, כלומר בעד מפתחים, וגם לתרום קוד ופרויקטים. זה משהו גדול שקיבל חיים משל עצמו. בין 90% ל-95% מהחברות המסחריות משתמשות בקוד פתוח - זה מספר עצום".

ארז ילון, סמנכ"ל מחקר אבטחה בצ'קמרקס (צילום: בעז פרלשטיין, יחצ)
ארז ילון, סמנכ"ל מחקר אבטחה בצ'קמרקס | צילום: בעז פרלשטיין, יחצ

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

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

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

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

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

ענבל לוי, מפתחת בחברת סולאראדג' (SolarEdge) (צילום: יחצ)
ענבל לוי, מפתחת בחברת SolarEdge | צילום: יחצ

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

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

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

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

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

לירן טל - דירקטור developer advocacy  (צילום: EYAL MARILUS, יחצ)
לירן טל, דירקטור developer advocacy | צילום: EYAL MARILUS, יחצ

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

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

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

גיא ברנהרט-מגן  שותף-מייסד וסמנכל טכנולוגית בחברת אבטחת המידע Prof (צילום: אופיר אבסלנדר, יחצ)
גיא ברנהרט-מגן, שותף, מייסד וסמנכל טכנולוגית בחברת אבטחת המידע Prof | צילום: אופיר אבסלנדר, יחצ

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

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

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

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

לירן טל מנסה לרכך את התמונה: "אני לא חושב שזו אמירה נכונה, זה קורה אבל זה ה-20% לעומת ה-80%. אפשר להסתכל על חברות גדולות שמעולם לא תרמו לקוד פתוח למרות שהם משתמשים בו המון, אבל זו תנועת bottom-up שבה המפתח שתיקן משהו בחבילת קוד ישב על הראש של ראש הצוות שלו ויגיד לו – 'למה שאני לא אתרום את זה החוצה'".

מתי פיכוס, מפתח בחברת הקוד הפתוח Quansight (צילום: יחצ)
מתי פיכוס, מפתח בחברת הקוד הפתוח Quansight | צילום: יחצ

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