Github: https://github.com/nabla-c0d3/sslyze
SSLyze
Python 2.7および3.4+用の高速で強力なSSL / TLSサーバースキャンライブラリ。
説明
SSLyzeはPythonライブラリとCLIツールで、サーバーのSSL構成を接続して分析できます。 これは、迅速かつ包括的に設計されており、組織/テスターがSSL / TLSサーバーに影響を与える誤設定を識別するのに役立ちます。
主な機能は次のとおりです。
- スキャンを実行し、Pythonから直接結果を処理するために、完全に文書化されたPython API 。
- 新機能:TLS 1.3(ドラフト23)とROBOTの脆弱性のサポート。
- スキャンは自動的に複数のプロセスにディスパッチされ、非常に高速になります。
- パフォーマンステスト:セッションの再開とTLSチケットのサポート
- セキュリティテスト:弱い暗号スイート、不安定な再交渉、犯罪、ハートブレイクなど
- OCSPステープルによるサーバー証明書の検証と失効の確認
- SMTP、XMPP、LDAP、POP、IMAP、RDP、PostGres、FTP上でのStartTLSハンドシェークのサポート
- スキャン結果は、後で処理するためにXMLまたはJSONファイルに書き込むことができます。
- そしてもっと多く!
入門
SSLyzeはpip経由で直接インストールできます:
pip install --upgrade setuptools
pip install --upgrade sslyze
python -m sslyze --regular www.yahoo.com:443 www.google.com "[2607:f8b0:400a:807::2004]:443"
SSLyzeは、Windows 7(32ビットおよび64ビット)、Debian 7(32ビットおよび64ビット)、macOS Sierra
ライブラリとしての使用
SSLyzeは、スキャンを実行して結果を直接Pythonで処理するために、Pythonモジュールとして使用できます。 完全なドキュメントはこちらから入手できます 。
簡単な例を次に示します。
# Setup the server to scan and ensure it is online/reachable
hostname = u'smtp.gmail.com'
try:
server_tester = ServerConnectivityTester(
hostname=hostname,
port=587,
tls_wrapped_protocol=TlsWrappedProtocolEnum.STARTTLS_SMTP
)
server_info = server_tester.perform()
except ServerConnectivityError as e:
# Could not establish an SSL connection to the server
raise RuntimeError('Error when connecting to {}: {}'.format(e.server_info.hostname, e.error_message))
# Run one scan command synchronously to list the server's TLS 1.0 cipher suites
print(u'\nRunning one scan command synchronously...')
synchronous_scanner = SynchronousScanner()
command = Tlsv10ScanCommand()
scan_result = synchronous_scanner.run_scan_command(server_info, command)
for cipher in scan_result.accepted_cipher_list:
print(u' {}'.format(cipher.name))
より高度な例(スキャンコマンドの同時実行など)は、 api_sample.pyファイルとSSLyzeドキュメントで利用できます 。
Windows実行ファイル
事前コンパイル済みのWindows実行ファイルは、[ リリース ]タブで利用できます。 パッケージは、次のコマンドを実行して生成することもできます。
python.exe setup_cx_freeze.py build_exe
どのように機能するのですか?
SSLyzeはすべてPythonコードですが、 nasslというC言語で記述されたOpenSSLラッパーを使用しています 。これは、SSLyzeが深いSSLテストを実行するために必要な低レベルのOpenSSL APIにアクセスできるように特別に開発されたものです。
信託店はどこから来たのですか?
証明書の検証にSSLyzeが使用するトラストストア(Mozilla、Microsoftなど)は、 Trust Stores Observatoryからダウンロードされます。
トラストストアは、CLIを使用して最新のバージョンに更新できます。
python -m sslyze --update_trust_stores
またはPython API:
from sslyze.plugins.utils.trust_store.trust_store_repository import TrustStoresRepository
TrustStoresRepository.update_default()