شماره ركورد
26157
شماره راهنما
COM2 728
عنوان
روشي توضيحپذير براي تشخيص خودكار آسيبپذيري در كد منبع
مقطع تحصيلي
كارشناسي ارشد
رشته تحصيلي
مهندسي كامپيوتر - نرم افزار
دانشكده
مهندسي كامپيوتر
تاريخ دفاع
1404/12/25
صفحه شمار
101 ص.
استاد راهنما
بهروز ترك لاداني
استاد مشاور
محمدرضا شعرباف
كليدواژه فارسي
تشخيص آسيبپذيري نرمافزار , كد منبع , شبكه عصبي گرافي , گراف همبند , هوش مصنوعي توضيحپذير
چكيده فارسي
با گسترش روزافزون نرمافزارها و افزايش پيچيدگي سامانههاي نرمافزاري، شناسايي آسيبپذيريهاي امنيتي در كد منبع به يكي از چالشهاي اساسي در حوزه مهندسي نرمافزار تبديل شده است. روشهاي مبتني بر يادگيري عميق و شبكههاي عصبي گرافي دقت قابلتوجهي در تشخيص اين آسيبپذيريها دارند، اما ماهيت «جعبه سياه» آنها و ناتواني روشهاي متعارف توضيحپذيري در ارائه درك عملي از دلايل تشخيص، اعتمادپذيري اين سامانهها را محدود كرده است. توضيحات توليدشده توسط مفسرهاي رايج اغلب به صورت گرههاي پراكنده ارائه ميشوند كه فاقد انسجام ساختاري بوده و الگوهاي تعاملي مسبب آسيبپذيري را آشكار نميسازند. در اين پاياننامه، روشي نوين براي توليد توضيحات ساختاريافته در تشخيص آسيبپذيري كد منبع ارائه ميشود. ايده محوري اين روش مبتني بر اين فرضيه است كه با توجه به ماهيت بههمپيوسته آسيبپذيريها، خطوط كد مرتبط با يك آسيبپذيري تمايل به تشكيل مؤلفههاي همبند در گراف ويژگيهاي كد دارند. تحليل آماري نيز اين فرضيه را تأييد ميكند؛ بهطوريكه نزديك به 80٪ از توابع آسيبپذير داراي زيرگرافهاي كاملاً متصل هستند. روش ارائه شده از يك فرآيند ششمرحلهاي شامل: محاسبه اهميت گرهها، انتخاب نقاط منتخب، استخراج مؤلفههاي همبند، امتيازدهي بر اساس وفاداري (تركيب كفايت و ضرورت) و همبندي داخلي، انتخاب بهترين مؤلفه و تبديل به خطوط كد تشكيل شده است. ارزيابي روش بر روي مجموعهداده شامل بيش از 180,000 نمونه كد زبان سي و سي پلاس پلاس و در مقايسه با هفت روش توضيحپذيري ديگر انجام شده است. نتايج نشان داد كه روش ارائه شده در دو معماري مختلف گرافي بالاترين مقادير معيار F1 را كسب ميكند. همچنين تحليلهاي كيفي تأييد ميكنند كه خروجي روش ارائه شده به صورت مؤلفههاي همبند و منسجم است كه درك روشنتري از مسير جريان داده يا كنترل منجر به آسيبپذيري را فراهم ميسازد. روش پيشنهادي با ارائه توضيحاتي ساختاريافته و قابل رديابي، ميتواند اعتماد توسعهدهندگان را جلب كرده و فرآيند بازبيني و رفع سريعتر آسيبپذيريها را تسهيل نمايد.
كليدواژه لاتين
software vulnerability detection , source code , graph neural network , connected graph , explainable ai
عنوان لاتين
An Explainable Method for Automated Vulnerability Detection in Source Code
گروه آموزشي
مهندسي نرم افزار
چكيده لاتين
With the ever-increasing expansion of software and the growing complexity of software systems, identifying security vulnerabilities in source code has become one of the fundamental challenges in the field of software engineering. Methods based on deep learning and Graph Neural Networks (G ) have demonstrated significant accuracy in detecting these vulnerabilities; however, their "black box" nature and the inability of conventional explainability methods to provide a practical understanding of the reasons behind the detection have limited the trustworthiness of these systems. Explanations generated by common interpreters are often presented as scattered nodes that lack structural coherence and do not reveal the interactive patterns causing the vulnerability. In this thesis, a novel method named PathExplainer is presented for generating structured explanations in source code vulnerability detection. The core idea of this method is based on the hypothesis that given the interconnected nature of vulnerabilities, lines of code related to a vulnerability tend to form connected components in the code feature graph. Statistical analysis on the Big-Vul dataset confirms this hypothesis; in fact, nearly 80% of vulnerable functions contain fully connected subgraphs. PathExplainer consists of a six-stage process including: calculating node importance, selecting pivot points, extracting connected components, scoring based on fidelity (a combination of sufficiency and necessity) and internal connectivity, selecting the best component, and converting to code lines. The evaluation of the method was performed on the Big-Vul dataset, comprising over 180,000 C/C++ code samples, and in comparison with seven other explainability methods. The results showed that PathExplainer achieves the highest F1 scores in both GCN and GIN architectures. In the GIN architecture, the proposed method achieved an F1 score of 18.82%, representing a 4.4% improvement over the best existing method (CFExplainer with 18.03%). Furthermore, in terms of the Jaccard index, PathExplainer showed a 9.7% improvement in the GCN architecture with a score of 11.82% compared to CFExplainer with 10.73%. These improvements indicate a greater overlap of explanations with actually vulnerable lines and their higher structural coherence. Qualitative analyses confirm that PathExplainerʹs output is in the form of connected and coherent components, providing a clearer understanding of the data or control flow path leading to the vulnerability. By providing structured and traceable explanations, the proposed method can garner developersʹ trust and facilitate the process of reviewing and remediating vulnerabilities more quickly.
تعداد فصل ها
6
فهرست مطالب pdf
169113
نويسنده