
Zeek-скрипт для обнаружения серверов, уязвимых к CVE-2020-13777
Этот скрипт выполняет простой тест для проверки, потенциально ли уязвим сервер к CVE-2020-13777.
CVE-2020-13777 заставляет GnuTLS создавать незашифрованные сессионные билеты. Это, по-видимому, можно обнаружить, проверив, устанавливает ли gnutls key_name в ноль — для этого используются первые 16 байт сессионного билета. Этот скрипт проверяет, если:
Оба случая указывают на то, что сервер использует уязвимую версию GnuTLS.
Обнаруженные случаи записываются в notice.log. Пример вывода:
1591660828.497706 CHhAvVGS1DHFjwGM9 ::1 58800 ::1 5556 - - - tcp CVE_2020_13777::CVE_2020_13777_Server Server potentially vulnerable to CVE-2020-13777 detected - ::1 ::1 5556 - - Notice::ACTION_LOG 3600.000000 - - - - -
1591660837.423412 ClEkJM2Vm5giqnMf4h ::1 58802 ::1 5556 - - - tcp CVE_2020_13777::CVE_2020_13777_Resumed Server potentially vulnerable to CVE-2020-13777 detected; client resumed with suspicious session ticket - ::1 ::1 5556 - - Notice::ACTION_LOG 3600.000000 - - - - -
Оповещения дедуплицируются и регистрируются только один раз за default_suppression_interval (по умолчанию: 1 час) для каждого сервера.
Чтобы установить через zkg, просто используйте
zkg install 0xxon/cve-2020-0601
Этот скрипт работает только для соединений TLS 1.2 (или ниже). Он не будет срабатывать на уязвимых серверах, использующих TLS 1.3. The
Этот скрипт не проходил обширное тестирование. Он работает с моими самостоятельно сгенерированными тестовыми данными и должен находить уязвимые серверы. Существует вероятность, что он может выдавать ложные срабатывания с другим серверным ПО, но это маловероятно.