تخطي إلى المحتوى الرئيسي

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

إدخال نصوص SQL – المعنى والتعريف

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

كيف تسير هجمات إدخال نصوصSQL؟

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

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

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

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

علامات إدخال نصوصSQL

قد لا يظهر هجوم إدخال نصوص SQL الناجح أي علامات على الإطلاق، لكن في بعض الأحيان قد تظهر علامات بارزة، والتي تشمل:

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

أنواع إدخال نصوصSQL

اعتمادًا على كيفية وصول عمليات إدخال نصوص SQL إلى البيانات المخفية ومدى الضرر المحتمل الذي تسببه، تنقسم هذه العمليات إلى ثلاث فئات:

هجمات إدخال نصوص SQL داخل النطاق: 

يُعد هذا النوع من هجوم هجمات إدخال نصوص SQL مباشرًا للمهاجمين لأنهم يستخدمون قناة اتصال واحدة لشن الهجمات وجمع النتائج، وهذا النوع من الهجمات له شكلين متفرعين:

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

هجمات إدخال نصوص SQL الاستنتاجي (المعروف كذلك باسم إدخال نصوص SQL الأعمى): 

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

  • هجمات إدخال نصوص SQL المعتمد على الوقت: يرسل المهاجمون استعلام SQL إلى قاعدة البيانات، وهذا يجعل قاعدة البيانات تنتظر بضع ثوانٍ قبل أن تستجيب للاستعلام على أنه صواب أو خطأ.
  • هجمات إدخال نصوص SQL المنطقية: يرسل المهاجمون استعلام SQL إلى قاعدة البيانات، وهذا يسمح للتطبيق بالاستجابة عن طريق إنشاء نتيجة إما صحيحة أو خاطئة.

هجمات إدخال نصوص SQL خارج النطاق: 

يحدث هذا النوع من هجوم SQL في إطار سيناريو من اثنين:

  • عندما يتعذر على المهاجمين استخدام قناة واحدة لشن الهجوم وكذلك جمع المعلومات.
  • عندما يكون الخادم بطيئًا جدًا أو غير مستقر للقيام بهذه الإجراءات.
Interior of a server room. SQL injection attacks are one of the oldest web application vulnerabilities

تأثيرهجمات إدخال نصوصSQL

يمكن أن يكون لهجوم إدخال نصوص SQL الناجح عواقب وخيمة على الشركة، وهذا لأن هجمات إدخال نصوص SQL يمكن أن تتسبب فيما يلي:

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

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

أمثلة على إدخال نصوص SQL

على مدار السنوات الماضية، وقعت العديد من المنظمات ضحية لهجمات هجمات إدخال نصوص SQL، وإليك مجموعة من أبرز الأمثلة عليها:

Fortnite، 2019

Fortnite هي لعبة عبر الإنترنت تضم أكثر من 350 مليون مستخدم، وفي 2019 تم اكتشاف ثغرة أمنية لإدخال نصوص SQL كانت تتيح للمهاجمين الوصول إلى حسابات المستخدمين، حتى تم إصلاح تلك الثغرة الأمنية.

سيسكو، 2018

تم اكتشاف ثغرة أمنية في إدخال نصوص SQL في Cisco Prime License Manager في 2018، وكانت هذه الثغرة الأمنية تتيح للمهاجمين الوصول إلى الأنظمة المشغل عليها مدير الترخيص عملت سيسكو بعدها على تصحيح الثغرة الأمنية.

تسلا، 2014

في 2014، أعلن باحثو الأمن أنهم تمكنوا من اختراق موقع تسلا باستخدام إدخال نصوص SQL، وحصلوا على امتيازات إدارية وسرقوا بيانات المستخدمين في هذه العملية.

أسئلة شائعة عن هجمات إدخال نصوص SQL

إليك مجموعة من أشهر الأسئلة المتداولة عن هجمات إدخال نصوص SQL:

ما هو هجوم إدخال نصوص SQL؟

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

ما الذي يفعله إدخال نصوص SQL؟

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

ما مدى شيوع هجمات إدخال نصوص SQL؟

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

كيفية الوقاية من هجمات إدخال نصوص SQL

بالنسبة للشركات المهتمة بالوقاية من هجمات إدخال نصوص SQL، المبادئ الأساسية للمساعدة في الدفاع عن مواقع الويب وتطبيقات الويب تشمل ما يلي:

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

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

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

افحص تطبيقات الويب باستمرار:

استخدم أدوات إدارة أداء التطبيقات الشاملة. الفحص المنتظم لتطبيقات الويب سيؤدي إلى تحديد الثغرات الأمنية المحتملة ومعالجتها قبل أن تقع أضرار جسيمة.

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

منتجات ذات صلة:

للقراءة أكثر:

ما المقصود بإدخال نصوص SQL؟ التعريف والشرح

إدخال نصوص SQL يتيخ للمهاجمين إمكانية الحصول على وصول غير مصرح به إلى قواعد البيانات، ومن ثم إمكانية التسبب في ضرر للشركات. اعرف أكثر عن كيفية عمل إدخال نصوص SQL.
Kaspersky Logo