Разработка → God mode ВКонтакте

apiwoman 23 марта в 18:26 108k
В ночь с 20 на 21 марта из-за ошибки в коде все пользователи ВКонтакте на четыре минуты получили служебные права. Мы закончили оценивать потери и отвечаем на злободневные вопросы.

Что случилось?


Случился фатально невнимательный merge ветки, в которой переделывали один из внутренних интерфейсов. В результате любой пользователь стал считаться сотрудником. В некоторых случаях — сотрудником со всеми существующими правами.

У любого модератора есть все эти кнопки?


Полного комплекта прав, со списком кнопок на весь экран, нет ни у кого. Мы разделяем уровни ответственности (да и работать с таким интерфейсом было бы неудобно).

Есть люди, которые проверяют заявки на добавление вузов, есть переводчики, есть агенты поддержки и модераторы жалоб — у каждого отдела свой набор полномочий. Доступ к правам любого уровня сотрудник получает после подписания NDA. Все без исключения действия логируются. За применение магии вне Хогвартса предусмотрен огромный штраф (и перспектива судебного разбирательства).

Кто-то в ВК смотрит мои приватные фотографии и читает переписку?


Нет таких прав, которые позволили бы администратору в личных целях посмотреть Вашу приватную фотографию или прочитать сообщение. В природе не существует людей, абсолютно равнодушных к подобным соблазнам. Мы предпочитаем не проверять своих сотрудников на прочность, поэтому такой возможности нет даже в теории. Кроме того, действия с правами видны всем коллегам — забанить тайком соседа-скандалиста тоже не выйдет.

Есть автоматика для удаления разного рода спама из любых разделов сайта, включая рассылки в личных сообщениях. Это сложная система, которую в режиме 24/7 корректируют наши аналитики. Она напоминает фильтр нецензурных выражений, который есть на любом приличном форуме, только всё гораздо мощнее и в реалтайме адаптируется под тренды спамеров.

Ещё есть отдельные жалобы самих пользователей на любой доступный им контент. Если Вы прислали другу фишинговую ссылку, а друг на неё пожаловался, модератор увидит сообщение с этой ссылкой в жалобе. И только его. Более того, невозможно предугадать, к кому из модераторов оно попадёт: жалобы распределяются рандомно среди десятка сотрудников на смене.

Примерно так же дело обстоит с приватными фотографиями — кнопка со страшным названием «Открыть приватные фото» работает только с точной ссылкой, которую предоставляет сам владелец фотографии (например, для восстановления доступа к аккаунту, попросив ссылку у друга, который видит скрытый альбом) или автор жалобы на пресловутое детское порно. Сотрудник не может открыть таким способом произвольный снимок с хоть какой-нибудь приватностью.

Что сделали пользователи с правами


Как Вы помните, все действия с правами логируются. Отчасти из-за этого вакханалия продлилась всего четыре минуты — логи удивились такому количеству новых сотрудников, и сайт лёг.

За эти долгие 240 секунд новоиспечённые администраторы успели немало:
  • удалить с десяток сообществ и постов, один профиль, несколько фотографий и видеозаписей;
  • заблокировать одно приложение;
  • пополнить рекламный бюджет четырёх кабинетов;
  • загрузить картинку с кроликами в FAQ Поддержки;
  • почитать мануал спам-аналитиков (мы получили несколько просьб рассмотреть кандидатуру на эту должность);
  • заложить несколько новых городов в географической базе;
  • создать кучу репортов в публичном баг-трекере и проставить им статусы (этот раздел всё ещё закрыт для наведения порядка, ему досталось больше остальных).

Чего не сделали пользователи с правами


Не изучали персональные данные других людей. Дополнительные проверки доступа к sensitive data работали, и посмотреть чужой IP-адрес или номер телефона никто не смог.

Что сделали мы


Откатились и начали изучать логи. Предстояло понять главное — была ли утечка персональных данных. Мы не могли проверить это мгновенно, поэтому запустили уничтожение автоматикой всех подряд скриншотов интерфейса, чтобы сдержать возможный слив sensitive data.

Как только стало достоверно известно, что утечки нет, выпиливание скриншотов остановили.

Вернули утраченный контент, проанализировали причины случившегося и спланировали меры защиты от таких ситуаций.

Чего мы не сделали


Упустили кое-что очень важное. И хотим сделать это сейчас.

Мы приносим свои извинения всем пользователям: тем, кого затронула эта ошибка, и тем, кого она теоретически могла затронуть. Всем, кто доверяет нам и использует ВКонтакте как площадку для общения, бизнеса или разработки.

Эти четыре минуты показали, что нам нужно усовершенствовать процесс деплоя, чтобы минимизировать риск ошибки. И мы уже начали это делать.

Мы будем двигаться в сторону открытости. О технологиях и внутренней кухне ВКонтакте снаружи известно немного — так было всегда. Вот и в этот раз, когда завеса случайно приоткрылась, возникло множество домыслов на грани теорий заговора. Мы готовы начать говорить о том, что находится за фасадом продукта. И нам действительно есть что рассказать.

После долгого перерыва снова приветствуем сообщество Хабра в возрождённом блоге ВКонтакте и будем рады обратной связи.
Проголосовать:
+202
Сохранить: