Потенциальные атаки на HTTPS и как от них защититься

16 Июня 2021

HTTPS – схема унифицированного идентификатора ресурсов, предназначенная для доступа к Интернет-ресурсам. Синтаксически она идентична HTTP, но с тем отличием, что передача осуществляется через SSL или TLS криптографические протоколы. Все их основные элементы зашифрованы, начиная от пути и названия ресурса и вплоть до параметров запроса, куков, заголовков, содержащих персональные данные пользователя. Открытыми при HTTPS остается только адрес или название хоста и порт, ведь эта информация необходима для установления соединения.

Сегодня такую схему использует уже более 60 % сайтов и их число постоянно увеличивается. Но, невзирая на высокую степень шифровки и защиту от перехвата трафика, атака на HTTPS все еще остается реальностью. Остановимся более подробно на том, какие потенциальные риски существуют при работе с данной схемой и как предотвратить их.

Разновидности существующих потенциальных атак на HTTPS: предупрежден, значит вооружен

https-1.pngНаибольшую востребованность HTTPS протокол получил в незащищенных сетях, в частности в публичных Wi-Fi точках доступа. Они обеспечивают высокую защиту локальных сетей от анализа трафика, перехвата или изменения информации сторонними лицами. Благодаря HTTPS обеспечивается сохранность личных данных пользователя, исключается доступ к учетным записям, предотвращается возможность запуска вредоносных программных кодов или ссылок на программное обеспечение в страницы и пр.

Максимально уровень защиты зависит от того, насколько корректно было введено серверное и браузерное программное обеспечение и то, какие криптографические алгоритмы поддерживаются. Наиболее уязвимое место – соединение. Именно здесь наиболее часто происходят утечки информации. Как пример, существует 4 достаточно открытых источника, из которых злоумышленник может узнать сервер обращения браузера:

  • сообщение с сертификатом TLS;
  • IP-адрес сервера;
  • расширение TLS Server Name Indication;
  • запрос к DNS.

От посторонних каналов предусмотрены свои методы защиты. Так, уже по умолчанию в самом протоколе TLS 1.3 серверный сертификат идет в зашифрованном виде. А вот Encrypted Server Name Indication (ESNI) способна предотвратить утечки SNI. Но и это не обеспечивает 100% защиты сайта, работающего на HTTPS от мошенничества. Все чаще интернет-общественность идентифицирует такие атаки на протокол SSL, TLS, как:

  1. Poodle
  2. Drown
  3. Beast
  4. Heartbleed
  5. Bicycle

Остановится на каждой из методик атак более подробно.

Poodle

Первая атака на HTTPS при помощи протокола Poodle произошла уже более 7 лет назад (в 2014 г). Проблему идентифицировал сотрудник компании Google, специалист по информационной безопасности Bodo Möller. Это была атака на SSL 3.0, показавшая уязвимость данной схемы.

Работает она по такой схеме:

  1. Злоумышленник имитирует разрыв связи.
  2. Повторное подключение пользователя происходит по протоколу SSL 3.0.
  3. В режиме сцепления блоков шифротекста злоумышленник ищет особые сообщения, называемые метками.
  4. Используя серии подставных запросов, он получает возможность изменять интересующие его данные, в том числе и куки.

Несмотря на то, что SSL 3.0 уже относится к устаревшим протоколам, его еще используют многие. По статистике, его применяют свыше 7000 самых популярных и востребованных сайтов из ТОП -100 000. То есть проблема обеспечения его безопасности все еще остается актуальной. Для пользователей такая схема – это один из наиболее простых способов исключить сложности с серверной совместимостью.

Параллельно со сменами протоколов, вплоть до TLS и TLS 1 менялась и схема Poodle. Буквально недавно мировая общественность узнала о новых вариантах атак Zombie POODLE и GOLDENDOODLE, способных обойти даже защиту современной TLS 2. И проблема здесь одна и та же – в блочном режиме шифрования.

Чтобы защититься от данной атаки, необходимо точно понимать, с каким видом предстоит иметь дело. Если это классический вариант Poodle, то достаточно будет просто отказаться от использования SSL 3. Но при этом высоким останется риск возникновения проблем с серверной совместимостью. Неплохое решение – механизм TLS_FALLBACK_SCSV. Он позволит и дальше использовать протокол SSL 3, но при этом работа будет построена только на надежных, неоднократно проверенных системах. То есть злоумышленники больше не смогут спровоцировать понижение версии протокола.

Чтобы предотвратить атаки на HTTPS, основанных на TLS 2 от передовых Zombie POODLE и GOLDENDOODLE необходимо отключиться от блочного режима шифрования или же перейти на последнюю версию TLS 3, где такая схема (блочного шифрования) уже не используется. Но такое решение многие уже относят к кардинальным.

Drown

https-2.pngРечь идет о кроссплатформенной атаке, которая в качестве точки доступа используется ошибки, допущенные на этапе реализации SSLv2, совместно с 40-битными ключами RSA. Хакер выбирает «цель». Он проверяет сотни подключений, идущих к ней по протоколу TLS, отправляя специальные пакеты на сервер, поддерживающий SSLv2 и применяющий идентичный приватный ключ. Злоумышленник использует адаптивную атаку по выбранному зашифрованному тексту, получившую название атака Блейхенбахера. С ее помощью он расшифровывает сессии клиента.

Процент доступа здесь очень мал: хакер получает доступ примерно к 1 TLS-сессии из 1000 совершенных, но все же, риск есть.

Об атаке Drown общественность узнала массово. В 2016 году она была совершена на более, чем 30% всех мировых серверов. Актуальна она и сегодня, хотя уже и не в таких масштабах. По статистике, Drown атакует около 3 000 сайтов из 150 000 наиболее популярных. Это те, кто поддерживает SSLv2 и другие уязвимые шифровальные механизмы.

Чтобы защитить себя от таких атак, следует понимать, что проблема здесь в использовании стороннего сервера, поддерживающего SSLv2 (как пример, почта). То есть, нет данного протокола, нет и проблемы. На практике для отключения SSLv2 разработчики криптографических библиотек предусмотрели специальные патчи. Самое популярное решение – заплатки для OpenSSL, версии которых регулярно обновляются. Также в Apache, Red Hat, Debian есть много подобных заплаток, позволяющих отключить уязвимый протокол вместе с подробной инструкцией о том, как это сделать правильно. Специалисты по информационной безопасности, которые впервые и диагностировали Drown, создали специальную утилиту, позволяющую проверить, пришло ли время обновлять свою систему.

Обратите внимание: если несколько серверов применяют общий сертификат SSL, то поддержка протокола SSLv2 должна отключаться на всех машинах. В противном случае SSL атака не будет предотвращена.

Beast

Впервые Beast-атака на протоколы SSL и TLS 1.0 была обнаружена в 2011 году. Эта система нашла уязвимое место в CBC (блочном режиме шифрования). Хакеры внедряют JavaScript-агент или Java-апплет в клиентскую машину, подменяющие сообщения при передаче данных по каналам SSL и TLS. Обладая информацией о содержании собственных тайных «агентов», злоумышленники используют их для достижения собственных целей:

  • расшифровки вектора инициализации;
  • прочтения обращений к серверу;
  • получения cookie-файлы для аутентификации и пр.

Наибольшую уязвимость к Beast-атакам на сегодня имеют такие сетевые инструменты, как прокси-серверы, приложения, призванные защитить локальные веб-шлюзы и пр.

Чтобы атака дала свои результаты, хакеру, преследующему цель расшифровки данных, приходится постоянно посылать запросы. Сократите время SSLSessionCacheTimeout до 30 секунд вместо 5 минут, установленных по умолчанию. Так вы, конечно, несколько снизите производительность сервера, но, наряду с этим, существенно усложните работу злоумышленникам. Но, согласно последним новостям ІТ-рынка, есть вероятность того, что уже в ближайшее время проблема Beast-атак исчезнет сама по себе. Большинство браузеров планируют оборвать поддержку SSL и TLS 1.0, хотя на сегодня этими схемами пользуется примерно 1,5% всех пользователей интернета. Так что есть высокая вероятность того, что не придется ничего дополнительно зашифровывать, устанавливать или удалять.

Heartbleed

it.jpgНа сегодня Heartbleed-атаки – наиболее частые. Впервые такая ошибка была обнаружена в 2014 году в библиотеках OpenSSL. И буквально в мгновение, до момента объявления данной ошибки, количество пораженных интернет-сайтов достигло 500 000. А это 17% от всех сетевых ресурсов.

Проводится такая атака через компактный Heartbeat-модуль с расширением TLS. Здесь уязвимое место в том, что схема TLS предполагает непрерывную передачу данных. Как только этот процесс остановится, соединение прервется и для продолжения работы потребуется выполнить повторное подсоединение. С целью предотвращения такой проблемы и клиенты, и сами серверы искусственно зашумляют канал. Они запускают пакет случайно длины. Если его размер превысит объем выделенного пакета, версии OpenSSL с повышенной уязвимостью будут читать память вне выделенных рамок. А вот что сюда может попасть, не известно. Это могут быть и закрытые ключи шифрования, и сведения о сторонних соединениях и другая, конфиденциальная информация к которой легко могут получить доступ хакеры.

Подобная уязвимость была установлена по всех версиях библиотеки, начиная от 1.0.1 и вплоть до 1.0.1f. Также ей подвержен ряд операционных систем: CentOS старше 6.5, Ubuntu до 12.04.4, OpenBSD 5.3 и пр. буквально сразу после первых атак были созданы закладки для их предотвращения. Но, несмотря на это, проблема Heartbeat-атак актуальная и сегодня.

Защищать свои ресурсы от такой проблемы можно путем обновления OpenSSL до более высокой версии, в частности до 1.0.1g и выше. Также можно установить опцию DOPENSSL_NO_HEARTBEATS, позволяющую вручную отключать запросы, поступающие от Heartbeat. Если выбираете обновление, не забудьте перевыпустить SSL-сертификаты. Это дополнительная мера предосторожности, которая обеспечит защиту в том случае, если ключи шифрования уже находятся в доступе злоумышленников.

Bicycle

Это одна из последних «новинок» в области хакерских атак на зашифрованный TLS/SSL-трафик, которая пока еще находится на этапе теории. Но многие эксперты сходятся во мнении, что ее более, чем реально реализовать на практике.

Данная схема инспектирует трафик, позволяя злоумышленникам получить необходимую им информацию о длину сведений, скрытых под защитным TLS-слоем из HTTPS-потока. Это может быть длина:

  • пароля, пересылаемого через POST запросы;
  • GPS-координаты пользователя;
  • cookie хедера;
  • адреса IPv4 и пр.

Уязвимыми к такой атаке будут все те, кто использует потоковое шифрование. Чтобы хакер смог извлечь специфические детали из HTTPS-потока, он уже изначально должен обладать информацией о длине определенных данных. И как только оба эти условия будут соблюдены, злоумышленник сможет легко перехватить необходимые ему пакеты аутентификации операций пользователя, выбранного как «жертва». То есть, зная имя пользователя, URL логина или другие данные, передающиеся на сервер, хакер, применяя несложные математические вычисления сможет узнать даже длину пароля юзера.

Основная проблема в том, что Bicycle-атаку невозможно обнаружить. И предотвратить это можно только отключением потокового шифрования. То есть одно из двух обязательных условий не будет соблюдаться. Также рекомендуется регулярно обновлять версии протокола до самых новых, добавить padding для всей важной информации, пересылаемой через HTTPS, что позволит скрыть реальную длину.

Подводим итоги

Работы над повышением уровня защиты TLS ведутся постоянно. И многие эксперты сходятся во мнении, что постепенно степень безопасности соединений будет повышаться все больше и больше. А это повышает уверенность в светлое будущее протокола HTTPS. Для развития технологии в скором будущем планируют применять машинное обучение, вводить клиентские сертификаты, использовать возможности нейронных сетей.

Но пока ведутся работы над всем этим, для защиты от хакерских атак необходимо использовать доступные инструменты. Разобраться в этом и применить на практике наиболее эффективную модель защиты помогут специалисты компании «Xelent». Получить дополнительную консультацию и помощь можно по телефону или через онлайн-сервис.

Популярные услуги
Получить консультацию специалиста
Персональный ассистент
Cloud.Xelent