ما تريد معرفته عن Injection Attacks

Cyber Attacks
العديد من تطبيقات الويب تعتمد علي البيانات التي يتم ادخالها من طرف المستخدمين او متغيرات لعرض صفحات معينة، ولكن ماذا سوف يحدث اذا تم استغلال ذلك ولم يتم ادخال البيانات بالشكل المتوقع من المستخدم، هذا ما يعرف بهجمات الحقن (Injection Attacks)
Abdelrahman Nasr
Feb. 24, 2023, 1 p.m.
Abdelrahman
ما تريد معرفته عن Injection Attacks

كنا تعرفنا في آخر مقالة علي OWASP Top 10 وقمنا بذكر ما تحتويه القائمة من هجمات واليوم نعود لكم بمقالة مخصصة عن الـ Injection Attack.

اقرأ أيضاً: ما تريد معرفته عن OWASP Top 10

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

ما هو الحقن (Injection)؟

هو نوع من الهجمات يقوم فيها المهاجم بحقن نصوص برمجية ضارة تمر من خلال النظام ليعالجها دون التحقق من المدخلات وذلك يؤدي لإتاحة الوصول إلى بيانات حساسة تعرض النظام ومستخدميه للخطر.

كما تعد هجمات الحقن (Injection) من أقدم الهجمات الإلكترونية وأكثرها خطورة حيث تصدرت المرتبة الأولى في قائمة OWASP Top 10 لعام 2017 والمرتبة الثالثة لعام 2021.

ما هي أنواع الحقن (Injection)؟

تعتبر هجمات الحقن ساحة هجوم كبيرة جداً لذا يوجد العديد من أنواع الحقن: 

Cross Site Scripting (XSS)

تحدث هجمات الـ XSS عندما يتم حقن أكواد JavaScript في تطبيق الويب وإرساله إلى مستخدمين آخرين ليقوم المتصفح بمعالجته دون معرفة انه قد يحتوي علي JavaScript ضارة قد تؤدي إلى الوصول ل ملفات تعريف الارتباط (Cookies) أو معرف الجلسة (Session ID).

اقرأ أيضاً: استكشاف عالم ثغرات XSS: الأنواع و طرق الكشف عنها و منعها

اقرأ أيضاً: ملفات تعريف الارتباط (Web Cookies)

SQL Injection (SQLi)

تستخدم الـ SQL Queries للتواصل مع قواعد البيانات وذلك لكتابة أو استرجاع أو تعديل أو حذف البيانات، ما يحدث في الـ SQLi هو تضمين SQL Query ضارة في أحد حقول الإدخال التي تقوم بمعالجة مدخلاتها مع قاعدة البيانات، مما يسمح للمهاجم بتخطي الـ Query التي تقوم بمعالجة المدخلات وحقن Query أخرى ضارة لاسترداد بيانات لا يجب الوصول لها، وذلك ما يؤدي للوصول لجميع البيانات من ضمنها بيانات المستخدمين.

اقرأ أيضاً: ما تريد معرفته عن SQL Injection

Code Injection

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

OS Command Injection

تستخدم بعض التطبيقات أوامر النظام علي خوادم الويب الخاصة بها، فقط لا بد من توافر معلومة لدي المهاجم قبل الحقن، وهي معرفة نوع النظام المستخدم علي سيرفر الويب لتحديد نوع سطر الأوامر إذا كان لـ Windows أو Linux، ويمكن هذا الهجوم بالسيطرة الكاملة علي خادم الويب من خلال سطر الأوامر.

اقرأ أيضاً: ما تريد معرفته عن OS Command Injection

LDAP Injection

يستخدم بروتوكول Lightweight Directory Access في صلاحيات وصول المستخدمين وتخزين البيانات والبحث عنها، ومثل أي عملية حقن حيث يقوم المهاجم بكتابة LDAP Queries ضارة تؤدي لنفس استغلالات الـ SQLi من استخراج بيانات أو تصعيد امتيازات.

Host Header Injection

يقوم الـ Host Header بتحديد تطبيق الويب الذي يجب عليه معالجة الـ HTTP Request، وعندما يتم الوثوق في الـ Host Header دون التحقق من صحته، هنا قد يستغل المهاجم عدم التحقق من قيمة الـ Host وحقنه بـ Payload لتتم معالجته، وذلك ما قدم يؤدي للعديد من الاستغلالات منها الـ SQLi أو XSS.

Carriage Return and Line Feed Injection (CRLF Injection)

يشير مصطلح CRLF إلى انتهاء السطر أو الأمر حيث يستخدم في أكثر من بروتوكول من بينهم HTTP، ويؤدي استغلال ذلك النوع من الهجوم لحقن رموز HTML وذلك ما يفتح الباب لاستخدام الـ XSS أيضاً.

XPath Injection

يتم هذا الهجوم علي تطبيقات الويب التي تقوم بتخزين بيانات XML، حيث تقوم بعرض الـ XML عن طريق XPath Queries، وتشبه طريقة حقن الـ XPath طريقة حقن الـ SQL إلى حد كبير، حيث يتم الحقن لاستخراج بيانات الـ XML المخزنة، وعلي عكس الـ SQL في الـ XPath لا يوجد إصدارات مختلفة، مما يسهل حقن XPath  وجعلها عملية آلية بدلاً من الحقن اليدوي.

كيف تقوم بحماية تطبيق الويب من هجمات الحقن؟ 

مدخلات المستخدم - User Inputs

تحقق دائماً من مدخلات المستخدم ، هل تحققت من المدخلات؟ نعم؟ تحقق مرة أخرى، لا تثق أبداً في المستخدم، لأن المدخلات السبب الرئيسي والأول لهجمات الحقن، حيث يؤدي ترك المدخلات مفتوحة دون تصفيتها بشكل جيد إلى مخاطر كارثية، قم بتصفية جميع المدخلات حسب نوع المدخل الذي تريده وقم بتحديد حد أقصى للمدخل لا يمكن تجاوزه معد تقييد للحروف الخاصة.

جدار الحماية - Firewall

قم باستخدام جدار الحماية لتطبيق الويب، حيث يساعد في اكتشاف ومنع مدخلات المستخدم التي قد تسيء استغلال التطبيق.

اقرأ أيضاً: الجدار الناري | Firewall

رسائل الأخطاء - Error Messages

لا تجعل تطبيق الويب يقوم بعرض رسائل الأخطاء المفصلة أبداً، لأنها قد تحتوي علي معلومات قد تفيد المهاجم في تسهيل عملية الحقن.

التحديثات - Updates

قم بالتحديث دائماً لإغلاق باب التعرض لثغرات قديمة قد يقوم المهاجم باستغلالها.

صلاحيات الوصول - Access Control

لا تسمح أبداً بصلاحيات الـ root في الاتصال بقاعدة البيانات، استخدم فقط حساب عادي بصلاحيات محدودة، لتقييد الوصول في حال إذا تمكن المهاجم من الوصول لقاعدة البيانات.

حماية البيانات - Data Protection

لا تقم بتخزين البيانات المهمة في قواعد البيانات دون تشفير واستخدام Salt ليصعب فك تشفيرها.  

وهنا نكون قد وصلنا إلى نهاية مقالتنا عزيزي القارئ ولا تنسى أن تنتظرنا قريباً- إن شاء الله- وإلى لقاء آخر قريب...


injection attacks sql sqli xss ldap xpath os command code host header crlf حقن Abdelrahman Nasr