SlideShare a Scribd company logo
Обзор 
ограничений 
современных 
технологий 
в 
области 
ИБ 
Петухов 
Андрей 
ЛБИС 
ВМК 
МГУ
Disclaimer 
• Это 
не 
научный 
доклад, 
но 
научно-­‐популярный 
• Всё 
равно 
большинство 
актуальных 
задач 
сводится 
к 
проблеме 
останова 
МТ 
или 
P=NP, 
расходимся 
• Тогда 
зачем? 
– обсудить 
актуальные 
нерешенные 
практические 
задачи 
в 
вебе 
• Warning 
для 
практиков: 
используется 
сочетание 
“методически 
решенная 
задача” 
• Не 
будет 
слайда 
с 
Боромиром
Scope 
• Технологии 
поиска 
недостатков 
в 
веб-­‐приложениях 
этапа 
разработки 
– черным 
ящиком 
– в 
исходном 
коде 
• Технологии 
защиты 
веб-­‐приложений 
от 
атак 
на 
эти 
недостатки 
• Out 
of 
scope: 
– технологии 
поиска 
или 
недопущения 
недостатков 
внедрения 
и 
эксплуатации 
– технологии 
защиты 
от 
атак 
на 
эти 
недостатки
Фреймворк 
для 
рассуждений 
• Веб-­‐фреймворки 
берут 
рутину 
на 
себя, 
популярен 
принцип 
safe 
by 
default 
– ORM, 
HTML 
через 
объектные 
модели, 
защита 
от 
CSRF 
на 
уровне 
фреймворка, 
даже 
XXE 
того 
• Повышается 
уровень 
абстракции 
API 
– Vaadin 
и 
GWT 
на 
сервере 
и 
Angular.JS 
на 
клиенте 
• Тенденция 
к 
исчезновению 
типичных 
недостатков 
в 
новом 
коде 
• Описанные 
задачи 
в 
старом 
коде 
научились 
решать 
(методически) 
сравнительно 
неплохо 
– Trinity: 
статические 
анализаторы, 
black-­‐box 
сканеры 
и 
WAF 
• Но 
только 
не 
для 
applica…on 
specific 
недостатков
WTF 
applica…on 
specific 
недостатки? 
• Типичные 
-­‐ 
это 
input 
valida…on 
– в 
общем 
случае 
-­‐ 
некорректное 
использование 
API 
внешних 
подсистем 
– порождают 
класс 
injec…on-­‐атак 
– injec…on-­‐атаки 
порождают 
в 
запросах 
структурные 
(синтаксические) 
аномалии 
• Applica…on-­‐specific 
-­‐ 
это 
логика 
– в 
общем 
случае 
API 
-­‐ 
собственное; 
правила 
использования 
есть 
только 
в 
голове 
авторов 
– порождают 
класс 
атак 
на 
логику 
(abuse/misuse/hijacking 
и 
т.п.) 
– в 
запросах 
нет 
структурных 
аномалий
Примеры 
applica…on 
specific 
недостатков 
• Уязвимости 
авторизации 
• Нарушение 
целостности 
процесса 
– процедуры 
checkout’ов 
• Некорректное 
использование 
криптографических 
примитивов 
– купоны 
и 
прочие 
тикеты 
• Ошибки 
интеграции 
aka 
неверные 
допущения 
о 
границах 
доверия 
– интернет-­‐магазины, 
платежные 
системы, 
OAuth 
туда 
же 
• Вменяемой 
типизации 
и 
классификации 
нет
Статические 
анализаторы 
• Построить 
Data-­‐Flow 
представление 
программы 
– боль 
для 
нестрого 
типизированных 
языков 
– боль 
связывать 
представления 
через 
хранилища 
• Получить 
возможные 
значения 
переменных 
в 
каждой 
точке 
– наследование, 
интерфейсы, 
reflec…on
Статические 
анализаторы 
• Найти 
уязвимости 
в 
соответствии 
с 
моделью 
– используемая 
модель 
-­‐ 
модель 
невмешательства 
имени 
Деннинг 
– данные 
из 
недоверенного 
канала 
попадают 
в 
канал 
с 
высоким 
уровнем 
доверия 
• Как 
классифицировать 
каналы? 
– по 
имени 
вызовов 
API 
– по 
маркерным 
значениям 
в 
множестве 
возможных 
значений 
переменной 
• Типичные 
vs 
applica…on 
specific 
– API 
заранее 
неизвестно, 
маркеры 
тоже 
непонятно 
какие
Black-­‐box 
сканеры 
• Задачи: 
crawling 
& 
analysis 
• Сrawling 
классических 
приложений 
– разбор 
HTML, 
заполнение 
форм, 
вызов 
обработчиков 
• Сrawling 
SPA 
(GWT, 
Vaadin) 
– h“p://dashboard.demo.vaadin.com/, 
Google 
AdWords 
– динамический 
анализ 
JS 
и 
состояния 
DOM 
• Проблема 
– экспоненциальное 
кол-­‐во 
последовательностей 
взаимодействия 
для 
полного 
обхода 
интерфейса
h“p://dashboard.demo.vaadin.com/
SPA 
-­‐ 
проблемы 
и 
задачи 
• Как 
определить 
множество 
элементов 
UI 
и 
способы 
их 
активации? 
• Обработчики 
событий 
могут 
добавляться/удаляться 
динамически 
• Код 
может 
генерироваться 
динамически 
или 
приходить 
с 
сервера 
• Обработка 
событий 
– делегированная 
обработка 
– фазы 
перехвата 
и 
всплытия 
– возможность 
остановки 
распространения
SPA 
-­‐ 
проблемы 
и 
задачи 
• Как 
определить, 
какие 
действия 
в 
UI 
-­‐ 
полезные? 
– как 
понять, 
что 
мы 
изменили 
интерфейс 
и 
перешли 
в 
новое 
состояние? 
• Что 
входит 
в 
состояние? 
– состояние 
DOM? 
содержимое 
localStorage? 
URI? 
глобальные 
переменные? 
состояние 
таймеров? 
• Как 
сравнивать 
состояния 
между 
собой? 
• По 
какой 
стратегии 
переходить 
в 
новые 
состояния? 
– на 
странице 
AdWords 
132 
обработчика, 
и 
только 
15% 
из 
них 
повторяющиеся 
• Как 
возвращаться 
в 
предыдущие 
состояния?
h“p://goo.gl/YTgrua
SPA 
-­‐ 
проблемы 
и 
задачи 
• Проблемы 
со 
временем 
– таймеры 
– ожидание 
конца 
начальной 
загрузки 
– асинхронные 
запросы 
• Сrawljax 
работает 
очень 
плохо, 
остальные 
-­‐ 
еще 
хуже 
• Итого, 
основная 
проблема: 
– для 
полного 
обхода 
надо 
вызывать 
все 
возможные 
комбинации 
UI-­‐элементов 
на 
всех 
страницах 
• НО: 
– в 
любой 
момент 
могут 
появиться 
новые 
обработчики 
(в 
т.ч. 
на 
посещенных 
страницах) 
– могут 
быть 
удалены 
еще 
не 
посещенные 
обработчики
WAF 
• Обнаружение 
атак 
без 
структурных 
аномалий 
в 
параметрах 
или 
статистических 
аномалий 
в 
трафике
Итого: 
CHALLENGES 
• Как 
искать 
applica…on 
specific 
баги? 
– нет 
API 
для 
реализации 
бизнес-­‐логики 
=> 
нет 
сигнатур 
для 
стат 
анализатора 
на 
основе 
последовательности 
вызовов 
API 
• Как 
ловить 
атаки, 
не 
вызывающие 
структурные 
аномалии 
в 
запросах/ответах? 
– нет 
структурных 
аномалий 
в 
запросах 
=> 
нет 
сигнатур 
на 
основе 
синтаксиса 
• Как 
построить 
модель 
анализируемого 
SPA 
приложения? 
– черным 
ящиком 
со 
стороны 
клиента 
– на 
уровне 
промежуточного 
фильтра 
(WAF) 
– из 
исходного 
кода 
• Актуальные 
задачи: 
динамический 
анализ 
JS+DOM 
и 
майнинг 
инвариантов 
поведения 
из 
трафика
Вопросы? 
• Лаборатория 
безопасности 
ИС 
ВМК 
МГУ 
• h“p://secsem.ru/ 
• petand@seclab.cs.msu.su 
• @p3tand

More Related Content

What's hot

Как играть без игрока
Как играть без игрокаКак играть без игрока
Как играть без игрока
SQALab
 
Тестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью Selenium
SQALab
 
Средства автоматизации тестирования десктопных приложений. Сравнительный анализ
Средства автоматизации тестирования десктопных приложений. Сравнительный анализСредства автоматизации тестирования десктопных приложений. Сравнительный анализ
Средства автоматизации тестирования десктопных приложений. Сравнительный анализ
COMAQA.BY
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQube
Positive Hack Days
 
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Mail.ru Group
 
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
SQALab
 
WP как экспериментальная платформа
WP как экспериментальная платформаWP как экспериментальная платформа
WP как экспериментальная платформа
SQALab
 
Сетевые снифферы в тестировании
Сетевые снифферы в тестированииСетевые снифферы в тестировании
Сетевые снифферы в тестировании
SQALab
 
GUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test StudioGUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test Studio
SQALab
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПО
Positive Development User Group
 
Be productive with Javascript in the end of 2016
Be productive with Javascript in the end of 2016 Be productive with Javascript in the end of 2016
Be productive with Javascript in the end of 2016
DataArt
 
Автоматизация тестирования базы на примере PostgreSQL
Автоматизация тестирования базы на примере PostgreSQLАвтоматизация тестирования базы на примере PostgreSQL
Автоматизация тестирования базы на примере PostgreSQL
SQALab
 
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Mail.ru Group
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатора
SQALab
 
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Positive Hack Days
 
Вадим Козлов, Илья Казначеев - Selenium через SAP
Вадим Козлов, Илья Казначеев - Selenium через SAPВадим Козлов, Илья Казначеев - Selenium через SAP
Вадим Козлов, Илья Казначеев - Selenium через SAP
Ilya Kaznacheev
 
Тестирование мобильных API: Behind The Scenes
Тестирование мобильных API: Behind The ScenesТестирование мобильных API: Behind The Scenes
Тестирование мобильных API: Behind The Scenes
SQALab
 
Промышленная разработка ПО. Лекция 1. Общие понятия
Промышленная разработка ПО. Лекция 1. Общие понятияПромышленная разработка ПО. Лекция 1. Общие понятия
Промышленная разработка ПО. Лекция 1. Общие понятия
Mikhail Payson
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 лет
Positive Hack Days
 
Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?
OdessaQA
 

What's hot (20)

Как играть без игрока
Как играть без игрокаКак играть без игрока
Как играть без игрока
 
Тестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью Selenium
 
Средства автоматизации тестирования десктопных приложений. Сравнительный анализ
Средства автоматизации тестирования десктопных приложений. Сравнительный анализСредства автоматизации тестирования десктопных приложений. Сравнительный анализ
Средства автоматизации тестирования десктопных приложений. Сравнительный анализ
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQube
 
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
 
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
 
WP как экспериментальная платформа
WP как экспериментальная платформаWP как экспериментальная платформа
WP как экспериментальная платформа
 
Сетевые снифферы в тестировании
Сетевые снифферы в тестированииСетевые снифферы в тестировании
Сетевые снифферы в тестировании
 
GUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test StudioGUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test Studio
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПО
 
Be productive with Javascript in the end of 2016
Be productive with Javascript in the end of 2016 Be productive with Javascript in the end of 2016
Be productive with Javascript in the end of 2016
 
Автоматизация тестирования базы на примере PostgreSQL
Автоматизация тестирования базы на примере PostgreSQLАвтоматизация тестирования базы на примере PostgreSQL
Автоматизация тестирования базы на примере PostgreSQL
 
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатора
 
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
 
Вадим Козлов, Илья Казначеев - Selenium через SAP
Вадим Козлов, Илья Казначеев - Selenium через SAPВадим Козлов, Илья Казначеев - Selenium через SAP
Вадим Козлов, Илья Казначеев - Selenium через SAP
 
Тестирование мобильных API: Behind The Scenes
Тестирование мобильных API: Behind The ScenesТестирование мобильных API: Behind The Scenes
Тестирование мобильных API: Behind The Scenes
 
Промышленная разработка ПО. Лекция 1. Общие понятия
Промышленная разработка ПО. Лекция 1. Общие понятияПромышленная разработка ПО. Лекция 1. Общие понятия
Промышленная разработка ПО. Лекция 1. Общие понятия
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 лет
 
Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?
 

Viewers also liked

[1.2] Трюки при анализе защищенности веб приложений – продвинутая версия - С...
[1.2] Трюки при анализе защищенности веб приложений – продвинутая версия - С...[1.2] Трюки при анализе защищенности веб приложений – продвинутая версия - С...
[1.2] Трюки при анализе защищенности веб приложений – продвинутая версия - С...
OWASP Russia
 
Automated and unified opensource web application testing
Automated and unified opensource web application testingAutomated and unified opensource web application testing
Automated and unified opensource web application testing
navajanegra
 
Hacking XPATH 2.0
Hacking XPATH 2.0Hacking XPATH 2.0
Hacking XPATH 2.0
michelemanzotti
 
DNS Exfiltration Using sqlmap
DNS Exfiltration Using sqlmapDNS Exfiltration Using sqlmap
DNS Exfiltration Using sqlmap
Positive Hack Days
 
Виталий Балашов - Гарантированное уничтожение информации
Виталий Балашов - Гарантированное уничтожение информацииВиталий Балашов - Гарантированное уничтожение информации
Виталий Балашов - Гарантированное уничтожение информации
HackIT Ukraine
 
[HackInTheBox] Breaking virtualization by any means
[HackInTheBox] Breaking virtualization by any means[HackInTheBox] Breaking virtualization by any means
[HackInTheBox] Breaking virtualization by any means
Moabi.com
 
Исключительно простая теория AppSec .NET
Исключительно простая теория AppSec .NETИсключительно простая теория AppSec .NET
Исключительно простая теория AppSec .NET
Vladimir Kochetkov
 
[3.3] Detection & exploitation of Xpath/Xquery Injections - Boris Savkov
[3.3] Detection & exploitation of Xpath/Xquery Injections - Boris Savkov[3.3] Detection & exploitation of Xpath/Xquery Injections - Boris Savkov
[3.3] Detection & exploitation of Xpath/Xquery Injections - Boris Savkov
OWASP Russia
 
Hack it balashov
Hack it balashovHack it balashov
Hack it balashov
Vitaly Balashov
 
Web Application Firewalls: Advanced analysis of detection logic mechanisms, V...
Web Application Firewalls: Advanced analysis of detection logic mechanisms, V...Web Application Firewalls: Advanced analysis of detection logic mechanisms, V...
Web Application Firewalls: Advanced analysis of detection logic mechanisms, V...
OWASP Russia
 
Алексей Мисник - USB устройства для пентеста
Алексей Мисник - USB устройства для пентестаАлексей Мисник - USB устройства для пентеста
Алексей Мисник - USB устройства для пентеста
HackIT Ukraine
 
[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler Collection[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler Collection
Moabi.com
 
Философия Application Security
Философия Application SecurityФилософия Application Security
Философия Application Security
Vladimir Kochetkov
 
XPath Injection
XPath InjectionXPath Injection
XPath Injection
Roberto Suggi Liverani
 
Техники пентеста для активной защиты - Николай Овчарук
Техники пентеста для активной защиты - Николай ОвчарукТехники пентеста для активной защиты - Николай Овчарук
Техники пентеста для активной защиты - Николай Овчарук
HackIT Ukraine
 
XML & XPath Injections
XML & XPath InjectionsXML & XPath Injections
XML & XPath Injections
AMol NAik
 
Lie to Me: Bypassing Modern Web Application Firewalls
Lie to Me: Bypassing Modern Web Application FirewallsLie to Me: Bypassing Modern Web Application Firewalls
Lie to Me: Bypassing Modern Web Application Firewalls
Ivan Novikov
 
Tapping into the core
Tapping into the coreTapping into the core
Tapping into the core
Positive Hack Days
 
Waf.js: How to Protect Web Applications using JavaScript
Waf.js: How to Protect Web Applications using JavaScriptWaf.js: How to Protect Web Applications using JavaScript
Waf.js: How to Protect Web Applications using JavaScript
Denis Kolegov
 
Black Ops of Fundamental Defense:
Black Ops of Fundamental Defense:Black Ops of Fundamental Defense:
Black Ops of Fundamental Defense:
Recursion Ventures
 

Viewers also liked (20)

[1.2] Трюки при анализе защищенности веб приложений – продвинутая версия - С...
[1.2] Трюки при анализе защищенности веб приложений – продвинутая версия - С...[1.2] Трюки при анализе защищенности веб приложений – продвинутая версия - С...
[1.2] Трюки при анализе защищенности веб приложений – продвинутая версия - С...
 
Automated and unified opensource web application testing
Automated and unified opensource web application testingAutomated and unified opensource web application testing
Automated and unified opensource web application testing
 
Hacking XPATH 2.0
Hacking XPATH 2.0Hacking XPATH 2.0
Hacking XPATH 2.0
 
DNS Exfiltration Using sqlmap
DNS Exfiltration Using sqlmapDNS Exfiltration Using sqlmap
DNS Exfiltration Using sqlmap
 
Виталий Балашов - Гарантированное уничтожение информации
Виталий Балашов - Гарантированное уничтожение информацииВиталий Балашов - Гарантированное уничтожение информации
Виталий Балашов - Гарантированное уничтожение информации
 
[HackInTheBox] Breaking virtualization by any means
[HackInTheBox] Breaking virtualization by any means[HackInTheBox] Breaking virtualization by any means
[HackInTheBox] Breaking virtualization by any means
 
Исключительно простая теория AppSec .NET
Исключительно простая теория AppSec .NETИсключительно простая теория AppSec .NET
Исключительно простая теория AppSec .NET
 
[3.3] Detection & exploitation of Xpath/Xquery Injections - Boris Savkov
[3.3] Detection & exploitation of Xpath/Xquery Injections - Boris Savkov[3.3] Detection & exploitation of Xpath/Xquery Injections - Boris Savkov
[3.3] Detection & exploitation of Xpath/Xquery Injections - Boris Savkov
 
Hack it balashov
Hack it balashovHack it balashov
Hack it balashov
 
Web Application Firewalls: Advanced analysis of detection logic mechanisms, V...
Web Application Firewalls: Advanced analysis of detection logic mechanisms, V...Web Application Firewalls: Advanced analysis of detection logic mechanisms, V...
Web Application Firewalls: Advanced analysis of detection logic mechanisms, V...
 
Алексей Мисник - USB устройства для пентеста
Алексей Мисник - USB устройства для пентестаАлексей Мисник - USB устройства для пентеста
Алексей Мисник - USB устройства для пентеста
 
[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler Collection[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler Collection
 
Философия Application Security
Философия Application SecurityФилософия Application Security
Философия Application Security
 
XPath Injection
XPath InjectionXPath Injection
XPath Injection
 
Техники пентеста для активной защиты - Николай Овчарук
Техники пентеста для активной защиты - Николай ОвчарукТехники пентеста для активной защиты - Николай Овчарук
Техники пентеста для активной защиты - Николай Овчарук
 
XML & XPath Injections
XML & XPath InjectionsXML & XPath Injections
XML & XPath Injections
 
Lie to Me: Bypassing Modern Web Application Firewalls
Lie to Me: Bypassing Modern Web Application FirewallsLie to Me: Bypassing Modern Web Application Firewalls
Lie to Me: Bypassing Modern Web Application Firewalls
 
Tapping into the core
Tapping into the coreTapping into the core
Tapping into the core
 
Waf.js: How to Protect Web Applications using JavaScript
Waf.js: How to Protect Web Applications using JavaScriptWaf.js: How to Protect Web Applications using JavaScript
Waf.js: How to Protect Web Applications using JavaScript
 
Black Ops of Fundamental Defense:
Black Ops of Fundamental Defense:Black Ops of Fundamental Defense:
Black Ops of Fundamental Defense:
 

Similar to [1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ИБ - Андрей Петухов

Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUAREТехники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
SQALab
 
Рейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчикаРейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчика
SkillsWiki
 
Рейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчикаРейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчика
geekfamilyrussia
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практике
Denis Tuchin
 
Доклад "Мониторинг серверных приложений"
Доклад "Мониторинг серверных приложений"Доклад "Мониторинг серверных приложений"
Доклад "Мониторинг серверных приложений"
Grigoriy Orlov
 
Aspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHP
Alexander Lisachenko
 
5 alina petrenko - key requirements elicitation during the first contact wi...
5   alina petrenko - key requirements elicitation during the first contact wi...5   alina petrenko - key requirements elicitation during the first contact wi...
5 alina petrenko - key requirements elicitation during the first contact wi...
Ievgenii Katsan
 
Team workflow
Team workflowTeam workflow
Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summary
Anton Zhukov
 
еще один недостаток современных клиент серверных приложений
еще один недостаток современных клиент серверных приложенийеще один недостаток современных клиент серверных приложений
еще один недостаток современных клиент серверных приложенийsnowytoxa
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaAlex Chistyakov
 
Анализ уязвимостей ИБ распределенного ПО (2012)
Анализ уязвимостей ИБ распределенного ПО (2012)Анализ уязвимостей ИБ распределенного ПО (2012)
Анализ уязвимостей ИБ распределенного ПО (2012)
Alexey Kachalin
 
InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015
InterSystems
 
Виды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьВиды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спростить
GoIT
 
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ontico
 
Метрики автоматизированного тестирования на пальцах
Метрики автоматизированного тестирования на пальцахМетрики автоматизированного тестирования на пальцах
Метрики автоматизированного тестирования на пальцах
SQALab
 
Андрей Уразов - Методы раннего обнаружения ошибок
Андрей Уразов - Методы раннего обнаружения ошибокАндрей Уразов - Методы раннего обнаружения ошибок
Андрей Уразов - Методы раннего обнаружения ошибок
SQALab
 
Автоматизация тестирования как способ получения знаний
Автоматизация тестирования как способ получения знанийАвтоматизация тестирования как способ получения знаний
Автоматизация тестирования как способ получения знаний
SQALab
 

Similar to [1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ИБ - Андрей Петухов (20)

Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUAREТехники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
 
Рейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчикаРейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчика
 
Рейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчикаРейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчика
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практике
 
Доклад "Мониторинг серверных приложений"
Доклад "Мониторинг серверных приложений"Доклад "Мониторинг серверных приложений"
Доклад "Мониторинг серверных приложений"
 
Aspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHP
 
5 alina petrenko - key requirements elicitation during the first contact wi...
5   alina petrenko - key requirements elicitation during the first contact wi...5   alina petrenko - key requirements elicitation during the first contact wi...
5 alina petrenko - key requirements elicitation during the first contact wi...
 
Team workflow
Team workflowTeam workflow
Team workflow
 
Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summary
 
еще один недостаток современных клиент серверных приложений
еще один недостаток современных клиент серверных приложенийеще один недостаток современных клиент серверных приложений
еще один недостаток современных клиент серверных приложений
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
 
Анализ уязвимостей ИБ распределенного ПО (2012)
Анализ уязвимостей ИБ распределенного ПО (2012)Анализ уязвимостей ИБ распределенного ПО (2012)
Анализ уязвимостей ИБ распределенного ПО (2012)
 
InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015
 
Zhelnova
ZhelnovaZhelnova
Zhelnova
 
лаф2013
лаф2013лаф2013
лаф2013
 
Виды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьВиды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спростить
 
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
 
Метрики автоматизированного тестирования на пальцах
Метрики автоматизированного тестирования на пальцахМетрики автоматизированного тестирования на пальцах
Метрики автоматизированного тестирования на пальцах
 
Андрей Уразов - Методы раннего обнаружения ошибок
Андрей Уразов - Методы раннего обнаружения ошибокАндрей Уразов - Методы раннего обнаружения ошибок
Андрей Уразов - Методы раннего обнаружения ошибок
 
Автоматизация тестирования как способ получения знаний
Автоматизация тестирования как способ получения знанийАвтоматизация тестирования как способ получения знаний
Автоматизация тестирования как способ получения знаний
 

More from OWASP Russia

«Вредоносные браузерные расширения и борьба с ними», Александра Сватикова (Од...
«Вредоносные браузерные расширения и борьба с ними», Александра Сватикова (Од...«Вредоносные браузерные расширения и борьба с ними», Александра Сватикова (Од...
«Вредоносные браузерные расширения и борьба с ними», Александра Сватикова (Од...
OWASP Russia
 
«Android Activity Hijacking», Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Тех...
«Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Тех...«Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Тех...
«Android Activity Hijacking», Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Тех...
OWASP Russia
 
TLS monitoring, David Ordyan and Mikhail Aksenov
TLS monitoring, David Ordyan and Mikhail AksenovTLS monitoring, David Ordyan and Mikhail Aksenov
TLS monitoring, David Ordyan and Mikhail Aksenov
OWASP Russia
 
Software development lifecycle: final security review and automatization, Tar...
Software development lifecycle: final security review and automatization, Tar...Software development lifecycle: final security review and automatization, Tar...
Software development lifecycle: final security review and automatization, Tar...
OWASP Russia
 
[3.1] Webappsec future standards - Taras Ivaschenko
[3.1] Webappsec future standards - Taras Ivaschenko[3.1] Webappsec future standards - Taras Ivaschenko
[3.1] Webappsec future standards - Taras Ivaschenko
OWASP Russia
 
[3.2] Content Security Policy - Pawel Krawczyk
[3.2] Content Security Policy - Pawel Krawczyk[3.2] Content Security Policy - Pawel Krawczyk
[3.2] Content Security Policy - Pawel Krawczyk
OWASP Russia
 
[2.3] Large enterprise SIEM: get ready for oversize - Svetlana (Mona) Arkhipova
[2.3] Large enterprise SIEM: get ready for oversize - Svetlana (Mona) Arkhipova[2.3] Large enterprise SIEM: get ready for oversize - Svetlana (Mona) Arkhipova
[2.3] Large enterprise SIEM: get ready for oversize - Svetlana (Mona) Arkhipova
OWASP Russia
 
[2.2] Hacking Internet of Things devices - Ivan Novikov
[2.2] Hacking Internet of Things devices - Ivan Novikov[2.2] Hacking Internet of Things devices - Ivan Novikov
[2.2] Hacking Internet of Things devices - Ivan Novikov
OWASP Russia
 
[2.1] Web application Security Trends - Omar Ganiev
[2.1] Web application Security Trends - Omar Ganiev[2.1] Web application Security Trends - Omar Ganiev
[2.1] Web application Security Trends - Omar Ganiev
OWASP Russia
 
[1.1] Почему вам стоит поучаствовать в жизни OWASP Russia - Александр Антух
[1.1] Почему вам стоит поучаствовать в жизни OWASP Russia - Александр Антух[1.1] Почему вам стоит поучаствовать в жизни OWASP Russia - Александр Антух
[1.1] Почему вам стоит поучаствовать в жизни OWASP Russia - Александр Антух
OWASP Russia
 

More from OWASP Russia (10)

«Вредоносные браузерные расширения и борьба с ними», Александра Сватикова (Од...
«Вредоносные браузерные расширения и борьба с ними», Александра Сватикова (Од...«Вредоносные браузерные расширения и борьба с ними», Александра Сватикова (Од...
«Вредоносные браузерные расширения и борьба с ними», Александра Сватикова (Од...
 
«Android Activity Hijacking», Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Тех...
«Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Тех...«Android Activity Hijacking»,  Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Тех...
«Android Activity Hijacking», Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Тех...
 
TLS monitoring, David Ordyan and Mikhail Aksenov
TLS monitoring, David Ordyan and Mikhail AksenovTLS monitoring, David Ordyan and Mikhail Aksenov
TLS monitoring, David Ordyan and Mikhail Aksenov
 
Software development lifecycle: final security review and automatization, Tar...
Software development lifecycle: final security review and automatization, Tar...Software development lifecycle: final security review and automatization, Tar...
Software development lifecycle: final security review and automatization, Tar...
 
[3.1] Webappsec future standards - Taras Ivaschenko
[3.1] Webappsec future standards - Taras Ivaschenko[3.1] Webappsec future standards - Taras Ivaschenko
[3.1] Webappsec future standards - Taras Ivaschenko
 
[3.2] Content Security Policy - Pawel Krawczyk
[3.2] Content Security Policy - Pawel Krawczyk[3.2] Content Security Policy - Pawel Krawczyk
[3.2] Content Security Policy - Pawel Krawczyk
 
[2.3] Large enterprise SIEM: get ready for oversize - Svetlana (Mona) Arkhipova
[2.3] Large enterprise SIEM: get ready for oversize - Svetlana (Mona) Arkhipova[2.3] Large enterprise SIEM: get ready for oversize - Svetlana (Mona) Arkhipova
[2.3] Large enterprise SIEM: get ready for oversize - Svetlana (Mona) Arkhipova
 
[2.2] Hacking Internet of Things devices - Ivan Novikov
[2.2] Hacking Internet of Things devices - Ivan Novikov[2.2] Hacking Internet of Things devices - Ivan Novikov
[2.2] Hacking Internet of Things devices - Ivan Novikov
 
[2.1] Web application Security Trends - Omar Ganiev
[2.1] Web application Security Trends - Omar Ganiev[2.1] Web application Security Trends - Omar Ganiev
[2.1] Web application Security Trends - Omar Ganiev
 
[1.1] Почему вам стоит поучаствовать в жизни OWASP Russia - Александр Антух
[1.1] Почему вам стоит поучаствовать в жизни OWASP Russia - Александр Антух[1.1] Почему вам стоит поучаствовать в жизни OWASP Russia - Александр Антух
[1.1] Почему вам стоит поучаствовать в жизни OWASP Russia - Александр Антух
 

[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ИБ - Андрей Петухов

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