התקפת SQL Injection: מה זה?

(של אלסנדרו רוגלו)
26/02/24

כמה פעמים שמעתם על SQL Injection והבטחתם לעצמכם להבין מה זה, מבלי שהייתם לכם זמן או חשק לעשות זאת?

אם יש לך שלוש דקות, אנסה להסביר לך את זה, בצורה פשוטה.

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

אבל מה זה אומר? אתה אומר. 

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

מה יכול לקרות אם אתה קורבן להתקפת SQLi?

למרבה הצער, הכל יכול לקרות.

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

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

תקיפה מסוג זה ידועה בציבור לפחות מאז 1998, הודות למאמר "חולשות טכנולוגיית האינטרנט של NT" שוחרר על Phrack על ידי Rain Forest Puppy, שם בדוי של ג'ף פוריסטל, האקר ומומחה אבטחה עולמי.

להעמיק:

- http://phrack.org/issues/54/8.html

- https://www.esecurityplanet.com/networks/how-was-sql-injection-discovered/

- https://owasp.org/www-community/attacks/SQL_Injection