«Анти-HTTPS». Разработчик представил инструмент для отключения проверки TLS-сертификатов

«Анти-HTTPS». Разработчик представил инструмент для отключения проверки TLS-сертификатов

Появилась универсальная библиотека для отладки.

image

Исследователь из Limes Security под псевдонимом f0rw4rd представил новый инструмент для разработчиков и специалистов по тестированию — tls-preloader. Это универсальная библиотека, которая позволяет полностью отключать проверку TLS-сертификатов, упрощая отладку и анализ работы приложений с зашифрованными соединениями.

Решение распространяется как LD_PRELOAD-библиотека, перехватывающая функции популярных TLS-библиотек. Оно работает с OpenSSL (включая версии 1.0.x, 1.1.x и 3.x), BoringSSL, LibreSSL, GnuTLS, NSS, mbedTLS, wolfSSL, а также может обходить встроенные проверки в libcurl.

Авторы отмечают, что библиотека кроссплатформенная и поддерживает Linux, FreeBSD, OpenBSD, NetBSD, Solaris, AIX и macOS. При сборке автоматически учитываются особенности целевой платформы и применяются оптимизации для потокобезопасности — от pthread-мьютексов до атомарных операций.

Использование tls-preloader максимально простое: достаточно скомпилировать библиотеку и подгрузить её через LD_PRELOAD. После этого можно запускать любую программу — от curl и wget до Python-скриптов или Firefox — с отключённой проверкой сертификатов. Для удобства предусмотрен режим отладки и возможность вывода стек-трейсов при вызове перехваченных функций.

В OpenSSL и его производных библиотека перехватывает функции SSL_CTX_set_verify(), X509_verify_cert() и связанные с ними проверки хоста и срока действия сертификата. В GnuTLS обходятся механизмы gnutls_certificate_verify_peers, а в NSS — хуки SSL_BadCertHook() и CERT_VerifyCert(). Аналогичные приёмы применены и к другим TLS-реализациям.

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

В числе ограничений проекта — невозможность работы со статически собранными бинарниками и отсутствие поддержки браузеров Chrome и Chromium, где BoringSSL встроен напрямую. Кроме того, приложения с жёсткой проверкой сертификатов (certificate pinning) могут продолжить блокировать соединения.

Проект распространяется с открытым исходным кодом и доступен на GitHub .