ما هو هجوم حقن SQL ATTACK

اقرأ في هذا المقال


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

  • “SQL” اختصار ل “Structured Query language”

هجوم حقن SQL

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

كيف يتم تنفيذ هجوم حقن SQL

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

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

أهداف هجوم حقن SQL

  • يمكن للمتسللين استعمال (SQL Injections) وهو هجوم بالكمبيوتر حيث يتم تضمين التعليمات البرمجية الضارة في تطبيق سيء التصميم ثم يتم تمريرها إلى قاعدة للحصول على بيانات اعتماد المستخدمين الآخرين في قاعدة البيانات (SQL) البيانات الخلفية، كما يمكنهم بعد ذلك انتحال هوية هؤلاء المستخدمين، قد يكون المستخدم المنتحل مسؤول قاعدة بيانات مع جميع امتيازات قاعدة البيانات.
  • يتيح (SQL) تحديد البيانات وإخراجها من قاعدة البيانات. قد تسمح ثغرة حقن (SQL) للمهاجم بالحصول على وصول كامل إلى جميع البيانات الموجودة في خادم قاعدة البيانات.
  • يتيح (SQL) أيضًا تعديل وتغيير البيانات في قاعدة البيانات وإضافة بيانات جديدة، على سبيل المثال، في تطبيق مالي، يمكن للمتسلل استعمال (SQL Injection) لتغيير الأرصدة أو إبطال المعاملات أو تحويل الأموال إلى حسابه.
  • يمكن استخدام (SQL) لحذف السجلات من قاعدة بيانات، أو حتى إسقاط الجداول، حتى إذا قام المسؤول بعمل نسخ احتياطية لقاعدة البيانات، فقد يؤثر حذف البيانات على توفر التطبيق حتى يتم استعادة قاعدة البيانات، أيضًا قد لا تغطي النسخ الاحتياطية أحدث البيانات.
  • في بعض خوادم قواعد البيانات، يمكن الوصول إلى نظام التشغيل باستخدام خادم قاعدة البيانات، قد يكون هذا مقصودًا أو عرضيًا، في مثل هذه الحالة، يمكن للمهاجم استخدام (SQL Injection) باعتباره المتجه الأولي ثم مهاجمة الشبكة الداخلية خلف جدار الحماية.

أنواع حقن SQL

يمكن تصنيف أنواع حقن (SQL) بناءً على الطرق التي يستخدمونها للوصول إلى بيانات الواجهة الخلفية وإمكانية تلفها الى ثلاثة أنواع:

حقن داخل النطاق SQLi

يستخدم المهاجم نفس قناة الاتصال لشن هجماته وجمع نتائجها، إن بساطة وكفاءة (SQLi) داخل النطاق تجعله أحد أكثر أنواع هجمات (SQLi) انتشارا وشيوعًا، كما ان هناك نوعان من الاختلافات الفرعية لهذه الطريقة:

  • (SQLi) المستندة إلى الخطأ: ينفذ المهاجم إجراءات تؤدي إلى إنتاج رسائل خطأ في قاعدة البيانات، من المحتمل أن يستخدم المهاجم البيانات التي توفرها رسائل الخطأ هذه لجمع معلومات حول بنية قاعدة البيانات.
  • (SQLi) القائمة على الاتحاد: تستفيد هذه التقنية من مشغل (UNION SQL) ويستخدم لدمج البيانات، حيث يقوم بدمج عبارات التحديد المتعددة التي تم إنشاؤها بواسطة قاعدة البيانات للحصول على استجابة (HTTP) واحدة، كما قد تحتوي هذه الاستجابة على بيانات يمكن للمهاجم الاستفادة منها.

الاستنتاجية الغير مرئية SQLi

يرسل المهاجم حمولات بيانات إلى الخادم ويلاحظ استجابة وسلوك الخادم لمعرفة المزيد عن هيكله، حيث تسمى هذه الطريقة (SQLi) العمياء لأنه لا يتم نقل البيانات من قاعدة بيانات موقع الويب إلى المهاجم، وبالتالي لا يمكن للمهاجم رؤية معلومات حول الهجوم داخل النطاق، كما تعتمد عمليات حقن (SQL) العمياء على الاستجابة والأنماط السلوكية للخادم، لذا فهي عادة ما تكون أبطأ في التنفيذ ولكنها قد تكون ضارة بنفس القدر، يمكن تصنيف حقن SQL العمياء على النحو التالي:

  • منطقي: حيث يرسل ذلك المهاجم استعلام (SQL) إلى قاعدة البيانات لمطالبة التطبيق بإرجاع نتيجة، ستختلف النتيجة بناءً على ما إذا كان الاستعلام صحيحًا أم خطأ، بناءً على النتيجة، سيتم تعديل المعلومات الموجودة في استجابة (HTTP) أو تظل دون تغيير، كما يمكن للمهاجم بعد ذلك معرفة ما إذا كانت الرسالة قد ولدت نتيجة صحيحة أو خاطئة.
  • المستند إلى الوقت: المهاجم يرسل استعلام (SQL) إلى قاعدة البيانات، مما يجعل قاعدة البيانات تنتظر لفترة بالثواني قبل أن تتمكن من التفاعل، حيث يمكن للمهاجم أن يرى كم من الوقت تستغرقه قاعدة البيانات للرد، ما إذا كان الاستعلام صحيحًا أم خطأ، بناءً على النتيجة، سيتم إنشاء استجابة (HTTP) على الفور أو بعد فترة انتظار، وبالتالي يمكن للمهاجم معرفة ما إذا كانت الرسالة التي استخدمها قد عادت بصحة أو خطأ، دون الاعتماد على البيانات من قاعدة البيانات.

حقن خارج النطاق SQLi

يمكن للمهاجم تنفيذ هذا النوع من الهجوم فقط عندما يتم تمكين ميزات معينة على خادم قاعدة البيانات الذي يستخدمه تطبيق الويب، حيث يستخدم هذا النوع من الهجوم بشكل أساسي كبديل لتقنيات (SQLi) داخل النطاق والاستنتاجية، يتم تنفيذ (SQLi )خارج النطاق عندما لا يتمكن المهاجم من استخدام نفس القناة لشن الهجوم وجمع المعلومات، أو عندما يكون الخادم بطيئًا جدًا أو غير مستقر لتنفيذ هذه الإجراءات، كما تعتمد هذه الأساليب على قدرة الخادم على إنشاء طلبات (DNS) أو (HTTP) لنقل البيانات إلى المهاجم.

  • “DNS”اختصار ل”Domain Name System
  • “HTTP” اختصار ل ” Hypertext Transfer Protocol”.

المصدر: SQL (Structured query language) InjectionSQL Injection Attack: Real Life Attacks and Code ExamplesSQL Injection Attacks (SQLi)What is the SQL Injection Vulnerability & How to Prevent it?


شارك المقالة: