«Утечка» базы специалистов Хабр Карьеры
Сначала в телеграм-каналах, а потом и на Хабре появилась информация об утекших данных пользователей с сайта Хабр Карьеры. Считаем нужным дать более развёрнутый комментарий, а также рассказать о том, как устроены настройки приватности на сервисе.
Утечка
Сразу доза успокоительного: каких-либо следов проникновений в базу данных сервиса мы не обнаружили.
Что же тогда произошло? Ни в коем случае не хочется переваливать вину на самих пользователей, но всё же оказавшаяся в «утечке» информация ещё до этого была доступна в сети. Просто кто-то решил её собрать и со стороны сайта этому очень непросто противостоять.
Поэтому мы решили проинформировать наших текущих и будущих пользователей, как на Хабр Карьере устроена приватность. Чтобы, во-первых, всем было понятно, о парсинге какой именно информации идёт речь. А, во-вторых, чтобы зная это, каждый более сознательно управлял своей приватностью в сети.
Как устроена приватность на Хабр Карьере
На сервисе есть две основные настройки приватности: для всего профиля в целом и для контактной информации.
Пользователь может выбрать, кому показывать свой профиль:
- Всем, в том числе гостям и роботам (значение по умолчанию при регистрации)
- Только авторизованным пользователям
- Друзьям и кураторам вакансий с моим откликом
- Никому не показывать
Контакты пользователя — часть его профиля, и для них есть дополнительные настройки приватности. Пользователь может выбрать, кому показывать свою контактную информацию:
- Только авторизованным пользователям
- Друзьям и кураторам вакансий с моим откликом (значение по умолчанию при регистрации)
- Никому не показывать
Для настройки приватности контактов мы в своё время намеренно убрали настройку «Всем, в том числе гостям и роботам», чтобы контактная информация не индексировалась поисковиками. Ведь если последнее происходит, то пользователь не может быстро убрать свои контактные данные из сети. Он их скрывает на Карьере, но они всё равно ещё довольно долго остаются висеть в индексах поисковиков.
Также пользователь не может поставить контактной информации более мягкие условия приватности, чем он это сделал для своего профиля в целом. Например, если у профиля стоит приватность «Друзьям и кураторам», то у контактов уже нельзя поставить настройку «Только авторизованным».
Пользователь видит, какие настройки приватности профиля и контактов у него стоят, в левой колонке на главной своего профиля. Текст с описанием каждой настройки кликабельный — ссылка отправляет пользователя на страницу, где можно поменять соответствующую настройку.
На текущий момент у нас следующая статистика по приватности пользователей:
Приватность профилей:
- 90% видны всем (значение по умолчанию при регистрации)
- 6% видны авторизованным
- 1% видны друзьям и кураторам вакансий с откликом
- 3% скрыты ото всех
Приватность контактов:
- 25% видны авторизованным
- 75% видны друзьям и кураторам вакансий с откликом (значение по умолчанию при регистрации)
- < 1% скрыты ото всех
Как видно, 10% пользователей предпочитают после регистрации выбирать более жёсткие настройки приватности своих профилей в целом, а 25% — более мягкие настройки приватности своих контактных данных.
Таким образом, любой пользователь, залогинившийся на сайте, может просматривать (и сохранять) профили почти всех пользователей и контактную информацию четверти пользователей. Что, собственно, и произошло.
Что в архиве
До содержимого архива, выложенного на одном из форумов, мы так и не добрались. Но судя по предоставленной сопроводительной информации — там представлена как раз информация, доступная в профилях пользователей другим зарегистрированным пользователям сервиса. У нас есть закрытый API для работы со своими вакансиями и откликами на сторонних площадках, но данные из выложенного архива не из этого API — просто бот ходил по страницам, парсил их и складывал в файлик. Судя по числу записей эта база собиралась в течение долгого времени (чтобы не привлекать внимания).
Конкретный пример:
И вот эта анкета на сайте:
Что мы предпримем
Изначально было понятно, что защититься от парсинга технически очень сложно (а порой — просто нецелесообразно). Статьи на Хабре это только подтверждали:
Тем не менее мы всё же проконсультировались с несколькими людьми, которые занимаются этим не в качестве хобби, а в промышленных масштабах. Максим makasin4ik из xmldatafeed.com рассказал, что сейчас парсят всё и вся, но вместе мы придумали несколько нюансов, которые будут доработаны. Вот некоторые из них:
- Лимит на количество запросов под авторизованным пользователем. На том же HH.ru такой лимит сейчас составляет 500 анкет в сутки, у нас он будет меньше.
- Совет из разряда «Не можешь победить — возглавь»: предоставление платного API для легального парсинга базы.
- Дополнительно регулярно информировать тех пользователей, которые указали о себе много публичной контактной информации.
Очень бы не хотелось, чтобы наши сервисы подвергались реальным техническим угрозам, поэтому в скором времени также планируем запустить bounty-программу. А пока, если вы нашли уязвимость, сообщите нам в форму обратной связи — найдём общий язык и всё исправим.
Спасибо за внимание!