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

ACINQ, החברה שמפתחת את Eclair, תוכנת צומת לייטנינג לרשת הביטקוין, שחררה ב-15 באוקטובר את גרסה 0.14.4. הגרסה סוגרת פרצה שבה דף אינטרנט זדוני יכול היה לגרום לדפדפן של מפעיל הצומת לשלוח פקודות מאומתות לצומת שלו. התרחיש דרש שה-API של הצומת יהיה זמין לדפדפן, ושהמפעיל ייכנס לאתר הלא נכון באותו דפדפן שבו שמורים פרטי הגישה.
כדי להבין למה זה רגיש, כדאי לזכור איך לייטנינג עובד. מדובר ברשת תשלומים שיושבת מעל הבלוקצ'יין של ביטקוין, והכסף בה נעול בערוצי תשלום פתוחים בין צמתים. הצומת מחזיק את המפתחות מחוברים לרשת כל הזמן, ולכן מבחינה מעשית הוא מתנהג כמו ארנק חם. מי ששולט בממשק הניהול שלו שולט גם בכסף שבערוצים.
איך דף אינטרנט מגיע לצומת שלכם
החשיפה דורשת כמה תנאים שמתקיימים יחד. ה-API של Eclair צריך להיות מופעל, הדפדפן של המפעיל צריך להגיע אליו ברשת, ופרטי הזדהות מסוג HTTP Basic צריכים להיות שמורים כבר באותו דפדפן. התנאי האחרון מתקיים בקלות רבה יותר ממה שנדמה. מספיק שנכנסתם לממשק דרך הדפדפן והקלדתם שם משתמש וסיסמה שנשמרו בו.
לפי הערות השחרור, דף זדוני יכול לשלוח לכתובת ה-API טופס HTML פשוט. הדפדפן מצרף לבקשה את פרטי הגישה השמורים באופן אוטומטי, כי מבחינתו זו פנייה רגילה לכתובת שהוא מכיר. התוקף לא רואה את התשובה שחוזרת מהצומת, אבל הפקודה המאומתת עצמה מגיעה לצומת. באבטחת רשת קוראים לדפוס הזה זיוף בקשות בין אתרים (CSRF).
היכולות של ה-API הזה הן מה שהופך את התרחיש למדאיג. הוא קורא את מצב הצומת, פותח וסוגר ערוצים, שולח ומקבל תשלומים. גם תוקף שלא רואה תשובות יכול לנסות להפעיל פקודות כאלה בעיוורון.
החסימה בגרסה 0.14.4
דפדפנים מצרפים לבקשות כאלה כותרת בשם Origin, שמציינת מאיזה אתר הגיעה הבקשה. Eclair בחרה בפתרון גורף. כל בקשה שמגיעה עם כותרת Origin מקבלת שגיאת HTTP 403 עוד לפני שהנתיב ב-API רץ, בלי קשר לערך שבכותרת. גם ממשק שמתארח באותו מקור שבו יושב ה-API נחסם.
| סוג הגישה ל-API | מה קורה אחרי העדכון |
|---|---|
| טופס מתוך דף אינטרנט זדוני | נחסם, שגיאת 403 |
| ממשק דפדפן לגיטימי, גם מאותו מקור | נחסם, נדרש שרת ביניים |
| curl | עובד כרגיל |
| eclair-cli | עובד כרגיל |
המחיר נופל על מי שבנה ממשק ניהול שרץ ישירות בדפדפן. ממשקים כאלה צריכים עכשיו שכבת שרת (backend) שיושבת בין הדפדפן לבין Eclair ומעבירה את הפקודות. לפי המתחזקים, curl ו-eclair-cli לא שולחים כותרת Origin, ולכן מי שמנהל את הצומת משורת הפקודה לא ירגיש בשינוי.

למה הסיסמה וההגבלה לכתובת המקומית עדיין קובעות
הבדיקה החדשה מטפלת בבקשות מדפדפנים בלבד. לקוח שאינו דפדפן יכול פשוט לא לשלוח את הכותרת, כך שהיעדר Origin לא מוכיח שהבקשה מורשית. האימות והגבלות הרשת נשארים חיוניים. pm47, אחד המתחזקים של Eclair, אומר שה-API צריך להישאר קשור לכתובת loopback, כלומר להאזין רק לבקשות מאותו מחשב שעליו רץ הצומת.
בפועל, צומת שה-API שלו פתוח לרשת הביתית או לאינטרנט נשאר חשוף גם אחרי העדכון לכל מי שמשיג את הסיסמה. העדכון סוגר את המסלול שבו הדפדפן שלכם שולח את הפקודה בשביל התוקף, ואת שאר ההגנות אתם עדיין צריכים להגדיר בעצמכם.
לוח הזמנים של התיקון
- 15 בספטמבר: התיקון לבעיית הדפדפן מוזג לקוד ב-pull request מספר 3380.
- 12 באוקטובר: CryptoSlate דיווח על תיקונים נוספים ב-Eclair, לבעיות בעמלות מימון ערוצים ובמנגנון החתימה, שעלולות היו לשרוף ביטקוין בעמלות.
- 15 באוקטובר: גרסה 0.14.4 שוחררה וכוללת את התיקונים האלה יחד.
מי שמעדכן עכשיו מקבל בחבילה אחת גם את ההגנה מפני מתקפת הדפדפן וגם את התיקונים לעמלות ולחתימה. מי שמריץ רק גרסאות רשמיות ולא קוד מהענף הראשי קיבל את התיקון לדפדפן רק עם השחרור ב-15 באוקטובר, כחודש אחרי המיזוג.
צעדים למי שמריץ צומת Eclair מישראל
בין אם הצומת שלכם רץ על מחשב ביתי ובין אם על שרת בענן, אפשר לצמצם את הסיכון בכמה פעולות:
- בדקו איזו גרסה רצה אצלכם. גרסאות מוקדמות מ-0.14.4 לא כוללות את החסימה.
- לפי המתחזקים, אפשר לעצור את Eclair, להתקין את העדכון ולהפעיל מחדש בלי לסגור את ערוצי הלייטנינג, כך שאין צורך לפתוח אותם מחדש.
- ודאו שה-API מאזין לכתובת המקומית בלבד, 127.0.0.1, ולא לכל ממשקי הרשת של המחשב.
- אם שמרתם בדפדפן את פרטי הגישה ל-API, מחקו אותם. גלישה רגילה באותו פרופיל שבו שמורה סיסמה לצומת היא התנאי שהמתקפה נשענה עליו.
- אם אתם משתמשים בממשק ניהול גרפי שרץ בדפדפן, בדקו מול המפתחים שלו אם כבר הוסיפו שרת ביניים. בלי זה הממשק יפסיק לעבוד אחרי העדכון.
צומת לייטנינג מחזיק כסף שמחובר לרשת, ולכן הגיוני לשמור בו רק את מה שאתם צריכים לתשלומים שוטפים. את החיסכון לטווח ארוך עדיף להעביר לאחסון מנותק, כפי שמוסבר במדריך לשמירת ביטקוין בבטחה.
אהבתם את הכתבה? שתפו אותה
שלחו לחבר שמתעניין בקריפטו, בקבוצת הוואטסאפ או בטלגרם.


