Uber Data Breach: как предотвратить подобные инциденты с вашим приложением
Опубликовано: 2017-11-28В 2016 году Uber потерял информацию о 57 миллионах пользователей и водителей из-за хакеров, которым они затем заплатили 1 00 000 долларов за удаление данных.
Инцидент стал известен несколько дней назад, когда их генеральный директор Дара Хосровшахи опубликовала пост, проливающий свет на утечку данных . И с тех пор в центре внимания оказался вопрос безопасности приложений.
Uber — не первый случай утечки данных, было несколько случаев, когда личные данные пользователей были скомпрометированы: событие, которое заставило людей опасаться использования мобильных приложений, которые запрашивают их информацию.
Вот изображение, показывающее позицию пользователей мобильных приложений в свете проблем безопасности приложений:
Видите, как это ужасно?
Но вы можете не допустить, чтобы ваше приложение стало следующим кейсом, предупреждающим бренды о том, что их игра в области безопасности приложений должна быть на высоте.
Вот как -
1. Защитите свое приложение с нуля
В исходном коде приложения существует ряд уязвимостей, но большинство компаний, разрабатывающих приложения, сосредотачиваются только на сетевой части, сосредотачиваясь на внедрении лучших практик безопасности мобильных приложений . Есть так много мест, которые могут стать основой для утечки данных — ошибка кодирования, тестирование кода и т. д.
Вот что вы можете сделать, чтобы защитить свое приложение со дня его существования:
- Защитите код своего приложения с помощью шифрования. Есть два способа сделать это — минификация и обфускация, но их недостаточно. Рекомендуется использовать хорошо поддерживаемые алгоритмы в сочетании с шифрованием API.
- Часто запускайте сканирование исходного кода ваших кодов
Признаком защищенного кода является то, что он остается безопасным даже после переноса между операционными системами и устройствами. Создание гибкого кода очень помогает на этом фронте.
2. Защитите сетевое соединение с серверной части
Облачные серверы, к которым обращается API вашего приложения, должны иметь надлежащие меры безопасности для предотвращения несанкционированного доступа и защиты данных пользователей. Проверка API должна осуществляться таким образом, чтобы ни одна конфиденциальная информация не передавалась от клиента к базе данных или серверу приложения.
Чтобы сделать этот шаг успешным, необходимо, чтобы ваш процесс разработки серверной части был надежным .
Вот как защитить сетевое соединение
- Создавайте зашифрованные контейнеры для хранения документов и данных
- Проведите серию оценок уязвимостей и тестов на проникновение в вашу сеть, чтобы убедиться, что данные защищены.
- Шифруйте базу данных и соединения с помощью SSL, VPN и TLS для дополнительной безопасности.
- Применить федерацию — мера, которая распределяет ресурсы по серверам, чтобы они не находились все в одном месте, при этом отделяя ключевые ресурсы от пользователей.
3. Наличие процессов аутентификации, идентификации и авторизации
Вот как сделать ваше приложение идентифицированным, аутентифицированным и авторизованным
- Убедитесь, что API, которые использует ваше приложение, являются именно теми, которые необходимы для работы, и предоставляют доступ только к тем частям, которые находятся в фокусе, а не ко всем функциям приложения.
- Существует ряд инструментов и протоколов, которые вы можете использовать и которым обязательно следуете, когда ваше приложение находится на стадии разработки. Они здесь -
- JSON Web Token — легкий инструмент, используемый для шифрования обмена данными, его простая реализация делает его идеальным для мобильных приложений.
- OpenID Connect — это протокол, который позволяет пользователям повторно использовать свои учетные данные в разных доменах с помощью токена идентификатора, чтобы сэкономить время при регистрации и регистрации с одной и той же информацией каждый раз.
- OAuth2 — протокол используется для управления безопасным соединением с помощью одноразового пользовательского токена. После установки фреймворка на сервере авторизации он позволит вам предоставлять вашим пользователям разрешение между конечными пользователями и клиентом путем сбора учетных данных, таких как 2-факторные SMS-вопросы.
4. Проведите полный набор тестов
В отличие от веб-приложения, большая часть данных мобильного приложения сохраняется локально, а поскольку данные хранятся на устройстве, пропускная способность, производительность и качество которого различаются, риск взлома намного выше.
Наряду с фактором нестабильности в устройствах, есть также некоторые приложения, которые, как правило, публикуют данные без ведома пользователей, такие как их пол, возраст, использование устройства и т. д.
Способы обеспечения безопасности данных клиентов в приложении —
- С помощью шифрования на уровне файлов вы можете защитить данные по каждому файлу. Это один из способов зашифровать данные в состоянии покоя, чтобы они не были прочитаны при перехвате.
- Такие инструменты, как платформа Appcelator, обеспечивают безопасность мобильных данных, хранящихся локально.
Управление ключами должно быть вашим приоритетом. Основой сильного алгоритма являются его столь же сильные сертификат и ключи.
5. Запланированная стратегия безопасности API
Поскольку разработка мобильных приложений тесно связана с API, большая часть обеспечения безопасности приложения зависит от обеспечения безопасности его API. API передают данные между приложениями, облаком и между несколькими пользователями. Все вовлеченные стороны должны быть идентифицированы и авторизованы, чтобы видеть и использовать данные. API — это краеугольный камень функциональности, контента и данных, поэтому обеспечение его безопасности может занять много времени.
В API есть три этапа, о которых вам нужно будет позаботиться, а именно: идентификация, аутентификация и авторизация.
Давайте посмотрим на элементы всех трех ниже —
Идентификация
Первая часть процесса, взлом идентификации, может быть предотвращена путем внедрения ключей API. Эти ключи представляют собой случайные уникальные идентификаторы, которые устраняют необходимость в паролях.
Хотя вы можете защитить данные при просмотре с помощью ключей API, вы не можете решить, что их видит кто-то, кто должен был их видеть.
Аутентификация
Это процесс, который гарантирует, что информацию увидит тот, кто должен был ее просмотреть. На этом этапе вы устанавливаете имена пользователей и пароли, чтобы обеспечить дополнительный уровень безопасности системы.
Авторизация
Этот шаг отвечает на вопрос — что можно сделать с API. Шаги для обеспечения безопасности этого процесса включают двухфакторную авторизацию, токены и одноразовые пароли.
6. Протестируйте приложение
Независимо от того, является ли ваше приложение гибридным, нативным или веб-приложением, оно должно быть протестировано не только с точки зрения удобства использования и функциональности, но и с точки зрения безопасности. Существует ряд шагов, которые вы должны выполнить, чтобы гарантировать качество вашего приложения и его безопасность.
Вот способы, которыми вы можете убедиться, что ваше приложение проверено на безопасность:
- Тестирование на проникновение — это означает исследование сети и системы для выявления слабых мест.
- Используйте эмуляторы, чтобы проверить, как приложение работает в смоделированной среде.
- Подробно протестируйте вопросы авторизации и аутентификации, управления сеансами и безопасности данных.
Итак, это были 6 способов, которые вы могли бы использовать в процессе разработки вашего приложения, чтобы гарантировать, что ваше приложение не окажется в центре внимания.
Удостоверьтесь, что вы включились вовремя, пока у вас есть время.