На какие валидаторы влияет дополнительный корневой сертификат?
Вредоносный корень, настройка частного CA в VPN и закреплённый отпечаток попадают к разным валидаторам. Составьте карту каждого, прежде чем считать работающий туннель доказательством чистоты.
Вы находите корневой сертификат, которого там быть не должно, и первый вопрос — чью личность он может подделать. Честный ответ зависит от того, какая программа обращается к этому хранилищу и как ваш VPN проверяет свой шлюз. Браузер, менеджер пакетов и клиент VPN с закреплённым отпечатком не обязательно разделяют одно и то же решение о доверии. Составьте карту валидаторов, прежде чем определять охват.
Корень в системном хранилище — не универсальный ключ
Установка корня делает сертификаты, подписанные этим ключом, приемлемыми для программ, использующих затронутое хранилище. Это не делает их автоматически приемлемыми везде, потому что некоторые приложения поставляются со своим набором или проверяют закреплённое значение. Это также не доказывает, что кто-то выполнил код на машине; смена доверия — одна из нескольких возможностей. Рассматривайте сертификат как находку, которую нужно ограничить, а не как весь инцидент.
Хранилище не менее важно, чем сертификат: набор уровня пользователя и якорь системного уровня достигают разных потребителей.
Составьте карту каждого валидатора и источника его доверия
Запишите каждый компонент, который проверяет сертификаты для затронутых рабочих процессов: браузер, менеджер пакетов, почтовый клиент, VPN. Затем найдите источник доверия, который читает каждый из них.
ls /usr/local/share/ca-certificates
trust list | grep -i -E "vpn|corp"Листинг каталога показывает якоря, добавленные локально в системах типа Debian, а список доверия показывает, что системное хранилище предоставляет сейчас. Браузер с собственным хранилищем там не появится, а приложение на Java или Python может использовать ещё один набор. Запишите, какие записи ожидаются, а какие нет, опираясь на отпечаток, а не только на отображаемое имя. Этот список нужен специалисту по инцидентам, прежде чем что-либо удалять.
Проверьте собственную проверку партнёра в самом VPN
VPN с частным CA или явным отпечатком оценивает шлюз по своей собственной конфигурации. Сравните то, что ожидает клиент, с тем, что представляет шлюз.
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com -showcerts </dev/null 2>/dev/null | openssl x509 -noout -fingerprint -sha256 -subjectВывод даёт отпечаток SHA-256 и субъект сертификата, который представляет конечная точка, и их можно сравнить с настроенным значением. OpenVPN имеет опцию отпечатка партнёра, которая выполняет это сравнение для туннеля, не требуя, чтобы системное хранилище принимало подписанта. Эта независимость полезна для туннеля и ничего не говорит о браузере. Она также не поможет, если ожидаемый отпечаток был скопирован из подозрительного соединения с самого начала.
Ограничьте инцидент за пределами сертификата
Используйте процедуру владельца устройства, чтобы удалить несанкционированные якоря и найти изменения, которые обычно их сопровождают: новые службы, изменённые клиенты, изменённые настройки прокси. На управляемой машине подтвердите законную конфигурацию, прежде чем удалять материалы, от которых зависит другое программное обеспечение. Для каждого валидатора запишите, откуда происходит его доверие, какую личность он ожидает и как вы подтвердили, что текущая конфигурация верна. Работающий туннель после очистки — это одно наблюдение, а не доказательство того, что конечная точка чиста.
Затем повторно проверьте рабочие процессы, которые использовали хранилище, потому что удаление якоря может сломать внутреннюю службу, законно полагавшуюся на него. Восстановление завершено, когда ожидаемые отношения доверия работают, а неожиданные — нет.