Трюк с определением персональных данных через SSH

Filippo Valsorda из компании CloudFlare подготовил заслуживающий внимания сервис, выдающий персональные данные пользователя (ФИО, email и т.п.) при выполнении команды «ssh whoami.filippo.io», без проведения какой-либо аутентификации. Некоторые восприняли данный сервис как демонстрацию неизвестной ранее уязвимости в OpenSSH, но на самом деле в реализации сервиса используются штатные и документированные особенности работы SSH.

В частности, при попытке соединения с сервером, ssh-клиент автоматически последовательно отправляет все имеющиеся открытые ключи пользователя — если очередной ключ не подошёл, отправляется следующий и т.д. В том числе отправляются открытые ключи, используемые для GitHub. Так как GitHub предоставляет доступ к открытым ключам пользователей, в сервисе whoami.filippo.io используется данная возможность и осуществляется сверка переданных в рамках текущего сеанса ключей с содержимым базы ключей GitHub. В случае совпадения ключа, загружаются и выводятся данные из профиля на GitHub.

Для запрета отправки всех открытых ключей с явной привязкой заданных ключей к хостам, в .ssh/config можно указать:

      IdentitiesOnly yes      Host github.com          IdentityFile ~/.ssh/id_rsa  

Исходные тексты сервиса можно загрузить здесь.

©  OpenNet