11 БЕЗКОШТОВНИХ інструментів усунення несправностей SSL/TLS для веб-майстрів

Працюючи веб-інженером, адміністратором веб-сайту чи системним адміністратором, часто виникає потреба розв’язувати завдання, пов’язані з SSL/TLS.

Хоча існує чимало онлайн-ресурсів для перевірки SSL-сертифікатів та тестування вразливостей SSL/TLS, вони не завжди корисні при роботі з URL-адресами внутрішньої мережі, VIP-адресами або IP-адресами.

Для діагностики проблем з інтранет-ресурсами вам знадобляться спеціальні програмні засоби, які можна встановити в локальній мережі для проведення необхідного аналізу.

Можливі різні ситуації, наприклад:

  • Проблеми під час налаштування SSL-сертифіката на веб-сервері
  • Бажання переконатися у використанні найновішого або конкретного шифру та протоколу
  • Необхідність перевірки конфігурації після впровадження
  • Виявлення загрози безпеці за результатами пентесту

Наведені далі інструменти допоможуть розв’язати ці та подібні проблеми.

DeepViolet

DeepViolet — це Java-інструмент для сканування SSL/TLS, доступний як у бінарному форматі, так і для компіляції з вихідного коду.

Якщо вам потрібна альтернатива SSL Labs для використання в локальній мережі, DeepViolet – чудовий варіант. Він перевіряє наступні параметри:

  • Виявлення слабких шифрів
  • Слабкі алгоритми підпису
  • Статус відкликання сертифіката
  • Статус закінчення терміну дії сертифіката
  • Візуалізація ланцюжка довіри, включно із самопідписаним кореневим сертифікатом

Діагностика SSL

Проведіть швидку оцінку надійності SSL вашого сайту. Діагностика SSL аналізує SSL-протоколи, набори шифрів, а також перевіряє на наявність вразливостей Heartbleed та BEAST.

Інструмент підтримує не лише HTTPS, але й перевірку SSL для SMTP, SIP, POP3 та FTPS.

SSLyze

SSLyze – це бібліотека Python та інструмент командного рядка, який встановлює з’єднання з SSL-кінцевою точкою і проводить сканування для виявлення неправильних конфігурацій SSL/TLS.

Сканування SSLyze відбувається досить швидко завдяки розподілу тестування між кількома процесами. Розробники, які хочуть інтегрувати інструмент у свої програми, можуть отримати результати у форматах XML або JSON.

SSLyze також доступний у дистрибутиві Kali Linux. Якщо ви тільки починаєте використовувати Kali, то дізнайтесь про встановлення Kali Linux на VMWare Fusion.

OpenSSL

Не слід недооцінювати OpenSSL. Це потужний автономний інструмент, доступний для Windows та Linux, що виконує різноманітні завдання, пов’язані з SSL, наприклад, перевірка, створення CSR, конвертація сертифікатів та багато іншого.

SSL Labs Scan

Вам подобається Qualys SSL Labs? Ви не самотні, багатьом цей інструмент до вподоби.

Якщо вам потрібен інструмент командного рядка для SSL Labs з метою автоматизованого або масового тестування, тоді SSL Labs Scan стане у нагоді.

Сканування SSL

Сканування SSL працює у Windows, Linux та macOS. Інструмент допомагає швидко виявити наступні параметри:

  • Виділення шифрів SSLv2/SSLv3/CBC/3DES/RC4/
  • Інформування про слабкі (<40 біт), нульові/анонімні шифри
  • Перевірка стиснення TLS, уразливості Heartbleed
  • І багато іншого…

Якщо ви працюєте над проблемами, пов’язаними із шифруванням, сканування SSL стане корисним інструментом для оперативного розв’язання проблем.

API сканера TLS techukraine.net

Для веб-майстрів чудовим варіантом може бути techukraine.net TLS Scanner API.

Це ефективний спосіб перевірки протоколу TLS, CN, SAN та інших деталей сертифіката за лічені секунди. Ви можете безкоштовно спробувати його з підпискою до 3000 запитів на місяць.

Преміум-рівень включає більшу кількість запитів і 10 тисяч викликів API всього за 5 доларів на місяць.

Перевірте SSL

Як випливає з назви, Перевірте SSL – це консольна програма, яка працює в Linux або macOS. Інструмент перевіряє всі важливі параметри та надає їх статус (позитивний чи негативний).

Приклад:

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

NULL ciphers (no encryption) not offered (OK)
Anonymous NULL Ciphers (no authentication) not offered (OK)
Export ciphers (w/o ADH+NULL) not offered (OK)
LOW: 64 Bit + DES encryption (w/o export) not offered (OK)
Weak 128 Bit ciphers (SEED, IDEA, RC[2,4]) not offered (OK)
Triple DES Ciphers (Medium) not offered (OK)
High encryption (AES+Camellia, no AEAD) offered (OK)
Strong encryption (AEAD ciphers) offered (OK)

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

Testing vulnerabilities

Heartbleed (CVE-2014-0160) not vulnerable (OK), no heartbeat extension
CCS (CVE-2014-0224) not vulnerable (OK)
Ticketbleed (CVE-2016-9244), experiment. not vulnerable (OK)
Secure Renegotiation (CVE-2009-3555) not vulnerable (OK)
Secure Client-Initiated Renegotiation not vulnerable (OK)
CRIME, TLS (CVE-2012-4929) not vulnerable (OK)
BREACH (CVE-2013-3587) potentially NOT ok, uses gzip HTTP compression. - only supplied "/" tested
Can be ignored for static pages or if no secrets in the page
POODLE, SSL (CVE-2014-3566) not vulnerable (OK)
TLS_FALLBACK_SCSV (RFC 7507) Downgrade attack prevention supported (OK)
SWEET32 (CVE-2016-2183, CVE-2016-6329) not vulnerable (OK)
FREAK (CVE-2015-0204) not vulnerable (OK)
DROWN (CVE-2016-0800, CVE-2016-0703) not vulnerable on this host and port (OK)
make sure you don't use this certificate elsewhere with SSLv2 enabled services
https://censys.io/ipv4?q=EDF8A1A3D0FFCBE0D6EA4C44DB5F4BE1A7C2314D1458ADC925A30AA6235B9820 could help you to find out
LOGJAM (CVE-2015-4000), experimental not vulnerable (OK): no DH EXPORT ciphers, no DH key detected
BEAST (CVE-2011-3389) TLS1: ECDHE-RSA-AES128-SHA AES128-SHA ECDHE-RSA-AES256-SHA
AES256-SHA DES-CBC3-SHA 
VULNERABLE -- but also supports higher protocols (possible mitigation): TLSv1.1 TLSv1.2
LUCKY13 (CVE-2013-0169) VULNERABLE, uses cipher block chaining (CBC) ciphers
RC4 (CVE-2013-2566, CVE-2015-2808) no RC4 ciphers detected (OK)

Як бачите, інструмент охоплює багато вразливостей, конфігурацій шифрів, протоколів і т.д. TestSSL.sh також доступний у вигляді Docker-образу.

Для дистанційного сканування за допомогою testssl.sh можна скористатись techukraine.net TLS Scanner.

Сканування TLS

Ви можете скомпілювати TLS-сканер із вихідного коду або завантажити готовий бінарний файл для Linux/OSX. Інструмент витягує інформацію про сертифікат з сервера та виводить наступні дані у форматі JSON:

  • Перевірка імені хоста
  • Перевірка стиснення TLS
  • Перевірка версії шифру та TLS
  • Перевірки повторного використання сеансу

Інструмент підтримує протоколи TLS, SMTP, STARTTLS та MySQL. Ви можете інтегрувати результати у аналізатор логів, наприклад, Splunk чи ELK.

Сканування шифру

Швидкий інструмент для аналізу шифрів, які підтримує HTTPS-сайт. Сканування шифру має можливість виводити результати у форматі JSON. Це, по суті, обгортка, яка внутрішньо використовує команду OpenSSL.

Аудит SSL

Аудит SSL – це інструмент з відкритим кодом для перевірки сертифікатів та підтримки протоколів, шифрів і класів на основі SSL Labs.

Сподіваємось, що ці open-source інструменти стануть вам у нагоді, дозволять інтегрувати безперервне сканування з існуючими аналізаторами логів і спростять діагностику та виправлення проблем.