Během práce webového inženýra, administrátora webu nebo správce systémů se často setkáváme s nutností řešit problémy spojené s SSL/TLS.
Ačkoli je k dispozici mnoho online nástrojů pro kontrolu SSL certifikátů a testování zranitelností SSL/TLS, při zkoumání intranetových URL, VIP adres nebo IP adres se tyto nástroje stávají nepoužitelnými.
Pro řešení potíží s intranetovými zdroji je nezbytné používat specifický software či nástroje, které lze instalovat přímo ve vaší síti a provádět potřebné testy.
Mohou nastat různé scénáře:
- Potíže při zavádění SSL certifikátu na webový server
- Snaha ověřit, zda je používán nejnovější či konkrétní šifrovací protokol
- Potřeba validovat konfiguraci po implementaci
- Identifikace bezpečnostních rizik zjištěných při penetračním testu
Následující nástroje vám mohou být nápomocné při řešení těchto výzev.
DeepViolet
DeepViolet je skenovací nástroj pro SSL/TLS, který je založen na Javě. K dispozici je buď v binární podobě, nebo si ho můžete sami zkompilovat ze zdrojového kódu.
Pokud hledáte alternativu k SSL Labs pro použití ve vnitřní síti, DeepViolet je skvělá volba. Zaměřuje se na vyhledávání:
- Odhalených slabých šifer
- Slabých podpisových algoritmů
- Stavu odvolání certifikátu
- Stavu expirace certifikátu
- Vizualizaci řetězce důvěry, včetně kořenových certifikátů s vlastním podpisem
Diagnostika SSL
Umožňuje rychlé vyhodnocení síly SSL vašeho webu. Diagnostika SSL extrahuje informace o SSL protokolu, šifrovacích sadách a také ověřuje zranitelnosti jako Heartbleed a BEAST.
Kromě HTTPS umožňuje otestovat sílu SSL pro další protokoly jako SMTP, SIP, POP3 a FTPS.
SSLyze
SSLyze je knihovna v Pythonu a nástroj příkazové řádky, který se připojuje k SSL endpointu a skenuje ho, aby detekoval jakékoli chybné konfigurace SSL/TLS.
Skenování pomocí SSLyze probíhá rychle díky distribuci testu mezi více procesů. Pokud jste vývojář nebo chcete integrovat nástroj do vaší stávající aplikace, máte možnost uložit výsledek ve formátu XML nebo JSON.
SSLyze je také dostupný v Kali Linuxu. Pokud jste nováčky v Kali, můžete se podívat, jak nainstalovat Kali Linux na VMWare Fusion.
OpenSSL
Nepodceňujte OpenSSL, jeden z mocných samostatných nástrojů, který je k dispozici pro Windows i Linux. Můžete s ním provádět různé úlohy související se SSL, jako je ověřování, generování CSR, převod certifikátů a další.
SSL Labs Scan
Máte rádi Qualys SSL Labs? Nejste sami; je oblíbený i u nás.
Pokud hledáte nástroj příkazové řádky pro SSL Labs pro automatické nebo hromadné testování, pak SSL Labs Scan vám může být velmi užitečný.
SSL skenování
SSL skenování je kompatibilní s Windows, Linuxem a macOS. SSL Scan rychle pomůže identifikovat následující klíčové metriky:
- Upozorní na šifry SSLv2/SSLv3/CBC/3DES/RC4/
- Nahlásí slabé (<40bit) šifry a null/anonymní šifry
- Ověří komprese TLS, zranitelnost Heartbleed
- A mnoho dalšího…
Pokud se potýkáte s problémy souvisejícími se šifrováním, SSL skenování vám poslouží jako užitečný nástroj pro rychlé odhalení příčin a nápravu potíží.
etechblog.cz TLS Scanner API
Dalším užitečným řešením pro webmastery může být API pro TLS skener od etechblog.cz.
Jedná se o robustní metodu pro rychlou kontrolu protokolu TLS, CN (Common Name), SAN (Subject Alternative Name) a dalších detailů certifikátu. K dispozici je i bezplatné předplatné až pro 3000 požadavků měsíčně.
Základní prémiová úroveň pak nabízí větší objem požadavků, konkrétně 10 000 API volání za pouhých 5 USD měsíčně.
TestSSL
Jak už název napovídá, TestSSL je nástroj příkazového řádku kompatibilní s Linuxem nebo macOS. Testuje všechny základní metriky a udává stav, ať už je dobrý, nebo špatný.
Příklad:
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)
Jak vidíte, pokrývá značné množství zranitelností, preferencí šifrování, protokolů atd. TestSSL.sh je dostupný i jako Docker image.
Pro provádění vzdáleného skenování pomocí testssl.sh můžete zkusit etechblog.cz TLS Scanner.
TLS skenování
Můžete si buď sestavit TLS-Scan ze zdrojového kódu, nebo si stáhnout binární soubor pro Linux/macOS. Extrahují se informace o certifikátu ze serveru a výpis je proveden ve formátu JSON.
- Kontroly validace jména hostitele
- Kontroly TLS komprese
- Kontroly výčtu šifer a verzí TLS
- Kontroly opětovného použití relace
Podporuje protokoly TLS, SMTP, STARTTLS a MySQL. Výsledný výstup lze integrovat i do protokolovacích analyzátorů jako Splunk nebo ELK.
Skenování šifry
Rychlý nástroj pro analýzu šifer, které web s HTTPS podporuje. Skenování šifry umožňuje i výstup ve formátu JSON. Interně se jedná o obal pro příkaz OpenSSL.
Audit SSL
SSL audit je nástroj s otevřeným zdrojovým kódem určený k ověřování certifikátů a podpory protokolů, šifer. Provádí hodnocení na základě metodiky SSL Labs.
Doufám, že výše uvedené nástroje s otevřeným zdrojovým kódem vám pomohou s integrací průběžného skenování do vašeho stávajícího analyzátoru protokolů a usnadní vám odstraňování problémů.