
Утилиты на Python для проверки того, требует ли TLS-сервер клиентские сертификаты, и для сканирования локальных ELF-бинарников на наличие уязвимого кода OpenSSL 3.x, связанного с CVE-2022-3602 и CVE-2022-3786.
Это набор простых утилит в контексте недавно обнаруженных CVE-2022-3602, CVE-2022-3786, позволяющих ответить на следующие вопросы:
Выполнение следующей команды
python openssl_req_client_cert.py HOST_NAME PORT
определит, требуется ли аутентификация клиента SSL-сервером, и в этом случае серверы на основе OpenSSL 3.0.0..3.0.6 будут уязвимы к указанным выше CVE [https://jfrog.com/knowledge-base/upcoming-openssl-3-x-critical-vulnerability/]
Например:
|ψ> python openssl_req_client_cert.py 127.0.0.1 12345
127.0.0.1:12345 -> Client certificate not required
Приложения, использующие OpenSSL, легко пропустить, если библиотека статически слинкована в бинарный файл приложения. Выполнение следующей команды
python scan_vulnerable_openssl_code.py ROOT_DIR
рекурсивно просканирует ROOT_DIR на наличие ELF-файлов и сообщит о файлах, содержащих шаблон ossl_punycode_decode (указывающий на версии >=3.0.0), при этом файлы, которые дополнительно содержат шаблон ripemd160_newctx, указывающий на обновлённую версию (3.0.7), будут отмечены соответствующим образом.