Небезопасный Сервис О Безопасности

Во время собеседований часто всплывает вопрос о вашей самой большой профессиональной неудаче.

Я сам несколько раз просил кандидатов говорить об этом при проведении собеседований.

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

Есть у меня и своя история провала — о сомнительных решениях, которые привели к утечке персональных данных пользователей.

Сегодня эти решения вызывают недоумение, но пять лет назад они казались нашей неопытной команде приемлемыми.

Мы сделали продукт про безопасность.

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

Продукт включал в себя приложения Android/iOS, как спереди, так и сзади.

Я писал мобильные телефоны, двое моих коллег занимались передней и задней частью соответственно.

Сервис был сделан для другой страны.

Для запуска в производство был установлен строгий срок – пресс-конференция, на которой представители заказчика – общественные деятели этой страны – планировали представить изделие публике.

Утро перед пресс-конференцией.

Релизы выпускались в AppStore и Google Play заранее, были развернуты лицевая и обратная сторона.

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

Все началось с крутой идеи скинуть производственную базу перед пресс-конференцией.

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

Да, в сервисе уже были реальные пользователи, но это не страшно – они создадут новые аккаунты, их не так уж и много.

Согласовав маневр с заказчиком, мы очистили базу.

Началась пресс-конференция, а вместе с ней стали появляться и первые регистрации.

Во время просмотра прямой трансляции я взял телефон, чтобы создать новый профиль.

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

Но этого не произошло.

Более того, вместо своего аккаунта я увидел профиль какого-то парня.

Проверил тестовый телефон под другой учетной записью - еще один неизвестный профиль.

Заказчик также заметил проблему и связался с нами.

Мы смотрели друг на друга круглыми глазами и не понимали, как такое могло произойти.

Опытные разработчики из числа читателей наверняка уже догадаются, где мы подкорректировали дизайн базы и API, чтобы получилось то, что получилось.

В игру вступили два фактора — целочисленный идентификатор пользователей и вечный токен, который был уникальным образом сгенерирован на основе этого идентификатора.

Поясню подробнее на примере.

Вася создал аккаунт. База данных присвоила Васе id номер 1, сервер взял этот id, сгенерировал из него токен и отдал его Васе.

Вася сохранил токен и идет с ним на сервер за приватными данными.

Теперь мы очистили базу данных.

Аккаунта Васи больше не существует, но токен по-прежнему хранится на его устройстве.

В сервисе регистрируется первый новый пользователь — Аня.

База данных теперь дает Ане идентификатор номер 1, сервер генерирует идентификатор из этого такой же жетон.

В результате токен Ани остается у Васи, и Вася может делать запросы от имени ничего не подозревающей Ани.

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

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

За годы работы в IT я убедился, что любой практический опыт, а особенно опыт ошибок, со временем перерастает в профессиональное чутье.

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

Люди совершают ошибки, это нормально.

Не анализировать свои ошибки – это ненормально.

Теги: #информационная безопасность #Карьера в ИТ-индустрии #api #Хранение данных #безопасность #утечка данных #вопросы на собеседовании #ошибки и грабли #истории разработчиков #неудачи

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.