← На главную

Скрипт cloud-init встраивает временный SSH-ключ, блокирующий атаки

08.05.2026 11:26 · hackernews

Скрипт останавлирует атаки на первом подключении по SSH к любой новой виртуальной машине, включая те, что работают у провайдеров вроде Hetzner Cloud, где нет собственной защиты. Решение использует только широко поддерживаемую утилиту cloud-init. Суть метода проста: через cloud-init встраивается временный приватный ключ SSH-хоста. Пользователю разрешено доверять этому временному ключу лишь ровно столько, сколько нужно, чтобы сгенерировать и скачать настоящие долговременные ключи. Затем временный ключ удаляется, и злоумышленник лишается доступа к ценному материалу. Такой подход безопаснее, чем простое доверие первому подключению, которое оставляет систему открытой для перенаправления трафика к прокси или даже к самой виртуальной машине атакующего. Утечки данных в облачных файлах пользователя cloud-init тоже становятся бесполезными, так как там не лежит секретный ключ. Метод опирается на безопасность самого протокола и реализации OpenSSH, а не на способность администратора мгновенно замечать взлом. Защита работает против атакующего, имеющего полный контроль над сетью и умеющего читать данные облачных настроек после запуска скрипта. Временный ключ хранится в скрытой директории, никогда не попадая в список известных хостов ~/.ssh/known_hosts. Даже если хакер взломает рабочий стол администратора, он не получит долговременный приватный ключ, потому что тот с самого начала не находится на этом компьютере. В реальности такое подключение регистрируется и сразу обнаруживается логами. Если же хакер всё-таки подключится к машине, он сможет украсть ключ, например прочитав его из /etc/ssh/ssh_host_*, но это происходит уже после успеха атаки. Скрипт не просто пишет в known_hosts, а доверяет этому файлу только тем данным, которые генерирует сама виртуальная машина. Это предотвращает подмену данных и корректно обрабатывает настройки типа HashKnownHosts. Атакующий вряд ли победит, если пользователь заметит, что все соединения идут не туда, отказывается вводить пароль и не перенаправляет агент SSH или X11. Однако хакер может получить доступ к рабочему столу, если пользователь использует какой-либо метод аутентификации и разрешает перенаправление сеанса X11. В итоге защита сохраняет целостность рабочей станции администратора даже при взломе облачного провайдера или самой машины, пока атакующий не сможет реально подключиться к целевой системе.

Читать оригинал →