Методы выявления поверхности атаки веб-приложений при помощи анализа клиентского JavaScript-кода

Специальность 2.3.5 ––

«Математическое и программное обеспечение вычислительных систем,

комплексов и компьютерных сетей»

Диссертация на соискание учёной степени

кандидата технических наук

Автор
Сигалов Даниил Алексеевич
Год
2025
  • 99 000 UZS

Оглавление диссертации

Оглавление

Стр.

Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Глава 1. Задача выявления поверхности атаки веб-приложения при

поиске уязвимостей методом “чёрного ящика” . . . . . . . . . . 10

1.1 Задача выявления серверных входных точек . . . . . . . . . . . . . 12

1.2 Обзор существующих методов . . . . . . . . . . . . . . . . . . . . . 15

1.2.1 Динамический анализ . . . . . . . . . . . . . . . . . . . . . . 16

1.2.2 Статический анализ . . . . . . . . . . . . . . . . . . . . . . . 19

1.2.3 Сравнительный анализ методов . . . . . . . . . . . . . . . . 21

1.3 Выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Глава 2. Исследование особенностей реального JavaScript-кода . . . . . 29

2.1 Корпус кода для исследования . . . . . . . . . . . . . . . . . . . . . 30

2.2 Метод исследования . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.3 Выделенные особенности кода . . . . . . . . . . . . . . . . . . . . . 31

2.4 Эталонный набор веб-страниц . . . . . . . . . . . . . . . . . . . . . 36

2.5 Выводы и требования к инструментам . . . . . . . . . . . . . . . . . 40

Глава 3. Методика поиска уязвимостей с использованием

статического анализа клиентского JavaScript-кода . . . . . . . 42

3.1 Сбор информации об анализируемом приложении . . . . . . . . . . 42

3.2 Поиск уязвимостей . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.3 Примеры применения методики для анализа приложений

методом “чёрного ящика” . . . . . . . . . . . . . . . . . . . . . . . . 44

3.4 Выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Глава 4. Метод анализа клиентского кода веб-приложения для

обнаружения серверных входных точек . . . . . . . . . . . . . . 48

4.1 Построение графа вызовов и сбор возможных значений . . . . . . . 50

4.1.1 Обработка AST-вершин . . . . . . . . . . . . . . . . . . . . . 56

4.1.2 Алгоритм вычисления выражений . . . . . . . . . . . . . . . 69

4.2 Поиск AJAX-вызовов и их аргументов . . . . . . . . . . . . . . . . 78

4.2.1 Aнализ цепочек вызова, ведущих к AJAX-вызовам . . . . . 81

3

Стр.

4.3 Формирование спецификаций HTTP-запросов . . . . . . . . . . . . 85

4.4 Анализ закомментированного клиентского кода . . . . . . . . . . . 87

4.5 Особенности реализации метода . . . . . . . . . . . . . . . . . . . . 91

4.5.1 Использование управляемого браузера . . . . . . . . . . . . 91

4.5.2 Реализация статического анализатора . . . . . . . . . . . . . 94

4.6 Апробация реализованного метода . . . . . . . . . . . . . . . . . . . 95

4.6.1 Апробация на созданном эталонном наборе страниц . . . . 96

4.6.2 Эксперимент по сравнению с аналогами . . . . . . . . . . . 100

4.7 Эксперименты с поиском уязвимостей на реальных приложениях . 106

4.7.1 Уязвимости типа “Небезопасная десериализация” в

запрашиваемых из JavaScript-кода входных точках . . . . . . 106

4.7.2 Эксперименты с закомментированным кодом . . . . . . . . 112

Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

Список литературы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

Список рисунков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

Список таблиц . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

Приложение А. Акты о внедрении результатов диссертационной работы131

Рекомендуем вам товары

99 000 UZS
Автор
БАЛАЛАЕВА Юлия Сергеевна
Количество страниц
263
Год
2024
99 000 UZS
Автор
Барабанов Дмитрий Владимирович
Количество страниц
242
Год
2024
99 000 UZS
Автор
БАРАНОВА МАРИЯ СЕРГЕЕВНА
Количество страниц
282
Год
2024
99 000 UZS
Автор
Курилкин Дмитрий Николаевич
Количество страниц
469
Год
2024
Модули для Opencart 2, Опенкарт 3