API-клиенты не обнаруживают отозванные сертификаты SSL/TLS

image

Теги: язык программирования, SSL/TLS, исследование

API-клиенты, написанные на PHP, Python или Java, не могут правильно проверить сертификаты.

Некоторые языки программирования до сих пор не в состоянии проверить подлинность сертификатов SSL/TLS в небраузерных приложениях. Группа ученых из Техасского университета провела два исследования (в 2012 и 2016 годах), направленные на проверку обнаружения API-клиентами отозванных SSL/TLS сертификатов. Данные API написаны на языках PHP, Python или Java.

В 2012 году ученые провели научно-исследовательскую работу «Самый опасный код в мире: Проверка сертификатов SSL в небраузерном ПО» («The Most Dangerous Code in the World: Validating SSL Certificates in Non-Browser Software»). В ходе исследования эксперты продемонстрировали, как с помощью простой MITM-атаки на инфраструктуру API можно перехватить HTTPS-трафик. Поскольку сам трафик не отправляется непосредственно браузеру, а только его данные, пользователь приложения или web-сервиса не догадывается об уязвимости своей персональной информации к атакам.

После выхода отчета экспертов проблемы, касающиеся проверки сертификатов SSL/TLS, были исправлены в версиях языков PHP 5.6 и Python 3.4.3 и 2.7.9. Спустя четыре года эксперты ИБ-компании Sucuri создали на PHP, Python и Go серию тестовых скриптов, подключенных к уязвимым HTTPS-серверам. Оказывается, даже в новых версиях языков программирования есть проблемы с корректным определением статуса сертификата SSL/TLS и прерыванием соединения в случае, если оно небезопасно.

Ни одной из протестированных конфигураций (даже написанных с помощью новой версии языка программирования Go) не удалось обнаружить отозванные сертификаты. Ни языки PHP, Python, и Google Go, ни библиотека cURL не выполняют по умолчанию проверку статуса сертификата. Пользователь не сможет обнаружить факт компрометации или отзыва владельцем сертификата, сообщает сотрудник компании Sucuri Питер Канковски (Peter Kankowski). По словам эксперта, написать код проверки отзыва может только квалифицированный криптограф.

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

Telegram Подписывайтесь на канал "SecurityLab" в Telegram, чтобы первыми узнавать о новостях и эксклюзивных материалах по информационной безопасности.