כיצד פועלת הזרקת קוד?

Cum funcționează injectarea codului?
⏱️ 1 min read

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

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

בדוגמה למעלה, דף המידע של PHP פגיע ויוצג אם כתובת האתר http://example.com/?code=phpinfo(); מבוצע.

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

פארק הוד השרון
פארק הוד השרון

סוגי הזרקת קוד

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

כיצד פועלות הזרקות SQL

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

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

הפסאודוקוד הבא בצד השרת הוא דוגמה פשוטה לאימות שעלול להיות פגיע להזרקות SQL.

הזרקה-דוגמה2

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

זה גורם להפעלה אוטומטית של המשפט הבא בשרת מסד הנתונים:

מה הזרקת SQL יכולה לעשות

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

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

כיצד למנוע הזרקות SQL

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

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

הזרקת תסריט

פגיעות אבטחה זו היא איום המאפשר לתוקף להחדיר קוד זדוני ישירות לצורות האינטרנט של אתרים מונעי נתונים באמצעות רכיבי ממשק משתמש. מתקפה זו מכונה לעתים קרובות כ-Cross-Site Scripting או XSS. ה <script>, <meta>, <html>, <body>, <embed>, <frame>, <frameset>, <img> התגים הם הממוקדים ביותר להזרקת סקריפט.

כיצד להימנע מהזרקות תסריט

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

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

סיכום

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

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar of Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

You may also like...

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x