الكشف عن عمليات الاستغلال في تطبيقات الويب وكيفية المتابعة

StackOverflow https://stackoverflow.com/questions/2225047

سؤال

ما هي الطرق المتوفرة لاكتشاف عمليات الاستغلال في تطبيقات الويب PHP/MySQL (التحقق من أحرف معينة أو أجزاء من الأكواد في مصفوفات GET وPOST وCOOKIE/استخدام مكتبة بها قاعدة بيانات تحتوي على جميع أنماط عمليات الاستغلال الشائعة، إن وجدت؟ ) وكيف يجب أن أتصرف عندما يتم اكتشافه؟

على سبيل المثال، إذا حاول شخص ما العثور على حقنة SQL في تطبيق الويب PHP/MySQL الخاص بي باستخدام طريقة طلب GET، فهل يجب أن أقوم بتخزين الإجراء الذي قام به المستخدم في قاعدة البيانات، وأطلب من التطبيق أن يرسل لي بريدًا إلكترونيًا، وأن يحظر IP المستخدم وتعرض له رسالة "عذرًا، لكننا اكتشفنا إجراءً ضارًا من حسابك وستتم مراجعته".لقد تم تعطيل حسابك وقد يتم تعطيل بعض الميزات من عنوان IP الخاص بك.إذا كان هذا خطأ، يرجى مراسلتنا عبر البريد الإلكتروني مع كافة التفاصيل."

شكرًا.

هل كانت مفيدة؟

المحلول

ثلاثة أشياء تتبادر إلى الذهن:

  1. الترميز الدفاعي، تعقيم جميع المدخلات، قم بإعداد بيانات SQL واستخدامها suhosin.
  2. زيادة الأمن في موقعك عن طريق كسرها مع الماسح الضوئي الضعف
  3. سجل القرصنة attemtps مع نظام كشف التسلل

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

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

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

نصائح أخرى

سؤالك مضفي وسأجيب على الجزء الثاني.

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

ما عليك سوى استخدام Strip_Tags () على All $ _Request _Request و $ _Cookie vars لرعاية التعليمات البرمجية التي تظهر في هذه المتغيرات، كما هو الحال بالنسبة ل SQL، يجب عليك كتابة استعلام مثل Regex أو شيء ما، لكن هذا لا ينبغي أن يكون مشكلة مثلك يجب دائما mysql_real_escape_string ($ str) جميع المتغيرات في استفساراتك. جرب شيئا مثل هذا رغم ذلك.

function look_for_code_and_mail_admin($str) {
    $allowed_tags = "<a>,<br>,<p>";
    if($str != strip_tags($str, $allowed_tags)) {
        $send_email_to = "some@bodys.email";
        $subject = "some subject";
        $body = "email body";
        mail($send_email_to,$subject,$body);   
    }
    return($str);
}

لا أستطيع أن أتذكر آخر مرة رأيت فيها موقعًا يحاول تسجيل هجمات حقن SQL التي لم أتمكن من اختراقها..

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

استخدم منهجيات البرمجة الآمنة القياسية، واستخدم استعلامات SQL ذات معلمات أو ORM.

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top