إلى الخلف
ذكاء نقاط الضعف
جدول المحتوى

 

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

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

توضح هذه المقالة الطرق المختلفة لإنشاء اختبارات CAPTCHA والتحقق منها وتطبيقها والطرق المتعددة لتجاوز capTchas.

 

أسباب استخدام اختبار CAPTCHA

يقوم مطورو الويب بنشر CapTchas على مواقع الويب لضمان حمايتها من الروبوتات. تُستخدم اختبارات CAPTCHA بشكل عام لمنع:

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

 

التدفق العام لتوليد CAPTCHA والتحقق

تمثل الصورة أدناه الطريقة الشائعة لإنشاء اختبارات CAPTCHA والتحقق منها:

Form Submission

تطبيق أنواع مختلفة من CAPTCHA وكيفية تجاوزها

 

أنا. ريكابتشا وحماية مواقع الويب

recaptcha

Google reCaptcha هي خدمة مجانية تقدم لمنع البريد العشوائي وإساءة استخدام مواقع الويب. يستخدم تقنيات تحليل المخاطر المتقدمة ويسمح فقط للمستخدمين الصالحين بالمتابعة.

Process flow diagram of Google reCAPTCHA
مخطط تدفق العمليات لجوجل reCAPTCHA

 

كيفية تجاوز reCAPTCHA؟

التحقق باستخدام إضافات المتصفح

تساعد ملحقات المتصفح مثل Buster في حل تحديات التحقق من CAPTCHA. يستخدم Buster، على سبيل المثال، برنامج التعرف على الكلام لتجاوز تحديات reCaptcha الصوتية. يسمح reCaptcha للمستخدمين بتنزيل الملفات الصوتية. بمجرد تنزيله، واجهة برمجة تطبيقات التعرف على الكلام الخاصة بـ Google يمكن استخدامها لحل التحدي الصوتي.

خدمات حل اختبار CAPTCHA

تقدم خدمات حل CAPTCHA عبر الإنترنت خدمات قائمة على الإنسان. تشمل هذه الخدمات البشر الفعليين الذين تم تعيينهم لحل اختبارات CAPTCHA.

 

ثانيا. اختبار CAPTCHA الشخصي الحقيقي وعمليات إرسال النماذج الآلية

يمنع المكون الإضافي لـ jQuery real person CAPTCHA عمليات إرسال النماذج الآلية بواسطة الروبوتات. تقدم هذه المكونات الإضافية اختبارات CAPTchA النصية بخط منقط. هذا يحل مشكلة إرسال النماذج المزيفة.

 

text in dotted font

 

كيفية تجاوز الشخص الحقيقي CAPTCHA?

يمكن استخدام الخطوات التالية لحل اختبارات CAPTCHA الخاصة بالشخص الحقيقي:

ألف - إنشاء مجموعة بيانات

في هذه العملية التي تتم لمرة واحدة:

  1. اجمع النصوص من علامات HTML الخاصة بالشخص الحقيقي
  2. قم بتجميع النصوص بناءً على الكلمات
  3. إنشاء نموذج مجموعة بيانات للكلمات من الألف إلى الياء (بيانات التدريب)
باء - الاختبار للتنبؤ بالحلول

بعد إكمال العملية A بنجاح، قم بإعداد عملية من أجل:

  1. اجمع النصوص من علامات HTML الخاصة بالشخص الحقيقي
  2. قم بتجميع النصوص بناءً على الكلمات
  3. قم بإحضار الكلمة من نموذج مجموعة البيانات الذي تم إنشاؤه في العملية A.

 

مثال:

من برنامج webdriver لاستيراد السيلينيوم وقت الاستيراد مجموعة البيانات = {'* * * * * *******': 'J'، '******* * * * * *': 'L'، '******** * ** * ** * ** * * * ** ** ':' B ', '* * * **** * * ':' Y '، '* * * ******** * * ':' T ', '***** * ** ** ** ** * *': 'C', '******** * ** * ** ** ** ** *': 'E', '******** ** ** ** ** * ***** ':' D ', '* ** *********** ** ** *': 'I', '***** * ** ** ** ** ** ** ** ***': 'O', '******* * * * * * *******': 'M', '******* * * * * * *******': 'N', '******** * * * * * * ':' F '، '** * * * ** * ** * ** * * * **': 'S', '***** * ** ** ** ** ** * **** *':' Q ', '******* * * * * * * * * * *': 'K'، '** ** ** * * * ** ** ** **': 'A', '****** * * * * ******* ':' U ', '******* * * * * ********': 'H', '** ** ** * ** ** ** ':' V '، '* ** *** * ** * ** * *** ** *': 'Z', '******** * * * * * * * ** ':' P ', '* * * * * * * * * * *': 'X'، '***** * ** ** ** * ** * * **': 'G', '******** * * * * * * * * * ** *': 'R', '******* * * * * ********': 'W'} وصف مجموعة_captcha_string (word_pos): سلسلة الكابتشا =» بالنسبة له في النطاق (len (word_pos [0])): قائمة temp_list = [] سلسلة temp_string =» بالنسبة لـ j في النطاق (len (word_pos)): فال = word_pos [j] [i] سلسلة temp_string += val إذا كان val.strip (): temp_list.append (val) إذا كانت قائمة temp_list: سلسلة captcha_string += سلسلة temp_string وإلا: captcha_string += 'sp' إرجاع captcha_string.split («spsp») # إنشاء عميل العميل = ويبدريفر.كروم () client.get (» http://keith-wood.name/realPerson.html «) تايم سليب (3) # فهرسة النص _get = lambda _in: {الفهرس: val للفهرس، val في التعداد (_in)} # احصل على نص من علامة html كلمة التحقق = client.find_element_by_css_selector ('النموذج [class= «realperson-text"] ') .text.split ('\n') word_pos = قائمة (خريطة (_get، كلمة التحقق)) # نص المجموعة النص = مجموعة_captcha_string (word_pos) # احصل على نص (اختبار) captcha_text = «.join (قائمة (خريطة (lambda x: مجموعة البيانات [x] إذا كان x آخر «، نص))) طباعة («كلمة التحقق:»، captcha_text)

ثالثا. اختبار CAPTCHA للنص داخل الصورة

تعد اختبارات CAPTCHA المستندة إلى النص/النص في الصورة هي النوع الأكثر انتشارًا وتستخدم نصًا مشوهًا يتم عرضه في صورة. هناك نوعان من اختبارات CAPTchA النصية:

 

اختبار CAPTCHA البسيط

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

simple

مثال:

استيراد بيتسراكت أنظمة الاستيراد استيراد arparse حاول: استيراد صورة باستثناء خطأ الاستيراد: من صورة استيراد PIL من عملية استيراد فرعية check_output حل def (المسار): طباعة («إعادة تشكيل الصورة») check_output (['تحويل'، المسار، '-resample'، '600'، المسار]) إرجاع pytesseract.image_to_string (فتح الصورة (المسار)) إذا كان __name__== «__main__»: argparser = argparse.محلل الحجج () argparser.add_argument ('المسار'، المساعدة = 'مسار ملف Captcha ') args = argparser.parse_args () المسار = args.path طباعة («حل كلمة التحقق») captcha_text = حل (المسار) طباعة («نص مستخرج»، captcha_text) # أمر لتشغيل البرنامج النصي بيثون 3 captcha_resolver.py cap.jpg

 

اختبار CAPTCHA المعقد

تعد اختبارات CAPTCHA للنص في الصورة معقدة للغاية بحيث لا يمكن حلها باستخدام تقنية OCR. بدلاً من ذلك، يمكن النظر في التدابير التالية:

  • قم ببناء نماذج التعلم الآلي مثل الشبكة العصبية التلافيفية (CNN) أو الشبكة العصبية المتكررة (RNN)
  • اللجوء إلى خدمات حل اختبار CAPTCHA

 

 

رابعا. مجموع الأعداد الصحيحة أو العمليات المنطقية

يتضمن هذا التحدي الفريد حل المشكلات الرياضية، وخاصة إيجاد مجموع الأعداد الصحيحة.

logical captcha

لتجاوز هذا التحدي، يمكن للمرء:

  1. استخراج النص من علامات HTML أو الصور
  2. حدد المشغل
  3. نفذ المنطق
  4. احصل على النتيجة

 

خامساً - التخفيف من هجمات DDoS باستخدام CapTchas

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

DDoS

يمكن استخدام الطرق أو البرامج التالية لتجاوز مواقع DDoS المحمية:

  1. متصفحات جافا سكريبت المدعومة (كروم/فايرفوكس)
  2. اشتقاق المنطق لتوليد إجابات DDoS
  3. قم بإحضار مشكلة DDoS على الموقع وتنفيذها باستخدام node.js
سيلاماني سي.
إنه مهندس برمجيات أول يعمل كجزء من فريق الحصول على البيانات في CloudSek. في دوره، يكون مسؤولاً عن كتابة الرموز القابلة لإعادة الاستخدام وبرامج زحف الويب القابلة للتطوير لـ xviGil. في أوقات فراغه، يحب سيلاماني مواجهة تحديات جديدة وإيجاد حلول لمشاكل الوقت الفعلي.
لم يتم العثور على أية عناصر.

مدونات ذات صلة