שבעים שנה למדינתנו הם מועד חגיגי שרבים מצפים וממתינים לו בקוצר רוח. למרבה הצער, לפחות אחד מהמפעלים התרבותיים מכיל בחובו סכנה אבטחתית שהיה אפשר למנוע בקלות רבה וחבל.
אתר ׳חותמים על מגילת העצמאות׳ מזמין את כלל האזרחים לחתום על מגילת העצמאות וכך לאשרר אותה. היוזמה יפה וחברתית והאתר מעוצב באופן יפה ומקצועי עם תמונות מרשימות כולל תמונה של המגילה עצמה:
כל אזרח שחפץ בכך יכול להכניס את שמו המלא, כתובת הדואר האלקטרוני שלו וחתימה ידנית נאה:
אחרי החתימה, החתימה והשם עוברים לאישור ידני ולאחר מכן מתקבל אישור במייל.
אחרי האישור, ניתן לצפות בכל החתימות בתחתית המגילה:
טוב ויפה, נכון? גם אין פה סיכון אבטחתי. כי בחתימה בלבד אין שום בעיה. כל עוד היא לא צמודה לשם. וכפי ששרת התרבות מירי רגב אמרה: "נחבר את כולם לסמל המכונן".
הכשל – החתימה חשופה יחד עם השם המלא
מה הבעיה? כשאנו מסתכלים על הקוד, אפשר בקלות לקבל את השם הקשור לכל חתימה. בקוד ה-HTML השם המלא של החותם מופיע כ-ALT. תצוגה אלטרנטיבית המיועדת ללקויי ראייה וניתנת לצפייה על ידי כל אחד שמבין מעט ב-HTML.
יתרה מכך, כל השמות נמצאים במאגר שקל מאוד לשתות את כל תוכנו בקלות רבה. כל מה שצריך זה לשלוח בקשת POST אל הכתובת
https://megila.70.gov.il/src/view/signatureList.php
עם העמוד שרוצים ולקבל את כל החתימות והשמות של האזרחים, זה לצד זה – בפורמט נוח וקל לקריאה.
curl -d "page=2" https://megila.70.gov.il/src/view/signatureList.php
כשל נוסף: אין הגנת brute force וניתן להוריד את כל מאגר החתימות והשמות המלאים
כיוון שאין שום הגנת brute force (כלומר הגנה שמונעת בקשות מרובות לשרת תוך זמן קצר), אפשר בקלות ותוך זמן קצר ביותר לשלוח מאות בקשות כדי לקבל את כל השמות והחתימות. כל מתכנת יוכל ליצור בקלות סקריפט כזה ולקבל מאגר מלא של שמות מלאים וחתימות בפורמט נוח לשימוש (רקע שקוף).
בעית האבטחה הקשורה לחתימה
מה הבעיה בזה? כל מי שזייפו לו צ׳ק יכול להבין איזה כאב ראש זה לבטל צ׳ק מזויף. עכשיו תחשבו על כאב הראש של לבטל צ׳ק מזויף עם החתימה שלך! בלא מעט מקומות נדרשת דוגמת חתימה של האזרח וללא ספק זה ממש לא דבר שאתם רוצים שיסתובב ברשת לצד השם המלא שלכם. אם קוראים לכם ׳משה כהן׳, לא צריכה להיות לכם בעיה. אם קוראים לכם ׳רן בר-זיק׳, אז אתם בבעיה יותר חמורה. סביר להניח שכבר עכשיו גורמים עברייניים הורידו את המאגר המלא. חתמתם? השם שלכם ייחודי מספיק? אפשר לזייף את החתימה שלכם בקלות לכל צורך שהוא: צ׳קים, מסמכי פתיחת חשבון, מסמכים רשמיים וכו׳ וכו׳. גנבו את הזהות שלכם? לא תוכלו לומר שזו לא החתימה שלכם.
הפתרון המוצע
מה הפתרון? הפתרון היה יכול להיות פשוט ביותר – פשוט לא לציין את שמו המלא של האזרח לצד החתימה בקוד! או לחלופין – לחסום בקשות מרובות תוך זמן קצר לשרת. או לחלופין לא להציב את החתימה על רקע שקוף קל לשימוש.
אני מודה מאוד למשה דובמן שהסב את תשומת ליבי לבעיה – העיר והאיר 🙂
עדכון
שמות החותמים הוסרו מהמידע המתקבל מהאתר וכרגע מופיעה ב-ALT רק המילה ׳חתימה׳. לפחות עשו את זה מהר…
עדכון נוסף
בדיונים שנערכו לאחר מכן בקבוצת DC9723 (קבוצה המוקדשת לדיונים על אבטחת מידע) תומר פינטו, אבי קינן ועידו דיאמנט מאיירוןסורס גילו כמה דברים מעניינים – הדבר הראשון הוא שכל שמות החותמים והמיילים שלהם, בצמוד לחתימות שלהם אוגדו בקובץ אקסל שהיה נגיש מאוד לכל אחד ונמצא על השרת (הקובץ הוסר מהרשת). בנוסף, מסיבה מסוימת על השרת נמצאו גם קבצי git שמאפשרים הצצה מלאה על כל תהליכי הפיתוח של הקוד. מסד הנתונים של האתר היה גם כן חשוף לרשת. חגיגה אמיתית של אבטחת מידע 🙁
12 תגובות
מדוע בכלל צריך שם מלא?
אפילו הצמדת החתימה לכל מזהה אחר מהווה סיכון אבטחה (מייל למשל).
אצל הביומטרי זה לא יקרה
nnn
אי אפשר לזייף צ'ק עם שם וחתימה, צריך הרבה יותר פרטים כדי לעשות את זה. אתה מנסה לעשות זבוב מפיל וזה גורם לי להתבייש להיות שמאלני.
אם אתה לא מוצא תועלת במאגר שמות, מיילים וחתימות (על רקע שקוף) אז סבבה. אני שמח בשבילך. אתה מוזמן לחשוף פה את החתימה, השם המלא והמייל שלך אם זו לא בעית אבטחה. זה צורם במיוחד כשהיה ניתן למנוע את זה בקלות.
בנוסף, אני לא ממש מבין מה הקשר לשמאל וימין בסיפור הזה. קוד זה קוד, אבטחת מידע זו אבטחת מידע – עניינים פוליטיים וטוקבקים מהסוג הזה תשמור בבקשה ל-Ynet או ׳הארץ׳.
תודה על המענה.
1. פרסמת את זה באתר הארץ כך שלדעתי יש קשר לנטייה פוליטית.
2. יש חתימות שחושפות בבירור את השם הפרטי ואת שם המשפחה, אין צורך במידע נוסף כדי להבין כיצד קוראים לאדם שחתם – האם זה לא כשל אבטחתי בפני עצמו? האם אנשים לא צריכים להציג את חתימתם לאף אדם?
3. במה בדיוק מיילים עוזרים בזיוף צ'ק או זהות? אני לא מצליח להבין
בשורה התחתונה – אין פה מספר ת"ז, כתובת מגורים, פרטי חשבון או כל דבר אחר. מבין שצורם לך מאחר שאתה איש טכני, בדיוק כמוני (רק עם הרבה פחות קילומטראז' משלך :), אבל המידע הזה לא תורם ולא מועיל לאף אחד. והכי חשוב, לא חייבים למהר לכתוב על כל דבר בצורה שמעלה על המוקד את כל המעורבים. יש המון אנשים שעבדו מאד קשה על הדבר הזה. אם המעשים שלך באים ממקום של אדם טוב שרוצה לעזור ולשמור על האזרחים אז אין צורך לכל הדרמה הזאת, אפשר לפנות לאחראים ולעזור להם בזה. זה סתם בטעם רע ומבאס ממש.
1. אני כותב קבוע באתר הארץ, אבל אני לא מהסס לפרסם שם דברים (למשל) שתוקפים גם אתרים מהכיוון השמאלי (כמו למשל האייטם על מפלגת העבודה). מדובר בעיתון עם המדור הטכנולוגי המקצועי ביותר שיש שלא נרתע גם מפרסום כתבות על נושאים שאף כלי תקשורת לא מוכן לגעת בהם כמו למשל כתבות על גיט, פונקציות גיבוב והמאמר האחרון שפרסמתי שם על אנטרופיה. קוד זה קוד, טכנולוגיה זו טכנולוגיה ואין פה פוליטיקה.
2. חתימה לבד זו לא בעית אבטחה.
3. ברגע שיצרת מאגר של חתימות + שמות מלאים – נתת עוד כלי לזייפני זהות שגם ככה נהנים מדליפות המידע שיש בישראל.
ועוד מילה בנוגע לשורה התחתונה – המידע הזה מהווה מידע אישי לפי כל קנה מידה ויש להגן עליו. הטיעון של ׳אתה פוגע באנשים שעבדו קשה׳ תמיד קיים. כשמצאתי את החורים במשרד האוכלוסין פגעתי קשה בחברה ששולחת את הסמסים. כשמצאתי את החורים שחשפו את המאגרים של מפלגת העבודה והבית היהודי פגעתי גם בהם. כשחושפים דברים פוגעים באנשים שבנו אותם. אבל מה עדיף? פניות לבד למשרדים האלו לא עוזרות. צר לי, הם לא עבדו קשה *מספיק* או לא קיבלו הכוונה מספקת מהמנהלים שלהם כדי להגן על המידע של האנשים התמימים שהשתמשו בשירותים שלהם והם יותר מעניינים אותי.
האתר של משרד התרבות היה מלא בפרצות אבטחה, מלא. מי שבנה אותו עשה עבודה פשוט לא טובה. אני לא מאשים את המתכנתים, אני מאשים את המנהלים שלהם. מדובר בפרקטיקות *בסיסיות* של תכנות ואבטחת מידע.
מסכים איתך שמי שאחראי על אבטחת המידע במשרד התרבות ובממשלה בכלל אכן פישל פה. למשרדי הממשלה צריכים להיות סטנדרטים של אבטחת מידע שהם מעבירים למפתחים ולשאר המעורבים שהגו וניהלו את הפעילות.
עדיין חושב שהיה אפשר לפתור את זה בצורה פחות קולנית, מה גם שבפרסום הכתבה בעצם הזמנת גורמים עברייניים למידע הזה. בעצם קראת לכל הפורצים לבית הפתוח, כאן עשית משהו שמתנגש עם הרצון שלך לדאוג לביטחון של האזרחים. לכל דבר שעושים יש השלכה, אז תודה על תרומתך.
שלום,
כל אלה ואתה הפרת חוק מחשבים על פריצה ועל כל הבלוג שלך. אתה חלקית עוזר לקדם אבטחת מידע וחלקית מקדם פריצה לאתרים ודברים מרשעיים/
האדם אבי קינן פרץ לMYSQL וזה אינו חוקי..
למה לא עושים דבר בנדון?
ההאשמות האלו כמובן שלא נכונות. הקוד שהפנה לאקסל נמצא גלוי בג׳אווהסקריפט והמידע על החיבור למסד הנתונים היה בגיט שהיה גלוי על השרת
אנחנו רוסים לא רוצים שלום. זה למה אנחנו מתערבים בסוריה, כסף.
כרגיל מדינת חלם.. הכל בקומבינה ובקיצורי דרך..