Certificate Transparency Logs: обнаружение поддельных сертификатов и мониторинг домена
Что такое логи прозрачности сертификатов?
Certificate Transparency (CT) — это открытый фреймворк для мониторинг сайтов и аудита SSL/TLS-сертификатов. Созданный Google в 2013 году и стандартизированный как RFC 6962, CT требует от удостоверяющих центров (CA) публично логировать каждый выпущенный сертификат. Эти журналы, доступные только для добавления записей и криптографически верифицируемые, позволяют владельцам доменов, браузерам и исследователям безопасности обнаруживать ошибочно выпущенные или мошеннические сертификаты.
До появления CT скомпрометированный или злонамеренный CA мог выпустить сертификат для любого домена, а владелец домена никогда бы об этом не узнал. CT закрывает этот пробел, делая выпуск сертификатов прозрачным и проверяемым процессом.
Как работает Certificate Transparency
Экосистема CT включает четыре ключевых компонента:
1. CT-логи
CT-логи — это структуры данных на основе деревьев Меркла, работающие только на добавление, которые управляются независимыми организациями. Каждый лог принимает сертификаты от CA, назначает подписанную временную метку сертификата (SCT) и публикует сертификат для публичной проверки. Основные операторы логов: Google, Cloudflare, DigiCert и Sectigo.
2. Удостоверяющие центры
CA отправляют сертификаты в один или несколько CT-логов до или вскоре после выпуска. Взамен они получают SCT, подтверждающие, что сертификат был залогирован. Эти SCT затем встраиваются в сертификат, доставляются через TLS-расширение или включаются в ответы OCSP stapling.
3. Мониторы
Мониторы непрерывно наблюдают за CT-логами на предмет новых записей. Владельцы доменов запускают мониторы для обнаружения сертификатов, выпущенных для их доменов. Исследователи безопасности мониторят подозрительные паттерны выпуска во всей экосистеме сертификатов.
4. Аудиторы
Аудиторы проверяют корректность поведения CT-логов — что они работают только на добавление, консистентны и не пропускают или не антидатируют записи. Браузеры выступают аудиторами, проверяя SCT во время TLS-хендшейков.
Структура дерева Меркла
CT-логи используют хеш-деревья Меркла для предоставления криптографических доказательств консистентности и включения:
Корневой хеш
/ \
Hash01 Hash23
/ \ / \
Hash0 Hash1 Hash2 Hash3
| | | |
Cert0 Cert1 Cert2 Cert3
Доказательство включения для Cert2:
- Hash3 (сиблинг)
- Hash01 (сиблинг родителя)
- Проверка: Root = Hash(Hash01 || Hash(Hash2 || Hash3))
Эта структура позволяет любому проверить существование конкретного сертификата в логе без скачивания всего лога, а также проверить, что лог не был модифицирован, сверяя доказательства консистентности между разными размерами дерева.
Требования браузеров
Современные браузеры применяют требования CT для всех публично доверенных сертификатов:
- Google Chrome — требует SCT от минимум 2-3 независимых CT-логов (в зависимости от срока действия сертификата) с апреля 2018. Сертификаты без валидных SCT считаются недоверенными.
- Apple Safari — применяет CT для всех новых сертификатов с октября 2018, требуя SCT от минимум двух логов, управляемых разными организациями.
- Mozilla Firefox — мониторит CT-логи и планирует более строгое применение. Пока полагается на CA в отправке сертификатов в логи.
Мониторинг вашего домена
Активный мониторинг CT-логов для вашего домена критически важен для обнаружения несанкционированного выпуска сертификатов. Как настроить эффективный мониторинг:
Использование crt.sh
Наиболее доступный инструмент для поиска по CT-логам — crt.sh, управляемый Sectigo:
# Поиск всех сертификатов для вашего домена
curl -s "https://crt.sh/?q=%.example.com&output=json" | \
jq '.[0:5] | .[] | {
issuer: .issuer_name,
common_name: .common_name,
not_before: .not_before,
not_after: .not_after
}'
# Поиск недавно выпущенных сертификатов
curl -s "https://crt.sh/?q=example.com&exclude=expired&output=json"
Автоматизированные сервисы мониторинга
- Facebook CT Monitor — бесплатный сервис, отправляющий email-оповещения при обнаружении новых сертификатов для ваших доменов.
- Cert Spotter (SSLMate) — мониторит CT-логи и оповещает о новом выпуске. Бесплатный тариф для отдельных доменов.
- Google Certificate Transparency Search — поисковик по CT-логам на transparencyreport.google.com.
Самостоятельный мониторинг
Для организаций, требующих полного контроля, самостоятельные решения предоставляют максимальную гибкость:
- Certstream — open-source инструмент, предоставляющий поток записей CT-логов в реальном времени. Фильтруйте по своим доменам и запускайте алерты через вебхуки.
- Скрипты ct-monitor — кастомные скрипты, периодически запрашивающие API документацию CT-логов и сравнивающие с ожидаемым инвентарем сертификатов.
- Интеграция с SIEM — передавайте данные CT-логов в систему управления безопасностью для корреляции с другими событиями.
Обнаружение поддельных сертификатов
При мониторинге CT-логов обращайте внимание на следующие индикаторы потенциально мошеннических сертификатов:
- Неизвестные издатели — сертификаты от CA, которые вы никогда не использовали и не авторизовывали.
- Неожиданные субдомены — сертификаты для субдоменов, которые не должны существовать или отсутствуют в вашем DNS.
- Подозрительное время — сертификаты, выпущенные вне вашего обычного графика обновления.
- Wildcard-сертификаты — несанкционированные wildcard-сертификаты, покрывающие любой субдомен.
- Краткосрочные сертификаты — сертификаты с необычно коротким сроком действия могут указывать на тестирование атакующим.
Реагирование на несанкционированные сертификаты
- Подтвердите несанкционированность. Проверьте с вашей командой и сторонними сервисами, которые могут легитимно выпускать сертификаты для вашего домена.
- Свяжитесь с выпустившим CA. Запросите немедленный отзыв несанкционированного сертификата. CA обязаны отозвать в течение 24 часов при проблемах валидации домена.
- Расследуйте причину. Определите, как был выпущен сертификат — компрометация DNS, обход валидации домена, социальная инженерия CA или компрометация систем CA.
- Внедрите CAA-записи. DNS CAA-записи определяют, какие CA авторизованы выпускать сертификаты для вашего домена, предотвращая выпуск другими CA.
- Сообщите вендорам браузеров. Если CA был скомпрометирован, сообщите об инциденте операторам хранилищ доверия браузеров.
CAA-записи для предотвращения
# DNS CAA-записи — разрешить только определенным CA
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 issue "digicert.com"
example.com. CAA 0 issuewild ";" # Запретить выпуск wildcard
example.com. CAA 0 iodef "mailto:security@example.com"
Заключение
Certificate Transparency фундаментально улучшила безопасность экосистемы веб-PKI. Делая выпуск сертификатов прозрачным и проверяемым, CT позволяет владельцам доменов обнаруживать и реагировать на несанкционированные сертификаты до того, как они будут использованы в атаках. Настройте мониторинг CT для ваших доменов, внедрите CAA-записи и сделайте управление инвентарем сертификатов частью вашего рабочего процесса безопасности.
Проверьте ваш сайт прямо сейчас
Проверить →