פרצה במאגר לשכת עורכי הדין

מאת: מיכאל האפרתי

ספר עורכי הדין

אתר לשכת עורכי הדין כולל את “ספר עורכי הדין”, מאגר המכיל את פרטיהם של כל עורכי הדין בישראל החברים בלשכה, ומאפשר ביצוע חיפושים לפי תחומי התמחות או שם.

אם לדוגמה, אחפש את עורכי הדין ששם משפחתם “לוי”, חלון החיפוש ייראה כך:

ולאחר לחיצה על “חיפוש” תופיע ההודעה הבאה:

גולש/ת יקר/ה,

“ספר עורכי הדין” (להלן: “המאגר”) אליו הינך נכנס/ת, הוא רכושה הבלעדי של הלשכה ומיועד לשימוש פרטי בלבד.

מבלי לגרוע מאיזה מתנאי השימוש באתר זה, באשרך הודעה זו הינך מתחייב/ת שלא לעשות כל שימוש אחר במאגר או בכל חלק ממנו.

לחיצה על “אשר” מהווה אישור המשתמש לאמור בהודעה.

או אז מופיעות תוצאות החיפוש.

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

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

בבואי לבדוק עד כמה מוגן המידע, השאלה הראשונה שתישאל היא האם ניתן להגיע למידע שאליו הגענו בעקבות השאילתה, וההסכמה לתנאי השימוש, שלא בדרך הרגילה, וללא לחיצה על “אשר” בחלון תנאי השימוש, אלא ישירות.

התשובה היא לצערי – כן.

כתובת הדף אליו הגענו בסופו של דבר היא: http://www.israelbar.org.il/lawyer_list_inner.asp?id=16214

מה שאומר שאם נכניס מספר כלשהו אחרי ה”id” נוכל להגיע לכל עורך דין ועורך דין.

בדיקה העלתה שהרשומות מתחילות ממספר 2, ורצות עד כ-40,000.

כיצד למנוע: נותנים לכל דף ודף כתובת שלא ניתנת לחיזוי עם מרכיב אקראי שאין בינו כל קשר לתוצאה.

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

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

הגבלת שאילתות

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

  1. מספר התוצאות ששאילתה יכולה להניב
  2. מידע מינימלי שחייב להיות חלק משאילתה

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

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

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

לא על כל מאגר מידע צריך להגן

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

אודות bhavin189

bhavin189 (שם בדוי) הוא מתכנת הודי מהעיר Surat שבהודו, המציע את שירותיו באתרים רבים, לרבות עצות בYouTube כיצד לבצע טריק כזה או אחר.  bhavin189  אינו האקר, ומעולם לא פרץ לאתר כלשהו. הוא מתמחה בתחומים הבאים:

Form-fillers – SERPS – Adwords automation – Spiders – Crawlers – Extractors  – Google automation – Account-creators – Bots – Craigslist tools – twitter tools – SEO tools – social networking tools – facebook, orkut, bebo etc.
C#, VB.Net, VB6, VC++, MSXML, SQL, and VBScript.
PHP, javascript, HTML, XML, MySQL, SQLLite
Win32 APIs, Windows hooking, Localization, i18n, and multi-lingual solutions.

bhavin189 התבקש (באותו תסריט דמיוני) לבצע פרויקט במסגרתו יישלף המאגר. לא נדרש כאן האקר (ואין צורך או סיבה לפרוץ לאתר), שכן המידע חשוף וגלוי לכל. צריך רק לקחת. bhavin189  התבקש לפתח תוכנה בvb.net אשר תרוץ על כל הדפים האפשריים החל מhttp://www.israelbar.org.il/lawyer_list_inner.asp?id=2  ועד http://www.israelbar.org.il/lawyer_list_inner.asp?id=40000 . הוא פיתח את התוכנה בשעתיים, זאת מבלי שהוא מבין מילה אחת בעברית. הרצת התוכנה ארכה כיומיים, והניבה קובץ csv.

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

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

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

ואז לקבל מאגר מידע מנותק מהאתר ממנו הוא הגיע:

לבסוף נותרה בעיה קטנה: שמות המכילים מרכאות (“) שיבשו את הייבוא, ומאחר ואני פרפקציוניסט היה לי חשוב לוודא שגם לבעיה זו יש פתרון, ואכן הפתרון נמצא: יצירת קובץ בו כל שדה מופרד בתו “טאב” (tab) במקום מופרד בפסיקים…

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

 

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

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

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

עדכון 5.7.2012

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

 


לצורך הכנת הכתבה בוצעה התייעצות עם מתכנת מהודו, נכתבה תוכנה קטנה ונשלפו כ-100 רשומות ויובאו לתוכנת אקסל, אולם די בכך כדי להוות (POC (Proof of concept של הבעיה. 

מיכאל האפרתי

* לקריאה נוספת על טיוב נתונים, אני ממליץ על מאמר של ברוך עינב (מהתקופה בה היה מנהל מערכות המידע של אנשים ומחשבים) אודות תוכנת DataTune פרי פיתוחי (2001-2003)

כתבה על תוכנת DataTune