אני אתחיל בשורה התחתונה: הודות לרשלנות מהממת, שכבר הזהירו מפניה בעבר הקרוב, פורצים שמזוהים עם פלסטין הצליחו להשחית מיליון דפים בישראל. כולל אתרים מרכזיים במיוחד. למרבה המזל, הפירצה היתה רק השחתה למרות שהפורצים היו יכולים לעשות נזק משמעותי הרבה יותר. הפירצה נבלמה ובינתיים הכל טוב באימפרית הסייבר שנמצאת לחופי הים התיכון.
ועכשיו לסיפור המתח שמלווה את הפירצה הזו: גולשים שנכנסו ל-Ynet ולאתרים נוספים בערב יום שבת ה-2.3. ראו, במקום את התוכן הרגיל, כתובת מפחידה שנראית כך:
Jerusalem is the capital of Palestine
#OpJerusalem
מדובר בפירצה שנקראת השחתה, והפירצה הזו יוצאת דופן מבחינת ההיקף שלה. כמיליון דפים בישראל נפרצו. פירצה בסדר גודל כזה (וחלקם לאתרים גדולים מאוד כמו Ynet וכלכליסט) היא הצלחה משמעותית לפורצים. בטח ובטח לפורצים פוליטיים כמו אנונימוס, שבדרך כלל מצליחים לפרוץ רק לאתרים קטנים בפרצות לא מחוכמות. ההישג גדול כיוון שחלק גדול מההשחתות האלו נותר באוויר זמן רב מאוד. אבל האמת היא? מדינת ישראל, אומת הסייבר, יצאה מאוד בזול. התוקפים היו יכולים לעשות נזק של מיליארדים במקום השחתה. גם ההשחתה, הודות לעירנות שלנו ושל מערך הסייבר (וכנראה גם של חוקרים אחרים שדיווחו), היתה לזמן מצומצם.
הסיפור של הפירצה הזו החל בציוץ של יובל אדם, מתכנת, אקטיביסט שאני באופן אישי מכיר מפעילותו בקריפטופארטי – תנועה חופשית למען פרטיות (והוא גם מרצה במסגרת התנועה הזו וכדאי להגיע להרצאות שלו). יובל גילה שאתר Ynet נפרץ וצייץ על כך בטוויטר:
נכנסתי לאתר Ynet וראיתי שדווקא האתר תקין. פניתי ליובל והמשכנו את השיחה. בעוד שהוא ראה שאתר Ynet מושחת אצלו, אני ראיתי את האתר כשורה. אנשים אחרים? ראו את האתר כשורה. מה קורה שם?
בבדיקה מהירה, עלינו על הסיבה. במחשב של יובל, ורק במחשב שלו, תוסף נגישות בשם nagich.co.il טען קוד ג'אווהסקריפט זדוני שהשחית את האתר (ועל כך בהמשך). אבל מדוע אני ואחרים לא ראינו את ההשחתה? אחרי בדיקות הבנו במהירות את הסיבה. יובל השתמש בשרת DNS של קלאודפלייר (1.1.1.1) ואני השתמשתי בזה של גוגל (8.8.8.8). ברגע שהחלפתי את שרת ה-DNS שלי, אז ראיתי את ההשחתה. בדיקה מהירה של nslookup (על חלונות, מהמכונה שלי) ו-dig (על לינוקס, מהמכונה של יובל) הראתה מייד את הבעיה:
כשתוקף מצליח להשתלט על רשומה בשרת DNS, הוא יכול להפנות את התנועה אל שרת בשליטתו במקום לשרת המקורי. וזו ההתקפה שהיתה פה. כל מי שרצה להגיע אל שם המתחם nagich.co.il שבו היה את סקריפט הנגישות, הופנה אל כתובת ה-IP שמספרה 172.81.182.63 במקום לכתובת ה-IP הנכונה של השרת: 212.179.58.35. בתחילה חשבנו שאולי קלאודפלייר נפרץ.
ואז החלו לזרום עוד דיווחים. על אתרים אחרים.
הבנו שהבעיה רחבה יותר מקלאודפלייר. פשוט ראו את הבעיה בקלאודפלייר כי מדובר בשרת DNS מהיר מאוד, שעדכונים ברשם שמות המתחם המקומיים נכנסים אליו מאוד מהר. אבל עוד ועוד שרתי DNS החלו להתעדכן ויותר ויותר אנשים החלו לראות אתרים מושחתים. לא רק Ynet אלא אינספור אתרים אחרים. כמה? באתר nagich מתגאים במיליון דפים ובחברות הגדולות ביותר במשק שמשתמשות בהם.
זה השלב שבו יובל פנה אל מערך הסייבר, כי מה שקרה הוא שרשומת שם המתחם (שנמצאת ב-box.co.il) הושחתה. לא ברור אם בגלל שהחשבון של nagich נפרץ או שהיתה איזו בעיה בשרתי box.co.il (ההימור שלי הוא שהראשון).
למרבה השמחה העניין תוקן אחרי שעה.
המתקפה הזו מראה שוב, עד כמה התשתיות בישראל במצב גרוע במיוחד. התוקפים היו יכולים לעשות נזק משמעותי הרבה יותר. הרבה הרבה יותר. אבל בחרו לבצע השחתה מטופשת ללא טעם שגם משכה תשומת לב וגם היתה קלה לאיתור. אם הם היו עושים דברים יותר בעייתיים, מדינת ישראל ואזרחיה היו בבעיה הרבה יותר קשה.
מה קרה שם באופן טכני
מה שקרה הוא, שהפורצים הצליחו לשנות את רשומת ה-DNS של שם המתחם של השירות nagich לשרת זדוני.
מה הבעיה? אתר nagich הוא לא סתם אתר. הוא אתר המספק תוסף נגישות. תוסף נגישות הוא קוד ג'אווהסקריפט קטן שרץ באתר שבוחר להשתמש בשירות הזה ונותן לו כל מיני אפשרויות. בדיוק כמו למשל כפתור 'לייק' של פייסבוק. סרטון הטמעה של יוטיוב באתר וכו' וכו'. אבל ברגע שאנחנו נותנים לאתר אחר להריץ אצלנו קוד באתר, אנחנו מאפשרים לו לעשות אצלנו הכל. כי קוד הג'אווהסקריפט הזה יכול להיות כל קוד. קוד שמציג יכולת הקטנה והגדלה של טקסט, אבל גם קוד שגונב עוגיות, קוד שמקפיץ חלונות, קוד שמשנה את התוכן, קוד שעושה רידיירקט – כל דבר שג'אווהסקריפט יכול לעשות.
ברגע שהתוקפים הפנו את התנועה מהשרת הלגיטימי לשרת הלא לגיטימי שלהם, הם הזריקו קוד זדוני שעשה defacement, זה הכל:
document.write('<body bgcolor=black><center><h1><font color=red>Jerusalem is the capital of Palestine<br>#OpJerusalem</font></h1></center>')
זו גם הבעיה בתוספים כאלו, שפירצה במקום אחד יכולה להפיל המון אתרים. מיליון דפים במקרה הזה. מבחינת אנונימוס זה ג'קפוט ענקי. המזל הגדול הוא שהם הסתפקו בהשחתה ולא הכניסו קוד זדוני ושקט יותר.
כדי להוסיף חטא על פשע, נעם רותם, ההאקר, האקטיביסט וחובב המאפים הידוע, דיבר על סכנות תוספי הנגישות בפודקאסט סייבר סייבר וחזה בדיוק את הקטסטרופה הזו בדיוק.
המניעה המקצועית
איך מונעים כאלו תקלות? ראשית, הרשלנות כאן של nagich שלא הגנה על רשומת ה-DNS שלה באותנטיקציה כמו שצריך. אבל הרשלנות היא גם של האתרים שהטמיעו אותם ולא נקטו במדיניות CSP נכונה. מדיניות CSP נכונה, עם חישוב SHA256 של הקובץ, היתה מונעת טעינה של סקריפט שעבר שינוי. אבל הפעולה הפשוטה הזו היא כנראה מעבר ליכולות של אתרי האינטרנט הישראליים.
27 תגובות
איך הם מתגברים על ה- ssl handshake? אם אני פונה ב- https הסקריפט לא היה אמור להיטען בכלל
ועכשיו גיליתי שהם פשוט הנפיקו תעודה ב- "lets encrypt authority x3" עם תוקף של מאתמול עד מאי 2019. לא יאמן
אם כך פתרון אפשרי לבעייה הזאת הוא לבצע certificate pinning, לא?
אבל.. אם הם היו משתמשים בCSP, תוסף הנגישות היה מפסיק לעבוד עם כל עדכון..
לא עדיף להם כבר לאחסן את הסקריפט על השרת שלהם?
טעינת התוסף בעזרת כתובת SSL הייתה מונעת את הפריצה?
אשמח לתיקון אבל עם גונבים לצד שלישי שאני משתמש בו את ה dns אז מימוש של csp לא היה עוזר פה, לא?
אם משתמשים ב-SHA256 אז בוודאי שכן 🙂 אני אכתוב מאמר על זה בהמשך. מבטיח.
פשוט מאוד. הדומיין בשליטתך? אתה מנפיק תעודה חדשה. יאי 🙁
כתבה מעניינת, אבל היה יעיל יותר אם בסיכום- הייתה הפניה לאיזו כתבה על המילים: "מדיניות CSP נכונה, " כך שמי שכן רוצה לשפר – יהיה לו את קצה החוט.
מה שמישהו אמר
על זה נאמר karma is a bitch
הבעלים של נגיש חשבה שהיא יותר חכמה מכל העולם (אולי פורמלית בעלה מחזיק את העסק אבל היא הרוח החיה), התנהגה לאנשים בזלזול מחפיר, החל מהעובדים והלקוחות… על זה נאמר לא לעולם חוסן.
אגב גם לאדם המנכ"ל לא חסר באותו יחס, מצא מין את מינו.
אנשים שוכחים לפעמים שהיום הם למעלה אבל מחר הם יכולים להיות למטה…
לך תדע עכשיו כמה תביעות הם יקבלו על הנזק שנגרם.
שומר נפשו ירחק
וואו, חשבתי שאני לבד?!
כמי שמכיר את אדם אישית, ולא מעריך בלשון המעטה… הם מעולם לא חשבו שעסק הנגישות יצליח להם, והם היום מספקים שירות שלא באמת עובד למיליון דפים, מאות אתרים ומידע רגיש מאד. האמת, זה עצוב, כי מכל חוק הנגישות, צמחה חברת נגיש בקליק, חבורה של רמאים.
והם גם יקרנים. אז מה היה לנו פה? חברה יקרנית, אנטיפאטית, וחפיפניקית. אבל מה – שולטת בחצי מהשוק. כנראה שעם קשרים לא צריך פרוטקציה…
במום השירות המזוויע הזה, אני משתמש בשירות המאוד נחמד וזול של נגישלי
https://nagishly.co.il/
אין לי מושג לגבי איך הם עם אבטחה, יכול רק לקוות שהם טובים מנגיש בקליק. אבל לאור המקצועיות שלהם בשאר התחומים אני מניח שהם לא תחמנים שניסו לחטוף את השוק ואז לנוח על זרי הדפנה. הקיצר – שירות מאוד מומלץ לבוני אתרים (אין לי שום קשר לחברה, אני בונה אתרים רגיל).
מי שמשתמש בתוסף נגישות חיצוני גם לא מנגיש את האתר שלו באמת וגם מסכן את הגולשים והמבקרים שלו, הנגשה אמיתית יכולה לההתבצע טוב רק אם לוקחים את זה משלב האיפיון ובמהלך כל השלבים של חי הפרויקט כולל הפיתוח
אי שם בתחילת הדיבור על נגישות, מישהו ניסה ליצור מערכת שתשפר נגישות באמצעות CSS בלבד, דהיינו, חברה שתתחזק CSS יותר מונגש עבור כל אתר שיחפוץ בכך, ובלחיצת כפתור הלקוח יחליף את כל עיצוב הדף.
חברים ואני באנו לטעון שזו פרצה מושלמת, וכנגד, היו שטענו שמדובר ב CSS בלבד ולא בסקריפט [מה שאומר שמאז ומעולם כולם הבינו שאסור! אסור! אסור! לתת לצד שלישי אפשרות לתחזק סקריפט שרץ על האתר שלך]
אז פשוט הראינו איך ניתן באמצעות CSS לא רק לשנות את האתר, להשחית, להטעות.
אלא בכמה וכמה צורות גם לגנוב סיסמאות, לקבל מידע, והכל באמצעות CSS בלבד…
אתה בטוח שזה לא נועם ההאקר ביצע את הפריצה? אם אני הייתי רוצה לפרוץ לאנשהו הייתי גם מקליט פודקאסט בדיוק לפני שאני פורץ בשביל אליבי מושלם 🙂
כתבה בגדול מיותרת שמעודדת המון FUD לא מבוסס עם חצי פתרונות שטכנולוגיים נכונים ומציאותית רחוקים קילומטרים מהטמעה מוצלחת בכל מקום בעולם ולא רק בארץ. לא, אף אחד לא באמת הולך לעדכן באתר שלו כל שבוע את הnonce שלו בהתאם לscript-src של הCSP2. תעשה את זה ואפקטיבית תחרבש עדכונים עתידיים של המוצר, דבר שגם פוגע באבטחה. עוד משהו – אין דבר כזה אונטנטיקציה בDNS.
בדיוק בשביל זה מספקים versions בכל מוצר SAAS. לא מספק versions? אז אני לא מטמיע אותך באתרים רגישים. כן, ככה אני ואחרים עובדים באתרים רגישים מספיק.
ה-SAAS לא יכול להתחייב ל versions? אז סימן שיש לו בעיות במוצר ואני בועט אותו החוצה. אז לאתר של מקדונלדס? לא הייתי עושה את זה. אתרים אחרים? כן ואני מבצע את זה. overhead? ממש לא. כמה כבר גרסאות צריך לתוסף נגישות?
אותנטיקציה של DNS? הכוונה היא לכך שכנראה שם המשתמש והסיסמה ש-nagich השתמשו בהן לחשבון של box היו זהות לשמות משתמש וסיסמה שדלפו – כלומר מי שרשם את הדומיין השתמש באותה סיסמה ושם משתמש בכמה חשבונות שונים שאחד מהם דלף.
איך ייתכן שבנק, שיש לו רגולציה שאוסרת שימוש בשרתים ציבוריים, משתמש בשרתים ישראליים, ללא אבטחת מידע איכותית?
זה לא nagich שהתרשלו, ומי אמר שאנונימוס לא שתלו קוד אחר לפני? זה אבטחת המידע של בנק הפועלים, ושל מערכות אחרות שהתירו קוד כסה…מי יודע כמה מידע זלג?!
לא הבנתי את הקטע עם הsha256..
הכוונה לעשןת fetch לסקריפט, לבדוק עם ההאש ורק אז ליצור אלמנט script?
מזעזע ומרתק.
רק שאלה, אם אתה משתמש ב־CSP לתסריטים אז אתה מונע עדכון שלהם בצד שלישי. ואם כך, אז למה לא פשוט להתקין אותם על השרת שלך? כך אתה לא צריך לסמוך על שום צד שלישי.
יש פה מידע לא מאומת ושגוי בכתבה.
בנק הפועלים לא היה קורבן כי לא הטמיעו את הקוד ב iframe. לכתוב בצורה לא אחראית ולהפיץ שטויות זה בדיוק מה שהתעשייה הזאת לא צריכה.
תבדוק ואז תכתוב.
אני בכלל לא כתבתי על בנק הפועלים…. אתה בטוח שקראת את הכתבה שאתה מגיב לה?
פוסט מעניין מאוד.
אגב פתרון של הכנסת הרכיב נגישות בתוך iframe עם sandbox לא היתה פותרת את הבעיה מהצד של האתר המארח? בפתרון זה, במקרה הגרוע ביותר הרכיב יציג תוכן לא מתאים. כמובן שזה לא פתרון לרכיב הנגישות.
״לא הגנה על רשומת ה-DNS שלה באותנטיקציה כמו שצריך״ – אתה יכול להסביר מה היה צריך לעושת פה?