روابط سريعة
إن هجوم حقن النصوص البرمجية، الذي يشار إليه في كثير من الأحيان باسم تنفيذ التعليمات البرمجية عن بُعد (RCE) ، هو هجوم يرتكبه مُهاجمين لهم القدرة على حقن وتنفيذ الشفرات الضارة في تطبيق ما؛ هجوم الحقن. هذا الرمز الخارجي قادر على اختراق أمن البيانات ، مما يعرض للخطر سلامة قاعدة البيانات أو الخصائص الخاصة. في كثير من الحالات ، يمكن أن تتجاوز التحكم في المصادقة ، وعادة ما ترتبط هذه الهجمات مع التطبيقات التي تعتمد على إدخالات المستخدم التي يريد تنفيذها.
بشكل عام ، تكون التطبيقات أكثر عرضة إذا تم تنفيذ التعليمات البرمجية دون المرور أولاً من خلال التحقق من الصحة. حالة بسيطة من كود عرضة للخطر هو مبين أدناه.
في المثال أعلاه ، تكون صفحة معلومات PHP عرضة وسيتم عرضها إذا كان عنوان URL http://example.com/؟code=phpinfo ()؛ يشتغل.
نظرًا لكون تفاعل المستخدمين مع التطبيقات أمر ضروري في عالم اليوم عبر الإنترنت ، فقد نمت حقنة الشفرة وأصبحت تشكل تهديدًا حقيقيًا للعديد من الموارد عبر الإنترنت.
أنواع هجوم حقن النصوص البرمجية
هناك أساسا أربعة أنواع من هجوم حقن النصوص البرمجية : حقن SQL ، حقن جافا سكريبت، حقن Shell، والتقييم الديناميكي. كل هذه لها نفس مبدأ العمل ، وهذا هو ، يتم إدخال رمز إليها وتنفيذها من قبل التطبيقات ، ولكن الاثنين الذين سأقوم بالتركيز عليهماز حقن SQL والحقن سكريبت.
كيف تعمل حقن SQL
في حالة حقن SQL ، يهدف الهجوم إلى إفساد استعلام قاعدة بيانات مشروع لإنتاج بيانات مزورة. يجب على المهاجم أولاً تحديد موقع إدخال الشفرة داخل تطبيق الويب المستهدف المضمّن داخل استعلام SQL.
هذه الطريقة فعالة فقط إذا كان تطبيق الويب يحتوي على مدخلات المستخدم المضمنة في عبارة SQL. يمكن بعد ذلك إدراج حمولة (عبارة SQL خبيثة) وتشغيلها على خادم قاعدة البيانات.
رمز pseudo-server من جانب الخادم التالي هو مثال بسيط للمصادقة التي يمكن أن تكون عرضة لحقن SQL.
في التعليمة البرمجية المذكورة أعلاه ، يمكن للمهاجم إدراج حمولة من شأنها تغيير عبارة SQL التي تم تنفيذها بواسطة خادم قاعدة البيانات. مثال يقوم بتعيين حقل كلمة المرور إلى:
password’ OR 1=1
يؤدي هذا تلقائياً إلى تشغيل العبارة التالية مقابل خادم قاعدة البيانات:
SELECT id FROM users WHERE username=’username’ AND password=’password’ OR 1=1
ماذا يمكن أن يفعله حقن SQL
هذا هو النوع الأكثر شيوعًا للبرمجة بالحقن. وبالنظر إلى حقيقة أن SQL هي اللغة المستخدمة لمعالجة البيانات المخزنة في نظم إدارة قواعد البيانات العلائقية (RDBMS) ، يمكن استخدام هجوم باستخدام القدرة على إعطاء عبارات SQL وتنفيذها للوصول إلى البيانات وتعديلها وحتى حذفها.
يمكن أن يعطي للمهاجم القدرة على تجاوز التوثيق ، والإفصاح الكامل للبيانات المخزنة في قاعدة البيانات ، وتنازع سلامة البيانات وتسبب قضايا الرفض ، وتغيير الأرصدة وإلغاء المعاملات.
كيفية منع حقن SQL
هناك بضع خطوات لجعل التطبيقات الخاصة بك أقل عرضة للخطر ، ولكن قبل أي خطوة من هذه الخطوات ، من الأفضل افتراض أن جميع البيانات المقدمة من المستخدمين خطرة ، ولا تثق بأي أحد منها. ثم يمكنك النظر في ما يلي:
- تعطيل استخدام SQL الديناميكي – يعني هذا عدم إنشاء استعلامات قاعدة بيانات بإدخال المستخدم. إذا لزم الأمر ، قم بتعقيم القيم والتحقق منها والخروج منها قبل إجراء استعلام باستخدام بيانات إدخال المستخدم.
- الاستفادة من جدار الحماية – سيساعد جدار الحماية الخاص بتطبيق الويب (البرنامج أو التطبيق) على تصفية البيانات الضارة.
- شراء برامج أفضل – وهذا يعني ببساطة المبرمج سيكون مسؤولا عن فحص وتحديد العيوب.
- تشفير أو تجزئة كلمات المرور وكل بيانات سرية أخرى لديك ، يجب أن يتضمن هذا سلاسل الاتصال.
- تجنب الاتصال بقاعدة البيانات الخاصة بك مع الحسابات المتميزة الخاصة بالمسؤول ما لم تكن في حاجة إلى ذلك.
حقن Script
تعتبر مشكلة عدم حصانة الأمان هذه تهديدًا يسمح للمهاجمين بإدخال الشفرات الضارة مباشرةً من خلال نماذج الويب لمواقع الويب التي تعتمد على البيانات عبر عناصر واجهة المستخدم. غالبًا ما يشار إلى هذا الهجوم باسم البرمجة النصية عبر المواقع أو XSS. تعتبر علامات <script> و <meta> و <html> و <body> و <embed> و <frame> و <frameset> و <img> هي الأكثر استهدافًا لحقن Script.
كيفية منع حقن Script
تعتمد الخطوات لمنع حقن البرنامج النصي على رمز البرمجة الذي تستخدمه. بشكل عام ، ستحتاج إلى:
- التحقق من صحة وتعقيم إدخال المستخدم (أي شكل من حقول الإدخال) عن طريق إزالة المحتوى الضار المحتمل أو الخروج منه
- تنظيف سلاسل الاستعلام في عناوين المواقع
- التحقق من صحة وتعقيم جميع أشكال البيانات والمصفوفات والكائنات قبل التنفيذ في الخادم
الخلاصة
ببساطة ، الوقاية خير من العلاج. مع وجود تحديثات جديدة في التكنولوجيا ، هناك المزيد من التهديدات التي ستتعرض لها أنظمتنا. للبقاء على اطلاع دائم بالأمور ، من المهم أن يكون لديك أحدث التصحيحات والتحديثات وأن تحافظ على أفضل الممارسات. هذا يجعل من الصعب الوقوع كضحية لهذه الهجمات الخبيثة.