Web Application Firewalls / Иван Новиков (ONsec)

Preview:

DESCRIPTION

 

Citation preview

HOWTO:  Web  Applica/on  Firewalls  

Проблематика  и  обзор  решений

Иван  Новиков

понедельник, 22 апреля 13 г.

Что  такое?• WAF  -­‐  Web  Applica/on  Firewall• Средства  обнаружения  и  блокировки  атак  на  веб-­‐приложения

• Атаки  на  приложение  -­‐  эксплуатация  ошибок  с  целью  получения  НСД

• АТАКА  !=  УЯЗВИМОСТЬ

понедельник, 22 апреля 13 г.

Кто  атакует?• Автоматические  сканеры  из  бот-­‐сетей• Школьники  (script-­‐kiddies)• Злоумышленники  (сбор  бот-­‐сетей,  перепродажа  трафика)

• «Киллеры»  на  заказ• Аудиторы-­‐«антикиллеры»  на  заказ  от  вас

понедельник, 22 апреля 13 г.

Как  атакуют?• Уязвимости  движков  и  компонент–WordPress  (/mthumb)– PhpMyAdmin  (unserialize)– TinyMCE  (file  upload)– JQuery  (DOM-­‐based  XSS)

понедельник, 22 апреля 13 г.

Как  атакуют?• Уязвимости  веб-­‐приложений• XSS• SQL  injec/on• Local  File  Inclusion  (LFI/RFI)• ...

понедельник, 22 апреля 13 г.

Что  делать?• Не  закрывать  глаза• Не  бояться• Разбираться  в  проблеме• Понимать  методы  борьбы  и  решения• Применять  их

понедельник, 22 апреля 13 г.

Как  бороться?• Блокировать  атаки  с  помощью  WAF• Проверять  атаки  на  предмет  реального  наличия  уязвимостей

• Выявлять  уязвимости• Устранять  уязвимости• Не  допускать  аналогичных  в  дальнейшем

понедельник, 22 апреля 13 г.

Как  работает  WAF?• Пропустить  все  запросы  через  себя• Анализировать  содержимое  запрос• Блокировать  запрос  при  наличии  атаки• Пропустить  запрос  на  бэкэнд,  если  атака  не  обнаружена

понедельник, 22 апреля 13 г.

Как  работает  Web  App  Firewall?

Сервер приложенийWAF

КлиентHTTP запрос

Хакервектор атаки

понедельник, 22 апреля 13 г.

Как  ошибается  WAF?

Сервер приложенийWAF

КлиентHTTP запрос

Хакервектор атаки

Пропускхакера

Блок клиента

понедельник, 22 апреля 13 г.

Мифы  о  WAF• WAF  блокирует  уязвимости!

• Есть  WAF  =>  Firewall  не  нужен!

• Есть  Firewall  =>  WAF  не  нужен!

• WAF  защищает  все  мои  сервисы:  почту,  базу,  LDAP

• Приложение  нельзя  взломать  через  WAF

• Приложение  все-­‐равно  взломают,  WAF  не  нужен!

понедельник, 22 апреля 13 г.

Мифы  о  WAF• Можно  настроить  WAF,  чтобы  он  вообще  

НИКОГДА  не  ошибался

• WAF  никак  не  скажется  на  производительности  фронтэндов

• WAF  можно  не  настраивать,  «для  начала»  поставим  как  есть,  а  там  посмотрим  «как  пойдет»

• WAF  что-­‐то  «блокирует»  и  «хорошо»,  смотреть  логи  необязательно

• У  меня  ASP.NET,  там  встроенный  WAF!понедельник, 22 апреля 13 г.

Бесплатные  WAF?• mod_security  -­‐  Apache,  Nginx,  IIS• Naxsi  -­‐  nginx• IronBee• PHPIDS

понедельник, 22 апреля 13 г.

Бесплатные  WAF• Плюсы– Открытый  код– Установка  на  свое  железо

• Минусы– Не  работают  без  настройки– Не  настраиваются  без  специалиста– Нет  поддержки

понедельник, 22 апреля 13 г.

Платные  WAF• ModSecurity  from  Trustwave  consul/ng• Imperva• Barracuda• SRA  WAF  (Dell)

понедельник, 22 апреля 13 г.

Платные  WAF• Плюсы– Поддержка

• Минусы– Готовое  железо–Масштабирование– Производительность– Закрытый  код

понедельник, 22 апреля 13 г.

Обзор  mod_security• Один  из  первых  (если  не  самый  первый)  общедоступный  WAF  -­‐  пионер

•  Можно  купить  коммерческие  правила  (16  тыс.  +)  – $200/год  за  сервер,  $180/год  при  покупке  лицензии  на  3  года

– $135/год  за  сервер  при  покупке  лицензий  на  100  серверов  на  3  года

понедельник, 22 апреля 13 г.

Обзор  mod_security• Опыт  внедрения  от  клиента:– Было  4  фронтэнда  без  mod_security– Стало  13  фрондэндов  с  mod_security– $2470/год  на  лицензии– $20k+/год  на  консалтинг– Через  год  от  решения  отказались  из-­‐за  жалоб  клиентов  -­‐  false  posi/ves.  Не  успевали  править

понедельник, 22 апреля 13 г.

Обзор  mod_security• Новый  продукт,  полностью  бесплатный,  доступны  

исходные  коды

• Первый  под  nginx  (сейчас  есть  mod_security  nginx)

• Черные  и  белые  списки:

– Черные  списки  -­‐  сигнатуры  атак

– Белые  списки  -­‐  не  искать  атаку  здесь

• Режим  «обучения»  по  трафику  клиентов  -­‐  добавляет  в  белые  списки

понедельник, 22 апреля 13 г.

Обзор  naxsi• Можно  внедрить  в  цикл  тестирования  веб-­‐проекта  с  целью  снизить  ложные  срабатывания  за  счет  «обучения»  на  заведомо  легитимном  трафике  

• Можно  купить  платные  правила  mod_security  и  портировать  их  под  naxsi  самостоятельно  -­‐  HACK!

понедельник, 22 апреля 13 г.

Обзор  naxsi• Рассчет  на  базовые  правила  и  отключения  их  по  принципу  -­‐  жалуется  -­‐  отключить  все  может  привести  к  пропуску  атак

• Обучение  на  основе  количества  срабатываний  -­‐  если  срабатываний  много,  значит  они  «ложные»

• Консалтинговые  услуги  не  оказываются,  придется  разбираться  самим

понедельник, 22 апреля 13 г.

Насколько  эффективны  WAF  против  хакеров?

• Конкурс  по  обходу  mod_security  проводился  в  2011  году:  h�p://blog.spiderlabs.com/2011/07/modsecurity-­‐sql-­‐injec/on-­‐challenge-­‐lessons-­‐learned.html

• Минимальное  время,  за  которое  WAF  сломали  эксперты  -­‐  10  часов,  среднее  -­‐  72  часа,  минимальное  кол-­‐во  запросов  -­‐  118

понедельник, 22 апреля 13 г.

Насколько эффективны WAF против хакеров?

• Вместе с хорошо настроенным WAF у вас есть 10 часов от момента срабатывания до момента исправления уязвимости

• Без WAF - 1-2 минуты

• С плохо настроенным - 5-10 минут

понедельник, 22 апреля 13 г.

Выводы• Серебрянной  пули  не  бывает• Поставьте,  настройте,  проверьте,  ПРОЧУВСТВУЙТЕ• Своевременное  детектирование  дает  время  на  устранение  уязвимости,  около  10  часов

понедельник, 22 апреля 13 г.

Общие  проблемы• Производительность  WAF  линейно  падает  с  ростом  числа  

правил  (сигнатур),  16000  !!!

• Много  лишних  правил  по-­‐умолчанию  или  много  трудозатрат  на  их  устранение

• Сигнатуры  не  выдерживают  обфускации  и  обходятся  в  конечном  счете

• Новые  атаки  обнаружатся  только  после  получения  новых  сигнатур

понедельник, 22 апреля 13 г.

Нам  нужна  ваша  помощь!• Для  прототипа  нового  решения  необходим  «живой»  трафик

• Если  вы  подключены  к  Qrator,  и  готовы  учавствовать  в  открытом  тестировании,  оставьте  заявку:  beta-­‐qr@ONsec.ru  или  @ONsec_Lab  twi

понедельник, 22 апреля 13 г.