4 בספטמבר 2026
PawedRespect Your Pods

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

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

Michael Lugassy · צילום מסך מתוך הסרטון
האזנה גם ב:

עיקרי הדברים

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

ההאשמות והרקע למאבק המשפטי

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

רכבת ישראל טוענת לשימוש מסחרי בלתי מורשה, הפרת תנאי שימוש, וגרימת נזק של מאות אלפי שקליםמייקל לוגסי, על מכתב ההתראה של רכבת ישראל▶ 0:26

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

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

מהקריאה הבודדת ועד למנגנוני העומס

ההיסטוריה הציבורית של בטר רייל החלה ב-1 באפריל 2021, כאשר נכתב הקוד הראשון בארכיטקטורת React Native. שמונה ימים לאחר מכן, ב-9 באפריל, בוצע הקומיט הראשון שביצע קריאה ישירה לממשק התכנות (API) של אתר רכבת ישראל. באותה תקופה, האפליקציה פשוט פנתה לשרת הרכבת בכל פעם שמשתמש ביקש לאתר מסלול נסיעה בין תחנות, וקיבלה בתגובה את לוח הזמנים המעודכן. באוקטובר ובדצמבר של אותה שנה נוספו תמיכה בשעוני אפל (Apple Watch) ווידג'ט ל-iOS, אשר אפשרו לצפות בזמני הרכבות ישירות ממסך הבית.▶ 1:51

בשלה ראשוני זה, הגידול בתנועה נשמר בגבולות סבירים של 5 עד 15 קריאות יומיות לכל משתמש. האפליקציה ביצעה קריאות רק בעת חיפוש אקטיבי ושמרה את התוצאות למשך שעתיים, תוך הימנעות משאילתות ברקע. אולם, במרץ 2023 שינתה רכבת ישראל את שרת ה-API שלה והעבירה אותו למערכת Azure API Management. השינוי דרש מכל קריאה לכלול מפתח זיהוי (Subscription Key). מפתחי בטר רייל הסתגלו במהירות והחליפו את מפתח הקריאה, אך הקוד החל להיחשף לצורך בעדכונים תכופים יותר.▶ 4:01

באפריל 2023 החל מפנה משמעותי במאזן העומסים. בטר רייל החלה בהכנות לשילוב תכונת Live Activities של iOS, במטרה לדחוף עדכוני בזמן אמת לנעילת המסך של המשתמש. מכיוון שלרכבת ישראל לא היה שירות פוש מובנה, האפליקציה נדרשה לבצע תחקור אקטיבי מול ה-API של הרכבת מדי דקה. בהמשך, במאי 2023, נוספה תכונת התחלת נסיעה שקראה למסלול נוסף, והעלתה את מספר הקריאות היומיות הממוצע לכל משתמש לכ-120 קריאות. צירוף השינויים הללו יצר מכפיל עומס דרמטי.▶ 6:10

תקלות סקייל אמיתיות לא נבנות באמצעות החלטה גרועה אחת, אלא צירוף של חמישה קומיטיםמייקל לוגסי, על הגידול בעומסי השאילתות▶ 7:39

מרוץ החימוש והחסימות ההדדיות

באוגוסט 2023 הופיעו לראשונה עדויות בקוד לכך שקריסות בשרתי הרכבת משפיעות ישירות על בטר רייל. בתגובה, צמצמו המפתחים את מספר השאילתות המקבילות מ-20 ל-8. בסוף אותו חודש נוספו מנגנוני ניסיון חוזר בספריית Axios במקרה של שגיאות שרת או חסימות, לצד מנגנון המתנה מעריכית. עם זאת, ההחלטה לבצע ניסיונות חוזרים גם במקרה של עומס יתרה או חוסר הרשאה הגדילה לעיתים את התקפות השאילתות על שרתי הרכבת במקום להפחיתן.▶ 8:05

במהלך השנים 2025 ו-2026 הסלימה הלוחמה הטכנולוגית בין הצדדים. באוגוסט 2025 הוסיפה בטר רייל שרת פרוקסי שאיפשר לה לעקוף מגבלות גיאוגרפיות ולנתב את התנועה מכתובות IP שונות. כאשר מערכת הגנת הסייבר Cloudflare של הרכבת החלה לחסום את קריאות ה-SearchTrain באוגוסט 2026, השיבו מפתחי בטר רייל בשינוי נתיבי הקריאה ובניסוח בקשות HTTP מותאמות אישית. הקריאות הוסוו באמצעות כותרות המחקות דפדפן ספארי של אייפון, כולל כתובות IP, רזולוציית מסך ומיקום מוצהר.▶ 9:49

ב-22 ביוני 2026 יצרה רכבת ישראל קשר רשמי ראשון עם בטר רייל. ניתוח היסטוריית ה-Git מראה כי בתוך חמישה ימים בלבד ממועד הפנייה, החל מעבר מתוכנן של האפליקציה להתבססות על מקורות המידע הרשמיים של משרד התחבורה. ב-1 באוגוסט 2026 הושלם הניתוק המלא משרתי רכבת ישראל, והאפליקציה עברה לפעול באמצעות קובצי GTFS ופרוטוקול SIRI לניטור אירועים בזמן אמת.▶ 13:45

הלקחים והאלטרנטיבה הממסדית

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

זה לא הייתה תקשורת, וזה התפוצץ בצורה הכי גרועה שישמייקל לוגסי, על כשל התקשורת בין הצדדים▶ 18:29

בסופו של דבר, הפרשה ממחישה את החשיבות של שקיפות ושיתוף פעולה בפיתוח תשתיות ציבוריות. במקום מאבק משפטי וטכנולוגי שגבה משאבים לשני הצדדים, ניתן היה להסדיר ממשק API ציבורי עם מכסות שימוש וניטור שקוף. המעבר של בטר רייל לנתוני GTFS פתוחים מוכיח כי קיימות חלופות טכנולוגיות בריאות, המאפשרות העברת מידע חיוני לציבור הנוסעים מבלי לסכן את יציבותן של מערכות המחשוב הלאומיות.▶ 18:36

צפייה בשיחה המלאה ביוטיוב ↗

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