ארכיון עבור אוקטובר, 2012

14
אוק
12

עבודה בשיטת White List והפרשנות המקומית של אנשי הפיתוח והתשתיות

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

במקרים רבים, אנו מגדירים סינון תכנים, סריקות, בדיקות ועוד. הגדרות אלה מחולקות לשתי קטגוריות עיקריות: White List, Black List.

מה ההבדל בין רשימה שחורה ללבנה?
ברשימה שחורה מגדירים מה אסור. למשל, בלי כתום, ירוק וכחול. עוד דוגמא מעולם חסימת התקני זכרון: לחסום (כלומר, בלי) Disk-on-Key, CD-ROM, Floppy.
ברשימה לבנה מגדירים מה מותר. למשל, מותר (רק) לבן קרם, או מותר (רק) מדפסות רשת ומקלדת אלחוטית (ואף התקן אחר).

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

ההמלצה היא לעבוד עם רשימות לבנות ולא שחורות.

דוגמא לתכנות על בסיס רשימה לבנה: בדיקת קלטים באתרי Web. לאפשר קליטת תווים מותרים לפי סוג הקלט בלבד – למשל [0-9] עבור שדה תעודת זהות, וכמובן מותר אורך השדה רק בן 9 תווים. אם היינו עובדים כאן לפי רשימת שחורה (למשל ללא אותיות [a-z] [א-ת]) לא היינו מטפלים (חוסמים) תווים מסוכנים להתקפות SQL Injection כגון: ' -.

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

מספר דוגמאות:

  • הגדירו ששדה ת.ז. לא יכול להכיל אותיות, אך לא מנעו קליטת תווים מיוחדים (סכנה…).
  • חסמו העלאת קבצים דרך האתר מסוג exe, אך לא הגבילו סוגים אחרים הנחשבים מסוכנים, למרות שבמקור הגדרתי שמותר לעלות רק jpg, png, gif. התוכניתן תירץ זאת בכך שהוא חשב שהסכנה היא רק מקבצי exe (למרות שהיה מונח לו על השולחן האפיון הפתוח בעמוד שהגדיר את ה – White List.
  • ביקשתי סריקה ברשת של כל המחשבים מבוססי Windows לגילוי מחשבים ללא AV. קיבלתי רשימה של תחנות עבודה בלבד ללא שרתים. 

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

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

מודעות פרסומת



אוקטובר 2012
א ב ג ד ה ו ש
« ספט   נוב »
 123456
78910111213
14151617181920
21222324252627
28293031