This free online service performs
a deep analysis of the configuration of any SSL web server on the public Internet.
Please note that the information you submit here is used only to provide you
the service. We don’t use the domain names or the test results, and we never will.
SSL Report v2.2.0
Время на прочтение
Привет! В последнее время было обнаружено довольно много уязвимостей, связанных с SSL, поэтому мне захотелось сделать перевод статьи, в которой собран список инструментов для тестирования SSL, TLS и различных уязвимостей. В статье довольно много терминов, поэтому хочу извиниться, если что-то перевела не совсем корректно. Если вы можете предложить лучший вариант перевода, пожалуйста, напишите в личные сообщения.
Вы часто вынуждены решать проблемы, связанные с SSL / TLS, если работаете веб-инженером, веб-мастером или системным администратором.
Существует множество онлайн-инструментов для работы с SSL-сертификатами, тестирования слабых мест в протоколах SSL/TLS, но когда дело доходит до тестирования внутренней сети на основе URL, VIP, IP, тогда они вряд ли будут полезны.
Для диагностики ресурсов внутренней сети, вам необходимо отдельное программное обеспечение/инструменты, которые вы можете установить в своей сети и провести необходимую проверку.
Возможны различные сценарии, например:
Следующие инструменты будут полезны в устранении подобных проблем.
Слой API любого приложения – один из важнейших программных компонентов системы. Это канал, который соединяет клиента с сервером (или один микросервис с другим), управляет бизнес-процессами и представляет сервисы, которые приносят пользу пользователям.
Общедоступный API, ориентированный на клиента, который делают открытым для конечных пользователей, сам по себе становится продуктом. Если он сломается, это подвергнет риску не только одно приложение, но и целую цепочку бизнес-процессов, построенных вокруг него.
Знаменитая пирамида тестов Майка Кона помещает тесты API на сервисный уровень (интеграционный), что предполагает, что около 20% или более всех наших тестов должны быть сосредоточены на уровне API (точный процент зависит от наших потребностей).
Когда у нас уже есть прочный фундамент из модульных тестов, охватывающих отдельные функции, тесты API обеспечивают более высокую надежность. Они проверяют интерфейс, более близкий к пользователю, но не имеют недостатков тестов пользовательского интерфейса.
API как соглашение – сначала проверьте спецификацию!
API – это, по сути, соглашение между клиентом и сервером или между двумя приложениями. Перед тем, как начать любое тестирование функциональности, важно убедиться в правильности соглашения. Это можно сделать сначала проверив спецификацию (или само соглашение службы, например, интерфейс Swagger или ссылку OpenAPI) и убедившись, что:
Приведенные выше рекомендации применимы к любому API, но для простоты в этом посте мы предполагаем наиболее широко используемую архитектуру веб-API – REST через HTTP. Если ваш API спроектирован именно как RESTful API, важно убедиться, что контракт REST действителен, включая всю семантику, соглашения и принципы HTTP REST. (описание тут, тут, и здесь).
Если у вас общедоступный API, ориентированный на клиента, такое тестирование может быть вашим последним шансом убедиться, что все требования соглашения выполнены. После публикации и использования API любые внесенные вами изменения могут внести ошибки в код клиента.(Конечно, когда-нибудь вы сможете опубликовать новую версию API (например, /api/v2 /), но даже в этом случае обратная совместимость скорее всего будет обязательной).
COMODO SSL Analyzer
SSL анализатор от COMODO позволяет провести анализ https URL и быстро получить отчеты по различным параметрам, включая
Итак, какие аспекты API мы должны протестировать?
После того как мы проверили соглашение API, мы можем поразмышлять о том, что тестировать. Независимо от того, думаете ли вы об автоматизации тестирования или ручном тестировании, наши функциональные тест-кейсы имеют одинаковый набор тестовых действий. Они являются частью более широких категорий тестовых сценариев и их можно разделить на три потока тестирования.
Wormly Web Server Tester
Тестирование web сервера от Wormly позволяет получить подробный обзор параметров ссылки. Обзор включает в себя данные о сертификате (CN, срок действия, цепочка сертификата), шифровании, длине открытого ключа, безопасности повторного согласования, протоколах типа SSLv3/v2, TLSv1/1.2.
Этапы тестирования API
Каждый тест состоит из тестовых шагов. Это отдельные атомарные действия, которые тест должен выполнять в каждом потоке тестирования API. Для каждого запроса API тест должен будет выполнить следующие действия:
HowsMySSL
Этот инструмент отличается от остальных. Он позволяет проверить клиента (браузер) и получить оценку состояния по следующим параметрам:
Для проверки клиента, просто зайдите на HowsMySSL в браузере.
GlobalSign SSL Check
Проверка конфигурации SSL от GlobalSign предоставляет очень подробную информацию о веб-сервере и SSL. Инструмент ставит баллы в зависимости от данных сертификата, поддержки протоколов, обмена ключами и надёжности шифра. Это незаменимый инструмент при настройке нового безопасного URL или проведении аудита. Обязательно попробуйте!
Категории тестовых сценариев
Наши тест-кейсы делятся на следующие общие группы тестовых сценариев:
Тестирование успешного сценария по умолчанию проверяет базовую функциональность и критерии приемки API. Позже мы расширим положительные тесты, чтобы включить дополнительные параметры и дополнительные функции.
Следующая группа тестов – это негативное тестирование, при котором мы ожидаем, что приложение будет корректно обрабатывать проблемные сценарии как с валидным вводом пользователя (например, попытка добавить существующее имя пользователя), так и с недопустимым вводом пользователя (попытка добавить имя пользователя, которое имеет значение null).
Деструктивное тестирование – это более глубокая форма негативного тестирования, когда мы намеренно пытаемся сломать API, чтобы проверить его надежность (например, отправляя заведомо большое тело запроса в попытке переполнить систему).
Symantec SSL Toolbox
Проверка CSR — очень важно проверить CSR перед отправкой для подписи запроса. Вы сможете удостовериться в том, что CSR содержит все требуемые параметры, например, CN, DN, O, OU, алгоритм и др.
Проверка установки сертификата — после установки всегда полезно удостовериться в том, что сертификат действителен и содержит необходимую информацию. Этот онлайн инструмент позволит вам проверить CN, SAN, название организации, OU, город, серийный номер, тип применяемого алгоритма, длину ключа и подробности о цепочке сертификата.
SSL Checker
Что действительно хорошо в SSL Checker, так это то, что инструмент позволяет настроить напоминание (за 30 дней) об истечении срока действия сертификата. Это отлично, мне кажется, что бесплатно эту услугу больше нигде получить нельзя. Кроме того, инструмент позволяет выполнить базовую проверку таких параметров, как:
Пример API и тестовая матрица
Теперь мы можем отобразить все в виде матрицы и использовать ее для написания подробного плана тестирования (для автоматизации тестирования или ручных тестов).
Основные позитивные тесты (позитивный путь по умолчанию)
Позитивные тесты + необязательные параметры проверок
Негативное тестирование – валидный ввод данных
Негативное тестирование – неверные входные данные
Тест-кейсы, полученные из приведенной выше таблицы, должны охватывать различные потоки тестирования в соответствии с нашими потребностями, ресурсами и приоритетами (перевод таблицы в формате xls).
Выходим за рамки функционального тестирования
Следуя приведенной выше тестовой матрице, вы должны сгенерировать достаточно тест-кейсов, чтобы было что тестировать некоторое время и обеспечить хорошее функциональное покрытие API. Прохождение всех функциональных тестов подразумевает хороший уровень зрелости API (про зрелость тут. прим. переводчика), но этого недостаточно для обеспечения высокого качества и надежности API.
Уровни зрелости API
В следующем разделе этой статьи мы рассмотрим следующие нефункциональные подходы к тестированию, которые необходимы для проверки качества API.
Безопасность и авторизация
Стратегия тестирования – это высокоуровневое описание требований к тестированию, из которого впоследствии может быть составлен подробный план тестирования с указанием отдельных тестовых сценариев и тестовых случаев. Наша первая задача – это функциональное тестирование, чтобы убедиться, что API работает правильно.
Основными задачами функционального тестирования API являются:
Инструменты с открытым кодом для устранения проблем с SSL/TLS
DeepViolet — это написанный на языке Java инструмент анализа SSL/TLS, доступный в бинарном коде, вы также можете скомпилировать его из исходного кода.
Если вы ищете альтернативу SSL Labs для использования во внутренней сети, то DeepViolet будет хорошим выбором. Он сканирует следующее:
SSL Diagnos
Быстро оценивает надежность SSL на вашем веб-сайте. S SL Diagnos анализирует протокол SSL, алгоритмы шифрования, уязвимости Heartbleed, BEAST.
Используется не только для HTTPS, можно проверить стабильность SSL для SMTP, SIP, POP3 и FTPS.
SSLyze
SSLyze — это библиотека Python и инструменты командной строки, которые подключаются к конечной точке SSL и осуществляют сканирование для обнаружения любой пропущенной конфигурации SSL/TLS.
Сканирование через SSLyze – это быстро, потому что осуществление проверки распределяется между несколькими процессами. Если вы разработчик или хотите интегрировать в ваше существующее приложение, то у вас есть возможность записать результат в формате XML или JSON.
SSLyze также доступен в Kali Linux.
OpenSSL
Не стоит недооценивать OpenSSL — один из самых мощных автономных инструментов, доступных для Windows или Linux для выполнения различных задач, относящихся к SSL, таких как верификация, генерация CSR, конвертация формата сертификатов и др.
SSL Labs Scan
Любите Qualys SSL Labs? Вы не одиноки – мне тоже нравится.
Если вы ищете инструмент командной строки для SSL Labs для автоматического или массового тестирования, то SSL Labs Scan будет, несомненно, полезен.
SSL Scan
SSL Scan совместим с Windows, Linux и Mac. S SL Scan помогает быстро определить следующие показатели:
Если вы работаете над проблемами, связанными с шифрованием, то SSL Scan станет полезным инструментом для ускорения поиска и устранения неполадок.
Test SSL
Как видно из названия, TestSSL — это инструмент командной строки, совместимый с Linux и других ОS. Он проверяет все важнейшие показатели и показывает, что в порядке, а что нет.
Testing protocols via sockets except SPDY+HTTP2
SSLv2 not offered (OK)
SSLv3 not offered (OK)
TLS 1 offered
TLS 1.1 offered
TLS 1.2 offered (OK)
SPDY/NPN h2, spdy/3.1, http/1.1 (advertised)
HTTP2/ALPN h2, spdy/3.1, http/1.1 (offered)
Testing ~standard cipher categories
Testing server preferences
Has server cipher order? yes (OK)
Negotiated protocol TLSv1.2
Negotiated cipher ECDHE-ECDSA-CHACHA20-POLY1305-OLD, 256 bit ECDH (P-256)
Cipher order
TLSv1: ECDHE-RSA-AES128-SHA AES128-SHA ECDHE-RSA-AES256-SHA AES256-SHA DES-CBC3-SHA
TLSv1.1: ECDHE-RSA-AES128-SHA AES128-SHA ECDHE-RSA-AES256-SHA AES256-SHA
TLSv1.2: ECDHE-ECDSA-CHACHA20-POLY1305-OLD ECDHE-ECDSA-CHACHA20-POLY1305 ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES128-SHA ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES256-SHA384 ECDHE-RSA-CHACHA20-POLY1305-OLD
ECDHE-RSA-CHACHA20-POLY1305 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA
ECDHE-RSA-AES128-SHA256 AES128-GCM-SHA256 AES128-SHA AES128-SHA256
ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA ECDHE-RSA-AES256-SHA384 AES256-GCM-SHA384
AES256-SHA AES256-SHA256
Как можно видеть, он охватывает большое количество уязвимостей, шифровальных предпочтений, протоколов и др.
TestSSL.sh также доступен в Docker-образе.
TLS Scan
Вы можете собрать TLS-Scan из исходного кода или загрузить бинарный код для Linux/OSX. Он извлекает информацию из сертификата с сервера и выводит следующие показатели в формате JSON:
Он поддерживает протоколы TLS, SMTP, STARTTLS и MySQL. Вы также можете интегрировать результаты в анализатор логов, например, такие как Splunk, ELK.
Cipher Scan
Быстрый инструмент для анализа того, какие типы шифрования поддерживаются на веб-сайтах с использованием протокола HTTPS. Cipher Scan также дает возможность отображать результаты в формате JSON. Это оболочка, использующая команды пакета OpenSSL.
SSL Audit
SSL Audit — это инструмент с открытым исходным кодом для проверки сертификата и поддержки протоколов, шифрования и стандартов на основе SSL Labs.
Я надеюсь, что упомянутые инструменты с открытым исходным кодом помогут вам интегрировать непрерывное сканирование в ваши действующие анализаторы логов и облегчат устранение неполадок.
Заглядывайте на VPS.today — сайт для поиска виртуальных серверов. 1500 тарифов от 130 хостеров, удобный интерфейс и большое число критериев для поиска самого лучшего виртуального сервера.
Другие инструменты онлайн-проверки
Проверка уязвимости POODLE:
Проверка уязвимости FREAK:
Проверка уязвимости LogJam:
Проверка уязвимости SHA-1:
P. S. Приглашаем в наше Хостинг Кафе. Работают и активно развиваются 6 сайтов для поиска хостинговых услуг:
Free SSL Server Test
Проверка SSL от SSL Shopper — подойдет для быстрой проверки типа сервера, срока действия, SAN и цепочки доверия. Вы сможете оперативно найти ошибку в цепочке сертификата или узнать, что он не работает должным образом. Инструмент отлично подходит для устранения неполадок в работе.
Проверяйте SSL, TLS и шифрование
Проверка SSL необходима для обеспечения правильного отображения параметров сертификата. Существует множество способов проверки SSL-сертификатов. Проверка с помощью инструментов в сети позволяет получить полезную информацию, находящуюся ниже. Она также поможет вам выявить угрозы на ранних стадиях, а не после получения жалобы клиента.
Я получил ряд вопросов после своей последней публикации «Усиление защиты Apache. Гид по безопасности» о проверке TLS и SSL. В этой статье я расскажу вам о некоторых полезных инструментах для проверки SSL-сертификатов в сети.
Тестовые потоки
Давайте разделим и обозначим три вида потоков тестирования, которые составляют наш план тестирования:
Qualys SSL Labs
Позволяет оценить ваш сайт в отношении безопасности SSL-сертификата. Предоставляет очень подробную техническую информацию. Советую системным администраторам, аудиторам, инженерам по интернет-безопасности для выявления и наладки “слабых” параметров.
DigiCert SSL Certificate Checker
Инструмент для проверки установки SSL сертификатов от DigiCert — еще один прекрасный инструмент, который позволит вам преобразовать DNS в IP адрес, узнать кто выдал сертификат, его серийный номер, длину ключа, алгоритм подписи, SSL-шифрование, поддерживаемое сервером и срок действия сертификата.