Ключ SSH скопирован или агент перенаправлен? Два разных риска
Подпись — не файл ключа, а делегированный агент — не раскрытие. Отделите факт протокола от вопроса доверия к конечной точке и затем реагируйте.
Вход, использующий ключ SSH через VPN, не означает, что закрытый ключ передан оператору сети, и это успокоение уже, чем слышат люди. Аутентификация по открытому ключу отправляет открытый ключ и подпись, которую клиент создаёт локально. Перенаправление агента — иная схема с иной экспозицией, и она может оставить пригодную возможность аутентификации на машине, которой вы не управляете. Ответ, который вы должны дать, зависит от того, что из этих двух действительно произошло.
Что отправляет аутентификация по открытому ключу
В стандартном методе с открытым ключом клиент предлагает открытый ключ, сервер решает, принимает ли он этот ключ, а клиент подписывает вызов закрытым ключом, который остаётся в его файле или его агенте. По сети идут открытый ключ и полученная подпись. Ничто в этом обмене не требует, чтобы сервер, туннель или кто-либо на пути держал закрытый материал.
Спецификация аутентификации определяет это доказательство, и закрытый ключ не является полем запроса.
Это утверждение о протоколе, а не характеристика каждой вовлечённой конечной точки. Проверка подлинности хоста по-прежнему должна быть целой, потому что сервер, который не может доказать, кто он, может собирать подписи для цели, которую вы не замышляли. Арендованная VM, унаследованный бастион и ноутбук с неизвестным расширением — три отдельных вопроса доверия. Держите их отдельно от криптографического, который действительно решён.
Что делегирует перенаправление агента
Перенаправление агента открывает канал от удалённого хоста обратно к агенту на вашей машине, поэтому процессы на этом хосте могут просить агент подписать, никогда не держа закрытый ключ. Ключ остаётся там, где он есть, а возможность — нет. Всё, что может достичь этого перенаправленного сокета на удалённом хосте, в течение жизни сеанса, может запрашивать операции аутентификации как одна из загруженных личностей. Это делегированные полномочия, поэтому перенаправление заслуживает более узкой политики, чем передача открытого ключа.
Скопированный файл ключа — это раскрытие. Перенаправленный агент — это разрешение, и два случая требуют разных ответов.
Включайте перенаправление для названной потребности и названных хостов и проверяйте, что клиент делает на самом деле, а не то, что якобы говорит конфигурация. Важны действующие настройки, потому что блок хоста тихо переопределяет глобальное значение по умолчанию. Та же логика применима на стороне сервера, который может полностью отказать в перенаправлении, когда развёртыванию это никогда не нужно.
Прочтите доказательства, прежде чем выбирать ответ
Если считается, что файл закрытого ключа или эквивалентная подписывающая личность раскрыты, ответ — замена и отзыв через процесс вашей организации, плюс удаление его принятия из каждой службы, которая ему доверяла. Удаление одной локальной копии не аннулирует копии, которых вы не видите.
Если беспокойство — временный доступ агента, ответ уже: остановите ненужное делегирование, просмотрите участвующие сеансы и личности и позвольте владельцу инцидента решить, оправдана ли замена. Здесь важны доказательства, потому что отсутствие замеченного экспорта не доказывает, что аутентификация не использовалась во вред, и одно лишь изменение пути не является диагнозом украденного ключа. Запишите, какому компоненту доверяли, было ли включено перенаправление и что фактически наблюдалось. Затем выберите ответ, соответствующий этой записи, а не самый драматичный из доступных.
ssh-add -l
ssh -G host.example | grep -i forwardagent
Запустите их до изменения и после, чтобы сравнение что-то значило. Сеанс, установленный раньше, сохраняет делегирование, которое ему предоставили, что бы ни говорили настройки сейчас.
Два контроля, которые не взаимозаменяемы
Защита закрытого материала, ограничение того, кто может просить его подписать, и проверка личности другой стороны — три связанных контроля, и ни один не заменяет другой. Команда, удалившая перенаправление без проверки ключей хостов, исправила половину проблемы. Команда, сменившая ключ из-за изменений маршрута, не исправила ничего.
Скомпрометированная конечная точка — четвёртый вопрос, потому что привилегированное программное обеспечение на вашей собственной машине может сделать значительно больше, чем наблюдать пакеты.
Разложите инцидент по этим категориям, прежде чем что-либо трогать, и дайте каждой владельца. Ведите короткую запись о том, чему доверяли, что делегировали и что проверили, потому что именно эта запись делает следующий разбор дешёвым вместо очередного спора. Если какая-либо категория неизвестна, напишите «неизвестно», а не предполагайте благоприятный случай. Различие практическое, а не академическое: оно решает, заменяете ли вы учётные данные, отзываете сеанс или просто прекращаете перенаправление.