🗊 Презентация Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций

Нажмите для полного просмотра!
Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №1 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №2 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №3 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №4 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №5 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №6 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №7 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №8 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №9 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №10 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №11 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №12 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №13 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №14 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №15 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №16 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №17 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №18 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №19 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №20 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №21 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №22 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №23 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №24 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №25 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №26 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №27 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №28 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №29 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №30 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №31 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №32 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №33 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №34 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №35 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №36 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №37 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №38 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №39 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №40 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №41 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №42 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №43 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №44 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №45 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №46 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №47 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №48 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №49 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №50 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №51 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №52 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №53 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №54 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №55 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №56 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №57 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №58 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №59 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №60 Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №61

Содержание

Вы можете ознакомиться и скачать презентацию на тему Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций. Доклад-сообщение содержит 61 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Итак, в вашем коде нашли инъекцию… Итак, в вашем коде нашли инъекцию…
Описание слайда:
Итак, в вашем коде нашли инъекцию… Итак, в вашем коде нашли инъекцию…

Слайд 2


Руководитель отдела исследований по анализу защищённости приложений Positive Technologies Руководитель отдела исследований по анализу защищённости...
Описание слайда:
Руководитель отдела исследований по анализу защищённости приложений Positive Technologies Руководитель отдела исследований по анализу защищённости приложений Positive Technologies AppSec- и CS-исследователь (формальные методы анализа и защиты кода) Организатор Positive Development User Group vkochetkov@ptsecurity.com

Слайд 3


Открытое сообщество разработчиков и IT-специалистов, которые стремятся создавать безопасные приложения. Открытое сообщество разработчиков и...
Описание слайда:
Открытое сообщество разработчиков и IT-специалистов, которые стремятся создавать безопасные приложения. Открытое сообщество разработчиков и IT-специалистов, которые стремятся создавать безопасные приложения.

Слайд 4


Ещё один унылый доклад про параметризацию SQL-запросов? Ещё один унылый доклад про параметризацию SQL-запросов?
Описание слайда:
Ещё один унылый доклад про параметризацию SQL-запросов? Ещё один унылый доклад про параметризацию SQL-запросов?

Слайд 5


Существует ли конечное множество правил разработки защищённых приложений? Существует ли конечное множество правил разработки защищённых приложений?
Описание слайда:
Существует ли конечное множество правил разработки защищённых приложений? Существует ли конечное множество правил разработки защищённых приложений?

Слайд 6


Если ты хочешь построить корабль, не надо созывать людей, планировать, делить работу, доставать инструменты. Надо заразить людей стремлением к...
Описание слайда:
Если ты хочешь построить корабль, не надо созывать людей, планировать, делить работу, доставать инструменты. Надо заразить людей стремлением к бесконечному морю… Если ты хочешь построить корабль, не надо созывать людей, планировать, делить работу, доставать инструменты. Надо заразить людей стремлением к бесконечному морю…

Слайд 7


Инъекции – самый распространённый тип атак (1/2) Инъекции – самый распространённый тип атак (1/2)
Описание слайда:
Инъекции – самый распространённый тип атак (1/2) Инъекции – самый распространённый тип атак (1/2)

Слайд 8


Инъекции – самый распространённый тип атак (2/2) Инъекции – самый распространённый тип атак (2/2)
Описание слайда:
Инъекции – самый распространённый тип атак (2/2) Инъекции – самый распространённый тип атак (2/2)

Слайд 9


Формально об инъекциях
Описание слайда:
Формально об инъекциях

Слайд 10


Модель инъекции (1/7) Модель инъекции (1/7)
Описание слайда:
Модель инъекции (1/7) Модель инъекции (1/7)

Слайд 11


Модель инъекции (2/7) Модель инъекции (2/7)
Описание слайда:
Модель инъекции (2/7) Модель инъекции (2/7)

Слайд 12


Модель инъекции (3/7) Модель инъекции (3/7)
Описание слайда:
Модель инъекции (3/7) Модель инъекции (3/7)

Слайд 13


Модель инъекции (4/7) Модель инъекции (4/7)
Описание слайда:
Модель инъекции (4/7) Модель инъекции (4/7)

Слайд 14


Модель инъекции (5/7) Модель инъекции (5/7)
Описание слайда:
Модель инъекции (5/7) Модель инъекции (5/7)

Слайд 15


Модель инъекции (6/7) Модель инъекции (6/7)
Описание слайда:
Модель инъекции (6/7) Модель инъекции (6/7)

Слайд 16


Модель инъекции (7/7) Модель инъекции (7/7)
Описание слайда:
Модель инъекции (7/7) Модель инъекции (7/7)

Слайд 17


Приложение защищено от атак инъекций тогда, когда в результате лексического разбора любого возможного c', количество токенов, приходящихся на точки...
Описание слайда:
Приложение защищено от атак инъекций тогда, когда в результате лексического разбора любого возможного c', количество токенов, приходящихся на точки инъекции, является константой: Приложение защищено от атак инъекций тогда, когда в результате лексического разбора любого возможного c', количество токенов, приходящихся на точки инъекции, является константой: 2 токена

Слайд 18


Приложение защищено от атак инъекций тогда, когда в результате лексического разбора любого возможного c', множества токенов, приходящихся на точки...
Описание слайда:
Приложение защищено от атак инъекций тогда, когда в результате лексического разбора любого возможного c', множества токенов, приходящихся на точки инъекции, являются авторизованными. Приложение защищено от атак инъекций тогда, когда в результате лексического разбора любого возможного c', множества токенов, приходящихся на точки инъекции, являются авторизованными.

Слайд 19


../2/a.jpg 'onerror='…;// '>…
Описание слайда:
../2/a.jpg 'onerror='…;// '>…

Слайд 20


… 0);… 0)'onload='… 0)'>…
Описание слайда:
… 0);… 0)'onload='… 0)'>…

Слайд 21


Причина инъекции – несогласованность грамматик (1/2) Причина инъекции – несогласованность грамматик (1/2)
Описание слайда:
Причина инъекции – несогласованность грамматик (1/2) Причина инъекции – несогласованность грамматик (1/2)

Слайд 22


Причина инъекции – несогласованность грамматик (2/2) Причина инъекции – несогласованность грамматик (2/2)
Описание слайда:
Причина инъекции – несогласованность грамматик (2/2) Причина инъекции – несогласованность грамматик (2/2)

Слайд 23


Интерпретируемый код Интерпретируемый код Структурированные данные Код разметки ID внешних ресурсов Любые грамматики, с числом токенов > 1
Описание слайда:
Интерпретируемый код Интерпретируемый код Структурированные данные Код разметки ID внешних ресурсов Любые грамматики, с числом токенов > 1

Слайд 24


Как защититься?
Описание слайда:
Как защититься?

Слайд 25


Входные данные должны согласовываться с бизнес-логикой приложения за счёт: Входные данные должны согласовываться с бизнес-логикой приложения за счёт:...
Описание слайда:
Входные данные должны согласовываться с бизнес-логикой приложения за счёт: Входные данные должны согласовываться с бизнес-логикой приложения за счёт: Типизации Валидации Синтаксической Семантической

Слайд 26


Типизация – приведение строковых данных к конкретному типу: Типизация – приведение строковых данных к конкретному типу: var typed_url =...
Описание слайда:
Типизация – приведение строковых данных к конкретному типу: Типизация – приведение строковых данных к конкретному типу: var typed_url = Url.Parse(Request.Params["url"])

Слайд 27


Синтаксическая валидация – проверка строковых данных на соответствие какой-либо грамматике: Синтаксическая валидация – проверка строковых данных на...
Описание слайда:
Синтаксическая валидация – проверка строковых данных на соответствие какой-либо грамматике: Синтаксическая валидация – проверка строковых данных на соответствие какой-либо грамматике: 01 var url_regex = 02 "^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?"; 03 04 if (!Regex.IsMatch(Request.Params["url"], url_regex)) 05 { 06 throw new ValidationException(); 07 }

Слайд 28


Семантическая валидация – проверка строковых данных на корректность с точки зрения логики приложения: Семантическая валидация – проверка строковых...
Описание слайда:
Семантическая валидация – проверка строковых данных на корректность с точки зрения логики приложения: Семантическая валидация – проверка строковых данных на корректность с точки зрения логики приложения: 01 var request = WebRequest.Create(Request.Params["url"]) 02 { Method = "HEAD" }; 03 04 if (request.GetResponse().StatusCode != HttpStatusCode.OK) 05 { 06 throw new ValidationException(); 07 }

Слайд 29


Выходные данные должны согласовываться с грамматикой принимающей стороны за счёт санитизации Выходные данные должны согласовываться с грамматикой...
Описание слайда:
Выходные данные должны согласовываться с грамматикой принимающей стороны за счёт санитизации Выходные данные должны согласовываться с грамматикой принимающей стороны за счёт санитизации

Слайд 30


Санитизация – преобразование строковых данных к синтаксису какого-либо токена заданной грамматики Санитизация – преобразование строковых данных к...
Описание слайда:
Санитизация – преобразование строковых данных к синтаксису какого-либо токена заданной грамматики Санитизация – преобразование строковых данных к синтаксису какого-либо токена заданной грамматики 01 var parm_text = Request.Params["parm"]; 02 03 var parm_1 = HtmlEncode(UrlEncode(parm_text)); 04 var parm_2 = HtmlEncode(parm_text); 05 06 Response.Write( 07 $"{parm_2}" 08 );

Слайд 31


В случае вложенных грамматик, например: Gt = JavaScript → HTML, t ∈ De санитизацию необходимо проводить последовательно, в обратном порядке:...
Описание слайда:
В случае вложенных грамматик, например: Gt = JavaScript → HTML, t ∈ De санитизацию необходимо проводить последовательно, в обратном порядке: EncodeHtml(EncodeJavaScript(t)), с учётом синтаксических контекстов обоих грамматик. В случае вложенных грамматик, например: Gt = JavaScript → HTML, t ∈ De санитизацию необходимо проводить последовательно, в обратном порядке: EncodeHtml(EncodeJavaScript(t)), с учётом синтаксических контекстов обоих грамматик.

Слайд 32


Входные данные – как можно ближе к точке их входа, с учётом: Входные данные – как можно ближе к точке их входа, с учётом: принципа необходимости и...
Описание слайда:
Входные данные – как можно ближе к точке их входа, с учётом: Входные данные – как можно ближе к точке их входа, с учётом: принципа необходимости и достаточности их грамматик; приоритетности подходов: типизация; семантическая валидация; синтаксическая валидация. Выходные данных – как можно ближе к точке их выхода, с учётом: грамматики принимающей стороны; возможной вариативности их грамматик в различных точках выполнения; минимального (в идеале – нулевого) влияния согласования на прочие ветки потока вычисления.

Слайд 33


Из этих правил есть два исключения: Из этих правил есть два исключения: Параметризация (типизация данных в точке выхода) Использование встраиваемых...
Описание слайда:
Из этих правил есть два исключения: Из этих правил есть два исключения: Параметризация (типизация данных в точке выхода) Использование встраиваемых средств RASP (санитизация и валидация в точке выхода)

Слайд 34


Согласованные грамматики (1/2) Согласованные грамматики (1/2)
Описание слайда:
Согласованные грамматики (1/2) Согласованные грамматики (1/2)

Слайд 35


Согласованные грамматики (1/2) Согласованные грамматики (1/2)
Описание слайда:
Согласованные грамматики (1/2) Согласованные грамматики (1/2)

Слайд 36


А если бы существовала библиотека, принимающая на себя всю рутину по защите приложения от атак инъекций? А если бы существовала библиотека,...
Описание слайда:
А если бы существовала библиотека, принимающая на себя всю рутину по защите приложения от атак инъекций? А если бы существовала библиотека, принимающая на себя всю рутину по защите приложения от атак инъекций?

Слайд 37


01 Response.Write( 02 SafeFormat.Html( 03 $"" 04 ));
Описание слайда:
01 Response.Write( 02 SafeFormat.Html( 03 $"" 04 ));

Слайд 38


Как протестировать?
Описание слайда:
Как протестировать?

Слайд 39


Векторы от пентестеров и багхантеров – не использовать! Векторы от пентестеров и багхантеров – не использовать!...
Описание слайда:
Векторы от пентестеров и багхантеров – не использовать! Векторы от пентестеров и багхантеров – не использовать! File.Delete($"\\temp_data\\{name}"); Использовать набор векторов атаки, приводящих к ошибке парсинга: "\..\filename?", “" и т.п. Каждый вектор – отдельный тест-кейс на отсутствие исключений при передаче модулю в качестве входных данных

Слайд 40


Используется любой набор векторов атаки и токенизатор соответствующей грамматики Используется любой набор векторов атаки и токенизатор...
Описание слайда:
Используется любой набор векторов атаки и токенизатор соответствующей грамматики Используется любой набор векторов атаки и токенизатор соответствующей грамматики Перед каждой PVF устанавливается утверждение на количество токенов в её аргументе: 01 var pvfArgument = $"\\temp_data\\{name}"; 02 Debug.Assert(Tokenize(pvfArgument).Count() == 4); 03 File.Delete(pvfArgument); Каждый вектор – тест-кейс на отсутствие нарушения утверждений.

Слайд 41


А если бы существовала библиотека, принимающая на себя всю рутину по тестированию защищённости от атак инъекций ? А если бы существовала библиотека,...
Описание слайда:
А если бы существовала библиотека, принимающая на себя всю рутину по тестированию защищённости от атак инъекций ? А если бы существовала библиотека, принимающая на себя всю рутину по тестированию защищённости от атак инъекций ?

Слайд 42


01 var pvfArgument = $"\\temp_data\\{name}"; 01 var pvfArgument = $"\\temp_data\\{name}"; 02 DebugFormat.Path(pvfArgument); 03...
Описание слайда:
01 var pvfArgument = $"\\temp_data\\{name}"; 01 var pvfArgument = $"\\temp_data\\{name}"; 02 DebugFormat.Path(pvfArgument); 03 File.Delete(pvfArgument);

Слайд 43


LibProtection
Описание слайда:
LibProtection

Слайд 44


LibProtection – библиотека с открытым кодом (под MIT-лицензией), позволяющая разработчикам встраивать в приложение автоматизированную защиту от атак...
Описание слайда:
LibProtection – библиотека с открытым кодом (под MIT-лицензией), позволяющая разработчикам встраивать в приложение автоматизированную защиту от атак инъекций. LibProtection – библиотека с открытым кодом (под MIT-лицензией), позволяющая разработчикам встраивать в приложение автоматизированную защиту от атак инъекций.

Слайд 45


Для защиты от атак в LibProtection реализованы: Для защиты от атак в LibProtection реализованы: автоматическая санитизация входных данных там, где...
Описание слайда:
Для защиты от атак в LibProtection реализованы: Для защиты от атак в LibProtection реализованы: автоматическая санитизация входных данных там, где это возможно; автоматическая валидация входных данных относительно выходной грамматики (детектирование атаки) там, где невозможна санитизация.

Слайд 46


Детектирование осуществляется по формальным признакам: факт атаки не предполагается, а доказывается. Детектирование осуществляется по формальным...
Описание слайда:
Детектирование осуществляется по формальным признакам: факт атаки не предполагается, а доказывается. Детектирование осуществляется по формальным признакам: факт атаки не предполагается, а доказывается.

Слайд 47


Поддерживаемые языки: Поддерживаемые языки: .NET, C++ (Q4 2017) PHP, JVM (H1 2018) Python, Ruby (H2 2018) Поддерживаемые грамматики: SQL (Microsoft...
Описание слайда:
Поддерживаемые языки: Поддерживаемые языки: .NET, C++ (Q4 2017) PHP, JVM (H1 2018) Python, Ruby (H2 2018) Поддерживаемые грамматики: SQL (Microsoft SQL Server, Oracle, Database, Oracle MySQL), HTML, EcmaScript, CSS, URL, Path, XML

Слайд 48


01 Response.Write( 02 SafeFormat.Html( 03 $"" 04 ));
Описание слайда:
01 Response.Write( 02 SafeFormat.Html( 03 $"" 04 ));

Слайд 49


Как это работает? (1/10) Как это работает? (1/10)
Описание слайда:
Как это работает? (1/10) Как это работает? (1/10)

Слайд 50


Как это работает? (2/10) Как это работает? (2/10)
Описание слайда:
Как это работает? (2/10) Как это работает? (2/10)

Слайд 51


Как это работает? (3/10) Как это работает? (3/10)
Описание слайда:
Как это работает? (3/10) Как это работает? (3/10)

Слайд 52


Как это работает? (4/10) Как это работает? (4/10)
Описание слайда:
Как это работает? (4/10) Как это работает? (4/10)

Слайд 53


Как это работает? (5/10) Как это работает? (5/10)
Описание слайда:
Как это работает? (5/10) Как это работает? (5/10)

Слайд 54


Как это работает? (6/10) Как это работает? (6/10)
Описание слайда:
Как это работает? (6/10) Как это работает? (6/10)

Слайд 55


Как это работает? (7/10) Как это работает? (7/10)
Описание слайда:
Как это работает? (7/10) Как это работает? (7/10)

Слайд 56


Как это работает? (8/10) Как это работает? (8/10)
Описание слайда:
Как это работает? (8/10) Как это работает? (8/10)

Слайд 57


Как это работает? (9/10) Как это работает? (9/10)
Описание слайда:
Как это работает? (9/10) Как это работает? (9/10)

Слайд 58


Как это работает? (10/10) Как это работает? (10/10)
Описание слайда:
Как это работает? (10/10) Как это работает? (10/10)

Слайд 59


// Grammar ∈ { Sql, Html, EcmaScript, Css, Url, Path, Xml } // Grammar ∈ { Sql, Html, EcmaScript, Css, Url, Path, Xml } string...
Описание слайда:
// Grammar ∈ { Sql, Html, EcmaScript, Css, Url, Path, Xml } // Grammar ∈ { Sql, Html, EcmaScript, Css, Url, Path, Xml } string SafeFormat.Grammar(FormattableString formattable) string SafeFormat.Grammar(string format, params object[] args) bool TrySafeFormat.Grammar(FormattableString formattable, out formatted) bool TrySafeFormat.Grammar(string format, out formatted, params object[] args) string DebugFormat.Grammar(FormattableString formattable) string DebugFormat.Grammar(string format, params object[] args)

Слайд 60


По умолчанию, LibProtection рассматривает все переменные, как опасные значения. Это поведение можно переопределить с помощью форматных модификаторов:...
Описание слайда:
По умолчанию, LibProtection рассматривает все переменные, как опасные значения. Это поведение можно переопределить с помощью форматных модификаторов: По умолчанию, LibProtection рассматривает все переменные, как опасные значения. Это поведение можно переопределить с помощью форматных модификаторов: :safe :validate(method-name) method-name ∈ Func :sanitize(method-name) method-name ∈ Func

Слайд 61


Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №61
Описание слайда:



Похожие презентации
Mypresentation.ru
Загрузить презентацию