כפי שפורסם בהארץ, חדשות 12, כלכליסט, Ynet, העין השביעית וכלי תקשורת רבים נוספים – גיליתי פרצת אבטחה משמעותית במערכת אלקטור – מערכת ניהול הבחירות שהליכוד משתמש בה על מנת לנהל את כל המידע הקשור לבחירות. המערכת מאפשרת לשלוח סמסים, להציג מצביעים בפילוחים שונים, לשגר תמריצים לפעילים דרך אפליקצית קצה מיוחדת, להציג סטטיסטיקות ועוד שפע של פעולות. המערכת באמת משוכללת ונותנת יתרון משמעותי למי שמשתמש בה. הליכוד, כך גם יודו אלו שלא תומכים במפלגה, הוא באמת רמה אחת מעל שאר המפלגות בדיגיטל.
באבטחת מידע פחות.
הליכוד העלה אל המערכת את ספר הבוחרים המלא שניתן לו על ידי ועדת הבחירות. בספר הבוחרים המלא יש את הפרטים של כל אזרח ישראלי הזכאי להצביע בבחירות. שם מלא, כתובת מעודכנת, מספר תעודת זהות, מין וכתובת הקלפי ומספרה. אל הפרטים האלו שודכו פרטים נוספים הנמצאים בידי הליכוד על חלק מהאזרחים: מספר טלפון, שם אב, שם אם וקשרים משפחתיים. מדובר באוצר מידע נדיר ובלום על לא פחות מ-6,453,254 אזרחי ישראל שכל ממשלה זרה, ארגון ביון או חברה מסחרית היו רוצים להחזיק.
לא מעט פעילי פרטיות, מומחי רשת ואבטחה הודאגו מכך שהליכוד עושה שימוש במערכת ובאינטרנט לניהול המידע הזה. בכתבה בעין השביעית יש תמצות מצוין של החששות וגם הכתבת רפאלה גויכמן מדה מרקר כתבה על החששות באופן מסודר באייטם מעולה כמיטב המסורת שלה. מנכ"ל חברת אלקטור הביע בטחון עז באבטחת המאגר. הנה כמה ציטוטים:
"חשוב לי שהחברה תעמוד בסנטדרטים גבוהים של פרטיות ואבטחת מידע", אמר לכלכליסט מייסד ומנכ"ל אלקטור תוכנה, צור ימין. "אסור לי להתייחס בזלזול לדברים האלו. זה משהו שחשוב לי מאוד. מבחינה אישית, אני אזרח ישראל ולא הייתי רוצה שהפרטים שלי ידלפו. מבחינה מקצועית, זו המחויבות שלי למפלגות. אם אני לא אספק אבטחה מרבית לפי התקנים הכי מחמירים הן ילכו למתחרים שלי". מתוך כלכליסט
"המערכת נכתבה על ידי אנשי מקצוע בכירים בתחום אבטחת המידע ופיתוח מערכות תוכנה. לא התפשרנו על בניית מערכת שתסתפק בלספק את הסחורה: אנחנו רוצים שזה יעבוד טוב ויאובטח בתקנים המחמירים ביותר." מתוך האתר של אלקטור.
איך נראית מערכת שנכתבה על ידי על ידי "אנשי מקצוע בכירים בתחום אבטחת המידע ופיתוח מערכות תוכנה". בואו ואספר לכם על "הפריצה". איך פרצתי?
שלב ראשון: השתמשתי בכלי הפריצה המחוכם "דפדפן" ונכנסתי לאתר אלקטור.
שלב שני: עשיתי view source. זה מה שראיתי בתוך קובץ הבאנדל היחיד שיש שם:
שלב שלישי: באמצעות כלי ההאקינג cmd c + cmd v עשיתי העתק והדבק של הכתובת אל ה"דפדפן". התגלתה בפני רשימת מנהלי החשבונות השונים. רובם של חשבונות לא מעניינים. ניגשתי אל זה של הליכוד
שלב רביעי: חזרתי לאתר אלקטור ובאמצעות כלי הדיפ ווב הידוע בכינויו "עכבר", לחצתי על הכפתור השחור הגדול שעליו כתוב "התחבר" (ניסיון התכנות שלי בהחלט משחק כאן תפקיד) והקלדתי את הסיסמה ואת שם המשתמש (טלפון) ולחצתי על "התחבר".
שלב חמישי: HACK THE PLANET
הייתי בתוך המערכת עם גישה מלאה להכל.
אז אילו כשלים תכנותיים היו פה?
כשל ראשון – API שעובד ללא אותנטיקציה מינימלית
כל API שהוא צריך לבצע אותנטיקציה עם token שנמצא בתוך http only cookie בלבד.
כשל שני – אין אימות דו שלבי
מערכת רגישה כל כך חייבת להיות עם אימות נוסף חוץ מסיסמה. בדיוק בגלל כשל כזה.
כשל שלישי – אין מערכת לוגינג
כשהתחברתי אל האתר עשיתי את זה תוך שימוש ב-proton VPN והתחברתי ממדינת עולם שלישי כלשהי. נכון, VPN הוא לא כלי של אנונימיות אבל הוא כלי מצוין כיוון שהוא מאפשר לי לראות אם מישהו מטמיע הגנה בשרת. מערכת הגנה טובה על מערכת ישראלית רגישה שאמורה להיות חשופה לישראלים בלבד – אמורה למנוע גישה ממדינות אחרות. המערכת גם נמצאת על קלאודפלייר, היה אפשר לעשות את זה בקלות.
כשל רביעי – אין הגנה מפעילויות חשודות
עשיתי באתר את המינימום של המינימום רק בשביל להבין שלא מדובר בנתוני דמה ומייד מיהרתי לדווח למערך הסייבר. אבל, וזה אבל גדול, ברגע שהמערכת מזהה יותר מדי שאילתות היא אמורה לפעול ולעצור את הבעיות האלו. בטח ובטח כשמדובר בהורדה של קבצים גדולים.
לסיכום – אני כל הזמן צוחק שאני עושה view source ומקבל תהילה על "פריצות". זה לא מאוד רחוק מהמציאות אבל לא האמנתי שיבוא יום וזה אשכרה יקרה. view source.
27 תגובות
מה הכוונה "קובץ הבאנדל"?
בדרך כלל באתרים גדולים יחסית, מקמפלים את ה-javascript שכתוב בכמה קבצים (כולל גם כל מני ספריות וכו'): מכניסים אותו ל-babel שממיר קוד מודרני לקוד שעובד בכל הדפדפנים, עושים minify כדי שהקוד יטען יותר מהר ואז הופכים את כל זה לקובץ יחיד שנקרא ה-bundle.
Do a view source on the main page. The link to the bundle is
/bundle770.js
alert('hi')
עדיין אני רואה ב-src של הבנדל כיצד נראים ה-API שלהם, הגדרות של אינמים. שמישהו ילמד אותם לעשות אגליפיי
אם אתה חושב ש uglify קשור בצורה כלשהי לאבטחת מידע אז כנראה שאתה כותב קוד בדיוק כמו החברה של הליכוד.
ואם היית מבין טיפה היית מבין שאי אפשר להסתיר את ה api. מה שאפשר לעשות זה להגן עליו.
היי רן,
כשל חמישי – איך הסיסמאות Plain text ולא עברו Hash כלשהו? פשוט מביך.
ולמה מלכתחילה יש בכלל API של get-admin-users/ ?!
אולי בשלב הפיתוח רוצים לאפשר למתכנתים/בודקים להתחבר עם שמות משתמשים.
אני מכיר את זה שעושים בדיקות וכל כמה שעות מישהו משנה סיסמה או מוחק שם משתמש.
פשוט שכחו למחוק את זה
זה נראה כמו backdoor שבני ה 3 שכחו לסגור
עכשיו ראיתי את הסרטון שהליכוד פרסם להדרכה על האפליקציה
יאיר רביבו מרחוב האיילון בלוד הוא ראש העיר…
עצוב שזה המצב בהייטק הישראלי.
מנגד, לא נעים שאידיאולגיה אנטי כלשהי.. גורמת לאנשים לזלזל באינטלגנציה של הגולשים באתר שלו..
לא חושב שהליכוד כשלו כשהשתמשו בחברה טכנולוגית שזה התחום שלה ושמצהירה שהמערכת ברמת אבטחה גבוהה.
בדיוק כפי שלא ליגלגת על מי שהעלה סרטונים לגוגל ובסוף דלפו כפי שהצהירו והתנצלו שבוע שעבר.
המצב בשוק שיש הרבה חברות זבל
על הליכוד יש אחריות גדולה כשיש להם את המאגר הזה
ליפני שהם מעלים אותו לגורם שלישי לדעתי עליהם לוודא שהגורם עומד בתקן מסוים
ולהביר אותו מבחן ביטחון מידע פשוט דרך חברה שמתמחה בזה.
מה עם הבעיה הכי חמורה, שלא מצפינים סיסמאות?
איך אפשר לקרוא ל API הזה מבלי להיות מחובר ?
צריך כנראה יוזר…
מקווה שאתה לא מפתח תוכנה עם נתונים רגישים…
אני רק שאלה: האם מתוך זה שהשתמשת בכלי ההאקינג המתוחכם cmd+c, ולא בכלי ההאקינג הפופולרי יותר ctrl+c, אנחנו יכולים להסיק שאתה עובד על מק?
נראה כיאילו תיקנו את זה כבר, אני מקבל 404
אבל שעושים prettify לbundle זה נהיה מעניין איך אפשר לפשל בכל כך גדול
הי רן לא כל כך הבנתי מהמאמר שלך פה את המצב, הנתונים דלפו מהאפליקציה ויתכן שעוד מעט יופצו לכל עם ישראל כמו האגרון או שזה תקלה שאתה גילית וכבר טיפל ובה?
יותר חמור, לדעתי, הוא השימוש "הרגיל" של האפליקציה.
עובדות:
1. לאפליקציה אלקטרור יש גישה ל אנשי הקשר שלכם.
2. לרוב המוחלט של אנשים עם זכות הצבעה בארץ יש טלפון חכם + חשבון WhatsApp.
3. אם תנסו (ובבקשה – תנסו אל תאמינו לי…) לחפש אדם בפייסבוק שיש לכם רק את השם הפרטי שלו אבל הוא מופיע אצלכם ברשימת קשר בטלפון וגם ב WhatsApp וגם אתם מופיעים אצלו, ועד רבה, גם מתכתבים איתו ב WhatsApp – פייסבוק ימצא אותו בקלות עבורכם גם אם השם הפרטי שלו מאד נפוץ.
ספציפית ברוב המוחלט של מקרים אצלי – אם חפשתי את אותו אדם בפייס עוד לפני התכתבויות איתו, או לפני שאני או אותו אדם הוסיף אותי ל WhatsApp שלו – תוך 24-48 שעות אותו אדם "יקפוץ" לי בפייסבוק בתור Suggested Friend או לכל הפחות ברשימה של People you may know.
מזכיר לכם את עניין "קיימברידג' אנליטיקה" והשפעתה על דעת המצביעים בבחירות בארהב ועל צוקרברג שהגיע להעיד וכו וכו…
תזכורת: שם הגישה למידע על האנשים בפייסבוק הגיע דרך אפליקציית פייסבוק תמימה לכאורה, שבה המשתמש מאשר גישה למידע שלו אבל לא רק – הוא גם מאשר גישה למידע *של כללללל החברים שלו בפייסבוק*. אנשים באופן אוטומטי אישרו ומשם בדרך כלשהיא (מודה, לא זוכר את הפרטים בדיוק) קיימברידג' אנליטיקה הצליחה לדלות מידע ולשלוח מסרים / פרסומות כדי להשפיע על דעת המצביעים בארהב בין אם להצביע לטרמפ ובין אם לא ללכת להצביע (הרי מי שלא מצביע גם משפיע).
אפליקציה שתאפשר גישה לחברים שלכם בפייסבוק, מאז אותו מקרה, אמורה להיות חסומה.
אבל, ברגע שמפנימים את העובדות 1-3 שרשמתי מעלה – אפשר להבין איך "ידנית" האפליקציה בשימוש ההכי טבעי שלה, בעצם יכולה לעשות לנו ולבחירות את טריק "קיימברידג' אנליטיקה" דרך אפליקציה ובמעקף הפיתרון הישן שכנראה נחסם בפייסבוק.
והנחה שלי בתור אדם שמגיע עם רקע רב בפיתוח תוכנה: אם אפשר לבצע את העניין ידנית – אפשר לפתח פיתרון כלשהו לאוטומציה!
אשמח מאד לתגובות על העניין.
עדי
למה הטישטוש?
אז סיכמנו שיש קובץ באנדל אחד לכל הסקריפטים. אבל איך הגעת לשורה הספציפית? סתם חיפשת את המילה "admin"?
למה בתמונה השנייה הכתובת מטושטשת?
elector.****get-admin-users
אני מבין שכתוב משהו אחרי ה-co.il ולפני ה-get-admin-users, מה זה?
למה ביצוע הזדהות עם עוגיית http only היה מונע את הפירצה הזו?
מה זה הכלי cmd c + cmd v ואיך משיגים אותו?
האם זה בלינוקס או בווינדוס?
אם אפשר הסבר יותר מפורט
תודה רבה רבה!
מדובר בציניות של הכותב, ctrl+c העתק וctrl+v הדבק