Details

Title: Исследование и разработка способов обнаружения уязвимостей типизации в программах на языке Kotlin: выпускная квалификационная работа магистра: направление 09.04.01 «Информатика и вычислительная техника» ; образовательная программа 09.04.01_15 «Технологии проектирования системного и прикладного программного обеспечения»
Creators: Балсутьев Владимир Александрович
Scientific adviser: Глухих Михаил Игоревич
Other creators: Новопашенный Андрей Гелиевич
Organization: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Imprint: Санкт-Петербург, 2020
Collection: Выпускные квалификационные работы; Общая коллекция
Subjects: Программирования языки; котлин; анализ графа потока данных; межпроцедурный анализ
UDC: 004.438
Document type: Master graduation qualification work
File type: PDF
Language: Russian
Speciality code (FGOS): 09.04.01
Speciality group (FGOS): 090000 - Информатика и вычислительная техника
Links: Отзыв руководителя; Рецензия; Отчет о проверке на объем и корректность внешних заимствований
DOI: 10.18720/SPBPU/3/2020/vr/vr20-766
Rights: Доступ по паролю из сети Интернет (чтение, печать, копирование)

Allowed Actions:

Action 'Read' will be available if you login or access site from another network Action 'Download' will be available if you login or access site from another network

Group: Anonymous

Network: Internet

Annotation

Магистерская работа посвящена разработке средств детектирования дефектов типизации в программах на языке Kotlin. Одной из главных особенностей языка является поддержка типов, запрещающих значение null. Однако, существуют ситуации, при которых даже для данных типов возникает ошибка разыменования нулевого указателя. Одной из таких ситуаций является уязвимость Leaking This - обращение к не инициализированным свойствам, на этапе создания объекта. Разработанная диагностика направлена на поиск именно дефекта Leaking This. Предварительно рассмотрены основные методы статического анализа и основы теории решеток. Изучены основные инструменты для поиска уязвимостей и подходы, с помощью которых они реализованы. На основе собранной информации разработана диагностика, осуществляющая межпроцедурный анализ на основе графа потока управления, а также решетки отображения свойств класса и их инициализации. Данная диагностика также учитывает иерархии классов и переопределение методов. Проведено модульное тестирование, а также тестирование на реальном проекте, проанализирована производительность, а также найдены оптимальные значения параметров диагностики.

The master's thesis is devoted to the development analysis for detecting typing defects in programs in the Kotlin language. One of the main features of the language is the support of types that prohibit null. However, there are situations in which, even for these types, a null pointer dereference error occurs. One of such situations is the Leaking This vulnerability - a call to non-initialized properties at the stage of creating an object. The developed diagnostics is directed to search for exactly the Leaking This defect. The basic methods of static analysis and the fundamentals of lattice theory are considered in advance. The basic tools for searching for vulnerabilities and the approaches by which they are implemented have been studied. Based on the information collected, a diagnostic was developed that performs interprocedural analysis on the basis of the control flow graph, as well as the lattice for displaying class properties and their initialization. This diagnostic also takes into account class hierarchies and method overrides. Unit testing was carried out, as well as testing on a real project, performance was analyzed, and the optimal values of the diagnostic parameters were found.

Document access rights

Network User group Action
ILC SPbPU Local Network All Read Print Download
Internet Authorized users Read Print Download
-> Internet Anonymous

Usage statistics

stat Access count: 5
Last 30 days: 1
Detailed usage statistics