Публикация кода: Яндекс раскрывает первые результаты расследования
На прошлой неделе в открытом доступе были обнаружены фрагменты программного кода некоторых сервисов Яндекса. Мы продолжаем внутреннее расследование инцидента и считаем важным поделиться первыми результатами.
Что мы обнаружили
Опубликованные фрагменты действительно взяты из нашего внутреннего репозитория — инструмента, с помощью которого разработчики компании работают с кодом. При этом содержимое архива соответствует устаревшей версии репозитория — она отличается от актуальной версии, которая используется нашими сервисами.
Первичный анализ показал, что опубликованные фрагменты не несут какой-либо угрозы для безопасности наших пользователей или работоспособности сервисов. В то же время мы решили, что сложившаяся ситуация — повод провести масштабный аудит всего содержимого репозитория.
К сожалению, в ходе аудита мы выявили в коде несколько случаев серьезного нарушения наших собственных политик, в том числе Принципов Яндекса и Правил корпоративной этики.
Вот несколько примеров:
● В коде содержались контактные данные некоторых партнёров. Например, водителей — в некоторых случаях их контакты и номера водительских удостоверений передавались из одного таксопарка в другой.
● Зафиксированы случаи, когда логику работы сервисов корректировали не алгоритмическим способом, а «костылями» (на языке разработчиков так называется временное решение, реализованное неоптимально и впопыхах). Через такие «костыли» исправляли отдельные ошибки системы рекомендаций, которая отвечает за дополнительные элементы поисковой выдачи, и регулировали настройки поиска по картинкам и видео.
● В сервисе Яндекс Лавка существовала возможность ручной настройки рекомендаций любых товаров без пометки об их рекламном характере.
● Наличие приоритетной поддержки для отдельных групп пользователей в сервисах Такси и Еды.
● Некоторые части кода содержали слова, которые никак не влияли на работу сервисов, но сами по себе оскорбительны для людей разных рас и национальностей.
Важно отметить, что опубликованные фрагменты кода содержат в том числе и тестовые алгоритмы, которые использовались только внутри Яндекса для проверки корректности работы сервисов. Например, для улучшения качества активации ассистента и уменьшения количества ложных срабатываний в бета-версии для сотрудников применяется настройка, которая включает микрофон устройства на несколько секунд в случайный момент без упоминания «Алисы».
Один из принципов Яндекса гласит:
Наша работа строится на принципах честности и прозрачности. Мы исходим из того, что любой внутренний диалог, документ или исходный код при определённых обстоятельствах может стать публичным. И если это случится, нам не должно быть стыдно.
Сейчас нам очень стыдно, и мы приносим извинения нашим пользователям и партнёрам. Считаем необходимым рассказать, почему такое происходило, и что в связи с этим мы намерены предпринимать.
Почему это произошло и какие меры мы предпримем
Большинство выявленных проблем связано с попытками вручную внести в сервис улучшение или устранить ошибку. Ошибки — часть жизни. Их не избежать, если у тебя не статичный, а постоянно развивающийся продукт. В компании долгое время существует подход Zero Bug Policy — политика нулевой терпимости к «багам». Реализация подхода на практике приводила к тому, что часть «багов» исправлялись с помощью временных решений, устраняющих конкретную проблему или неправильный результат работы алгоритма. Яндекс сохранит Zero Bug Policy, но способы ее реализации будут пересмотрены.
В ходе анализа и обсуждения оказавшегося в открытом доступе кода мы вновь столкнулись с вопросами техноэтики. Насколько используемое решение соответствует общечеловеческой морали и нашим собственным принципам? Насколько решение понятно для наших пользователей и партнёров? Стало очевидно, что руководство компании уделяло мало внимания этим вопросам.
С вопросами техноэтики мы сталкивались и раньше. Например, в 2020 году в Яндексе решили, что поиск не должен помогать находить людей по фото, так как это нарушает их персональную безопасность. Или, например, был закрыт проект по оценке потенциальных заёмщиков банков. На основе этих решений были сформулированы принципы и системный подход. Но другие проблемы не получили должного внимания.
Сегодня Яндекс возобновляет работу по формированию стандартов и принципов техноэтики. Они будут опубликованы на сайте компании и станут частью наших общих политик. Все фрагменты кода, которые противоречат им, будут исправлены.
При этом мы считаем важным сохранить внутри Яндекса открытую среду разработки, в частности — единый репозиторий. Она остаётся важнейшей частью нашей внутренней культуры. В ближайшее время мы создадим новую службу, которая будет отвечать за соответствие кода нашим принципам и политикам. Кроме того, мы уже переносим из репозитория все данные, которые не имеют отношения к алгоритмам и настройкам сервисов. Эти данные получат дополнительную защиту.
Ещё раз приносим свои извинения всем, кого могла затронуть эта ситуация.
© Яндекс