כך היה אפשר לדעת אם אדם הוא שוטר או לא

באג באתר קרנות השוטרים חשף ממשק לבדיקת מ.ת.ז וקבלת אישור אם הם שוטרים
ממשק שחזור הסיסמה בקרנות השוטרים

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

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

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

אתר קרנות השוטרים היא חברה לתועלת הציבור – מלכ״ר שמסייעת לשוטרים ומספקת להם מגוון הטבות ומתנות. סוג של מועדון ח.ב.ר אבל עבור המשטרה. החברה הזו באמת חיובית ויש לה קשר הדוק למשטרת ישראל, החברה מוזכרת באתר הרשמי של המשטרה (police.gov.il). כל שוטר פעיל וגם שוטרים בגמלאות עם ותק מסוים נרשם אוטומטית למועדון הזה. בדיוק כמו כל מועדון שמאגד עובדי חברה (בחברה אצלי מדובר בהייטק זון).

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

ממשק שחזור הסיסמה בקרנות השוטרים
ממשק שחזור הסיסמה בקרנות השוטרים

זו נקודת התורפה של המערכת. אם אני מכניס כתובת תעודת זהות שאינה נמצאת במאגר השוטרים ומייל שקרי ([email protected] למשל), אני מקבל הודעה של ״משתמש אינו קיים במאגר.״.

משתמש אינו קיים במאגר.
משתמש אינו קיים במאגר.

אך מה קורה כאשר אני מכניס מספר תעודת זהות של שוטר? המייל הוא שקרי כמובן (אותו [email protected]) אבל מספר תעודת הזהות הוא של שוטר. כאן אני מקבל חיווי חד משמעי שמספר תעודת הזהות נמצא במאגר (כלומר של שוטר) אך המייל לא תקין.

כתובת המייל אינה תקינה, אך המשתמש קיים במאגר
כתובת המייל אינה תקינה, אך המשתמש קיים במאגר

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

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

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

ההתנהגות שצריכה להיות

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

בנוסף, צריכה להיות הגנת brute force – כלומר חסימה של יותר מכמה בקשות בו זמנית או הפעלת CAPTCHA בכל בקשה.

מציאת מספר תעודת זהות של שוטר פעיל

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

filetype:doc ת.ז. שוטר

התגובות כפי שנמסרו לכלכליסט והועברו לי:

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

רק הערה בנוגע לתגובה מקרנות השוטרים – זה סוג של להיט – היה אפשר למצוא גם מתנדבים במשטרה ולא רק שוטרים.

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

תמונה מצוירת של רובוט שמנקה HTML
יסודות בתכנות

סניטציה – למה זה חשוב

הסבר על טכניקה פשוטה וידועה מאד שאנו מפעילים על מידע לפני שאנחנו מציגים אותו ב-HTML באפליקציה או באתר.

צילום מסך של סוואגר
יסודות בתכנות

openAPI

שימוש בתשתית הפופולרית למיפוי ותיעוד של API וגם הסבר בסיסי על מה זה API

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