title: ÐÑÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ðµ Ð¸ ÑÐ°Ð·ÑÐ°Ð±Ð¾ÑÐºÐ° ÑÐ¿Ð¾ÑÐ¾Ð±Ð¾Ð² Ð¾Ð±Ð½Ð°ÑÑÐ¶ÐµÐ½Ð¸Ñ ÑÑÐ·Ð²Ð¸Ð¼Ð¾ÑÑÐµÐ¹ ÑÐ¸Ð¿Ð¸Ð·Ð°ÑÐ¸Ð¸ Ð² Ð¿ÑÐ¾Ð³ÑÐ°Ð¼Ð¼Ð°Ñ Ð½Ð° ÑÐ·ÑÐºÐµ Kotlin
title: Ð²ÑÐ¿ÑÑÐºÐ½Ð°Ñ ÐºÐ²Ð°Ð»Ð¸ÑÐ¸ÐºÐ°ÑÐ¸Ð¾Ð½Ð½Ð°Ñ ÑÐ°Ð±Ð¾ÑÐ° Ð¼Ð°Ð³Ð¸ÑÑÑÐ°
titleType: Subtitle
Creators: name: ÐÐ°Ð»ÑÑÑÑÐµÐ², ÐÐ»Ð°Ð´Ð¸Ð¼Ð¸Ñ
Publisher: name: Ð¡Ð°Ð½ÐºÑ-ÐÐµÑÐµÑÐ±ÑÑÐ³ÑÐºÐ¸Ð¹ Ð¿Ð¾Ð»Ð¸ÑÐµÑÐ½Ð¸ÑÐµÑÐºÐ¸Ð¹ ÑÐ½Ð¸Ð²ÐµÑÑÐ¸ÑÐµÑ ÐÐµÑÑÐ° ÐÐµÐ»Ð¸ÐºÐ¾Ð³Ð¾
Year: 2020
Subjects: ÐÑÐ¾Ð³ÑÐ°Ð¼Ð¼Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÐ·ÑÐºÐ¸
ÐºÐ¾ÑÐ»Ð¸Ð½
Ð°Ð½Ð°Ð»Ð¸Ð· Ð³ÑÐ°ÑÐ° Ð¿Ð¾ÑÐ¾ÐºÐ° Ð´Ð°Ð½Ð½ÑÑ
Ð¼ÐµÐ¶Ð¿ÑÐ¾ÑÐµÐ´ÑÑÐ½ÑÐ¹ Ð°Ð½Ð°Ð»Ð¸Ð·

description: ÐÐ°Ð³Ð¸ÑÑÐµÑÑÐºÐ°Ñ ÑÐ°Ð±Ð¾ÑÐ° Ð¿Ð¾ÑÐ²ÑÑÐµÐ½Ð° ÑÐ°Ð·ÑÐ°Ð±Ð¾ÑÐºÐµ ÑÑÐµÐ´ÑÑÐ² Ð´ÐµÑÐµÐºÑÐ¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´ÐµÑÐµÐºÑÐ¾Ð² ÑÐ¸Ð¿Ð¸Ð·Ð°ÑÐ¸Ð¸ Ð² Ð¿ÑÐ¾Ð³ÑÐ°Ð¼Ð¼Ð°Ñ Ð½Ð° ÑÐ·ÑÐºÐµ Kotlin. 
ÐÐ´Ð½Ð¾Ð¹ Ð¸Ð· Ð³Ð»Ð°Ð²Ð½ÑÑ Ð¾ÑÐ¾Ð±ÐµÐ½Ð½Ð¾ÑÑÐµÐ¹ ÑÐ·ÑÐºÐ° ÑÐ²Ð»ÑÐµÑÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÐ° ÑÐ¸Ð¿Ð¾Ð², Ð·Ð°Ð¿ÑÐµÑÐ°ÑÑÐ¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ðµ null. ÐÐ´Ð½Ð°ÐºÐ¾, ÑÑÑÐµÑÑÐ²ÑÑÑ ÑÐ¸ÑÑÐ°ÑÐ¸Ð¸, Ð¿ÑÐ¸ ÐºÐ¾ÑÐ¾ÑÑÑ Ð´Ð°Ð¶Ðµ Ð´Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ ÑÐ¸Ð¿Ð¾Ð² Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÐµÑ Ð¾ÑÐ¸Ð±ÐºÐ° ÑÐ°Ð·ÑÐ¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÑÐ»ÐµÐ²Ð¾Ð³Ð¾ ÑÐºÐ°Ð·Ð°ÑÐµÐ»Ñ. ÐÐ´Ð½Ð¾Ð¹ Ð¸Ð· ÑÐ°ÐºÐ¸Ñ ÑÐ¸ÑÑÐ°ÑÐ¸Ð¹ ÑÐ²Ð»ÑÐµÑÑÑ ÑÑÐ·Ð²Ð¸Ð¼Ð¾ÑÑÑ Leaking This - Ð¾Ð±ÑÐ°ÑÐµÐ½Ð¸Ðµ Ðº Ð½Ðµ Ð¸Ð½Ð¸ÑÐ¸Ð°Ð»Ð¸Ð·Ð¸ÑÐ¾Ð²Ð°Ð½Ð½ÑÐ¼ ÑÐ²Ð¾Ð¹ÑÑÐ²Ð°Ð¼, Ð½Ð° ÑÑÐ°Ð¿Ðµ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ð±ÑÐµÐºÑÐ°. Ð Ð°Ð·ÑÐ°Ð±Ð¾ÑÐ°Ð½Ð½Ð°Ñ Ð´Ð¸Ð°Ð³Ð½Ð¾ÑÑÐ¸ÐºÐ° Ð½Ð°Ð¿ÑÐ°Ð²Ð»ÐµÐ½Ð°
Ð½Ð° Ð¿Ð¾Ð¸ÑÐº Ð¸Ð¼ÐµÐ½Ð½Ð¾ Ð´ÐµÑÐµÐºÑÐ° Leaking This. ÐÑÐµÐ´Ð²Ð°ÑÐ¸ÑÐµÐ»ÑÐ½Ð¾ ÑÐ°ÑÑÐ¼Ð¾ÑÑÐµÐ½Ñ Ð¾ÑÐ½Ð¾Ð²Ð½ÑÐµ Ð¼ÐµÑÐ¾Ð´Ñ ÑÑÐ°ÑÐ¸ÑÐµÑÐºÐ¾Ð³Ð¾ Ð°Ð½Ð°Ð»Ð¸Ð·Ð° Ð¸ Ð¾ÑÐ½Ð¾Ð²Ñ ÑÐµÐ¾ÑÐ¸Ð¸ ÑÐµÑÐµÑÐ¾Ðº. ÐÐ·ÑÑÐµÐ½Ñ Ð¾ÑÐ½Ð¾Ð²Ð½ÑÐµ Ð¸Ð½ÑÑÑÑÐ¼ÐµÐ½ÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð¸ÑÐºÐ° ÑÑÐ·Ð²Ð¸Ð¼Ð¾ÑÑÐµÐ¹ Ð¸ Ð¿Ð¾Ð´ÑÐ¾Ð´Ñ, Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾ÑÐ¾ÑÑÑ Ð¾Ð½Ð¸ ÑÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ñ. 
ÐÐ° Ð¾ÑÐ½Ð¾Ð²Ðµ ÑÐ¾Ð±ÑÐ°Ð½Ð½Ð¾Ð¹ Ð¸Ð½ÑÐ¾ÑÐ¼Ð°ÑÐ¸Ð¸ ÑÐ°Ð·ÑÐ°Ð±Ð¾ÑÐ°Ð½Ð° Ð´Ð¸Ð°Ð³Ð½Ð¾ÑÑÐ¸ÐºÐ°, Ð¾ÑÑÑÐµÑÑÐ²Ð»ÑÑÑÐ°Ñ Ð¼ÐµÐ¶Ð¿ÑÐ¾ÑÐµÐ´ÑÑÐ½ÑÐ¹ Ð°Ð½Ð°Ð»Ð¸Ð· Ð½Ð° Ð¾ÑÐ½Ð¾Ð²Ðµ Ð³ÑÐ°ÑÐ° Ð¿Ð¾ÑÐ¾ÐºÐ° ÑÐ¿ÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ, Ð° ÑÐ°ÐºÐ¶Ðµ ÑÐµÑÐµÑÐºÐ¸ Ð¾ÑÐ¾Ð±ÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑÐ²Ð¾Ð¹ÑÑÐ² ÐºÐ»Ð°ÑÑÐ° Ð¸ Ð¸Ñ Ð¸Ð½Ð¸ÑÐ¸Ð°Ð»Ð¸Ð·Ð°ÑÐ¸Ð¸. ÐÐ°Ð½Ð½Ð°Ñ Ð´Ð¸Ð°Ð³Ð½Ð¾ÑÑÐ¸ÐºÐ° ÑÐ°ÐºÐ¶Ðµ ÑÑÐ¸ÑÑÐ²Ð°ÐµÑ Ð¸ÐµÑÐ°ÑÑÐ¸Ð¸ ÐºÐ»Ð°ÑÑÐ¾Ð² Ð¸ Ð¿ÐµÑÐµÐ¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ðµ Ð¼ÐµÑÐ¾Ð´Ð¾Ð².
ÐÑÐ¾Ð²ÐµÐ´ÐµÐ½Ð¾ Ð¼Ð¾Ð´ÑÐ»ÑÐ½Ð¾Ðµ ÑÐµÑÑÐ¸ÑÐ¾Ð²Ð°Ð½Ð¸Ðµ, Ð° ÑÐ°ÐºÐ¶Ðµ ÑÐµÑÑÐ¸ÑÐ¾Ð²Ð°Ð½Ð¸Ðµ Ð½Ð° ÑÐµÐ°Ð»ÑÐ½Ð¾Ð¼ Ð¿ÑÐ¾ÐµÐºÑÐµ, Ð¿ÑÐ¾Ð°Ð½Ð°Ð»Ð¸Ð·Ð¸ÑÐ¾Ð²Ð°Ð½Ð° Ð¿ÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ð¸ÑÐµÐ»ÑÐ½Ð¾ÑÑÑ, Ð° ÑÐ°ÐºÐ¶Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½Ñ Ð¾Ð¿ÑÐ¸Ð¼Ð°Ð»ÑÐ½ÑÐµ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑÐ°Ð¼ÐµÑÑÐ¾Ð² Ð´Ð¸Ð°Ð³Ð½Ð¾ÑÑÐ¸ÐºÐ¸.
description: 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.