Таблица | Карточка | RUSMARC | |
Разрешенные действия: –
Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети
Действие 'Загрузить' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети
Группа: Анонимные пользователи Сеть: Интернет |
Аннотация
Данная работа посвящена реализации статического анализатора кода на безопасность для языка Kotlin с применением технологии символического исполнения в рамках продукта PT Application Inspector, а также исследованию возможности оптимизации процесса сканирования путем применения технологии анализа потоков данных. В ходе выполнения данной работы были спроектированы и реализованы программные прототипы анализаторов кода на наличие уязвимостей для языка программирования Kotlin с применением технологии символического исполнения, с применением технологии анализа потоков данных, а также оптимизированный вариант с объединением вышеописанных подходов. Было проведено исследование характеристик работы разработанных прототипов, по результатам которого принято решение об их применимости.
This work is devoted to the implementation of a static security code analyzer for the Kotlin language using symbolic execution technology within the PT Application Inspector product, as well as to the research of the possibility of optimizing the scanning process by using data flow analysis technology. In the course of this work, software prototypes of vulnerabilities detection static code analyzer for the Kotlin programming language were designed and implemented using symbolic execution technology, using data flow analysis technology, as well as an optimized version combining the above approaches. An evaluation of the characteristics of the developed prototypes was carried out, the results of which made a decision on their applicability.
Права на использование объекта хранения
Место доступа | Группа пользователей | Действие | ||||
---|---|---|---|---|---|---|
Локальная сеть ИБК СПбПУ | Все |
![]() ![]() ![]() |
||||
Интернет | Авторизованные пользователи СПбПУ |
![]() ![]() ![]() |
||||
![]() |
Интернет | Анонимные пользователи |
Оглавление
- 1. Обзор предметной области
- 1.1. Статический анализ кода
- 1.1.1. Методы статического анализа
- 1.1.2. Используемые представления исходного кода
- 1.2. Статическое тестирование безопасности приложений
- 1.3. Язык программирования Kotlin
- 1.3.1. Сферы применения языка Kotlin
- 1.1. Статический анализ кода
- 2. Постановка задачи
- 2.1. Продукт PT Application Inspector
- 2.2. Проект JSA
- 2.2.1. Архитектура проекта JSA
- 2.2.2. Общая часть и символьная виртуальная машина
- 2.2.3. Провайдеры языков программирования
- 2.3. Возможность поддержки языка Kotlin
- 2.4. Сложность анализа методом символического исполнения
- 3. Идеи и технологии решения
- 3.1. Провайдер языка программирования Kotlin
- 3.1.1. Представление исходного кода
- 3.1.2. Символическое исполнение кода
- 3.1.3. Базы знаний
- 3.1.4. Нахождение уязвимостей
- 3.2. Анализ потоков данных
- 3.2.1. Место анализатора потоков данных в архитектуре проекта JSA
- 3.3. Объединение анализатора потоков данных и символического исполнения
- 3.1. Провайдер языка программирования Kotlin
- 4. Реализация прототипов
- 4.1. Провайдер языка программирования Kotlin
- 4.1.1. Построение представления проекта
- 4.1.2. Пересылка представления на сторону анализатора
- 4.1.3. Получение дополнительной информации
- 4.1.4. Учет зависимостей при построении модели
- 4.1.5. Получение и представление модели
- 4.1.6. Используемый шаблон
- 4.1.7. Архитектурные элементы
- 4.1.8. Получение информации о типах
- 4.1.9. Обход с целью символического исполнения
- 4.1.10. Переиспользование баз знаний
- 4.1.11. Нахождение уязвимостей
- 4.1.12. Подходы к тестированию
- 4.1.13. Проверка в расширении среды разработки
- 4.2. Анализатор потоков данных
- 4.2.1. Новые сущности в общей части проекта
- 4.2.2. Подмена кондициональной части формул
- 4.2.3. Операция нахождения уязвимости
- 4.3. Объединение предложенных подходов
- 4.3.1. Алгоритм оптимизированного сканирования
- 4.3.2. Прерывание сканирования точки входа
- 4.1. Провайдер языка программирования Kotlin
- 5. Анализ результатов
- 5.1. Уязвимые приложения на языке Kotlin
- 5.2. Необходимость создания собственного уязвимого приложения
- 5.3. Создание уязвимого приложения
- 5.4. Уязвимости, найденные символическим исполнением
- 5.5. Результаты анализа разработанных подходов
- ПРИЛОЖЕНИЕ. АКТ ВНЕДРЕНИЯ
Статистика использования
|
Количество обращений: 9
За последние 30 дней: 0 Подробная статистика |