[1.4] «Ой, не шмогла». Обзор ограничений современных...
TRANSCRIPT
![Page 1: [1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ИБ - Андрей Петухов](https://reader030.vdocuments.site/reader030/viewer/2022032421/55a7956f1a28ab751f8b4682/html5/thumbnails/1.jpg)
Обзор ограничений современных технологий в области ИБ
Петухов Андрей ЛБИС ВМК МГУ
![Page 2: [1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ИБ - Андрей Петухов](https://reader030.vdocuments.site/reader030/viewer/2022032421/55a7956f1a28ab751f8b4682/html5/thumbnails/2.jpg)
Disclaimer • Это не научный доклад, но научно-‐популярный • Всё равно большинство актуальных задач сводится к проблеме останова МТ или P=NP, расходимся
• Тогда зачем? – обсудить актуальные нерешенные практические задачи в вебе
• Warning для практиков: используется сочетание “методически решенная задача”
• Не будет слайда с Боромиром
![Page 3: [1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ИБ - Андрей Петухов](https://reader030.vdocuments.site/reader030/viewer/2022032421/55a7956f1a28ab751f8b4682/html5/thumbnails/3.jpg)
Scope • Технологии поиска недостатков в веб-‐приложениях этапа
разработки – черным ящиком – в исходном коде
• Технологии защиты веб-‐приложений от атак на эти недостатки
• Out of scope: – технологии поиска или недопущения недостатков внедрения и
эксплуатации
– технологии защиты от атак на эти недостатки
![Page 4: [1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ИБ - Андрей Петухов](https://reader030.vdocuments.site/reader030/viewer/2022032421/55a7956f1a28ab751f8b4682/html5/thumbnails/4.jpg)
Фреймворк для рассуждений • Веб-‐фреймворки берут рутину на себя, популярен
принцип safe by default – ORM, HTML через объектные модели, защита от CSRF на уровне
фреймворка, даже XXE того • Повышается уровень абстракции API
– Vaadin и GWT на сервере и Angular.JS на клиенте • Тенденция к исчезновению типичных недостатков в новом
коде • Описанные задачи в старом коде научились решать
(методически) сравнительно неплохо – Trinity: статические анализаторы, black-‐box сканеры и WAF
• Но только не для applica�on specific недостатков
![Page 5: [1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ИБ - Андрей Петухов](https://reader030.vdocuments.site/reader030/viewer/2022032421/55a7956f1a28ab751f8b4682/html5/thumbnails/5.jpg)
WTF applica�on specific недостатки? • Типичные -‐ это input valida�on
– в общем случае -‐ некорректное использование API внешних подсистем
– порождают класс injec�on-‐атак – injec�on-‐атаки порождают в запросах структурные (синтаксические) аномалии
• Applica�on-‐specific -‐ это логика – в общем случае API -‐ собственное; правила использования есть только в голове авторов
– порождают класс атак на логику (abuse/misuse/hijacking и т.п.) – в запросах нет структурных аномалий
![Page 6: [1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ИБ - Андрей Петухов](https://reader030.vdocuments.site/reader030/viewer/2022032421/55a7956f1a28ab751f8b4682/html5/thumbnails/6.jpg)
Примеры applica�on specific недостатков • Уязвимости авторизации • Нарушение целостности процесса – процедуры checkout’ов
• Некорректное использование криптографических примитивов – купоны и прочие тикеты
• Ошибки интеграции aka неверные допущения о границах доверия – интернет-‐магазины, платежные системы, OAuth туда же
• Вменяемой типизации и классификации нет
![Page 7: [1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ИБ - Андрей Петухов](https://reader030.vdocuments.site/reader030/viewer/2022032421/55a7956f1a28ab751f8b4682/html5/thumbnails/7.jpg)
Статические анализаторы • Построить Data-‐Flow представление программы – боль для нестрого типизированных языков – боль связывать представления через хранилища
• Получить возможные значения переменных в каждой точке – наследование, интерфейсы, reflec�on
![Page 8: [1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ИБ - Андрей Петухов](https://reader030.vdocuments.site/reader030/viewer/2022032421/55a7956f1a28ab751f8b4682/html5/thumbnails/8.jpg)
Статические анализаторы • Найти уязвимости в соответствии с моделью
– используемая модель -‐ модель невмешательства имени Деннинг
– данные из недоверенного канала попадают в канал с высоким уровнем доверия
• Как классифицировать каналы? – по имени вызовов API – по маркерным значениям в множестве возможных значений переменной
• Типичные vs applica�on specific – API заранее неизвестно, маркеры тоже непонятно какие
![Page 9: [1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ИБ - Андрей Петухов](https://reader030.vdocuments.site/reader030/viewer/2022032421/55a7956f1a28ab751f8b4682/html5/thumbnails/9.jpg)
Black-‐box сканеры • Задачи: crawling & analysis • Сrawling классических приложений – разбор HTML, заполнение форм, вызов обработчиков
• Сrawling SPA (GWT, Vaadin) – h�p://dashboard.demo.vaadin.com/, Google AdWords – динамический анализ JS и состояния DOM
• Проблема – экспоненциальное кол-‐во последовательностей взаимодействия для полного обхода интерфейса
![Page 10: [1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ИБ - Андрей Петухов](https://reader030.vdocuments.site/reader030/viewer/2022032421/55a7956f1a28ab751f8b4682/html5/thumbnails/10.jpg)
h�p://dashboard.demo.vaadin.com/
![Page 11: [1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ИБ - Андрей Петухов](https://reader030.vdocuments.site/reader030/viewer/2022032421/55a7956f1a28ab751f8b4682/html5/thumbnails/11.jpg)
SPA -‐ проблемы и задачи • Как определить множество элементов UI и способы их
активации? • Обработчики событий могут добавляться/удаляться
динамически • Код может генерироваться динамически или приходить
с сервера • Обработка событий
– делегированная обработка – фазы перехвата и всплытия – возможность остановки распространения
![Page 12: [1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ИБ - Андрей Петухов](https://reader030.vdocuments.site/reader030/viewer/2022032421/55a7956f1a28ab751f8b4682/html5/thumbnails/12.jpg)
SPA -‐ проблемы и задачи • Как определить, какие действия в UI -‐ полезные? – как понять, что мы изменили интерфейс и перешли в новое состояние?
• Что входит в состояние? – состояние DOM? содержимое localStorage? URI? глобальные переменные? состояние таймеров?
• Как сравнивать состояния между собой? • По какой стратегии переходить в новые состояния? – на странице AdWords 132 обработчика, и только 15% из них повторяющиеся
• Как возвращаться в предыдущие состояния?
![Page 13: [1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ИБ - Андрей Петухов](https://reader030.vdocuments.site/reader030/viewer/2022032421/55a7956f1a28ab751f8b4682/html5/thumbnails/13.jpg)
h�p://goo.gl/YTgrua
![Page 14: [1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ИБ - Андрей Петухов](https://reader030.vdocuments.site/reader030/viewer/2022032421/55a7956f1a28ab751f8b4682/html5/thumbnails/14.jpg)
SPA -‐ проблемы и задачи • Проблемы со временем
– таймеры – ожидание конца начальной загрузки – асинхронные запросы
• Сrawljax работает очень плохо, остальные -‐ еще хуже • Итого, основная проблема:
– для полного обхода надо вызывать все возможные комбинации UI-‐элементов на всех страницах
• НО: – в любой момент могут появиться новые обработчики (в т.ч. на посещенных страницах)
– могут быть удалены еще не посещенные обработчики
![Page 15: [1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ИБ - Андрей Петухов](https://reader030.vdocuments.site/reader030/viewer/2022032421/55a7956f1a28ab751f8b4682/html5/thumbnails/15.jpg)
WAF • Обнаружение атак без структурных аномалий в параметрах или статистических аномалий в трафике
![Page 16: [1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ИБ - Андрей Петухов](https://reader030.vdocuments.site/reader030/viewer/2022032421/55a7956f1a28ab751f8b4682/html5/thumbnails/16.jpg)
Итого: CHALLENGES • Как искать applica�on specific баги?
– нет API для реализации бизнес-‐логики => нет сигнатур для стат анализатора на основе последовательности вызовов API
• Как ловить атаки, не вызывающие структурные аномалии в запросах/ответах? – нет структурных аномалий в запросах => нет сигнатур на основе
синтаксиса • Как построить модель анализируемого SPA приложения?
– черным ящиком со стороны клиента – на уровне промежуточного фильтра (WAF) – из исходного кода
• Актуальные задачи: динамический анализ JS+DOM и майнинг инвариантов поведения из трафика