Fuzzing Insecure Deserialization Vulnerability Using Genetic Algorithm

Fuzzing Insecure Deserialization Vulnerability Using Genetic Algorithm. Masters thesis, King Fahd University of Petroleum and Minerals.

[img] PDF
Salman Thesis Final.pdf
Restricted to Repository staff only until 19 October 2024.

Download (58MB)

Arabic Abstract

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

English Abstract

Web applications play a critical role in our daily lives, facilitating various transactions, communication, and information sharing. However, web applications are prone to security vulnerabilities like any other computing system, and injection vulnerabilities are the most common type of web application security vulnerability. Therefore, software testing is a crucial phase in the software development life cycle to ensure the robustness and reliability of web applications. Fuzzing testing is a popular approach to automatically discovering software vulnerabilities by generating random malformed inputs and injecting them into the software to trigger vulnerable conditions. However, traditional fuzzing methods often need more test cases, which makes them less effective at detecting vulnerabilities. One of the most significant vulnerabilities that impact web applications is insecure deserialization, which can lead to the execution of malicious code on the vulnerable application. This work aims to investigate the deserialization vulnerability and propose a method to identify this vulnerability using fuzzing by providing random corrupted input and monitoring errors and crashes. The proposed approach allows the automated generation of deserialization attacks using a genetic algorithm technique to identify vulnerabilities by supplying the applications with random malicious input. Two preliminary processes were performed to implement the proposed approach: a primary static source code analysis to identify the vulnerable insertion points and a genetic algorithm to identify testing queries, which is the first step in generating deserialization attacks. The discovery of deserialization vulnerabilities was treated as an optimization challenge that could be solved using a genetic algorithm. Static analysis techniques were used to pinpoint insertion points in the application under testing. The genetic algorithm tested the identified insertion by generating insecure deserialization payloads. The proposed approach was empirically evaluated on three different test cases to evaluate the effectiveness of the proposed approach in detecting two types of vulnerabilities: insecure deserialization and cross-site scripting. The experiment was conducted by running the proposed approach ten times on each of the three applications for both types of vulnerabilities. The results demonstrated that the approach was effective in detecting deserialization vulnerabilities. The approach was benchmarked against other approaches and demonstrated better detection results. This proposed approach contributes significantly to the security testing of web applications and enhances their reliability and robustness.

Item Type: Thesis (Masters)
Subjects: Computer
Systems
Department: College of Computing and Mathematics > Information and Computer Science
Committee Advisor: Ramadan, Emad
Committee Members: Ahmed, Moataz and Hassine, Jameleddine
Depositing User: SALMAN ALANAZI (g201148950)
Date Deposited: 08 Oct 2023 12:27
Last Modified: 19 Oct 2023 11:59
URI: http://eprints.kfupm.edu.sa/id/eprint/142494