הבית היהודי חושפת את מספרי הזהות והכתובות של כל המתפקדים

עוד מפלגה חושפת את מאגר הבוחרים שלה כלפי חוץ ולאף אחד לא ממש אכפת
בדיקת חברות בבית היהודי

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

המהות הטכנית של ההתקפה:

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

בדיקת חברות בבית היהודי
בדיקת חברות בבית היהודי

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

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

http://ysvote.co.il/bait/list/get?id=XXXXXX

כלומר בקשת GET פשוטה מחזירה לי אובייקט JSON עם השם המלא ועם העיר במידה ומדובר במתפקד של הבית היהודי. אם הכנסתי מ.ת.ז לא קיים, אז אני מקבל אובייקט ריק. מה הבעיה? אני יכול לרוץ בסדר רץ מ:

http://ysvote.co.il/bait/list/get?id=000000000
http://ysvote.co.il/bait/list/get?id=000000001
http://ysvote.co.il/bait/list/get?id=000000002
...
http://ysvote.co.il/bait/list/get?id=999999999

[

משלוח של בקשה מוצלחת אל ה-API
משלוח של בקשה מוצלחת אל ה-API

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

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

מתוך גוגל.קום

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

לא רוצים להשתמש בגוגל? אין בעיה. דרך נוספת היא לבדוק את כתובת ה-IP של המבקש. הוא ביקש יותר מעשרים פעמים? לחסום אותו ומייד. משתמש לא אמור לבדוק יותר מ-10 או 20 פעמים. גם באתר הזה (למשל) יותר מ-10 פעמים של 404 יגרמו לחסימת ה-IP לכעשרים דקות. דבר שמונע דה-פקטו ניסיונות רחרוח. אם אני הטמעתי את זה בקלות באתר הפקקטה-וורדפרס שלי, שבת׳כלס יש בו רק מאמרים, גם מי שבונה API שמכיל מידע על עשרות אלפי מתפקדים יכול להשקיע חמש דקות בלעשות את זה.

נשאלת השאלה מדוע לאף אחד לא אכפת? התשובה היא פשוטה – כי אין ענישה ואין פעולה. כפי שעידו עצמו ציין, פניתי מספר פעמים לרשות להגנת הפרטיות (רמו״ט לשעבר) ולגורם הכי בכיר בה, לעו"ד עלי קלדרון, הממונה על הפיקוח. ולא קיבלתי מענה. על השולחן המטאפורי שלי יש אינספור מקרים דומים של הפרת פרטיות מצד גורמים ממשלתיים וחברות פרטיות. הייתי מצפה מהרגולטור שעל כל מקרה שבו מתברר שאין שום הגנה על מאגר מידע של אזרחים/לקוחות/מתפקדים, יעשה בירור מקיף כולל כתבי אישום פליליים על רשלנות. וזו רשלנות ממעלה ראשונה. לא מדובר בפרצה איזוטרית, לא מדובר באיזה האקינג מטורף. ברוט פורס היא שיטת התקפה בת 30 שנה. כל מתכנת אמור להכיר אותה לפני שהוא מתיימר למכור את שירותי התכנות שלו. אבל השתיקה של המדינה מאפשרת לכל חאפר לחגוג וכמובן גם לחברות גדולות כמו הוט, שפירצה עצומה שלה התגלתה לא מזמן, להתעלם מחוקרי אבטחה שמתריעים על בעיות רציניות אצלם. והרשות להגנת הפרטיות? אין לי מושג מה הם עושים. אם הם לא מתערבים במקרים כאלו, אז מה בדיוק הם עושים? בַּיָּמִים הָהֵם אֵין מֶלֶךְ בְּיִשְׂרָאֵל אִישׁ הַיָּשָׁר בְּעֵינָיו יַעֲשֶׂה.

פוסטים נוספים שכדאי לקרוא

תמונת תצוגה של מנעול על מחשב
פתרונות ומאמרים על פיתוח אינטרנט

הגנה מפני XSS עם Trusted Types

תכונה ב-CSP שמאפשרת מניעה כמעט הרמטית להתקפות XSS שכל מפתח ווב צריך להכיר וכדאי שיכיר.

גלילה לראש העמוד