
Нет сомнений в том, что основные преимущества SSL/TLS – это конфиденциальность и целостность. Тем не менее, это создает задачи для решения, такие как пробелы в видимости сети и дополнительные расходы на управление. Кроме того, вредоносные угрозы развиваются и принимают вид зашифрованного трафика, чтобы скрыть свои следы. В этой статье мы рассмотрим, как Flowmon может помочь в решении некоторых из этих проблем.
В январе 2016 года Майкл С. Роджерс, директор National Security Agency, сказал: «Шифрование является основой будущего». И при постоянно растущем количестве зашифрованного Интернет-трафика можно предположить, что будущее, наконец, наступило. Это заняло чуть меньше 3 лет. Вы можете узнать больше о росте зашифрованного трафика в нашей предыдущей публикации: Может ли flow-мониторинг работать c зашифрованным трафиком?
Мы добавили поддержку безопасности транспортного уровня (TLS) в решение Flowmon, чтобы помочь вам со случаями использования зашифрованного трафика, которые можно разделить на две категории. Первая категория - это криптографическая оценка или стойкость. Мы исследуем версии протоколов SSL/TLS, кибер-пакеты (алгоритмы шифрования, длину ключей), а также сертификаты. Вторая категория - это мониторинг и безопасность. Здесь мы можем использовать идентификатор JA3 для выявления подозрительных участников, использовать согласование протокола уровня приложений (ALPN) для идентификации протоколов в зашифрованном соединении, исследовать индикацию имени сервера (SNI) и многое другое.
Давайте рассмотрим несколько случаев, связанных безопасностью транспортного уровня TLS.
Криптографическая стойкость
Криптографическая оценка или стойкость - это процесс, когда мы проверяем наш стек шифрования на наличие устаревших протоколов, которые все еще используются, ключей неразумной длины и сертификатов с истекшим сроком действия.
Кейс 1: Версии протокола TLS
В настоящее время существует несколько версий TLS:
Версия 1.0 TLS была выпущена еще в 1999 году (как последователь SSL). Этот почти двадцатилетний протокол уязвим для различных атак (таких как POODLE), он использует слабую криптографию и более не соответствует стандарту безопасности данных индустрии платежных карт (см. Flowmon для соответствия PCI-DSS).
TLS 1.1, или же Windows 8 TLS, - эта версия редко используемая, и была заменена более новой версией. Нет смысла использовать TLS 1.1, когда вы можете использовать TLS 1.2.
Apple, Google, Microsoft и Mozilla планируют отказаться от обеих устаревших версий в 2020 году. GitHub уже отключил поддержку обеих версий в феврале. 1 апреля DigiCert отключил TLS 1.0 и 1.1 для всех своих сервисов. Cloudflare прекратил поддержку обеих версий в июне.
Рис.: Поддержка протоколов (Источник: Qualys SSL Labs - SSL Pulse, Ноябрь 2018, CC BY 3.0 US)
Версия TLS 1.2 была выпущена в 2008 году и является наиболее используемой на сегодняшний день. Предстоящее обновление до TLS 1.3 повышает безопасность за счет удаления устаревших и уязвимых алгоритмов (RC4, SHA-1), а также повышает скорость за счет более быстрого начального подтверждения установления связи и функции возобновления 0-RTT Resumption.
Какие версии TLS существуют в дикой природе? SSL Pulse предоставляет отличную информационную панель, которая обновляется каждый месяц и содержит статистику о версиях SSL / TLS, длинах ключей, кибер-люксах и уязвимостях. Вы можете проверить версию своего браузера в SSL / TLS с помощью сервиса How's My SSL?.
С Flowmon легко проверить использование устаревших версий TLS в вашей сети. Посмотрите на этот скриншот из Flowmon Monitoring Center:
Похоже, что по-прежнему используется много трафика с использованием TLS 1.0. Мы можем копнуть глубже и выяснить, какие локальные сервисы / приложения необходимо обновить:
Кейс 2: Длина алгоритма шифрования с открытым ключом
Слабые короткие ключи и устаревшие алгоритмы представляют серьезную угрозу безопасности. Недостаточная длина ключа позволяет злоумышленнику выполнить дешифрование методом перебора. Устаревшие алгоритмы уязвимы, так что злоумышленники могут использовать это для взлома (вспомним Heartbleed). Мы всегда должны проверять длину ключа и алгоритм как единое целое, потому что разные алгоритмы требуют разной длины ключа, например, алгоритмы криптографии с эллиптической кривой (ECC) имеют более короткие ключи, но имеют эквивалентную прочность ключа как RSA (RFC 4492):
Давайте исследуем алгоритмы и длину общедоступного ключа в нашей сети с помощью Flowmon:
Значения в столбце TLS PUBLIC KEY ALGORITHM взяты напрямую из RFC 3279. Значение rsaEncryption обозначает открытые ключи RSA, а id-ecPublicKey представляет два алгоритма эллиптической кривой: ECDSA (алгоритм цифровой подписи эллиптической кривой) и ECDH (эллиптическая кривая Диффи-Хеллмана).
Как мы видим, большая часть зашифрованного трафика использует RSA с длиной 2048 бит, за которым следует ECC с длиной 256 бит (что является грубым эквивалентом 2048-битного RSA), а затем RSA с 4096-битными ключами. Это хорошая новость, поскольку для RSA (Qualys Grading) рекомендуется использовать 2048-битные ключи. Тем не менее, все еще остается небольшой объем трафика только с 1024-битными ключами RSA. Мы можем использовать фильтры, чтобы сосредоточиться только на этом трафике:
Вот фрагмент выходных данных:
Мы могли бы найти использование коротких ключей TLS в нашей сети, и мы можем принять меры, чтобы установить его правильно.
Flowmon позволяет вам устанавливать оповещение каждый раз, когда в вашей сети обнаруживается слабый ключ:
… а также присылать уведомления на электронную почту:
Кейс 3: Проверка сертификата
Хотя проверка сертификатов с истекшим сроком действия является очевидным шагом, мы также можем проверить сертификаты, срок действия которых истекает, чтобы подготовиться заранее. Кроме того, мониторинг сертификатов и их использование в средах разработки, тестирования и производства - это способ защиты от утечек закрытых ключей и другой конфиденциальной информации и их выявления.
Пример просроченного сертификата (обратите внимание на значение в последнем столбце):
Мы можем настроить поиск сертификатов, которые истекают в ближайшее время до конца года, используя фильтр:
Это отличный инструмент для проверки ваших собственных услуг. Например, похоже, что срок действия сертификата для нашей публичной демонстрации истекает в конце декабря, поэтому мы должны убедиться, что заранее это решим:
БЕЗОПАСНОСТЬ И МОНИТОРИНГ
Вредоносные угрозы усиливают принятие SSL/TLS. Deepen Desai, старший директор Zscaler, сообщил, что число попыток фишинга, осуществляемых с использованием SSL/TLS, увеличилось на 400 процентов с 2016 года. По данным Gartner, к 2019 году более 50% новых вредоносных кампаний будут использовать различные формы шифрования и маскировки кода для того, чтобы скрыть постоянную коммуникацию, в том числе экранирование данных. К 2020 году зашифрованный трафик будет содержать более 70% вредоносных программ в Интернете. В последнем Ежегодном Отчете Cisco о кибербезопасности говорится, что количество сетевых подключений, зашифрованных вредоносным ПО, увеличилось более чем в 3 раза по сравнению с тем, что было год назад. Таким образом, ясно, что нам нужен инструмент, устойчивый к шифрованию, который поможет нам бороться со злодеями.
Кейс 4: Идентификатор JA3
Один из самых простых способов обнаружить вредоносные угрозы или, по крайней мере, обеспечить показатель компрометации (IoC) - это идентификатор JA3, названная в честь трех ее авторов с одинаковыми инициалами «J.A.». Этот экспериментальный метод объединяет пять параметров коммуникации TLS: версию, шифры, расширения, эллиптические кривые и их форматы и создает хеш MD5. По количеству параметров его еще называют «отпечатком пальца JA3». Интересно, что этого достаточно для выявления различных клиентов. Например, «e7d705a3286e19ea42f587b344ee6865» - это идентификатор JA3 для стандартного клиента TOR. Причиной этого метода является идея, что инструменты сложнее изменить, чем IP-адреса или доменные имена. Этот метод в значительной степени используется в области подписей и, как таковой, в значительной степени зависит от доступных черных и белых списков. Тем не менее, вы можете использовать его, чтобы найти выбросы и другие странности в вашей сети.
Кейс 5. Идентификация протокола с ALPN
Согласование протокола прикладного уровня (Application-Layer Protocol Negotiation - ALPN) является расширением TLS. С его помощью мы можем идентифицировать протоколы уровня L7 внутри зашифрованного трафика. Поддерживаются протоколы нескольких версий HTTP, SPDY, NAT, WebRTC, FTP, IMAP, CoAP и другие экспериментальные протоколы.
Кейс 6. Индикация имени сервера (SNI)
Аналогично с ALPN, SNI является расширением TLS. Он позволяет серверам с поддержкой TLS размещать несколько служб на одном и том же IP-адресе. Клиенты добавляют это расширение с именем хоста сайта, к которому они хотят подключиться.
Похоже, один из наших сотрудников нарушал политику компании, посещая веб-сайты с файлообменниками:
Заключение
Компании рискуют получить серьезные последствия, игнорируя зашифрованный трафик. Вредоносные кампании все чаще используют скрытые возможности шифрования. Flowmon позволяет проводить регулярную криптографическую оценку для проверки соответствия последним стандартам безопасности. Проверяйте действительность сертификатов, выявляйте подозрительных клиентов и многое другое, и все это без необходимости нарушать конфиденциальность пользователей с помощью Flowmon 10. Настройте оповещения, чтобы узнавать, когда параметры TLS нарушают вашу внутреннюю политику.
А как вы будете получать преимущество от новых возможностей TLS?
Хотите узнать больше? Вы можете попробовать онлайн-ДЕМО Flowmon или загрузить бесплатную пробную версию.
Автор: Роман Лукш
Роман работает Менеджером по продуктам в Flowmon Networks. Он увлечен созданием ценности для наших клиентов и предоставлением рекомендаций нашим пользователям. Он сотрудничает как с Отделом маркетинга, так и с R&D, имея целью продвижение и развитие бизнеса.