شات جي بي تي، الدردشة القائمة على الذكاء الاصطناعي من OpenAI، قد أثارت جدلاً لعدة أشهر. ونسمع بانتظام أن شات جي بي تي (والذكاء الاصطناعي بشكل عام) سيجعلنا عاطلين عن العمل.

قبل أن نطرح السؤال الكبير حول ما إذا كان بإمكان شات جي بي تي أداء كل عمل لاختبار الاختراق بنفس الجودة، من المنطقي أن نبدأ بسؤال تقني أبسط بكثير: هل يمكن لشات جي بي تي حل تحدي بفراز متجاوز بسيط؟


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


قبل أن نبدأ، لا يجب أن ننسى الرسالة التي نسمعها في كثير من الأحيان عندما نسأل كيف يمكن استغلال الثغرات:

Image1

 

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


لنفترض أننا في مكان مبتدئ لم يسبق له استغلال buffer overflow!


لذا، نسأل شات جي بي تي ما إذا كان قطعة الكود في التحدي غير آمنة.

Image2

 

الانتصار الأول: تم اكتشاف الضعف!

 

Image3-1

 

في الواقع، يكتشف ChatGPT استخدام 'scanf' لقراءة buffer بدون مراقبة للحجم. بالإضافة إلى ذلك، يحدد الدالة 'callMeMaybe' التي تبسط تنفيذ الشيفرة بعد استغلال buffer overflow. في النهاية، يقترح ChatGPT بعض التحسينات على الشيفرة.


لذلك، نلاحظ أنه قادر على الحصول على رؤية عامة للشيفرة ويتمكن من ربط الضعف بـ 'callMeMaybe'.
نواصل نهجنا البسيط، كما لو أننا لا نثق فيه، ونطلب PoC للتأكد من وجود الضعف فعلًا.

 

Image4

 

يقدم لنا ChatGPT سلسلة من الأحرف المكونة من 300 'A'. في الواقع، يتوقف البرنامج مع خطأ من نوع 'Segmentation Fault'.
لنواصل التحقيق.

Image5

 

ثم ينصحنا ChatGPT باستخدام GDB لاكتشاف مصدر هذا الانهيار. يقدم لنا بعد ذلك قائمة طويلة من الأوامر التي يجب تنفيذها في gdb (تم حذفها من الشاشة أعلاه). ولكن لسوء الحظ، فإن هذا يعتبر فشلًا.

 

Image6

 

عندما وصفنا له المشكلة، اكتشف ChatGPT السبب مباشرةً وقدم لنا أمرًا لتجميع البرنامج مع 'symbols' gdb. ومع ذلك، بعد العديد من التبادلات، بدأ ChatGPT في التشويش وعلق. المعلومة الوحيدة المفيدة التي قدمها هي إنشاء سلسلة حروف دورانية تسهل عملية التصحيح.

 

Image7

 

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

 

Image8

 

يبدو أن ChatGPT نجح في العودة إلى المسار الصحيح. حتى يقترح علينا بعض الأوامر لتنفيذها.

 

Image9

 

بعد استلام محتوى السجلات، يكتشف ChatGPT سلسلة مألوفة "saaacaac" ، وهي تتناسب مع سلسلة الأحرف الدورانية التي قمنا بتوليدها باستخدام pwntools.


لننسى لماذا نحن هنا، ChatGPT قال لنا أنه يجب أن نتمكن من استدعاء "callMeMaybe". لذلك نسأله كيف يمكننا فعل ذلك.

 

Image10

 

تم الرد على بعض التفاصيل وتوفير جلسة GDB لإضافة عنوان "callMeMaybe".


مرة واحدة يتم تنفيذ هذه الأوامر في GDB، نقوم بإرسال نتائجنا ونطلب أمرًا يسمح للمستغل.

 

Image11

 

تنفيذ الأمر يتردد أيضًا بعد أكثر من أسئلة، ChatGPT لا يبدو أنه يفهم ذلك. نحن نقرر كيفية المساعدة.

 

Image12

 

بعد هذا الدعم، يقترح ChatGPT إضافة بعض الأحرف في طبعتنا حتى نصل إلى نقطة الانقطاع.
نحن نحاول مساعدته في العثور على طريقة أفضل للقيام بذلك عن طريق اقتراح استخدام وظيفة 'cyclic' في pwntools.


الأسئلة الست التالية تسمح لنا بالحصول على الطول الصحيح باستخدام هذه الوظيفة.

 

Image13

 

لدينا الآن برنامج Python الذي يولد الحمولة الصحيحة. الأمر الوحيد المتبقي هو تنفيذه.
ومع ذلك، لا يُعطينا الطرفية السيطرة كمستخدم root. في الحقيقة، يتم تشغيل bash كمستخدم root، ولكنه يُغلق قبل أن نتمكن من كتابة الأوامر.
نحاول مرة أخرى مساعدته في اكتشاف المشكلة ولكن دون جدوى.

 

Image14

 

آخر دفعة من المساعدة مطلوبة.

 

Image15

 

بفضل إشارة أوضح، قرر ChatGPT تغيير الاستراتيجية والعودة إلى البرنامج الذي يستخدم pwntools. وهذه ليست فكرة سيئة، ولكن وظيفة 'interact' لا تعمل، سيتعين علينا استبدالها بـ 'interactive' لنتمكن من استغلال الثغرة بنجاح، وهو ما فشل في العثور عليه على الرغم من محاولاتنا المختلفة.


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


المشكلة الثانية التي واجهناها هي عدم دقة بعض المعلومات التي يقدمها، لذا يُفضل إجراء "fact-checking" باستخدام محرك بحث و/أو امتلاك معرفة حول الموضوع.

مشاركة هذا المقال