חורים שלא הכרת

קצת על אבטחת מידע
גל דואני

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

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

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

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

עכשיו כשאנחנו מודעים לצורך בהטמעת מנגנוני אבטחת מידע, איך כדאי להתחיל? מה היא הבעיה העיקרית במערכת?

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

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

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

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

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

על מנת לשלוף נתונים מבסיס הנתונים נשתמש בשאילתה דינמית, לדוגמה:

"SELECT * FROM Users WHERE UserName ='" + Name + "' AND Password ='" + Password + "'"

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

"SELECT * FROM Users WHERE UserName = 'Gal' AND Password ='123'"

כלומר המערכת בודקת בבסיס הנתונים אם קיים משתמש Gal בעל סיסמה 123 שיש לו הרשאות גישה למערכת. ההזדהות למערכת תלויה בתשובה: אם השאילתה לא תחזיר רשומות מבסיס הנתונים – לא תתבצע הזדהות למערכת. אם כן – תתבצע הזדהות למערכת והמשתמש יורשה להיכנס.

כעת ננסה להתחבר למערכת ללא הרשאות. בשם משתמש נזין Gal ובשדה הסיסמה נזין:  ‘ or ‘1’=’1–1 .

נתוני ההזדהות מוזנים מהאפליקציה לשאילתה: שם המשתמש Gal מוזן לפרמטר Name והסיסמה מוזנת לפרמטר Password. השאילתה תיראה כך:

"SELECT * FROM Users WHERE UserName = 'Gal' AND Password ='1’ or ‘1’=’1–'"

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

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

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

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

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

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

קוד זדוני

שיתוף ב facebook
Facebook
שיתוף ב twitter
Twitter
שיתוף ב linkedin
LinkedIn
שיתוף ב whatsapp
WhatsApp
שיתוף ב email
Email

25 תגובות

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

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

  3. גל שלום,
    התרשמתי מעומק הכתבה, את מדהימה בתיאור הבעיה, עניינית מאוד! תודה ומקווים לראות עוד סיקורים ממך

  4. ממש מעניין אני מקווה שאנשים אחרים שמתעסקים באבטחת מידע יקראו ויפנימו

  5. מיד ניכר שהנושא בדמך והצבעת בצורה מאוד מובנת על הרגישות ועל משנה הזהירות בהם יש צורך לנקוט. נראה לי שכלי אפשרי למימוש חסימת מטרידים ומזיקים למיניהם יהיה ניתן לעשות ע"י בדיקה על בסיס ASCI של הסיסמה ובעזרת קידוד מיוחד לגרום לכך שמילת הביקורת תהיה ערך אקראי ולא '0' או '1'.המאמר שלך מעניין מאוד ונותן מענה לבעיה קרדינאלית.

  6. "ןירוס מחשבים – מיתוס או מציאות" – בתזה זו איזכור ראשון בעברית- 1990… ל150 שיטות התקפה על מערכות מחשבים. כדאי לקרוא….

  7. יש אלפי מאמרים על sqli, יכלת פשוט לעשות איזה רפרנס למאמר יותר מקיף מאשר לסכם את המתקפה ב1=1.. ומה לגבי התגוננות? חבל שלא הוספת כמה מילים על זה..

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

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

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

  11. מקצועי ומתומצת.
    בהחלט שהייתי מזמין אותה לערוך לי סקר בארגון.
    כל הכבוד!

  12. שוב ניתן לראות שאין 100% אבטחה ותמיד איכשהוא יצליחו להיכנס

כתיבת תגובה

האימייל לא יוצג באתר.

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

עשוי לעניין אותך

שרטוט סמלי בית

מהי חברת ניהול נכסים?

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

שאול אייזנברג

שכונה

פיטורי המאמן במכבי תל אביב

פיצוץ אטומי

על הסף

חידוש הסכם הגרעין עם איראן – תרחישים אפשריים