Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Не волнуйтесь по поводу BREACH

Anna | 31.05.2014 | нет комментариев

Во время последней недели на конференции BlackHat общественности был представлен новейший тип атаки, направленный на SSL-защищенный контент. Данный тип атаки был назван BREACH (англ. “брешь” прим. перев.), и вызвал целую волну обсуждений в разных сообществах. Технические блоги были забросаны ссылками на сайты со статьями о том, что нет никакой вероятности это поправить, и как вы можете попытаться защититься от уязвимости. Многие уважаемые эксперты в ИБ писали об этом.

И я тут, что бы сказать вам, не волнуйтесь об этом.

Дисклеймер

Данный пост и мое суждение основано на моем личном изыскании атаки, из данных доступных в открытых источниках. Если кто-то может подтвердить неправоту моих итогов, я буду дюже рад изменить свою позицию и переписать данный пост.

С учетом вышесказанного, давайте продолжим.

Что такое BREACH

BREACH, по своей сути, это атака на защищенный HTTPS трафик, которая разрешает преступнику извлечь часть защищенной информации. В основном она, использует детали HTTP сжатия для распознавания строки, если она теснее присутствует на странице.

Это обозначает, что преступник может делать подбор, для поиска всякого содержимого которое возникает на странице. Одна из самых крупных задач, как мне кажется, может быть, задача с CSRF токенами. Где-нибудь на вашей странице у Вас может быть спрятанный элемент формы, скажем:

	<input type="hidden" name="csrf" value="1sfgafu23r23p9oig" />

Путем подбора разных значений, преступник может определить актуальное значение (больше тысячи запросов). Это потому что, сжатие будет видеть содержимое в 2-х местах на странице. Так отслеживая метаморфозы в размере результата, он может определить, какое значение было:

  • угадать: 1sfa если всеобщий размер содержимого: 950
  • угадать: 1sfb если всеобщий размер содержимого: 950
  • угадать: 1sfc если всеобщий размер содержимого: 950
  • угадать: 1sfg если всеобщий размер содержимого: 949

Настоящая атака будет больше трудной (и утонченной). Но это основная предпосылка. Это на самом деле дюже схоже на атаку по времени (“Timing attack” прим. перев.).

Есть 3 непременных данные, для удачного совершения атаки:

  1. Применение HTTP сжатия (GZIP/DEFLATE)
  2. Отражение пользовательских данных
  3. Кража секрета

Отражение пользовательских данных (такие как URL довод) обозначает, что данные обязаны выводиться (примечание: где желательно) на странице предсказуемым образом (они могут быть замаскированы).

Так что да, это значимо. Это громоздкая брешь. Это несет огромную угрозу для персональных данных (представьте себе провайдера, у которого есть вероятность проверить присутствие определенных слов, в содержимом которое вы просматриваете). Это повлияет в грядущем на проектирования систем. Но это не «Святой Грааль», каким делают его люди.

Давайте посмотрим отчего:

Доступно только тело контента

Обратите внимание, что, так как атака использует детали сжатия HTTP (GZIP либо DEFLATE), отправляемые на сервер заголовки отследить немыслимо. Это обозначает, что если в теле результата будут присутствовать куки(cookie), куки(cookies) (и всякий иной заголовочный контент) будут защищены от этого типа атаки.

Обратите внимание. Если вы не включаете идентификатор сессии в тело результата (что само по себе было бы опасно в любом случае), эта атака не может быть использована для атаки на сессию.

Давайте опять взглянем. Пока атакующий не имеет идентификатор сессии (через иную уязвимость), либо вы не нарушили лучшие практики и встроили идентификатор сессии в тело страницы, сама сессия не подверженаBREACH.

Cross-origin задача

Так как вы не можете получить идентификатор сессии, лучшая использование атаки которое вы сумеете реализовать это атака на браузер (“Browser-Based Attacks” прим. перев.) (скажем через встроенный IFRAME либо кое-что схожеьно отличаться (это нужно для случайной длины). Так вы можете добавить от 1 до 32 символов где желательно в контексте.

$randomData = mcrypt_create_iv(25, MCRYPT_DEV_URANDOM);
echo "<!--"
    . substr(
        base64_encode($randomData),
        0,
        ord($randomData[24]) % 32
    )
    . "-->";

Защитите сами себя

Все это будет трудиться, если у вас есть контроль над приложением (исход. код, управление сервером и т.д. прим. перев.). Но если у вас есть доступ только к вашему браузеру, вы можете защитить себя от атаки сами, легко применяя растяжение браузера: Change HTTP Request Header (Chrome).

В основном, я настраиваю механический профиль, тот, что на всех сайтах изменяет заголовок в запроса Accept-Encoding на Accept-Encoding: identity, тот, что отключает gzip и deflate для всех совместимых серверов. Это обозначает, что всякий трафик должен будет быть в безопасности от сходственного типа угроз…

Завершение

BREACH– это серьезная уязвимость. Но она не заслуживает того внимания которое ей уделяется в прессе либо блогах.
Если вы, следуете лучшим практикам, преступнику необходимо выйти (значительно) за рамки данной уязвимости, что бы быть в состоянии произвести эту атаку. Преступник должен обнаружить брешь между вами и сервером. Если Вы используете открытый Wi-Fi, сделать это банально. В отвратном случае, эту задачу не так легко исполнить. Как только преступнику удастся скомпрометировать линию связи, ему нужно будет скомпрометировать URL. Мы знаем, с вредными программами, что это не сложно. Это не банально легко, но достаточно близко к нему.

Как только преступник получит URL, он должен будет обнаружить на странице персональные данные. Сессии на основе секретов обязаны быть безвредными (если вы следуете лучшим практикам).

Да, это на самом деле задача. Но не стоит делать поспешных решений. И так волноваться об этом. Дозвольте мне прояснить одну вещь. XSS и SQLi (среди прочих) являются больше практичными методами атаки на ваши сайты. Сфокусируйтесь на решении этих задач. Хоть и нет однозначного решения для исправления BREACH, не волнуйтесь об этом…

Источник: programmingmaster.ru

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB