1 июня некоторые пользователи Github получили уведомления об отзыве своих SSH-ключей. Теперь понятно, кто виноват в этом. Это хакер Бен Кокс (Ben Cox), который вытянул все ключи и нашёл среди них сотни уязвимых.
Сейчас он признался и объясняет, зачем это сделал. Кокс начинает с того, что на Github в доступе для каждого аккаунта лежат публичные SSH-ключи тех, кто авторизован на нём (например, torvalds.keys).
Это хорошая вещь для передачи ключа при организации доступа к аккаунту, но в то же время позволяет потенциальному злоумышленнику собрать большую базу публичных SSH-ключей.
Бен Кокс наткнулся на эту функцию в 2013 году, но тогда очень мало людей заходили на Github в режиме SSH, а вот сейчас — другое дело, ключи есть почти у всех, кто совершал коммиты. Так что Кокс засучил рукава и взялся за работу.
Так, по состоянию на 9 января 2015 года
Имеют ключи: 1 372 262
Не имеют ключи: 142 180
Самым популярный тип, ожидаемо, RSA.
Статистика по длине ключа.
Семеро разработчиков выбрали ключ длиной 512 бит, а двое — 256 бит.
Затем Бен вспомнил про баг Debian OpenSSH, где источник случайных чисел был скомпрометирован до такой степени, так что система могла выдавать только 1 из 32000 возможных ключей в наборе. Проверив по базе тех скомпрометированных ключей, автор нашёл ещё довольно много пользователей, которые используют такие скомпрометированные ключи. В том числе кто-то, кто добавляет код в репозитории «Яндекса».
Всё это совсем не радует. Если даже на Github ситуация с защитой данных не идеальна, что уж говорить обо всех остальных, далёких от технической элиты.
Фото: uxutdallas@flickr