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

Нажмите для полного просмотра!
Формально об инъекциях. Модель инъекции. Критерий защищённости от атак инъекций, слайд №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
AppSec- и CS-исследователь (формальные методы анализа и защиты кода)

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

Слайд 3





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


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


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

Слайд 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', количество токенов, приходящихся на точки инъекции, является константой:
<img src = '//host/1/{a}.jpg' onclick = 'f({b})' />
2 токена
Описание слайда:
Приложение защищено от атак инъекций тогда, когда в результате лексического разбора любого возможного c', количество токенов, приходящихся на точки инъекции, является константой: Приложение защищено от атак инъекций тогда, когда в результате лексического разбора любого возможного c', количество токенов, приходящихся на точки инъекции, является константой: <img src = '//host/1/{a}.jpg' onclick = 'f({b})' /> 2 токена

Слайд 18





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

Слайд 19






../2/a.jpg 'onerror='…;// '><script>…</script><!--

<img src='//host/1/{a}.jpg' onclick='f({b})'/>
Описание слайда:
../2/a.jpg 'onerror='…;// '><script>…</script><!-- <img src='//host/1/{a}.jpg' onclick='f({b})'/>

Слайд 20






… 0);… 0)'onload='… 0)'><script>…</script><!--

      <img src='//host/1/{a}.jpg' onclick='f({b})'/>
Описание слайда:
… 0);… 0)'onload='… 0)'><script>…</script><!-- <img src='//host/1/{a}.jpg' onclick='f({b})'/>

Слайд 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 = Url.Parse(Request.Params["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 }
Описание слайда:
Синтаксическая валидация – проверка строковых данных на соответствие какой-либо грамматике: Синтаксическая валидация – проверка строковых данных на соответствие какой-либо грамматике: 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 }
Описание слайда:
Семантическая валидация – проверка строковых данных на корректность с точки зрения логики приложения: Семантическая валидация – проверка строковых данных на корректность с точки зрения логики приложения: 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   $"<a href='//host/a/b/{parm_1}'>{parm_2}</a>"
08 );
Описание слайда:
Санитизация – преобразование строковых данных к синтаксису какого-либо токена заданной грамматики Санитизация – преобразование строковых данных к синтаксису какого-либо токена заданной грамматики 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 $"<a href='//host/a/b/{parm_1}'>{parm_2}</a>" 08 );

Слайд 31





В случае вложенных грамматик, например: 

Gt = JavaScript → HTML, t ∈ De

санитизацию необходимо проводить последовательно, в обратном порядке: 

EncodeHtml(EncodeJavaScript(t)),

с учётом синтаксических контекстов обоих грамматик.
В случае вложенных грамматик, например: 

Gt = JavaScript → HTML, t ∈ De

санитизацию необходимо проводить последовательно, в обратном порядке: 

EncodeHtml(EncodeJavaScript(t)),

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

Слайд 32





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

Слайд 33





Из этих правил есть два исключения:
Из этих правил есть два исключения:
Параметризация (типизация данных в точке выхода)
Использование встраиваемых средств RASP (санитизация и валидация в точке выхода)
Описание слайда:
Из этих правил есть два исключения: Из этих правил есть два исключения: Параметризация (типизация данных в точке выхода) Использование встраиваемых средств 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     $"<img src='//host/1/{a}.jpg' onclick='f({b})'/>"
04 ));
Описание слайда:
01 Response.Write( 02 SafeFormat.Html( 03 $"<img src='//host/1/{a}.jpg' onclick='f({b})'/>" 04 ));

Слайд 38





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

Слайд 39





Векторы от пентестеров и багхантеров – не использовать!
Векторы от пентестеров и багхантеров – не использовать!

	http://host/entry_point/?name=%2f..%2fWeb.Config
	
	File.Delete($"\\temp_data\\{name}");

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

Слайд 40





Используется любой набор векторов атаки и токенизатор соответствующей грамматики
Используется любой набор векторов атаки и токенизатор соответствующей грамматики
Перед каждой PVF устанавливается утверждение на количество токенов в её аргументе:

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

Слайд 45





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

Слайд 46





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

Слайд 47





Поддерживаемые языки:
Поддерживаемые языки:
.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
Описание слайда:
Поддерживаемые языки: Поддерживаемые языки: .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     $"<img src='//host/1/{a}.jpg' onclick='f({b})'/>"
04 ));
Описание слайда:
01 Response.Write( 02 SafeFormat.Html( 03 $"<img src='//host/1/{a}.jpg' onclick='f({b})'/>" 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 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)
Описание слайда:
// 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 рассматривает все переменные, как опасные значения. Это поведение можно переопределить с помощью форматных модификаторов:
:safe

:validate(method-name)
    method-name ∈ Func<string,bool>

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

Слайд 61


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



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