[Из песочницы] Безопасность SSL/TLS российского интернет-банкинга
На сегодняшний день множество людей и организаций пользуются услугами интернет-банкинга. Банки периодически проводят аудиты безопасности своих систем, выпускают инструкции и рекомендации по безопасной работе с интернет-банком, но при этом пользователи не всегда знают — хорошо ли защищено соединение с интернет-банком, которым они привыкли пользоваться.В этой статье мы оценим защищенность подключений к онлайн-сервисам ТОП-50 российских банков (по активам).
Безопасность подключения пользователей к интернет-банкам обеспечивается использованием протоколов SSL/TLS. На текущий момент известны «громкие» уязвимости SSL/TLS, которым даже были даны имена и/или логотипы (Beast, Poodle, Heartbleed, Freak, Logjam). Известные уязвимости SSL/TLS в том числе позволяют расшифровывать сессии, перехватывать и подменять данные, передаваемые между пользователем и сервером, что в силу очевидных причин упускается из внимания большинством пользователей.
Зачастую проблема заключается в использовании устаревших и слабых при текущем уровне вычислительных мощностей криптоалгоритмов, а где-то наличием неустраненных уязвимостей используемого ПО. Все это ставит под угрозу безопасность платежей, совершаемых пользователями в интернет-банках.
Уровень защищенности SSL/TLS российских банковДля оценки уровня защищенности конфигурации SSL/TLS на серверах можно использовать бесплатный инструмент «SSL Server Test» от Qualys SSL Labs. С помощью данного инструмента независимый исследователь Трой Хант сделал свод по соответствующему уровню защищенности австралийских банков.В комментариях к статье Троя можно увидеть ссылки на аналогичные таблицы для разных стран: Литва, Дания, Голландия, Голландия-2, Чехия, Великобритания.
Мной была подготовлена аналогичная таблица (от 22.05.15) для ТОП-50 банков РФ.В целом ситуация далека от идеала. Среди банков первой десятки четыре оценки «F» и по сравнению с другими странами это плохой показатель.
За исключением Logjam, с момента обнаружения указанных уязвимостей и проблем протоколов/криптоалгоритмов прошло довольно много времени, что как минимум свидетельствует об отсутствии со стороны многих банков периодического контроля защищенности своих веб-ресурсов, либо проведения соответствующих компенсирующих мероприятий.
Каждому веб-ресурсу присвоена оценка «SSL Server Test» со шкалой от A до F. Плюс и зеленый цвет означают отсутствие соответствующей уязвимости/проблемы. Минус и красный цвет свидетельствуют об обратном. Некоторые веб-ресурсы проверить не удалось по причинам, указанным в таблице.
Полная таблица (ТОП-50) доступна по ссылке: drive.google.com/file/d/0B6tNPM-Uwa5ZNWJkcFRuWjlkYk0/view
Основные выводы Некоторые банки по-прежнему используют небезопасные параметры обмена ключами Diffie-Hellman с длиной ключа 512 и 768 бит, что автоматически снизило их общую оценку до «F» (такой случай встречается и в первой десятке). Уязвимые ресурсы отмечены минусами в столбце «DH». Часть банков уязвима к FREAK-атакам, что снизило их общую оценку до «F». С помощью данной уязвимости злоумышленники могут форсировать использование клиентским браузером слабой криптографии из «экспортного» набора шифров RSA. Уязвимые к атаке ресурсы отмечены минусами в столбце «Freak». Немалая часть веб-ресурсов имеет уязвимость POODLE, что снизило их общую оценку до «F». С помощью данной уязвимости злоумышленники могут получить доступ к зашифрованной информации, передаваемой между клиентом и сервером. В основном, это уязвимости небезопасного протокола SSL3 и они могут быть устранены путем отключения протокола SSL3 на веб-серверах. В двух случаях уязвимым к POODLE протоколом является TLS и для устранения уязвимости требуется установка патча. Уязвимые к атаке ресурсы отмечены минусами в столбце «POODLE». Несколько банков по-прежнему используют небезопасный протокол SSL2, что снизило их общую оценку до «F». Протокол SSL2 использует небезопасную криптографическую хеш-функцию MD5 и слабые шифры. Возможны MITM-атаки из-за отсутствия SSL-подтверждения. Кроме того, SSL2 также использует флаг TCP FIN для закрытия сеанса, который можно подделать, из-за чего пользователь не будет знать, завершена ли передача данных. Ресурсы с поддержкой протокола SSL2 отмечены минусами в столбце «SSL2». Значительная часть веб-ресурсов имеет уязвимость Logjam, которая была обнаружена совсем недавно. Наличие уязвимости снизило общую оценку до «B». Как и уязвимость FREAK, Logjam позволяет злоумышленнику форсировать использование клиентским браузером слабой криптографии DH с 512-битными ключами. Уязвимые к атаке ресурсы отмечены минусами в столбце «Logjam». Значительная часть банков по-прежнему используют устаревший и небезопасный протокол SSL3, что снизило их общую оценку до «B». Ресурсы с поддержкой протокола SSL3 отмечены минусами в столбце «SSL3». Некоторые веб-ресурсы не поддерживают последнюю и наиболее безопасную версию протокола TLS 1.2, что снизило их общую оценку до «B». Ресурсы, не поддерживающие протокол TLS 1.2, отмечены минусами в столбце «TLS1.2». Большинство банков по-прежнему используют шифры RC4, что снизило их общую оценку до «B». Уязвимость RC4 связана с недостаточной случайностью потока битов, которым скремблируется сообщение, что позволяет расшифровать перехваченные данные. Ресурсы с поддержкой шифра RC4 отмечены минусами в столбце «RC4». Подавляющее большинство банков по-прежнему используют алгоритм хеширования SHA-1, который считается слабым и небезопасным. Уже сейчас веб-браузеры присваивают различные статусы соединениям с SHA-1 («безопасно, но с ошибкам», «небезопасно», «недоверенное»). Игнорируя происходящий в текущий момент отказ от SHA-1, банки приучают своих пользователей не обращать внимания на подобные статусы и сообщения браузера. Использование SHA-1 практически не влияло на общую оценку и отмечено минусами в столбце «SHA-1». В подавляющем числе банков не реализована или реализована частично настройка безопасности протоколов согласования ключа — Forward Secrecy. При использовании Forward Secrecy сессионные ключи не будут скомпрометированы при компрометации закрытого ключа. Ресурсы, не использующие Forward Secrecy для большинства современных браузеров, отмечены минусами в столбце «FS». Стоит отметить, что уязвимость Heartbleed к счастью не обнаружена ни на одном из протестированных веб-ресурсов. Приведенные оценки со временем теряют свою актуальность, что может потребовать их перепроверки с помощью «SSL Server Test». К примеру, за время написания статьи оценка веб-сервера «Телебанк» ВТБ24 изменилась с «F» на «A-», а на сайте интернет-банка Росбанк устранена уязвимость Poodle.Рекомендации В результатах проверок «SSL Server Test» приведены рекомендации по устранению выявленных проблем, которые можно обобщить в требования к настройке SSL/TLS на веб-серверах: Отключить поддержку небезопасных протоколов SSL2, SSL3. Включить поддержку наиболее совершенного протокола TLS 1.2. Отказаться от использования сертификатов SHA-1. Отказаться от использования шифра RC4. Настроить Forward Secrecy и убедиться, что функция работает для большинства современных браузеров. Устранить уязвимость Poodle путем отключения протокола SSL3, или путем установки патча при уязвимости протокола TLS. Устранить уязвимость Freak путем отключения поддержки экспорта наборов шифров. Устранить уязвимость Logjam путем отключения поддержки экспорта наборов шифров и генерации уникальной 2048-битной группы Diffie-Hellman. Пользователям же рекомендуется осторожно отключить в настройках браузера SSL 2.0 и SSL 3.0 и включить поддержку TLS 1.0, TLS 1.1 и TLS 1.2 (осторожно, потому что встречались банки, поддерживающие со стороны сервера только SSL 3.0). И, конечно же, при подключении пользователям стоит внимательнее смотреть на сертификат сервера и его статус в браузере.