Москва

ruru

Вверх

Советы по созданию безопасного мобильного приложения на Android
653
17.09.2024
Советы по созданию безопасного мобильного приложения на Android
Плохая безопасность приложения приводит к утечке данных и снижению репутации. Поэтому сегодня мы обсудим, как даже начинающий разработчик может обезопасить свой продукт.
17
сен
17.09.2024

Советы по созданию безопасного мобильного приложения на Android

.
Что мы понимаем под безопасностью мобильных приложений?

Мобильные приложения для Android должны обладать определенной степенью безопасности. В 2019 году хакеры атаковали более 19 млн пользователей РФ. Часть проблем была связана с сохранением большого количества личных данных в кэше, а также отсутствием проверок безопасности.

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



iOS в статье затрагиваться не будет - в этой ОС намного сложнее проводить взломы.

1. Что мы понимаем под безопасностью мобильных приложений?

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

          Что делать для защиты?

Поделимся тем, чем должен заниматься Android-разработчик.

          Тестирование

До 40% разработчиков не тестируют свои мобильные приложений на предмет безопасности. Поэтому базовая проверка будет намного лучше, чем ее отсутствие.

          Предоставление правильных разрешений

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

          Защищенные хранилища для конфиденциальных данных

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



Система хеширования используется в блокчейне.

          Хранение в файлах кэша только не конфиденциальных данных

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

          Использовать многофакторную аутентификацию и предупреждения

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

          Обфускация кода

Обфускация - это шифрование кода. Она нужна для того, чтобы когда злоумышленники получили к нему доступ, они не понимали, что читают. Таким образом, приложение будет намного сложнее перепроектировать. Для обфускации используйте приложение ProGuard. Можно сделать это вручную, но на первых порах такой подход будет занимать слишком много времени.



Уже давно Playmarket не допускает вирусные приложения в каталог. Но от источников в интернете никто не застрахован.

          Работа с внешними хранилищами

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

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

Эти два совета - неплохой способ перенести часть нагрузки из внутренних хранилищ.

          Использование HTTPS

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



HTTPS - лишь одна из линий обороны. Шифрование можно обойти. К примеру, система чувствительна к изменениям трафика. Чем–то это напоминает DDos-атаку - некоторые части приложения могут работать некорректно.

          Принудительный выход из сеанса

В этом случае есть две стадии:

  1. Человек зарегистрировался, но долгое время не заходил в аккаунт через приложение. В таком случае можно принудительно осуществлять выход из системы. Так злоумышленникам будет сложнее получить доступ к данным: в случае проникновения в приложение данные от аккаунта получить не выйдет.
  2. Принудительный выход в случае взлома. Дополнительная мера безопасности, препятствует воровству аккаунтов.

Также можно придумать систему восстановления доступа, для этого используется email.

Разбираем тестирование системы безопасности

Есть несколько рабочих способов это сделать. Но все они направлены на анализ кода.

          Статистическое тестирование

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



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

          Динамическое тестирование

Здесь код, наоборот, оценивается в меньшей степени. Больше внимание обращают на то, как ведет себя приложение. То есть мы смотрим на систему с точки зрения пользователя. Например, у него украли аккаунт, поэтому нужно его вернуть путем восстановления логина и пароля. Мы проверяем, как работает этот элемент в самом приложении.

          Инструменты автоматического сканирования

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

          Проверка на уязвимости

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

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

  • Veracode. Специализируется на статистическом и динамическом анализе кода. Помогает улучшить безопасность в том числе с помощью искусственного интеллекта.
  • Netsparker. Это облачный сервис, занимающийся обнаружением уязвимостей. Быстрое сканирование поможет избежать распространенных ошибок.
  • Acunetix. Еще одна платформа, способная помочь найти бреши в приложении. Она имеет несколько типов сканирования, а также работает с файлами.

При создании приложения проверка кода должна быть одним из этапов разработки.



Лучше использовать ручную и автоматическую проверки, чтоб защититься от человеческого фактора.

4 совета

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

  1. Обезопасьте данные кэша по максимуму. К примеру, в некоторых приложениях после выхода пользователя из аккаунта он все равно остается в приложении. Над этим нужно поработать, чтобы таких проблем не было.
  2. Использование приложений по повышению безопасности. Они могут иметь разное предназначение: помогать проанализировать код и выявить слабые места в безопасности. обеспечить хорошее тестирование и т.д.
  3. Если в приложении есть транзакции - оно с большей вероятностью станет целью для злоумышленников. Поэтому здесь безопасности нужно уделять особое внимание.
  4. Напоминайте пользователям о том, что не нужно передавать конфиденциальные данные другим.

Также помогает консультация со специалистами на тему безопасности. Они могут дать дельные советы.


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

Почитайте нас еще!
24.04.2025
EdTech в CODDY: какие образовательные технологии мы используем
Невозможно обучать детей IT-технологиям без использования этих самых технологий. Рассказываем, какие инновационные методики мы применяем.
22.04.2025
Minecraft — революция в обучении и развитии детей
О Minecraft слышали практически все. Однако знаете ли вы, что любимая игра вашего ребенка может стать отличной площадкой для обучения новым навыкам? Рассказываем, как Minecraft стал главным амбассадором геймификации образования.
15.04.2025
Трехшаговый процесс поиска правды в интернете
Помогаем отличить правду от лжи в интернете. Рассказываем про фактчекинг и поиск первоисточников, объясняем важность изучения противоположных мнений и т.д.
10.04.2025
В потоке: как в CODDY удерживают концентрацию внимания у детей
Концентрация внимания во время занятий – ключевой фактор успеха в образовании. Рассказываем, какие подходы мы используем, чтобы наши уроки были интересны даже для самых маленьких.
Комментарии
Комментариев нет
Оставьте свой комментарий
Ваш комментарий принят и появится после прохождения модерации!
Исчерпан лимит на отправку комментариев
Площадки
Бонусы от друзей !
Подпишитесь на новости и получите бонусы от наших партнеров

Спасибо!
Заявка успешно отправлена!
Возникла ошибка. Сообщите, пожалуйста, администратору.
Вы отправили много заявок. Попробуйте позже
Ваше имя и фамилия *
Обязательно
Имя ребенка*
Обязательно
Возраст ребенка*
лет
Обязательно
E-mail*
Введен не верный e-mail
Ваш город
Обязательно
Запишите ребенка
на бесплатный урок!
Спасибо!
Заявка успешно отправлена!
Возникла ошибка. Сообщите, пожалуйста, администратору.
Вы отправили много заявок. Попробуйте позже
Обязательно
Введен не верный e-mail
+33
Обязательно
Промокод не применен
Промокод применен
Пробное занятие
Спасибо!
Заявка успешно отправлена!
Возникла ошибка. Сообщите, пожалуйста, администратору.
Вы отправили много заявок. Попробуйте позже
Ваше имя и фамилия
Обязательно
Ваш e-mail
Введен не верный e-mail
Ваш телефон
+33
Обязательно
Промокод
Промокод не применен
Промокод применен
Связаться с нами
Спасибо!
Заявка успешно отправлена!
Возникла ошибка. Сообщите, пожалуйста, администратору.
Вы отправили много заявок. Попробуйте позже
Обнаружены недопустимые символы в сообщении. Уберите все лишнее, оставьте только текст.
Ваше имя и фамилия
Обязательно
Ваш город
Обязательно
Ваш e-mail
Введен не верный e-mail
Сообщение
Обязательно
Предварительная запись
Спасибо!
Заявка успешно отправлена!
Возникла ошибка. Сообщите, пожалуйста, администратору.
Вы отправили много заявок. Попробуйте позже
Ваше имя и фамилия
Обязательно
Имя ребенка
Обязательно
Ваш город
Обязательно
Ваш телефон
Обязательно
Ваш e-mail
Введен не верный e-mail
Начало обучения
Май 2025
Июнь 2025
Июль 2025
Заказать звонок
Администратор свяжется с
вами в ближайшее время.
Что-то пошло не так, попробуйте отправить заявку позже.
Вы отправили много заявок. Попробуйте позже
Ваше имя и фамилия
Обязательно
Ваш телефон
+33
Обязательно
Оставить заявку
Администратор свяжется с
вами в ближайшее время.
Что-то пошло не так, попробуйте отправить заявку позже.
Вы отправили много заявок. Попробуйте позже
Ваше имя и фамилия
Обязательно
Ваш телефон
Обязательно
Оплатить курсы
Заявка подана, менеджер свяжется с вами в ближайшее время!
Получите бонус от наших партнеров.
Возникла ошибка. Сообщите, пожалуйста, администратору.
Вы отправили много заявок. Попробуйте позже
Имя и фамилия ребенка
Обязательно
Ваш телефон
Обязательно
Ваш e-mail
Введен не верный e-mail
Сумма для оплаты
Введите целое число
Оставить отзыв
Благодарим вас за отзыв.
Что-то пошло не так, попробуйте отправить заявку позже.
Вы отправили много заявок. Попробуйте позже
Ваше имя и фамилия
Обязательно
Ваш e-mail
Введен не верный e-mail
Ваше фото
Оцените школу
Оцените преподавателя
Отзыв
Обязательно
Спасибо!
Заявка успешно отправлена!
Close
По записи и другим вопросам звоните по номеру телефона +7 (495) 106-60-11 или пишите на email info@coddyschool.com
Close
Close
Выберите языкChoose a languageТілді таңдаңызВиберіть мовуSélectionnez la langueSprache wählen
Choose a language
RU
EN
KZ
UA
FR
DE
OK
Предварительный просмотр
Заберите индивидуальный план развития ребенка
Заберите индивидуальный
план развития ребенка