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, вы не можете решить, что их видит кто-то, кто должен был их видеть.

Аутентификация

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

Авторизация

Этот шаг отвечает на вопрос — что можно сделать с API. Шаги для обеспечения безопасности этого процесса включают двухфакторную авторизацию, токены и одноразовые пароли.

6. Протестируйте приложение

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

Вот способы, которыми вы можете убедиться, что ваше приложение проверено на безопасность:

  • Тестирование на проникновение — это означает исследование сети и системы для выявления слабых мест.
  • Используйте эмуляторы, чтобы проверить, как приложение работает в смоделированной среде.
  • Подробно протестируйте вопросы авторизации и аутентификации, управления сеансами и безопасности данных.

Итак, это были 6 способов, которые вы могли бы использовать в процессе разработки вашего приложения, чтобы гарантировать, что ваше приложение не окажется в центре внимания.

Удостоверьтесь, что вы включились вовремя, пока у вас есть время.