Где на самом деле происходят утечки
Взломы по сценарию из фильмов — редкость. Чаще данные утекают из-за банальных вещей: пароль к базе хранится прямо в коде приложения, у сервера открыт доступ из интернета без ограничений, подрядчик ушёл, а его доступы остались, либо резервные копии лежат в общедоступной папке.
Поэтому безопасность — это не одна «галочка», а набор дисциплин на каждом уровне: само приложение, сервер, база данных и процессы в компании. Ниже — что именно мы закладываем.
Что защищаем на каждом уровне
- В приложении
- Секретные ключи не хранятся в коде, токены сохраняются в защищённом хранилище телефона, соединение только по HTTPS.
- На сервере
- Проверка прав на каждый запрос: клиент видит только свои заказы. Ограничение частоты запросов защищает от перебора.
- В базе данных
- Доступ только с сервера приложения, шифрование чувствительных полей, раздельные учётные записи.
- Резервные копии
- Автоматические копии в отдельном месте и проверка восстановления — копия, которую нельзя развернуть, бесполезна.
- Вход пользователей
- Код по SMS или в мессенджере, ограничение попыток, завершение сессии на потерянном телефоне.
- Доступы команды
- Права по ролям, журнал действий администраторов и немедленное отключение при увольнении.
Что спросить у подрядчика
- Где физически будет размещён сервер и кто имеет к нему доступ
- Как хранятся пароли и ключи и можно ли вам передать все доступы
- Есть ли ежедневные резервные копии и проверялось ли восстановление
- Как устроено удаление аккаунта и данных по запросу пользователя
- Кто отвечает за обновление библиотек и закрытие найденных уязвимостей
- Что произойдёт с данными, если вы решите сменить разработчика
Что делаем перед запуском
Проверка прав доступа1 день
Пробуем получить чужие данные под обычным аккаунтом — так находят самые опасные ошибки.
Проверка зависимостей2 часа
Обновляем сторонние библиотеки с известными уязвимостями.
Нагрузка и перебор1 день
Проверяем, что сервер не падает от потока запросов и блокирует подбор кодов.
Документы1 день
Политика конфиденциальности, согласие, регламент хранения, описание процедуры удаления.