关于SSLyze
SSLyze是一款快速高效且功能强大的SSL/TLS扫描工具,同时它也是一个Python库。
SSLyze在与目标服务器连接成功之后,可以对目标目标服务器的SSL/TLS配置进行扫描和分析,并确保其使用健壮的加密设置,包括证书、密码套件和椭圆曲线等,以此来防止目标服务器受到TLS攻击的威胁(例如Heartbleed、ROBOT、OpenSSL CCS注入等)。
功能介绍
1、专注于速度和稳定性:SSLyze经过了严格的测试,能够支持每天可靠地扫描数十万台服务器;
2、易于操作:SSLyze可以直接从CI/CD运行,以便根据Mozilla推荐的TLS配置来对目标服务器执行安全检查;
3、文档支持:提供了完整的Python API文档,可以直接从任何Python应用程序执行扫描任务,或直接以功能函数的形式部署到AWS Lambda;
4、多类型服务器扫描:支持扫描非HTTP服务器,包括SMTP、XMPP、LDAP、POP、IMAP、RDP、Postgres和FTP服务器;
5、结果输出:工具的运行结果可以直接存储为JSON格式文件以便进行后续分析处理;
6、...
工具下载
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/nabla-c0d3/sslyze.git
除此之外,在Windows、Linux(x86或x64)和macOS操作系统中,我们还可以直接通过pip来安装SSLyze:
$ 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"
或通过Docker来使用SSLyze:
$ docker run --rm -it nablac0d3/sslyze:6.0.0 www.google.com
如果不想使用命令方式安装的话,还可以直接访问该项目的【Releases页面】下载SSLyze最新版本的预编译Windows可执行程序。
以CI/CD方式使用
默认配置下,SSLyze将会对目标服务器执行安全检测,并根据Mozilla推荐的TLS配置来检查扫描结果,如果目标服务器不兼容,则返回非零退出码:
$ 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.
我们可以通过“--mozilla_config={old, intermediate, modern}”来设置和调整Mozilla的推荐配置:
$ 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.
开发环境
我们可以使用下列命令配置开发环境:
$ pip install --upgrade pip setuptools wheel $ pip install -e . $ pip install -r requirements-dev.txt
执行测试:
$ invoke test
许可证协议
本项目的开发与发布遵循AGPL-3.0开源许可协议。
项目地址
SSLyze:【GitHub传送门】
参考资料
SSLyze — SSLyze 6.0.0 documentation
Security/Server Side TLS - MozillaWiki