Рубрики
Uncategorized

Как Mlytics исправил уязвимость обхода CloudFlare WAF (на нашем конце)

25 октября 2018 года, исследователь из ODS (без открытой данных) по имени Даниэль Фаринья выпустил сообщение в блоге … Теги с WebDev, Security, Devops.

25 октября 2018 года, исследователь из ODS (открытая безопасность данных) по имени Даниэль Фаринья Выпустил Блог пост Распределение своих выводов о уязвимости в случае Nginx на CloudFlare, что могло отключить WAF, оставляя компании уязвимыми для кибер-атак. Есть даже видео Предоставление очень подробного объяснения и демонстрации этого вопроса.

Это нахождение привлекло наше внимание, поскольку мы также используем Nginx для разработки нашего собственного WAF (см. Статью: Почему и как Mlytics построил свой собственный веб-прикладной брандмауэр ).

Что именно произошло?

Мы заметили, что Lua в Nginx имеет ограничение с точки зрения доступов на всю информацию по одному запросу, и ее можно суммировать как следует:

» … максимум 100 аргументов запроса проанализирован по умолчанию (включая те, которые с тем же именем), и что дополнительные аргументы запроса тихо отброшены для защиты от потенциального отказа от приступов сервисов ».

Это означает, что любой WAF, разработанный на вершине Nginx в этом сценарии, будет оставаться уязвимым, если один запрос использует это лазейкой, чтобы все не было обнаружено. Если параметры, содержащие угрозы, не поддерживаются в пределах объема, он будет совершенно непригодным для использования.

Так почему же мы должны что угодно?

В Mlytics мы предоставляем нашим пользователям свободы выбрать, какие платформы CDN использовать, сохраняя их защищенные через наш запатентованный WAF для защиты и унификации политики безопасности на платформах. Поскольку некоторые из наших пользователей позволили CloudFlare через Mlytics Multi CDN Таким образом, делая их уязвимым для этого вопроса.

Мы не долго ждали до CloudFlare, чтобы исправить дыру. Мы можем перехватить вредоносные запросы, которые обойдут уязвимость LUA-NGINX CloudFlare через патч на платформу Mlytics, чтобы сохранить наши пользователи.

Оно работает!

Мы сделали пару до и после испытаний, вот результаты:

Перед патч Тестовый сценарий: с одним параметром

» curl -i '127.0.0.1/?txtsearch=<%21-%23CMD' -H" Хост: demo.1testfire.net " ** http/1.1 403 Запрещено ** Сервер: nginx Дата: Чт, 13 дек 2018 07:08:05 GMT Тип содержимого: текст/HTML Переводное кодирование: Concaked Подключение: держать живой Cache-Control: No-Cache

Доступ Deniedyour Запрос на доступ к Demo.1Testfire.net был отклонен

Инцидент ID 31C75A46E100079D1449F5E4DB85D6DE

Ваш IP 127.0.0.1

Что случилось ? Сайт, который вы пытаетесь получить доступ, защищен от кибер-атак. Ваше недавнее действие или поведение было помечено как подозрительное. Дальнейший доступ к веб-серверу был отклонен.

Что я могу сделать ? Пожалуйста, повторите попытку через несколько минут. Или вы можете напрямую связаться с владельцем сайта в пределах указанного идентификатора событий и описание того, что вы делали до того, как вам отказано, доступ.

powered by mlytics.com
"

Тестовый сценарий: С A0-A9, 10 * 10, в общей сложности 100 параметров, а затем добавляют 101-й параметры в полезную нагрузку впрыска команды

» curl -i -i & <% 21-% 23cmd '-h" host: demo.1testestfire.net " ** http/1.1 200 OK ** Сервер: nginx Дата: Чт, 13 дек 2018 07:20:29 GMT Тип содержимого: текст/HTML; -8 Переводное кодирование: Concaked Подключение: держать живой Cache-Control: NO-кэш Прагма: нет кэш Истекает: -1 X-Aspnet-версия: 2.0.50727 Set-cookie:; путь =/; Httponly Set-cookie:; путь =/ X-Powered-by: asp.net ................... "

Как вы можете сказать перед нашим патчм, запрос в пределах 100 параметров может быть легко заблокирован CloudFlare WAF. Но как только ондет выше 100 и ударил его 101-го параметра, CloudFlare WAF стал неактивным и позволить ему пройти.

После патча Тестовый сценарий: с одним параметром

» curl -i '127.0.0.1/?txtsearch=<%21-%23CMD' -H" Хост: demo.1testfire.net " ** http/1.1 403 Запрещено ** Сервер: nginx Дата: Чт, 13 дек 2018 07:08:05 GMT Тип содержимого: текст/HTML Переводное кодирование: Concaked Подключение: держать живой Cache-Control: No-Cache

Доступ Deniedyour Запрос на доступ к Demo.1Testfire.net был отклонен

Инцидент ID 31C75A46E100079D1449F5E4DB85D6DE

Ваш IP 127.0.0.1

Что случилось ? Сайт, который вы пытаетесь получить доступ, защищен от кибер-атак. Ваше недавнее действие или поведение было помечено как подозрительное. Дальнейший доступ к веб-серверу был отклонен.

Что я могу сделать ? Пожалуйста, повторите попытку через несколько минут. Или вы можете напрямую связаться с владельцем сайта в пределах указанного идентификатора событий и описание того, что вы делали до того, как вам отказано, доступ.

powered by mlytics.com
"

Тестовый сценарий: С A0-A9, 10 * 10, в общей сложности 100 параметров, а затем добавляют 101-й параметры в полезную нагрузку впрыска команды

» Curl -i & <% 21-% 23cmd '-h" host: demo.1testfire.net " http/1.1 403 Запрещено Сервер: nginx Дата: Чт, 13 дек 2018 07:18:51 GMT Тип содержимого: текст/HTML Переводное кодирование: Concaked Подключение: держать живой Cache-Control: No-Cache

Доступ Deniedyour Запрос на доступ к Demo.1Testfire.net был отклонен

ID инцидента -

Ваш IP

Что случилось ? Сайт, который вы пытаетесь получить доступ, защищен от кибер-атак. Ваше недавнее действие или поведение было помечено как подозрительное. Дальнейший доступ к веб-серверу был отклонен.

Что я могу сделать ? Пожалуйста, повторите попытку через несколько минут. Или вы можете напрямую связаться с владельцем сайта в пределах указанного идентификатора событий и описание того, что вы делали до того, как вам отказано, доступ.

powered by mlytics.com
"

С патчем Mlytics на платформу тот же запрос был отклонен нашей платформой, несмотря на то, что ничто не изменилось на конце CloudFlare.

Оригинал: «https://dev.to/edowadohu/how-mlytics-patched-cloudflare-waf-bypass-vulnerability-on-our-end-4g0»