Loading...
Vulnerability Extraction in Large Codebases Through Template Generalization
Salimi, Solmaz | 2023
143
Viewed
- Type of Document: Ph.D. Dissertation
- Language: Farsi
- Document No: 56017 (19)
- University: Sharif University of Technology
- Department: Computer Engineering
- Advisor(s): Kharrazi, Mehdi
- Abstract:
- As the size and complexity of software increase, the number of software vulnerabilities also increases. An examination of vulnerability reports shows that in addition to the fact that a large number of unknown vulnerabilities still exist in software, there is still no proper solution for identifying vulnerabilities that have been observed one sample of them exit in real-world software. The main reason for such an event is the lack of a suitable template for recognized vulnerabilities, which ultimately makes searching for them in other software a problem of scalability and high search cost. This thesis, recognizing the importance of the issue, presents a framework for extracting robust and generalized templates of vulnerability that is independent of the original source of vulnerability. To this end, recognized vulnerabilities and their associated patches are examined and two main models for vulnerability templates are defined: a code-based model and a constraint-based model. The proposed framework, using static analysis methods, decouples vulnerabilities from the main program and then instead of creating a literal template for each vulnerability, combines similar instances to a vulnerability class and produces a generalized pattern for similar instances. Vulnerability templates can be used in many cases, including the identification of new vulnerabilities in software, the identification of incomplete vulnerability patches, the examination of side effects of vulnerabilities, and the re-injection of vulnerabilities into programs for further testing. In this thesis, vulnerability templates are used for the identification of new vulnerabilities. To this end, a new templets-based search method has been added to the second dimension of the proposed framework. The effectiveness and efficiency of this framework have been evaluated by implementing it, extracting vulnerability templates, and then using them to identify new vulnerabilities. This implementation is able to extract code-based and constraint-based templates using version differencing of vulnerable and patched code of real-world projects through program slicing and under-constraint symbolic analysis. The search algorithm has also been developed based on program slicing. Ultimately, this base architecture has been successful in discovering new vulnerabilities and has been evaluated in other aspects
- Keywords:
- Software Security ; Vulnerability ; Security Vulnerability ; Large Codebase ; Vulnerability Extraction ; Vulnerability Template ; Template Generalization
-
محتواي کتاب
- view
- 1 سرآغاز
- 1.1 شرح مساله
- 1.2 ایدهی راهکار پیشنهادی
- 1.3 نوآوریها و دستآوردها
- 1.4 ساختار پایاننامه
- 2 پیشزمینهها و مفاهیم پایه
- 2.1 تعاریف پایه
- 2.2 رفتار تعریفنشده
- 2.3 آسیبپذیری
- 2.4 مصالحههای روشهای تحلیل
- 2.4.1 مسالهی قابلیت اجرای مجدد
- 2.4.2 مسالهی درک معنایی
- 2.4.3 مسالهی مقیاسپذیری
- 2.5 روشهای تحلیل برنامه
- 2.5.1 تحلیل ایستا
- 2.5.2 تحلیل پویا
- 2.5.3 ویژگیهای روش تحلیل
- 2.6 تقسیمبندی برنامه
- 2.7 جمعبندی
- 3 پژوهشهای پیشین
- 3.1 شناسایی آسیبپذیری ناشناخته
- 3.1.1 شناسایی آسیبپذیری با استفاده از تحلیل ایستا
- 3.1.2 شناسایی آسیبپذیری با استفاده از تحلیل پویا
- 3.2 شناسایی آسیبپذیری شناختهشده
- 3.2.1 شناسایی کدهای تکراری در کد منبع
- 3.2.2 شناسایی عملکردهای مشابه در برنامههای اجرایی
- 3.3 اثبات آسیبپذیری
- 3.4 جمعبندی
- 3.1 شناسایی آسیبپذیری ناشناخته
- 4 راهکار پیشنهادی
- 4.1 بررسی مساله
- 4.2 معماریِ تقسیمبندی ایستای برنامه
- 4.2.1 گراف وابستگیهای کنترلی
- 4.2.2 گراف وابستگیهای دادهای
- 4.2.3 تقسیمبندی با استفاده از گراف وابستگی برنامه
- 4.3 استخراج آسیبپذیری
- 4.4 معماری شناسایی آسیبپذیری با استفاده از الگوی تعمیمیافته
- 4.5 جمعبندی
- 5 ارزیابی و دستآوردها
- 5.1 پیادهسازی
- 5.1.1 مولفهی استخراج آسیبپذیری
- 5.1.2 مولفهی شناسایی آسیبپذیری با استفاده از جستوجوی الگوی آسیبپذیری
- 5.2 روشگان ارزیابی
- 5.3 ارزیابی راهکار استخراج الگوی آسیبپذیری
- 5.3.1 معرفی پایگاهدادهی کدهای آسیبپذیری ورودی
- 5.3.2 روش ارزیابی الگوی آسیبپذیری
- 5.4 ارزیابی راهکار شناسایی آسیبپذیری مبتنی بر الگو
- 5.4.1 معرفی پایگاهدادهی کدهای آسیبپذیری ورودی
- 5.4.2 طراحی روش ارزیابی مولفهی شناسایی آسیبپذیری
- 5.4.3 ارزیابی مولفهی شناسایی آسیبپذیری
- 5.4.4 مقایسهی دقت مولفهی شناسایی آسیبپذیری در مقایسه با سایر راهکارها
- 5.4.5 آسیبپذیریهای گزارششده
- 5.5 جمعبندی
- 5.1 پیادهسازی
- 6 جمعبندی و نتیجهگیری
- 6.1 خلاصهی کارهای انجامشده
- 6.2 مسیر پژوهشهای آتی
- کتابنامه
- واژهنامهی فارسی به انگلیسی
- واژهنامهی انگلیسی به فارسی