Написать пост

У Яндекс.Еды украли данные пользователей. Как избежать таких ситуаций?

Аватарка пользователя sudo >: )

Данные пользователей оказались в открытом доступе. В утечке виновен один из сотрудников компании. Узнали, как можно избежать утечки данных

У Яндекс.Еды украли данные пользователей. Как избежать таких ситуаций?

В марте у Яндекс.Еды случилась утечка данных: имена, адреса и мобильные телефоны 5 миллионов пользователей оказались в открытом доступе. Мы узнали у экспертов по безопасности данных, как предположительно произошла утечка и что делать, чтобы уберечь данные пользователей.

Я работаю в отделе антифрод и основная задача – обеспечение безопасности операций. До этого работал в Сбербанке и застал большую утечку данных изнутри в 2020 году.

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

Отвечая на вопрос – как именно сотрудник Яндекс.Еды смог добраться до данных из базы можно предположить несколько вариантов.

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

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

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

Можно ли не отдавать свои данные корпорации и хранить личную информацию только на смартфоне? Краткий ответ на такой вопрос – да, можно. Вполне возможно хранить всю личную информацию на телефоне, а на сервер отправлять какой-то обезличенный токен. Однако в таком случае потеряется часть функциональности. Например вы подключаетесь с нового устройства и вам будет нужно вбивать все свои личные данные. А также не стоит забывать, что Яндекс занимается анализом данных для оптимизации своих рекомендательных и рекламных алгоритмов. Анализировать “обезличенные” данные пользователей можно только имея их на своей стороне. Плюс хранение данных пользователя на устройстве увеличит количество памяти, которое будет занимать приложение и количество сетевого трафика для неочевидных функций, где ваша информация потребуется на другом устройстве. Именно поэтому компаниям не выгодно хранить данные пользователей удаленно на устройствах.

Как можно защитить БД с помощью современных технологий? На самом деле все необходимое уже придумано и реализовано. Шифрование данных доступно, разбиение базы физически на разные сервера, чтобы даже доступ к одному элементу не дал доступа ко всей картине данных. Вопросы к тому – как именно собрать систему, чтобы ей было удобно пользоваться и она была безопасной.

К сожалению безопасность системы рассчитывается по самому слабому звену этой системы. А самым слабым и в то же время незаменимым звеном оказывается человек.

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

Есть еще третий вариант – сотрудник имел доступ к базе данных и осуществил выборку данных с преступной целью. Но я считаю этот вариант маловероятным: на мой взгляд, инцидент с утечкой данных из почты «Яндекса», раскрытый в 2021, должен был ниверилировать подобную возможность.

Данные хранились на серверах Яндекса. Но можно ли сделать так, чтобы личная информация клиента хранилась исключительно на смартфоне клиента? К сожалению, это затруднительно. Как курьер узнает номер телефона и адрес доставки клиента, если телефон потеряет сеть?

Защитить данные помогут не конкретные технологии, а скорее процессы:
– Доступ к данным должен регламентироваться и жестко контролироваться;
– Ограничивать, какие данные для каких задач передаются. Например, если это были сырые данные для аналитики – убирать из них не относящиеся к решаемой задаче поля.
– Использовать контролируемые средства передачи данных, исключающие прямой доступ к файлу с данными.

Возможно ли сделать так, чтобы ни один сотрудник не мог получить доступ к незашифрованным данным? Я допускаю, что такое возможно сделать. Однако это решение будет очень сложным, дорогим и потенциально медленным. Что неизбежно выльется в повышение стоимости сервиса для пользователей и снижении качества.

Следите за новыми постами
Следите за новыми постами по любимым темам
2К открытий2К показов