Вопрос или проблема
Я часто использую случайный вход, например jhjhtdf76753.example.com, тихо работая над кодом на этом поддомене в течение нескольких месяцев, никогда не создавая публичную DNS-запись для поддомена. Домен “example.com” указывает на наш балансировщик нагрузки и контроллер домена nginx. Логи входа тихие, кроме моей активности… Если я генерирую сертификат letsencrypt для этого “нового” домена, хакеры приходят большими группами, с детскими скриптами и всем прочим.
В чем дело?
Новые сертификаты попадают в логи прозрачности сертификатов, которые доступны для общественности. Это можно использовать для обнаружения, казалось бы, скрытых доменов, которые не связаны нигде, могут даже быть недоступны публично, но все же имеют открытый сертификат. Например, вы можете просто использовать crt.sh, чтобы искать в публичных логах.
Ответ или решение
Да, деятельность Let’s Encrypt является публичной, и это связано с тем, как сертификаты, выданные этой организацией, обрабатываются и хранятся. Когда вы генерируете сертификат для вашего поддомена, этот сертификат попадает в журналы прозрачности сертификатов (Certificate Transparency, CT), которые доступны для общественности. Эти журналы служат для мониторинга и проверки выданных сертификатов, а также для предотвращения злоупотреблений в области выдачи сертификатов.
Проблема, с которой вы столкнулись, возникает из-за того, что когда вы создаете сертификат для вашего поддомена (например, jhjhtdf76753.example.com
), информация об этом сертификате становится доступной через такие сервисы, как crt.sh. Это означает, что злоумышленники могут легко обнаружить ваш поддомен просто просматривая журналы CT и видя, что для него был выдан сертификат. Даже если поддомен не указан в публичных DNS-записях, его существование будет задокументировано в этих журналах.
Таким образом, получение сертификата Let’s Encrypt активирует интерес со стороны хакеров, так как они могут предположить, что поддомен может содержать уязвимые места или проекты, которые можно атаковать. Исходя из этого, рекомендуется быть осторожным с использованием Let’s Encrypt для поддоменов, о которых вы не хотите, чтобы кто-то узнал, особенно если они являются частью не завершенного или экспериментального проекта.
Чтобы избежать подобной ситуации, вы можете рассмотреть следующие варианты:
-
Использование самоподписанных сертификатов: Вы можете использовать самоподписанные сертификаты для разработки и внутреннего тестирования. Это не решит проблему безопасности полностью, но не будет отображаться в публичных журналах CT.
-
Локальное окружение: Если возможно, работайте в локальной среде или в поддельных доменных именах, которые не требуют сертификатов и не вызывают общественного интереса.
-
Постепенная публикация: Если вы находитесь на этапе разработки, подумайте о том, чтобы сначала создать проект в тестовом окружении, прежде чем вызывать внимание публичных сертификатов.
В целом, важно осознавать, что любые действия по получению публичного сертификата могут привести к рассекречиванию информации о вашем поддомене, что, в свою очередь, сделает его более уязвимым для атак.