[Информационная безопасность] Защита веб-сайта и API от хакерских атак с Nemesida WAF Free
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Тем, кто разрабатывает или поддерживает работу веб-сайтов и API, кто еще не использует WAF или использует, но устал от ложных срабатываний и сложных настроек, а также хочет красивые графики и все бесплатно, посвящается.
Недавно мы выпустили очередной релиз Nemesida WAF Free — бесплатный WAF для NGINX, обеспечивающую базовую защиту веб-приложения от атак класса OWASP на основе сигнатурного анализа. Nemesida WAF Free доступен для популярных дистрибутивов (Debian, Ubuntu, CentOS) и без проблем интегрируется к установленному из репозитория или же скомпилированному вручную экземпляру NGINX.
Проблемы сигнатурного анализа WAF
Две основные проблемы, которые возникают при использовании решений такого класса — пропуски атак и ложные срабатывания. Как правило, первое вытекает из второго — чтобы минимизировать количество ложных срабатываний производят «ослабление» сигнатур и создают правила исключения, таким образом увеличивая количество пропусков.
Проблема False Positive и False Negative для сигнатурного метода, на мой взгляд, частично решается за счет качества написания правил, верного определения области их применения и установки корректных значений показателя «веса».
К слову, если написать правило, которое будет блокировать запрос с вхождением select и or (оба слова используются в качестве операторов SQL) в попытках защитить веб-ресурс от эксплуатации SQL-инъекций, это приведет к появлению множества ложных срабатываний (например, обращения к selector.png будут блокироваться).
Такие примеры хорошо знакомы тем, кому приходится настраивать сигнатурные WAF. Для того, чтобы снизить количество ложных срабатываний и пропусков атак, в Nemesida WAF Free используются регулярные выражения и конструкции. Еще мы используем «вес» правил и зоны их применения, что снижает как количество ложных срабатываний, так и время обработки запроса. Актуальная версия сигнатур Nemesida WAF Free находится в общем доступе по ссылке: rlinfo.nemesida-security.com.
Другая проблема, которая возникает при анализе содержимого запроса — бинарные данные в теле запроса. Суть проблемы — бинарные данные анализируются сигнатурным методом, приводя к увеличению времени обработки запроса и ложным срабатываниями, или же от большого количества символов приводят просто к «поломке» PCRE.
Чтобы решить эту проблему, необходимо исключать бинарные данные из обработки. Для решения задачи мы исходим из специфики работы протокола HTTP:
- исключаем бинарное содержимое из тела запроса для multipart/form-data при наличии заголовков Content-Disposition: form-data; name="..."; filename="..."
- исключаем тело запроса из обработки для PUT-запросов через управляемый параметр nwaf_put_body_exclude.
Последний параметр будет полезен при использовании Nemesida WAF для защиты веб-приложений, предназначенных для обмена файлами (например, ownCloud). Владельцам файловых веб-ресурсов будет полезна еще одна опция — анализ содержимого файлов средствами ClamAV (опция nwaf_clamav). Все аномалии доступны в личном кабинете:
Обход WAF (WAF Bypass)
Для тестирования работы WAF мы решили поделиться скиптом: git.pentestit.ru/pentestit/waf-bypass
Скрипт содержит известные (и не очень) техники обхода WAF (waf bypass), поможет быстро оценить возможность пропуска атак и лучше разобраться в работе веб-приложений и техник обхода, которыми пользуются атакующие. Скрипт, написанный на Python3, позволяет выявить возможность обхода WAF для проведения атак класса LFI, RCE, SQLi и XSS, а также убедиться, насколько эффективно машинное обучение при выявлении этих атак — модуль машинного обучения для коммерческой версии Nemesida WAF распознал все 100% атак из набора, при этом сигнатурный метод пропустил примерно треть (некоторые техники перекрыть сигнатурами без увеличения ложных срабатываний невозможно).
Если вы разрабатываете или администрируете веб-приложения (особенно, публичные) — сайт, личный кабинет, API, что угодно, работающее по протоколу HTTP — попробуйте Nemesida WAF. Вся аномальная статистика будет доступна в локальном личном кабинете. Для наглядности мы настроили демонстрационный стенд с личным кабинетом: demo.lk.nemesida-security.com (u: demo@pentestit.ru / p: pentestit), где собрали распространенные атаки по типам, в том числе попытки загрузить вредоносное содержимое (на примере EICAR test file).
Ежедневно мы фиксируем сотни нецелевых атак (сканирования, попытки эксплуатации популярной уязвимости, подбор файлов с дампом и пр.), большинство из которых без использования WAF вы можете просто не заметить, поскольку по умолчанию в access/error журнал не выводится информация о содержимом тела запроса и его заголовках. После установки Nemesida WAF Free вы увидите, как часто веб-ресурс подвергается атакам, большая из которых, скорее всего, будут нецелевыми и выглядеть примерно так:
... '"--></style></scRipt><scRipt>some_string(0x054EAF)</scRipt> ...
... "><script >alert(String.fromCharCode(88,83,83))</script> ...
... '+eval(compile('for x in range(1):\n import time\n time.sleep(20)','a','single'))+'; _csrf-frontend= ...
... '">//<svg/onload=alert(0)//&EditProfileForm[email]= ...
... /wp-admin/admin-ajax.php?action=revslider_show_image&img=../wp-config.php ...
Инструкция по установке и настройке динамического модуля Nemesida WAF Free для NGINX доступна по ссылке: github.com/nemesida-waf/nemesida_waf_free. Подробная документация на русском языке и инструкция по установке вспомогательных компонентов (Nemesida WAF API, Личный кабинет Nemesida WAF) доступны на официальном сайте продукта. В большинстве случаев Nemesida WAF будет работать «из коробки» и без ложных срабатываний (не считая специфичных запросов от администраторов/модераторов ресурса, адреса которых рекомендуем переводить в LM или WL режим).
Zero Trust
Nemesida WAF Free — часть коммерческого проекта Nemesida WAF, поэтому мы не торопимся раскрывать его исходный код. Если вы (как и мы) по умолчанию не доверяете ПО с закрытым исходным кодом (хотя сразу вспоминается ситуация о критической уязвимости Heartbleed в открытом коде, которую не находили несколько лет), то можете заблокировать обращения к nemesida-security.com, чтобы мы даже не догадывались об использовании Nemesida WAF Free. Но в таком случае обновление сигнатурной базы придется выполнять вручную:
curl https://nemesida-security.com/nw/update/binupdate > /etc/nginx/nwaf/rules.bin && service nginx restart
По умолчанию загрузка обновлений происходит в автоматическом режиме сервисом nwaf_update.
Заголовок спойлера
SPL
Доменное имя example.com используется в качестве примера
Security through obscurity
Есть такая тенденция — публиковать разработку на поддоменах test.example.com, dev.example.com и т.д. для тестирования или демонстрации. Все мы знаем, какого качества код там публикуется, при этом он может работать сразу с «боевой» базой данных, открывая простой вектор атаки на ресурсы. Атакующий может узнать о временно размещенном dev-проекте, используя, например, поисковые системы, NSE-скрипт для nmap или theharvester:
theharvester -d example.com -l 500 -b google
А еще он может найти много интересного: случайно открытый приватный GIT-репозиторий, непропатченную CRM, которую изначально не планировалось публиковать в паблик и другое. Причем такой проблемой «страдают» не только веб-сайты, но и API, а подход «security by obscurity» — еще один миф защищенности.
В заключение немного об особенностях Nemesida WAF Free:
- бесплатный, быстрый и «легкий»
- установка и настройка за 10 минут;
- минимум ложных срабатываний;
- установка и обновление из репозитория;
- возможность подключения к уже установленному Nginx, начиная с версии 1.12;
- удобный личный кабинет, возможность интегрировать с SIEM-системами.
===========
Источник:
habr.com
===========
Похожие новости:
- [Информационная безопасность] Cookie-файлы и GDPR: какие ошибки совершают владельцы сайтов в погоне за соответствием?
- [Информационная безопасность] Трудности пентеста — 2020: как компании повысить пользу от пентеста, проблемы «этичных» хакеров и что делать начинающим
- [Голосовые интерфейсы, Информационная безопасность, Исследования и прогнозы в IT] Исследователи обнаружили 1000 фраз, которые приводят к запуску Alexa, Siri, Assistant и Cortana
- [GitHub, Информационная безопасность, Статистика в IT] Анализ 170 млн утекших паролей: интересные находки
- [Информационная безопасность] Разбираем атаки на Kerberos с помощью Rubeus. Часть 2
- [DIY или Сделай сам, Natural Language Processing, Будущее здесь, Голосовые интерфейсы, Информационная безопасность] Голосовой помощник для совершения операций на бирже
- [Информационная безопасность] С аккаунта МИД РФ в твиттере продают базу данных туристов
- [Информационная безопасность] Исключения хранения биометрических данных
- [Информационная безопасность] Mail.ru для бизнеса собирает онлайн-встречу по информационной безопасности
- [Информационная безопасность, Исследования и прогнозы в IT] Карантинные хроники: как рос DDoS
Теги для поиска: #_informatsionnaja_bezopasnost (Информационная безопасность), #_nemesida_waf_free, #_nginx_free_waf, #_web_application_firewall, #_informatsionnaja_bezopasnost (
Информационная безопасность
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 21-Ноя 17:44
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Тем, кто разрабатывает или поддерживает работу веб-сайтов и API, кто еще не использует WAF или использует, но устал от ложных срабатываний и сложных настроек, а также хочет красивые графики и все бесплатно, посвящается. Недавно мы выпустили очередной релиз Nemesida WAF Free — бесплатный WAF для NGINX, обеспечивающую базовую защиту веб-приложения от атак класса OWASP на основе сигнатурного анализа. Nemesida WAF Free доступен для популярных дистрибутивов (Debian, Ubuntu, CentOS) и без проблем интегрируется к установленному из репозитория или же скомпилированному вручную экземпляру NGINX. Проблемы сигнатурного анализа WAF Две основные проблемы, которые возникают при использовании решений такого класса — пропуски атак и ложные срабатывания. Как правило, первое вытекает из второго — чтобы минимизировать количество ложных срабатываний производят «ослабление» сигнатур и создают правила исключения, таким образом увеличивая количество пропусков. Проблема False Positive и False Negative для сигнатурного метода, на мой взгляд, частично решается за счет качества написания правил, верного определения области их применения и установки корректных значений показателя «веса». К слову, если написать правило, которое будет блокировать запрос с вхождением select и or (оба слова используются в качестве операторов SQL) в попытках защитить веб-ресурс от эксплуатации SQL-инъекций, это приведет к появлению множества ложных срабатываний (например, обращения к selector.png будут блокироваться). Такие примеры хорошо знакомы тем, кому приходится настраивать сигнатурные WAF. Для того, чтобы снизить количество ложных срабатываний и пропусков атак, в Nemesida WAF Free используются регулярные выражения и конструкции. Еще мы используем «вес» правил и зоны их применения, что снижает как количество ложных срабатываний, так и время обработки запроса. Актуальная версия сигнатур Nemesida WAF Free находится в общем доступе по ссылке: rlinfo.nemesida-security.com. Другая проблема, которая возникает при анализе содержимого запроса — бинарные данные в теле запроса. Суть проблемы — бинарные данные анализируются сигнатурным методом, приводя к увеличению времени обработки запроса и ложным срабатываниями, или же от большого количества символов приводят просто к «поломке» PCRE. Чтобы решить эту проблему, необходимо исключать бинарные данные из обработки. Для решения задачи мы исходим из специфики работы протокола HTTP:
Последний параметр будет полезен при использовании Nemesida WAF для защиты веб-приложений, предназначенных для обмена файлами (например, ownCloud). Владельцам файловых веб-ресурсов будет полезна еще одна опция — анализ содержимого файлов средствами ClamAV (опция nwaf_clamav). Все аномалии доступны в личном кабинете: Обход WAF (WAF Bypass) Для тестирования работы WAF мы решили поделиться скиптом: git.pentestit.ru/pentestit/waf-bypass Скрипт содержит известные (и не очень) техники обхода WAF (waf bypass), поможет быстро оценить возможность пропуска атак и лучше разобраться в работе веб-приложений и техник обхода, которыми пользуются атакующие. Скрипт, написанный на Python3, позволяет выявить возможность обхода WAF для проведения атак класса LFI, RCE, SQLi и XSS, а также убедиться, насколько эффективно машинное обучение при выявлении этих атак — модуль машинного обучения для коммерческой версии Nemesida WAF распознал все 100% атак из набора, при этом сигнатурный метод пропустил примерно треть (некоторые техники перекрыть сигнатурами без увеличения ложных срабатываний невозможно). Если вы разрабатываете или администрируете веб-приложения (особенно, публичные) — сайт, личный кабинет, API, что угодно, работающее по протоколу HTTP — попробуйте Nemesida WAF. Вся аномальная статистика будет доступна в локальном личном кабинете. Для наглядности мы настроили демонстрационный стенд с личным кабинетом: demo.lk.nemesida-security.com (u: demo@pentestit.ru / p: pentestit), где собрали распространенные атаки по типам, в том числе попытки загрузить вредоносное содержимое (на примере EICAR test file). Ежедневно мы фиксируем сотни нецелевых атак (сканирования, попытки эксплуатации популярной уязвимости, подбор файлов с дампом и пр.), большинство из которых без использования WAF вы можете просто не заметить, поскольку по умолчанию в access/error журнал не выводится информация о содержимом тела запроса и его заголовках. После установки Nemesida WAF Free вы увидите, как часто веб-ресурс подвергается атакам, большая из которых, скорее всего, будут нецелевыми и выглядеть примерно так: ... '"--></style></scRipt><scRipt>some_string(0x054EAF)</scRipt> ...
... "><script >alert(String.fromCharCode(88,83,83))</script> ... ... '+eval(compile('for x in range(1):\n import time\n time.sleep(20)','a','single'))+'; _csrf-frontend= ... ... '">//<svg/onload=alert(0)//&EditProfileForm[email]= ... ... /wp-admin/admin-ajax.php?action=revslider_show_image&img=../wp-config.php ... Инструкция по установке и настройке динамического модуля Nemesida WAF Free для NGINX доступна по ссылке: github.com/nemesida-waf/nemesida_waf_free. Подробная документация на русском языке и инструкция по установке вспомогательных компонентов (Nemesida WAF API, Личный кабинет Nemesida WAF) доступны на официальном сайте продукта. В большинстве случаев Nemesida WAF будет работать «из коробки» и без ложных срабатываний (не считая специфичных запросов от администраторов/модераторов ресурса, адреса которых рекомендуем переводить в LM или WL режим). Zero Trust Nemesida WAF Free — часть коммерческого проекта Nemesida WAF, поэтому мы не торопимся раскрывать его исходный код. Если вы (как и мы) по умолчанию не доверяете ПО с закрытым исходным кодом (хотя сразу вспоминается ситуация о критической уязвимости Heartbleed в открытом коде, которую не находили несколько лет), то можете заблокировать обращения к nemesida-security.com, чтобы мы даже не догадывались об использовании Nemesida WAF Free. Но в таком случае обновление сигнатурной базы придется выполнять вручную: curl https://nemesida-security.com/nw/update/binupdate > /etc/nginx/nwaf/rules.bin && service nginx restart
По умолчанию загрузка обновлений происходит в автоматическом режиме сервисом nwaf_update. Заголовок спойлераSPLДоменное имя example.com используется в качестве примера
Security through obscurity Есть такая тенденция — публиковать разработку на поддоменах test.example.com, dev.example.com и т.д. для тестирования или демонстрации. Все мы знаем, какого качества код там публикуется, при этом он может работать сразу с «боевой» базой данных, открывая простой вектор атаки на ресурсы. Атакующий может узнать о временно размещенном dev-проекте, используя, например, поисковые системы, NSE-скрипт для nmap или theharvester: theharvester -d example.com -l 500 -b google
А еще он может найти много интересного: случайно открытый приватный GIT-репозиторий, непропатченную CRM, которую изначально не планировалось публиковать в паблик и другое. Причем такой проблемой «страдают» не только веб-сайты, но и API, а подход «security by obscurity» — еще один миф защищенности. В заключение немного об особенностях Nemesida WAF Free:
=========== Источник: habr.com =========== Похожие новости:
Информационная безопасность ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 21-Ноя 17:44
Часовой пояс: UTC + 5