Скачать презентацию Заголовок App Sec хакерский путь Владимир Кочетков Скачать презентацию Заголовок App Sec хакерский путь Владимир Кочетков

AppSec -- хакерский путь.pptx

  • Количество слайдов: 120

Заголовок App. Sec – хакерский путь Владимир Кочетков Руководитель отдела исследований по анализу защищённости Заголовок App. Sec – хакерский путь Владимир Кочетков Руководитель отдела исследований по анализу защищённости приложений ptsecurity. com Positive Technologies

Заголовок https: //approof. ptsecurity. ru/ PT Application Inspector https: //ai. ptsecurity. ru/ ptsecurity. com Заголовок https: //approof. ptsecurity. ru/ PT Application Inspector https: //ai. ptsecurity. ru/ ptsecurity. com

Заголовок ПАМЯТИ КРИСА КАСПЕРСКИ (1976 -2017) Заголовок ПАМЯТИ КРИСА КАСПЕРСКИ (1976 -2017)

Заголовок HACKERS? WHO THE F**K ARE HACKERS? ! «Для хакера каждый предмет связан с Заголовок HACKERS? WHO THE F**K ARE HACKERS? ! «Для хакера каждый предмет связан с определенными свойствами и включен в определенные причинно-следственные отношения» «Хакер стремится разобраться во всём до конца, понять всё до мельчайших подробностей, выйти за область определения объекта, проанализировать и испытать его поведение во всех нештатных ситуациях»

Заголовок ХАКИНГ – ОБРАЗ МЫШЛЕНИЯ, А НЕ РОД ДЕЯТЕЛЬНОСТИ Заголовок ХАКИНГ – ОБРАЗ МЫШЛЕНИЯ, А НЕ РОД ДЕЯТЕЛЬНОСТИ

Заголовок ХАКИНГ – ОБРАЗ МЫШЛЕНИЯ, А НЕ РОД ДЕЯТЕЛЬНОСТИ Заголовок ХАКИНГ – ОБРАЗ МЫШЛЕНИЯ, А НЕ РОД ДЕЯТЕЛЬНОСТИ

Заголовок APPSEC (APPLICATION SECURITY) Предметная область, рассматривающая в качестве объекта защиты гипотетическую информационную систему Заголовок APPSEC (APPLICATION SECURITY) Предметная область, рассматривающая в качестве объекта защиты гипотетическую информационную систему (ИС): • включающую в себя конкретное приложение • объединяющую объекты окружения в единую сущность • замкнутую относительно информационных потоков приложения

Заголовок ДОПУЩЕНИЯ APPSEC • вне области влияния приложения его окружение защищено • логика предметной Заголовок ДОПУЩЕНИЯ APPSEC • вне области влияния приложения его окружение защищено • логика предметной области приложения корректна

Заголовок PT TOP 10 2011 -2015 (по данным аналитики https: //goo. gl/XTIGFW) 90% 80% Заголовок PT TOP 10 2011 -2015 (по данным аналитики https: //goo. gl/XTIGFW) 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% 2011 2012 2013 2014 2015 № 1, Cross-Site Scripting № 2, Fingerprinting № 3, Brute Force № 4, Information Leakage № 5, SQL Injection № 6, Cross-Site Request Forgery № 7, Server Misconfiguration № 8, Credential/Session Prediction № 9, URL Redirector Abuse № 10, Path Traversal

Заголовок ТЕКУЩАЯ СИТУАЦИЯ? ВСЁ РОВНО ЖЕ… 90% 80% 70% 60% 50% 40% 30% 20% Заголовок ТЕКУЩАЯ СИТУАЦИЯ? ВСЁ РОВНО ЖЕ… 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% 2011 2012 2013 2014 2015 № 1, Cross-Site Scripting № 2, Fingerprinting № 3, Brute Force № 4, Information Leakage № 5, SQL Injection № 6, Cross-Site Request Forgery № 7, Server Misconfiguration № 8, Credential/Session Prediction № 9, URL Redirector Abuse № 10, Path Traversal

Заголовок «УЛЫБАЕМСЯ И МАШЕМ, ПАРНИ» Заголовок «УЛЫБАЕМСЯ И МАШЕМ, ПАРНИ»

Заголовок ТЕКУЩАЯ СИТУАЦИЯ? S. N. A. F. U App. Sec за последние 5 лет Заголовок ТЕКУЩАЯ СИТУАЦИЯ? S. N. A. F. U App. Sec за последние 5 лет развивался семимильными шагами: • появилось множество достойных продуктов (x. AST, WAF, RASP); • опубликованы сотни научных работ и тысячи инженерных статей; • разработке защищённых приложений не обучают только ленивые; • исследователи выходят из тени и готовы делиться опытом. А с уязвимостями в приложениях «всё ровно»

Заголовок 7 ПРИЧИН ТЕКУЩЕЙ СИТУАЦИИ (1/2) • Разработчики фактически следуют культу карго, слепо копируя Заголовок 7 ПРИЧИН ТЕКУЩЕЙ СИТУАЦИИ (1/2) • Разработчики фактически следуют культу карго, слепо копируя "лучшие практики разработки защищённого кода", не имея при это представления о сути защищённости • Инструменты автоматизации задач App. Sec используются не по назначению или неэффективно • Сильно переоценена роль экспертов по анализу защищённости • Идёт повсеместная борьба с последствиями, вместо устранения причин

Заголовок 7 ПРИЧИН ТЕКУЩЕЙ СИТУАЦИИ (2/2) • Повсеместно насаждаются подходы типа Заголовок 7 ПРИЧИН ТЕКУЩЕЙ СИТУАЦИИ (2/2) • Повсеместно насаждаются подходы типа "hack yourself first", вынуждающие разработчиков заниматься не своим делом и формирующие ложное представление об уровне защищённости проекта • Неоправданно-завышенная оценка уровня защищённости проектов с открытым исходным кодом • Защищённость, основанная на хит-парадах рисков, до сих пор считается нормой Нужен иной подход к вопросам защищённости приложений!

Заголовок ХАКЕРСКИЙ ПУТЬ APPSEC • Изучение свойств приложения, протекающих в нём процессов и связанного Заголовок ХАКЕРСКИЙ ПУТЬ APPSEC • Изучение свойств приложения, протекающих в нём процессов и связанного с ним окружения • Понимание сути состояния защищённости приложения • Установление причинно-следственных отношений между критериями защищённости и свойствами приложения • Принятие осознанных решений в любых вопросах обеспечения защищённости приложений

Заголовок Application Security Заголовок Application Security

Заголовок DISCLAIMER Приводимые далее термины и определения локальны и не претендуют на признание в Заголовок DISCLAIMER Приводимые далее термины и определения локальны и не претендуют на признание в качестве общеупотребительных. Тем не менее, они устраняют существующие разночтения и противоречия в традиционной терминологии, позволяя перейти от интуитивных формулировок к формальным.

Заголовок С ЧЕГО НАЧНЁМ? Театр начинается с вешалки, а незащищённость ИС – с её Заголовок С ЧЕГО НАЧНЁМ? Театр начинается с вешалки, а незащищённость ИС – с её недостатков

Заголовок НЕДОСТАТОК Неэффективная реализация процессов вычисления, логики предметной области или конфигурации окружения ИС 19 Заголовок НЕДОСТАТОК Неэффективная реализация процессов вычисления, логики предметной области или конфигурации окружения ИС 19

Заголовок УГРОЗА Обусловленная недостатком возможность нарушения свойств состояния защищенности информационного потока: • • • Заголовок УГРОЗА Обусловленная недостатком возможность нарушения свойств состояния защищенности информационного потока: • • • конфиденциальности; целостности; доступности; авторизованности; аутентичности. 20

Заголовок УЯЗВИМОСТЬ Состояние возможности реализации угрозы Заголовок УЯЗВИМОСТЬ Состояние возможности реализации угрозы

Заголовок АТАКА Конкретный способ реализации угрозы (эксплуатации {состояния} уязвимости) Заголовок АТАКА Конкретный способ реализации угрозы (эксплуатации {состояния} уязвимости)

Заголовок ЗАЩИЩЁННОСТЬ Состояние невозможности реализации любой угрозы Заголовок ЗАЩИЩЁННОСТЬ Состояние невозможности реализации любой угрозы

Заголовок БЕЗОПАСНОСТЬ Состояние приемлемого риска реализации любой угрозы Заголовок БЕЗОПАСНОСТЬ Состояние приемлемого риска реализации любой угрозы

Заголовок ИНЫМИ СЛОВАМИ То, что может сделать атакующий с потоками информации, называется угрозой (threat) Заголовок ИНЫМИ СЛОВАМИ То, что может сделать атакующий с потоками информации, называется угрозой (threat) То, когда и благодаря чему он может это сделать, называется уязвимостью (vulnerability), обусловленной недостатком (weakness)

Заголовок ИНЫМИ СЛОВАМИ То, как он может это сделать, называется атакой (attack) То, с Заголовок ИНЫМИ СЛОВАМИ То, как он может это сделать, называется атакой (attack) То, с какой вероятностью у него это удастся и какие последствия может повлечь, называется риском (risk)

Заголовок ИНЫМИ СЛОВАМИ То, что не позволяет атакующему провести атаку, обеспечивает защищенность (security) То, Заголовок ИНЫМИ СЛОВАМИ То, что не позволяет атакующему провести атаку, обеспечивает защищенность (security) То, что минимизирует риск, обеспечивает безопасность (safety)

Заголовок Причины и следствия Недостаток (weakness) Незащищенность (insecurity) Небезопасность (unsafety) Угроза (threat) Уязвимость (vulnerability) Заголовок Причины и следствия Недостаток (weakness) Незащищенность (insecurity) Небезопасность (unsafety) Угроза (threat) Уязвимость (vulnerability) Атака (attack) Риск (risk)

Заголовок Разница между ИБ и App. Sec Информационная безопасность Защищённость приложений Заголовок Разница между ИБ и App. Sec Информационная безопасность Защищённость приложений

Заголовок Application Security Заголовок Application Security

Заголовок ВЫБОР МОДЕЛИ ПРИЛОЖЕНИЯ Поскольку защищённость – темпоральное свойство, модель приложения должна отражать процесс Заголовок ВЫБОР МОДЕЛИ ПРИЛОЖЕНИЯ Поскольку защищённость – темпоральное свойство, модель приложения должна отражать процесс его выполнения

Заголовок ПОТОКИ УПРАВЛЕНИЯ Приложение можно представить в виде базовых блоков, между которыми передаётся управление Заголовок ПОТОКИ УПРАВЛЕНИЯ Приложение можно представить в виде базовых блоков, между которыми передаётся управление в процессе выполнения приложения

Заголовок ПОТОКИ УПРАВЛЕНИЯ (ПРИМЕР 1/15) var name = Request. Params[

Заголовок ПОТОКИ УПРАВЛЕНИЯ (ПРИМЕР 2/15) var name = Request. Params[

Заголовок ПОТОКИ УПРАВЛЕНИЯ (ПРИМЕР 3/15) var name = Request. Params[

Заголовок ПОТОКИ УПРАВЛЕНИЯ (ПРИМЕР 4/15) var name = Request. Params[

Заголовок ПОТОКИ УПРАВЛЕНИЯ (ПРИМЕР 5/15) var name = Request. Params[

Заголовок ПОТОКИ УПРАВЛЕНИЯ (ПРИМЕР 6/15) var name = Request. Params[

Заголовок ПОТОКИ УПРАВЛЕНИЯ (ПРИМЕР 7/15) var name = Request. Params[

Заголовок ПОТОКИ УПРАВЛЕНИЯ (ПРИМЕР 8/15) var name = Request. Params[

Заголовок ПОТОКИ УПРАВЛЕНИЯ (ПРИМЕР 9/15) var name = Request. Params[

Заголовок ПОТОКИ УПРАВЛЕНИЯ (ПРИМЕР 10/15) var name = Request. Params[

Заголовок ПОТОКИ УПРАВЛЕНИЯ (ПРИМЕР 11/15) var name = Request. Params[

Заголовок ПОТОКИ УПРАВЛЕНИЯ (ПРИМЕР 12/15) var name = Request. Params[

Заголовок ПОТОКИ УПРАВЛЕНИЯ (ПРИМЕР 13/15) var name = Request. Params[

Заголовок ПОТОКИ УПРАВЛЕНИЯ (ПРИМЕР 14/15) var name = Request. Params[

Заголовок ПОТОКИ УПРАВЛЕНИЯ (ПРИМЕР 15/15) var name = Request. Params[

Заголовок ПОТОКИ ДАННЫХ Потоки выполнения приложения являются производными от потоков данных окружения Заголовок ПОТОКИ ДАННЫХ Потоки выполнения приложения являются производными от потоков данных окружения

Заголовок ПОТОКИ ДАННЫХ (ПРИМЕР 1/9) var name = Request. Params[

Заголовок ПОТОКИ ДАННЫХ (ПРИМЕР 2/9) var name = Request. Params[

Заголовок ПОТОКИ ДАННЫХ (ПРИМЕР 3/9) var name = Request. Params[

Заголовок ПОТОКИ ДАННЫХ (ПРИМЕР 4/9) var name = Request. Params[

Заголовок ПОТОКИ ДАННЫХ (ПРИМЕР 5/9) var name = Request. Params[

Заголовок ПОТОКИ ДАННЫХ (ПРИМЕР 6/9) var name = Request. Params[

Заголовок ПОТОКИ ДАННЫХ (ПРИМЕР 7/9) var name = Request. Params[

Заголовок ПОТОКИ ДАННЫХ (ПРИМЕР 8/9) var name = Request. Params[

Заголовок ПОТОКИ ДАННЫХ (ПРИМЕР 9/9) var name = Request. Params[

Заголовок СОСТОЯНИЕ ПОТОКА ДАННЫХ Множество всех возможных значений потока данных в конкретной точке потока Заголовок СОСТОЯНИЕ ПОТОКА ДАННЫХ Множество всех возможных значений потока данных в конкретной точке потока выполнения определяет его состояние

Заголовок СОСТОЯНИЕ ПОТОКА ДАННЫХ (ПРИМЕР) var name = Request. Params[

Заголовок СОСТОЯНИЕ ПРИЛОЖЕНИЯ Множество состояний всех потоков данных в конкретной точке потока выполнения определяют Заголовок СОСТОЯНИЕ ПРИЛОЖЕНИЯ Множество состояний всех потоков данных в конкретной точке потока выполнения определяют состояние приложения

Заголовок СОСТОЯНИЕ ПРИЛОЖЕНИЯ (ПРИМЕР) var name = Request. Params[ Заголовок СОСТОЯНИЕ ПРИЛОЖЕНИЯ (ПРИМЕР) var name = Request. Params["name"]; var key 1 = Request. Params["key 1"]; var parm = Request. Params["parm"]; var data = string. Is. Null. Or. Empty(parm) ? new char[0]: Convert. From. Base 64 String(parm); string str 1; if (name + "in" == "admin") { if (key 1 == "validkey") { str 1 = Encoding. UTF 8. Get. String(data); } else { str 1 = "Wrong key!"; } Response. Write(str 1); } str 1 ∈ { Encoding. UTF 8. Get. String(data), "Wrong Key!" } name ∈ { Request. Params["name"] } key 1 ∈ { Request. Params["key 1"] } parm ∈ { Request. Params["parm"] } data ∈ { new char[0], Convert. From. Bse 64 String(parm) }

Заголовок ГРАФ ПОТОКОВ ВЫЧИСЛЕНИЯ Граф переходов между состояниями приложения определяет все возможные потоки вычисления Заголовок ГРАФ ПОТОКОВ ВЫЧИСЛЕНИЯ Граф переходов между состояниями приложения определяет все возможные потоки вычисления и является искомой моделью процесса его выполнения

Заголовок ГРАФ ПОТОКОВ ВЫЧИСЛЕНИЯ (ПРИМЕР 1/7) Заголовок ГРАФ ПОТОКОВ ВЫЧИСЛЕНИЯ (ПРИМЕР 1/7)

Заголовок ГРАФ ПОТОКОВ ВЫЧИСЛЕНИЯ (ПРИМЕР 2/7) Заголовок ГРАФ ПОТОКОВ ВЫЧИСЛЕНИЯ (ПРИМЕР 2/7)

Заголовок ГРАФ ПОТОКОВ ВЫЧИСЛЕНИЯ (ПРИМЕР 3/7) Заголовок ГРАФ ПОТОКОВ ВЫЧИСЛЕНИЯ (ПРИМЕР 3/7)

Заголовок ГРАФ ПОТОКОВ ВЫЧИСЛЕНИЯ (ПРИМЕР 4/7) Заголовок ГРАФ ПОТОКОВ ВЫЧИСЛЕНИЯ (ПРИМЕР 4/7)

Заголовок ГРАФ ПОТОКОВ ВЫЧИСЛЕНИЯ (ПРИМЕР 5/7) Заголовок ГРАФ ПОТОКОВ ВЫЧИСЛЕНИЯ (ПРИМЕР 5/7)

Заголовок ГРАФ ПОТОКОВ ВЫЧИСЛЕНИЯ (ПРИМЕР 6/7) Заголовок ГРАФ ПОТОКОВ ВЫЧИСЛЕНИЯ (ПРИМЕР 6/7)

Заголовок ГРАФ ПОТОКОВ ВЫЧИСЛЕНИЯ (ПРИМЕР 7/7) Заголовок ГРАФ ПОТОКОВ ВЫЧИСЛЕНИЯ (ПРИМЕР 7/7)

Заголовок Соединяя точки Заголовок Соединяя точки

Заголовок APPLICATION + SECURITY • Потоки вычисления являются информационными потоками • Следовательно, уязвимость приложения Заголовок APPLICATION + SECURITY • Потоки вычисления являются информационными потоками • Следовательно, уязвимость приложения – состояние возможности нарушения конфиденциальности, целостности, доступности, аутентичности или авторизованности любого из потоков вычисления приложения • Состояние защищённости приложения возникает при невозможности эксплуатации в нём любой уязвимости

Заголовок СУПЕРКЛАССЫ УЯЗВИМОСТЕЙ ПРИЛОЖЕНИЯ • Вычислительный – уязвимости, описываемые в терминах модели процесса выполнения Заголовок СУПЕРКЛАССЫ УЯЗВИМОСТЕЙ ПРИЛОЖЕНИЯ • Вычислительный – уязвимости, описываемые в терминах модели процесса выполнения приложения • Логический – уязвимости, описываемые в терминах модели предметной области приложения • Экзогенный – уязвимости, описываемые в терминах модели окружения

Заголовок ЧТО МЫ СКАЖЕМ ЛОГИЧЕСКОМУ И ЭКЗОГЕННОМУ КЛАССАМ? «Не сегодня!» Заголовок ЧТО МЫ СКАЖЕМ ЛОГИЧЕСКОМУ И ЭКЗОГЕННОМУ КЛАССАМ? «Не сегодня!»

Заголовок МОДЕЛИРОВАНИЕ ВЫЧИСЛИТЕЛЬНЫХ УЯЗВИМОСТЕЙ (1/2) «Пусть C - граф потоков вычисления приложения. Пусть pvf(t) Заголовок МОДЕЛИРОВАНИЕ ВЫЧИСЛИТЕЛЬНЫХ УЯЗВИМОСТЕЙ (1/2) «Пусть C - граф потоков вычисления приложения. Пусть pvf(t) - достижимая вершина потока управления на C, являющаяся вызовом функции прямой или косвенной интерпретации текста t, соответствующего известной формальной грамматике G. Пусть e - поток аргумента входных данных на С. Пусть De - множество потоков данных на C, порождаемых от e и достижимых в точке вызова pvf(t), где t принадлежит De»

Заголовок МОДЕЛИРОВАНИЕ ВЫЧИСЛИТЕЛЬНЫХ УЯЗВИМОСТЕЙ (2/2) «Тогда приложение уязвимо к угрозе нарушения целостности потоков данных Заголовок МОДЕЛИРОВАНИЕ ВЫЧИСЛИТЕЛЬНЫХ УЯЗВИМОСТЕЙ (2/2) «Тогда приложение уязвимо к угрозе нарушения целостности потоков данных De в точке выполнения pvf(t), если среди них найдётся хотя бы одна пара таких значений, при которых, в результате их синтаксического разбора в соответствии с грамматикой G, получаются не изоморфные друг-другу деревья разбора»

Заголовок МОДЕЛИРОВАНИЕ УЯЗВИМОСТЕЙ (ПРИМЕР) Заголовок МОДЕЛИРОВАНИЕ УЯЗВИМОСТЕЙ (ПРИМЕР)

Заголовок ИНЪЕКЦИИ Атаки на нарушение целостности потоков данных в результате их преобразования принято называть Заголовок ИНЪЕКЦИИ Атаки на нарушение целостности потоков данных в результате их преобразования принято называть инъекциями Тип инъекции определяется грамматикой атакуемого потока данных (HTML, XML, SQL, XPath, XQuery, LDAP, LINQ, Path, …)

Заголовок СВОЙСТВА АТАК • Направлены на реализацию угрозы (нарушение одного из свойств защищённости какого-либо Заголовок СВОЙСТВА АТАК • Направлены на реализацию угрозы (нарушение одного из свойств защищённости какого-либо потока вычисления) • Могут являться как производными от предыдущих атак, так и первообразными для последующих. Например: • HTTP Response Splitting → Header Spoofing → Session Fixation Unvalidated Redirection Body spoofing → Content Spoofing Session Fixation Unvalidated Redirection Cross-Site Scripting …

Заголовок ДОМАШНЕЕ ЗАДАНИЕ (1/2) 1. Постройте граф потоков вычисления C для вашего кода и Заголовок ДОМАШНЕЕ ЗАДАНИЕ (1/2) 1. Постройте граф потоков вычисления C для вашего кода и найдите в нём все точки входа/выхода данных из/в окружения 2. Выделите в C все потоки вычисления от найденных точек входа к точкам выхода 3. Рассматривая каждый поток вычисления, как информационный, определите актуальные для него угрозы 4. Для каждой пары «поток вычисления ⇔ угроза» ответьте на вопрос: «что в приложении защищает данный поток от этой угрозы? » 5. Сформулируйте и реализуйте меры защиты для незащищённых потоков

Заголовок ДОМАШНЕЕ ЗАДАНИЕ (2/2) Для оценки угроз нарушения целостности в многопоточной среде имеет смысл Заголовок ДОМАШНЕЕ ЗАДАНИЕ (2/2) Для оценки угроз нарушения целостности в многопоточной среде имеет смысл рассматривать C в качестве сети Петри, где позициями сети будут входные/выходные вершины графа, а переходами – все промежуточные. Возможность появления более одной метки в любой позиции такой сети укажет на возможность реализации угрозы.

Заголовок ТАК ЧТО НЕ ТАК-ТО? Заголовок ТАК ЧТО НЕ ТАК-ТО?

Заголовок Заблуждение № 1 «Достаточно знать N правил разработки защищённого кода» Заголовок Заблуждение № 1 «Достаточно знать N правил разработки защищённого кода»

Заголовок 5 ШАГОВ К ПРИНЯТИЮ ТОГО, ЧТО N→∞ отрицание принятие злость торг депрессия Заголовок 5 ШАГОВ К ПРИНЯТИЮ ТОГО, ЧТО N→∞ отрицание принятие злость торг депрессия

Заголовок КАКИЕ ВАШИ ДОКАЗАТЕЛЬСТВА? • Возможных недостатков и уязвимостей бесконечно много, даже в рамках Заголовок КАКИЕ ВАШИ ДОКАЗАТЕЛЬСТВА? • Возможных недостатков и уязвимостей бесконечно много, даже в рамках вычислительного суперкласса • Количество типов атак сравнимо с количеством возможных потоков вычислений * количество угроз, т. е. конечно и зависит от специфики каждого конкретного приложения • Следовательно, любое конечное множество правил, либо не является полным, либо направлено на противодействие атакам и поэтому неэффективно, либо сводит код к «не вполне полной по Тьюрингу» модели (например, правила NASA/JPL)

Заголовок ПРАВИЛО: «ОТ SQL-ИНЪЕКЦИЙ ПРИНИМАЙТЕ ORM!» (1/2) public class Session. Create. Query. Controller implements Заголовок ПРАВИЛО: «ОТ SQL-ИНЪЕКЦИЙ ПРИНИМАЙТЕ ORM!» (1/2) public class Session. Create. Query. Controller implements Controller{ @Override public Model. And. View handle. Request(Http. Servlet. Request request, Http. Servlet. Response response) throws Exception { Model. And. View mv = new Model. And. View("user"); String name = request. get. Parameter("name"); try { Session session = Hibernate. Util. get. Session. Factory(). open. Session(); session. begin. Transaction(); List result = session. create. Query("from Users. Entity where uname = '" + name + "'"). list(); mv. add. Object("users", result); session. get. Transaction(). commit(); } catch (Exception e) { e. print. Stack. Trace(); } return mv; } }

Заголовок ПРАВИЛО: «ОТ SQL-ИНЪЕКЦИЙ ПРИНИМАЙТЕ ORM!» (2/2) public class Session. Create. Query. Controller implements Заголовок ПРАВИЛО: «ОТ SQL-ИНЪЕКЦИЙ ПРИНИМАЙТЕ ORM!» (2/2) public class Session. Create. Query. Controller implements Controller{ @Override public Model. And. View handle. Request(Http. Servlet. Request request, Http. Servlet. Response response) throws Exception { Model. And. View mv = new Model. And. View("user"); String name = request. get. Parameter("name"); try { Session session = Hibernate. Util. get. Session. Factory(). open. Session(); session. begin. Transaction(); List result = session. create. Query("from Users. Entity where uname = '" + name + "'"). list(); mv. add. Object("users", result); session. get. Transaction(). commit(); } catch (Exception e) { e. print. Stack. Trace(); } return mv; } name = 1' and '1 ''=1 union select version(), 2, 3, 4 -- '='1 }

Заголовок Заблуждение № 2 «Всё ОК, анализатор ничего не нашёл» Заголовок Заблуждение № 2 «Всё ОК, анализатор ничего не нашёл»

Заголовок АНАЛИЗАТОР КОДА (ПРИМЕР 1/6) def analyze(code, data): if not vulnerable(code, data): # given Заголовок АНАЛИЗАТОР КОДА (ПРИМЕР 1/6) def analyze(code, data): if not vulnerable(code, data): # given configuration is secure else: # given configuration is vulnerable

Заголовок АНАЛИЗАТОР КОДА (ПРИМЕР 2/6) def analyze(code, data): if not vulnerable(code, data): # given Заголовок АНАЛИЗАТОР КОДА (ПРИМЕР 2/6) def analyze(code, data): if not vulnerable(code, data): # given configuration is secure vulnerable_function_call() else: # given configuration is vulnerable

Заголовок АНАЛИЗАТОР КОДА (ПРИМЕР 3/6) analyzer_code = Заголовок АНАЛИЗАТОР КОДА (ПРИМЕР 3/6) analyzer_code = """ def analyze(code, data): if not vulnerable(code, data): # given configuration is secure vulnerable_function_call() else: # given configuration is vulnerable """

Заголовок АНАЛИЗАТОР КОДА (ПРИМЕР 4/6) analyzer_code = Заголовок АНАЛИЗАТОР КОДА (ПРИМЕР 4/6) analyzer_code = """ def analyze(code, data): if not vulnerable(code, data): # given configuration is secure vulnerable_function_call() else: # given configuration is vulnerable """ eval(analyzer_code)

Заголовок АНАЛИЗАТОР КОДА (ПРИМЕР 5/6) analyzer_code = Заголовок АНАЛИЗАТОР КОДА (ПРИМЕР 5/6) analyzer_code = """ def analyze(code, data): if not vulnerable(code, data): # given configuration is secure vulnerable_function_call() else: # given configuration is vulnerable """ eval(analyzer_code) analyze(analyzer_code, analyzer_code)

Заголовок АНАЛИЗАТОР КОДА (ПРИМЕР 6/6) analyzer_code = Заголовок АНАЛИЗАТОР КОДА (ПРИМЕР 6/6) analyzer_code = """ def analyze(code, data): if not vulnerable(code, data): # given configuration is secure vulnerable_function_call() else: # given configuration is vulnerable """ eval(analyzer_code) analyze(analyzer_code, analyzer_code) ¯_(ツ)_/¯

Заголовок ЧАСТНЫЙ СЛУЧАЙ? n = … # n∈ℕ def analyze(code, data): while n: sleep(n) Заголовок ЧАСТНЫЙ СЛУЧАЙ? n = … # n∈ℕ def analyze(code, data): while n: sleep(n) n -= 1 if not vulnerable(code, data): # given configuration is secure vulnerable_function_call() else: # given configuration is vulnerable И сколько таких «частных» случаев теперь возможно? ; )

Заголовок ТЕОРЕМА РАЙСА (ПРИМЕНИТЕЛЬНО К APPSEC) Не существует универсального анализатора защищённости Заголовок ТЕОРЕМА РАЙСА (ПРИМЕНИТЕЛЬНО К APPSEC) Не существует универсального анализатора защищённости

Заголовок СТАТАНАЛИЗАТОРЫ – ИНДУСТРИЯ ОБМАНА? Проблема анализа защищённости решаема для программ: • эквивалентных конечным Заголовок СТАТАНАЛИЗАТОРЫ – ИНДУСТРИЯ ОБМАНА? Проблема анализа защищённости решаема для программ: • эквивалентных конечным автоматам (за PTIME) • сводимых к конечным автоматам за счёт накладывания ограничений на размеры доступной памяти, размерность переменных, количество итераций циклов и т. п. (за EXPTIME) Все существующие анализаторы используют подходы, основанные на аппроксимации модели исследуемого кода. Любой статанализатор легко «обламывается» не более, чем 3 строчками кода

Заголовок Заблуждение № 3 «Только ручной анализ, только хардкор!» Заголовок Заблуждение № 3 «Только ручной анализ, только хардкор!»

Заголовок УЯЗВИМ ЛИ ДАННЫЙ JAVASCRIPT-КОД? (1/2) ([][[]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]]) [+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+([][[]]+[])[+[]]+((+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+ []]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![ ]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[ ]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![] +[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]+[])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]]+([][[]]+[])[+!+[]]+(!![]+[])[+[]]+(+(+!+[]+[+!+[]]+(!![]+[])[!+[]+!+[]]+[!+[]+!+[]]+[+[]])+[])[+!+[]]+(! []+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[ ]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[][(![]+[])[+[]]+([![]]+[] Заголовок УЯЗВИМ ЛИ ДАННЫЙ JAVASCRIPT-КОД? (1/2) ([][[]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]]) [+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+([][[]]+[])[+[]]+((+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+ []]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![ ]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[ ]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![] +[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]+[])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]]+([][[]]+[])[+!+[]]+(!![]+[])[+[]]+(+(+!+[]+[+!+[]]+(!![]+[])[!+[]+!+[]]+[!+[]+!+[]]+[+[]])+[])[+!+[]]+(! []+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[ ]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[][(![]+[])[+[]]+([![]]+[] [[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+([]+[])[(![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+ []]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(!![]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+( !![]+[])[+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[]) [+!+[]]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+! +[]]]()[+!+[]+[+!+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][(![]+[]) [+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[ ][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+(+!+[]+[+!+[]]+(!![]+[])[!+[]+!+[]]+[+[]])+[])[+!+[]]+(+(+!+[]+[+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]] )[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([ ![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]+([][ []]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([! []]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+! +[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![ ]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+ (!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![] +[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+[+[]]]](!+[]+[+!+[]])[+!+[ ]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(+(+!+[]+[+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!! []+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[][(! []+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[ ])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![ ]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([! []]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+( !![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+ [])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+[+[]]]](!+[]+!+[] +[+!+[]])[+!+[]]+(+(+!+[]+[+!+[]]+(!![]+[])[!+[]+!+[]]+[!+[]+!+[]]+[+[]])+[])[+!+[]]+(![]+[])[!+[]+!+[]]+([][[]]+[])[+[]]+(+(+!+[]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][ []])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[] )[+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]] ])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[]) [!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]] )[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[] )[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+! +[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!! []+[])[+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+ []]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+[+[]]]](!+[]+[+[]])+(![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![] +[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+ !+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+( [][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+! +[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+[+[]]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[ !+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+[+[]]]+[+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+[+[]]]

Заголовок УЯЗВИМ ЛИ ДАННЫЙ JAVASCRIPT-КОД? (2/2) ([][[]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]]) [+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+([][[]]+[])[+[]]+((+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+ []]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![ ]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[ ]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![] +[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]+[])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]]+([][[]]+[])[+!+[]]+(!![]+[])[+[]]+(+(+!+[]+[+!+[]]+(!![]+[])[!+[]+!+[]]+[!+[]+!+[]]+[+[]])+[])[+!+[]]+(! []+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[ ]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[][(![]+[])[+[]]+([![]]+[] Заголовок УЯЗВИМ ЛИ ДАННЫЙ JAVASCRIPT-КОД? (2/2) ([][[]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]]) [+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+([][[]]+[])[+[]]+((+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+ []]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![ ]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[ ]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![] +[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]+[])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]]+([][[]]+[])[+!+[]]+(!![]+[])[+[]]+(+(+!+[]+[+!+[]]+(!![]+[])[!+[]+!+[]]+[!+[]+!+[]]+[+[]])+[])[+!+[]]+(! []+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[ ]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[][(![]+[])[+[]]+([![]]+[] [[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+([]+[])[(![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+ []]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(!![]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+( !![]+[])[+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[]) [+!+[]]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+! +[]]]()[+!+[]+[+!+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][(![]+[]) [+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[ ][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+(+!+[]+[+!+[]]+(!![]+[])[!+[]+!+[]]+[+[]])+[])[+!+[]]+(+(+!+[]+[+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]] )[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([ ![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]+([][ []]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([! []]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+! +[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![ ]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+ (!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![] +[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+[+[]]]](!+[]+[+!+[]])[+!+[ ]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(+(+!+[]+[+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!! []+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[][(! []+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[ ])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![ ]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([! []]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+( !![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+ [])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+[+[]]]](!+[]+!+[] +[+!+[]])[+!+[]]+(+(+!+[]+[+!+[]]+(!![]+[])[!+[]+!+[]]+[!+[]+!+[]]+[+[]])+[])[+!+[]]+(![]+[])[!+[]+!+[]]+([][[]]+[])[+[]]+(+(+!+[]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][ []])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[] )[+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]] ])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[]) [!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]] )[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[] )[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+! +[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!! []+[])[+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+ []]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+[+[]]]](!+[]+[+[]])+(![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![] +[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+ !+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+( [][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+! +[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+[+[]]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[ !+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+[+[]]]+[+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+[+[]]]

Заголовок JSF**CK false => ![] true => !![] undefined => [][[]] Na. N => Заголовок JSF**CK false => ![] true => !![] undefined => [][[]] Na. N => +[![]] 0 => +[] 1 => +!+[] 2 => !+[]+!+[] 10 => [+!+[]]+[+[]] Array => [] Number => +[] String => []+[] Boolean => ![] Function => []["filter"] eval => []["filter"]["constructor"]( CODE )() window => []["filter"]["constructor"]("return this")() … document. location= location. hash. substring(1)

Заголовок РУЧНОЙ АНАЛИЗ КОДА Человек в состоянии решить задачу анализа защищённости кода, но с Заголовок РУЧНОЙ АНАЛИЗ КОДА Человек в состоянии решить задачу анализа защищённости кода, но с рядом существенных оговорок о его сложности (колмогоровской, цикломатической, семантической – вот это вот всё и сразу)

Заголовок В ЕДИНЕНИИ – СИЛА! • Программа-анализатор транслирует код в привычные человеку идиомы и Заголовок В ЕДИНЕНИИ – СИЛА! • Программа-анализатор транслирует код в привычные человеку идиомы и определяет потенциально-опасные места и условия их эксплуатации • Человек верифицирует полученные результаты, классифицируя все обнаруженные потенциально-опасные места и подтверждая выполнимость условий эксплуатации

Заголовок АНАЛИЗАТОР ЗДОРОВОГО ЧЕЛОВЕКА Заголовок АНАЛИЗАТОР ЗДОРОВОГО ЧЕЛОВЕКА

Заголовок SSDL Разовые оценки защищённости проекта или нерегулярный анализ его исходного кода -- ни Заголовок SSDL Разовые оценки защищённости проекта или нерегулярный анализ его исходного кода -- ни о чём. Оптимальная стратегия: непрерывный автоматизированный анализ кода в рамках CI, полуавтоматизированная оценка защищённости – перед каждым релизом

Заголовок Заблуждение № 4 «Зачем устранять уязвимости, если можно просто блокировать атаки? » Заголовок Заблуждение № 4 «Зачем устранять уязвимости, если можно просто блокировать атаки? »

Заголовок БЛОКИРОВАТЬ АТАКИ – ПРОСТО? Дано: уязвимость к нарушению целостности HTTP-ответа данными из БД. Заголовок БЛОКИРОВАТЬ АТАКИ – ПРОСТО? Дано: уязвимость к нарушению целостности HTTP-ответа данными из БД. Возможные атаки: HTTP Response Splitting → Header Spoofing → Session Fixation Unvalidated Redirection Body spoofing → Content Spoofing Session Fixation Unvalidated Redirection Cross-Site Scripting Какие из них будем блокировать и как?

Заголовок И КАК БЫТЬ, К ПРИМЕРУ, С ЛОГИЧЕСКИМИ УЯЗВИМОСТЯМИ? Заголовок И КАК БЫТЬ, К ПРИМЕРУ, С ЛОГИЧЕСКИМИ УЯЗВИМОСТЯМИ?

Заголовок Заблуждение № 5 «Hack yourself first!» -- полезная практика Заголовок Заблуждение № 5 «Hack yourself first!» -- полезная практика

Заголовок СПАСЕНИЕ УТОПАЮЩИХ …? «Hack yourself first» предполагает проведение регулярных пентестов приложения силами его Заголовок СПАСЕНИЕ УТОПАЮЩИХ …? «Hack yourself first» предполагает проведение регулярных пентестов приложения силами его же разработчиков. Пентест даёт ответ на единственный вопрос: «какие последствия будет иметь активность атакующего с квалификацией не выше, чем у пентестера? » Какова вероятность того, что приложение будет атаковано взломщиком, с квалификацией выше, чем у разработчика?

Заголовок Заблуждение № 6 «Given enough eyeballs, all bugs are shallow» Заголовок Заблуждение № 6 «Given enough eyeballs, all bugs are shallow»

Заголовок НЕСКОЛЬКО ИСТОРИЙ ОБ ОПЕНСОРС-ПРОЕКТАХ • «Как я уязвимость в Nginx исправлял» • «x. Заголовок НЕСКОЛЬКО ИСТОРИЙ ОБ ОПЕНСОРС-ПРОЕКТАХ • «Как я уязвимость в Nginx исправлял» • «x. Org – 20 лет спустя» • « 9 -летняя грязная корова» или «Ох уж этот Линус» • «История о том, как все пары глаз прошли мимо» • «Дело об аудите Vera. Crypt»

Заголовок ПРАВИЛЬНЫЕ ВОПРОСЫ • Кто хочет анализировать открытый код? • Сколько из желающих умеют Заголовок ПРАВИЛЬНЫЕ ВОПРОСЫ • Кто хочет анализировать открытый код? • Сколько из желающих умеют это делать? • Что ими движет? • Как часто будет проводиться анализ?

Заголовок ЧТО ДЕЛАЕТ ПРИЛОЖЕНИЯ ЗАЩИЩЁННЫМИ? Эффективность мер по обеспечению защищённости приложения целиком зависит от Заголовок ЧТО ДЕЛАЕТ ПРИЛОЖЕНИЯ ЗАЩИЩЁННЫМИ? Эффективность мер по обеспечению защищённости приложения целиком зависит от зрелости организационных процессов в проекте и не зависит от используемой модели разработки

Заголовок Заблуждения № 7 -16 «OWASP Top 10» Заголовок Заблуждения № 7 -16 «OWASP Top 10»

Заголовок OWASP TOP 10 – ЧЕГО? С каждой очередной версией, вопросов к OWASP TOP Заголовок OWASP TOP 10 – ЧЕГО? С каждой очередной версией, вопросов к OWASP TOP 10 становится всё больше и больше. • Почему в одном списке собраны недостатки и атаки, принадлежащие классам различной «мощности» ? • На какую модель опирается данный хит-парад? • С какой целью в него включаются пункты-тавтологии?

Заголовок OWASP TOP 10 2017 – ЧТО ЭТО БЫЛО? Заголовок OWASP TOP 10 2017 – ЧТО ЭТО БЫЛО?

Заголовок ПОЛЕЗНОСТЬ OWASP TOP 10 Исходя из наблюдаемых тенденций, OWASP TOP 10 в итоге Заголовок ПОЛЕЗНОСТЬ OWASP TOP 10 Исходя из наблюдаемых тенденций, OWASP TOP 10 в итоге сколлапсирует в TOP 3: 1. Insufficient Attack Protection 2. Insufficient Vulnerability Mitigation 3. Insufficient Weakness Elimination Опираться на данный хит-парад в разработке приложений – примерно то же самое, что учиться безопасному вождению по топу видеозаписей ДТП с регистраторов в You. Tube.

Заголовок И КАКУЮ КЛАССИФИКАЦИЮ ИСПОЛЬЗОВАТЬ? Выводимую из «поток вычисления ⇔ угроза» для каждого конкретного Заголовок И КАКУЮ КЛАССИФИКАЦИЮ ИСПОЛЬЗОВАТЬ? Выводимую из «поток вычисления ⇔ угроза» для каждого конкретного приложения. Nuff said.

Заголовок ВОПРОСЫ? vkochetkov@ptsecurity. com https: //about. me/vladimir. kochetkov Заголовок ВОПРОСЫ? vkochetkov@ptsecurity. com https: //about. me/vladimir. kochetkov

Заголовок Спасибо! ptsecurity. com Заголовок Спасибо! ptsecurity. com