Absortio

Email → Summary → Bookmark → Email

GitHub - nabla-c0d3/sslyze: Fast and powerful SSL/TLS scanning library.

Extracto

Fast and powerful SSL/TLS scanning library. Contribute to nabla-c0d3/sslyze development by creating an account on GitHub.

Resumen

Resumen Principal

SSLyze es una herramienta robusta y rápida de escaneo de SSL/TLS, así como una biblioteca Python, diseñada para auditar la configuración de seguridad de servidores. Su principal función es establecer una conexión con un servidor para analizar exhaustivamente su configuración SSL/TLS, verificando el uso de ajustes de cifrado fuertes (certificados, conjuntos de cifrado, curvas elípticas) y detectando vulnerabilidades conocidas como Heartbleed, ROBOT o inyecciones CCS de OpenSSL. Destaca por su velocidad y fiabilidad, siendo empleada para escanear cientos de miles de servidores diariamente. SSLyze se posiciona como una solución altamente operacionalizable, ideal para la integración continua en entornos de CI/CD, permitiendo la verificación constante de servidores contra configuraciones TLS recomendadas por Mozilla. Su versatilidad se extiende al soporte de escaneo para una amplia gama de servidores no-HTTP, incluyendo SMTP, XMPP, LDAP, POP, IMAP, RDP, Postgres y FTP, lo que la convierte en una herramienta invaluable para mantener una postura de seguridad sólida en diversos entornos de red.

Elementos Clave

  • Capacidades de Análisis Profundo: SSLyze no solo verifica la presencia de certificados, sino que también analiza la solidez de los conjuntos de cifrado y las curvas elípticas utilizadas, asegurando que las configuraciones cumplan con los estándares de seguridad modernos. Además, es capaz de identificar proactivamente vulnerabilidades críticas y ataques conocidos de TLS, como Heartbleed y ROBOT, lo que es crucial para la prevención de brechas de seguridad.
  • Fácil Implementación y Operacionalización: La herramienta se puede instalar y ejecutar rápidamente a través de pip, Docker, o mediante un ejecutable precompilado para Windows. Su diseño facilita la integración directa en flujos de trabajo de CI/CD, permitiendo un control automatizado de la conformidad del servidor con políticas de seguridad, como las configuraciones "intermediate" o "modern" de Mozilla, y la capacidad de fallar el build si no se cumplen.
  • API de Python Completamente Documentada: SSLyze ofrece una API de Python exhaustiva, permitiendo a los desarrolladores integrar sus capacidades de escaneo directamente en cualquier aplicación. Esta funcionalidad es particularmente útil para crear soluciones personalizadas de auditoría de seguridad, automatizar tareas o incluso desplegar funciones de escaneo en entornos serverless como AWS Lambda, extendiendo enormemente su utilidad.
  • Soporte Amplio y Exportación de Datos: Más allá de los servidores web (HTTP), SSLyze soporta el escaneo de una diversidad de protocolos como SMTP, XMPP, LDAP, POP, IMAP, RDP, Postgres y FTP, lo que amplía su alcance a casi cualquier servicio que utilice TLS. Los resultados detallados de los escaneos se pueden guardar convenientemente en formato JSON, facilitando su posterior procesamiento, análisis y generación de informes.

Análisis e Implicaciones

SSLyze es fundamental para las organizaciones que buscan mantener una postura de seguridad proactiva y cumplir con los estándares de cifrado, especialmente en entornos de desarrollo ágil y DevOps. Su capacidad para integrarse en CI/CD permite una validación continua, asegurando que los despliegues de servidores sean seguros por diseño y detectando desviaciones de la configuración deseada antes de que se conviertan en vulnerabilidades explotables.

Contexto Adicional

Desarrollado y con copyright de Alban Diquet en 2025, SSLyze se distribuye bajo la licencia GNU Affero General Public License (AGPL), lo que subraya su compromiso con el software de código abierto y la seguridad colectiva.

Contenido

SSLyze

Run Tests Downloads PyPI version Python version

SSLyze is a fast and powerful SSL/TLS scanning tool and Python library.

SSLyze can analyze the SSL/TLS configuration of a server by connecting to it, in order to ensure that it uses strong encryption settings (certificate, cipher suites, elliptic curves, etc.), and that it is not vulnerable to known TLS attacks (Heartbleed, ROBOT, OpenSSL CCS injection, etc.).

Key features

  • Focus on speed and reliability: SSLyze is a battle-tested tool that is used to reliably scan hundreds of thousands of servers every day.
  • Easy to operationalize: SSLyze can be directly run from CI/CD, in order to continuously check a server against Mozilla's recommended TLS configuration.
  • Fully documented Python API to run scans directly from any Python application, such as a function deployed to AWS Lambda.
  • Support for scanning non-HTTP servers including SMTP, XMPP, LDAP, POP, IMAP, RDP, Postgres and FTP servers.
  • Results of a scan can easily be saved to a JSON file for later processing.
  • And much more!

Quick start

On Windows, Linux (x86 or x64) and macOS, SSLyze can be installed directly via pip:

$ pip install --upgrade pip setuptools wheel
$ pip install --upgrade sslyze
$ python -m sslyze www.yahoo.com www.google.com "[2607:f8b0:400a:807::2004]:443"

It can also be used via Docker:

$ docker run --rm -it nablac0d3/sslyze:6.1.0 www.google.com

Lastly, a pre-compiled Windows executable can be downloaded from the Releases page.

Python API Documentation

A sample script describing how to use the SSLyze's Python API is available at ./api_sample.py.

Full documentation for SSLyze's Python API is available here.

Usage as a CI/CD step

By default, SSLyze will check the server's scan results against Mozilla's recommended "intermediate" TLS configuration, and will return a non-zero exit code if the server is not compliant.

$ python -m sslyze mozilla.com
Checking results against Mozilla's "intermediate" configuration. See https://ssl-config.mozilla.org/ for more details.

mozilla.com:443: OK - Compliant.

The Mozilla configuration to check against can be configured via --mozilla_config={old, intermediate, modern}:

$ python -m sslyze --mozilla_config=modern mozilla.com
Checking results against Mozilla's "modern" configuration. See https://ssl-config.mozilla.org/ for more details.

mozilla.com:443: FAILED - Not compliant.
    * certificate_types: Deployed certificate types are {'rsa'}, should have at least one of {'ecdsa'}.
    * certificate_signatures: Deployed certificate signatures are {'sha256WithRSAEncryption'}, should have at least one of {'ecdsa-with-SHA512', 'ecdsa-with-SHA256', 'ecdsa-with-SHA384'}.
    * tls_versions: TLS versions {'TLSv1.2'} are supported, but should be rejected.
    * ciphers: Cipher suites {'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384', 'TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256', 'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256'} are supported, but should be rejected.

This can be used to easily run an SSLyze scan as a CI/CD step.

Development environment

To setup a development environment:

$ pip install --upgrade pip setuptools wheel
$ pip install -e . 
$ pip install -r requirements-dev.txt

The tests can then be run using:

License

Copyright (c) 2025 Alban Diquet

SSLyze is made available under the terms of the GNU Affero General Public License (AGPL). See LICENSE.txt for details and exceptions.

Fuente: GitHub