Технологии | Android-приложения: советы по безопасности

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

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

В случае если ваше устройство марки Apple, то не следует переживать о сохранности вашей конфиденциальности, ведь операционной системой iOS и так всё предусмотрено. А вот, когда устройство имеет на борту Android, то не стоит пренебрегать различными антивирусами, VPN-сервисами и клинерами.

К сожалению, к 2020 году Play Market разросся до небывалых размеров, что значительно усложняет поиск того или иного проверенного приложения. Именно эту проблему поможет решить материал ниже, ведь мы специально отобрали по 3 лучших приложения каждого типа. Если вы желаете изучить, как подобрать и , не говоря уже об инструкциях и других насущных материалах для Android, добро пожаловать по ссылке выше.

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

Правда ли, что львиная доля атак приходится на бреши в механизмах аутентификации?

Согласно статистике Positive Technologies, наиболее часто встречающиеся уязвимости веб-приложений за 2020 год связаны с неправильной настройкой безопасности. А вот самому высокому риску подвержены сайты со слабой аутентификацией. Такая проблема была обнаружена в 45% исследованных веб-приложений:

Почти треть таких уязвимостей обусловлена неограниченным количеством попыток войти в аккаунт. Аутентификация только по паролю является тем фактором, который способствует наибольшему количеству атак посредством перебора комбинаций «логин/пароль». Требования к возрасту и сложности пароля, которые раньше были «золотым стандартом», теперь подрывают безопасность. Согласно рекомендациям NIST, организациям следует перейти на многофакторную аутентификацию, если они ещё этого не сделали.

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

Тарас Иващенко, руководитель группы продуктовой безопасности Ozon

3

Правильное расположение за компьютером

Правильная посадка

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

Помните, что заработать различные заболевания проще, чем потом от них избавиться.

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

Чтобы убедиться в том, что расстояние определено правильно — вытяните в направлении монитора руку.

Вы должны кончиками пальцев доставать до верхней части монитора, в противном случае измените свое местоположение.

Также должны быть соблюдены и некоторые другие условия:

  • Офисное кресло должно быть отрегулировано так, чтобы спина пользователя была ровной и слегка касалась его спинки;
  • Локти должны быть согнуты и располагаться на подлокотниках кресла, чтобы можно было не только удобно работать, но и избежать чрезмерного напряжения;
  • Ежечасно следует покидать рабочее кресло для выполнения физических упражнений, которые были описаны в начале данной статьи. Это позволит снять скопившуюся нагрузку не только с мышц шеи и спины, но и различных суставов. Кроме того, возьмите за правило периодически выполнять упражнения для глаз, так как от постоянной концентрации внимания они очень сильно утомляются/

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

back to menu ↑



Обеспечение безопасности приложения — это задача безопасников?

Не совсем, ведь уже на стадии разработки нужно обращать внимание на очевидные уязвимости.

Разработчик должен с первой редакции сайта или приложения заложить основные инструменты защиты данных пользователя, например Web Application Firewall. В дальнейшем, с выходом патчей, закрывать появляющиеся уязвимости. В идеальной ситуации разработчик должен либо самостоятельно, либо с привлечением дополнительных специалистов тестировать продукт на проникновение, раз за разом применяя популярные методы взлома и после анализируя полученный результат.

Иван Деревцов, руководитель отдела информационной безопасности в АТОЛ

4

Что включает в себя обеспечение безопасности приложения?

Это все меры, в том числе и те, которые предшествуют этапу разработки:

  • Корректная постановка цикла разработки и деплоя. Это также включает выбор релевантного подхода к разработке (Agile/Waterfall), применение лучших практик DevOps, использование доверенного серверного оборудования.
  • В команде должен быть один или несколько специалистов, которые отвечают за информационную безопасность.
  • Сформированная модель угроз безопасности — метрики, которые нужно постоянно отслеживать, особенно при каждом обновлении или изменении внешних факторов. Стоит понимать, что модели угроз будут разными для разных приложений.
  • Использование технических средств анализа защищённости кода.
  • Использование защищённой среды разработки.
  • Application security — сложная задача, особенно в больших командах. Здесь важна грамотная работа архитекторов, которая предусмотрит механизмы безопасности для каждого из «кирпичиков» проекта, тем самым обеспечивая многоуровневую защиту продукта.

    Алексей Кузнецов, руководитель направления анализа защищённости BI.ZONE

    5

    IPC

    Как уже было сказано выше, приложения могут обмениваться информацией, используя стандартные для Android средства коммуникации Binder, интенты (Intents) и провайдеры данных (Content Provider). Первый представляет собой механизм удаленного вызова процедур (RPC), реализованный на уровне ядра Linux, но контролируемый системным сервисом Service Manager. С точки зрения программного интерфейса Binder является всего лишь средством импорта объектов из другого приложения, но с точки зрения безопасности полностью контролируется обсуждаемым выше механизмом разграничения прав доступа. Это значит, что приложения смогут получить доступ друг к другу только в том случае, если оба этого захотят. Это особенно важно в свете того, что в Android Binder является основным средством коммуникации, на основе которого построен графический интерфейс, а также другие компоненты ОС, доступные программисту. Доступ к ним ограничивается с помощью обсуждаемого выше механизма привилегий. Как системные компоненты, так и сторонние приложения могут ограничивать доступ к своей функциональности с помощью декларации прав на доступ к своим функциям. В случае системных компонентов все они описаны в документации для программистов Android-приложений. Независимые разработчики, которые хотят открыть API к своим приложениям, должны описать требуемые для этого привилегии в AndroidManifest.xml и опубликовать соответствующую документацию. Все это относится также к провайдерам данных (Content Provider), специальному интерфейсу (также реализованному поверх Binder), с помощью которого приложения могут открывать доступ к своим данным другим приложениям. В Android провайдеры данных везде, это и адресная книга, и плей-листы, и хранилище настроек. Доступ к ним опять же ограничивается с помощью механизма привилегий и прав доступа.

    Поверх Binder также реализована так называемая технология интентов, простых широковещательных сообщений. Приложения могут посылать их «в систему» с целью вызова внешних приложений для совершения какого-либо действия. Например, приложение может использовать интенты для вызова почтового клиента с указанием адреса, открытия веб-страницы, каталога в файловой системе и всего, что может быть записано в виде URI. Система автоматически находит все приложения, способные принимать данный тип интентов (а точнее URI-адресов), и передает URI им (а точнее, одному из них, выбранному пользователем). То, какие типы интентов может принимать и обрабатывать приложение, определяет программист во время сборки приложения. Кроме того, он может использовать фильтрацию по содержимому URI, чтобы избежать «спама».

    Принцип работы Binder

    Сами по себе перечисленные механизмы обмена данными и вызова функций приложений, контролируемые с помощью системы привилегий, в Android реализованы достаточно четко и ясно, однако они могут привести к проблемам в том случае, если программист недостаточно серьезно относится к декларации привилегий, необходимых для доступа к своему приложению. Это может привести к утечкам информации или возможности задействования функциональности приложения кем угодно. Например, в первых версиях Dropbox для Android имелась проблема с правильным определением привилегий, которая приводила к тому, что любое установленное приложение могло использовать Dropbox-клиент для заливки какой угодно информации на «облачный диск» www.securelist.com.

    Какими бывают технические средства анализа защищённости кода?

    Основной пласт анализаторов включает в себя:

    • Статические — это анализаторы исходного кода на базе механизма статического анализа (SAST). Проверка происходит без запуска самой программы на промежуточных этапах разработки или на этапе сборки. К SAST-решениям относятся Synopsys, AppScan, Checkmarks, Veracode, Appercut, Application Inspector, Micro Focus.
    • Динамические — применяются к готовому коду и ориентированы в основном на веб-приложения. Работают на базе динамического тестирования безопасности (DAST) через подачу URL-адреса в автоматический сканер.
    • Интегрированные в CI (Continuous Integration) — сканируют статический и динамический код.
    • Инструменты пентестера.

    6

    Защита от срыва стека

    Для защиты приложений, созданных с использованием Android NDK, а также системных компонентов, написанных на языке Си, Android включает в себя обширный набор механизмов защиты от срыва стека, в свое время реализованных самыми разными разработчиками для различных проектов. В Android 1.5 системные компоненты были переведены на использование библиотеки safe-iop, реализующей функции безопасного выполнения арифметических операций над целыми числами (защита от integer overflow). Из OpenBSD была позаимствована реализация функции dmalloc, позволяющая предотвратить атаки с использованием двойного освобождения памяти и атаки согласованности чанков, а также функция calloc с проверкой на возможность целочисленного переполнения во время операции выделения памяти. Весь низкоуровневый код Android, начиная с версии 1.5, собирается с задействованием механизма компилятора GCC ProPolice для защиты от срыва стека на этапе компиляции.

    В версии 2.3 в коде были устранены все возможные уязвимости манипуляции со строками, выявленные с помощью сборки исходных текстов с флагами ‘-Wformat-security’, ‘-Werror=format-security’, а также применены «железные» механизмы защиты от срыва стека (бит No eXecute (NX), доступный начиная с ARMv6). Также Android 2.3 задействует метод защиты от уязвимости, найденной в ноябре 2009 года во всех ядрах Linux 2.6 (возможность разыменования NULL-указателя), с помощью записи отличного от нуля значения в файл /proc/sys/vm/mmap_min_addr. Такой метод защиты позволил устранить уязвимость без необходимости в обновлении самого ядра Linux, что невозможно на многих устройствах.

    Начиная с версии 4.0, Google внедрила в Android технологию Address space layout randomization (ASLR), которая позволяет расположить в адресном пространстве процесса образ исполняемого файла, подгружаемых библиотек, кучи и стека случайным образом. Благодаря этому эксплуатация многих типов атак существенно усложняется, поскольку атакующему приходится угадывать адреса перехода для успешного выполнения атаки. В дополнение, начиная с версии 4.1, Android собирается с использованием механизма RELRO (Read-only relocations), который позволяет защитить системные компоненты от атак, основанных на перезаписи секций загруженного в память ELF-файла. В той же версии 4.1 была впервые активирована функция ядра dmesg_restrict (/proc/sys/kernel/dmesg_restrict), появившаяся в ядре 2.6.37 и позволяющая отключить возможность чтения системного журнала ядра (dmesg) непривилегированными пользователями.

    Как создать защищённую среду разработки?

    Стоит помнить, что обеспечить безопасность приложения можно только комплексно, поэтому уделяйте внимание каждому из этапов:

  • Сегментировать сеть и организовать управление сетевыми проходами.
  • Настроить права доступа для каждой роли.
  • Хранить пароли в хешированном виде с применением так называемой соли.
  • Организовать защищённый удалённый доступ.
  • Управлять обновлениями.
  • Мониторить и документировать.
  • Обезличивать важные данные при работе с БД в тестовом режиме.
  • 7

    Напоминайте сотрудникам о важности кибербезопасности

    Цифровые угрозы становятся всё более опасными, поэтому в любой компании нужно проводить регулярные ИТ‑ликбезы. Устраивайте для всей команды уроки по кибербезопасности или делайте периодическую рассылку на почту. Объясняйте сотрудникам, что нельзя оставлять компьютер разблокированным, когда они отлучаются выпить кофе, или давать коллегам работать под их учётной записью. Расскажите о том, как опасно хранить важные рабочие файлы на личном телефоне. Приводите примеры кибератак на другие компании с использованием методов социальной инженерии и фишинга.

    Александр Буравлёв

    Технический директор .

    Превентивные меры — это одна из стратегий защиты, которая позволяет минимизировать риски. Говорите с сотрудниками об ИТ‑угрозах, ведь самое слабое звено в системе — человеческий фактор. Будьте осторожны с флешками: не переносите файлы с домашнего на рабочий компьютер, просите партнёров и коллег использовать файлообменники, а не носители. Никогда не используйте найденные в офисе или где‑то ещё флешки: на них могут быть вирусные программы.

    Ваши сотрудники должны понимать, почему нельзя кидать друг другу рабочие файлы в социальных сетях или делать что‑то в обход ИТ‑систем компании. Настройте обратную связь: узнавайте, насколько ваша команда довольна инструментами для работы с цифровыми данными. Если сотрудникам тяжело, постарайтесь оптимизировать бизнес‑процессы.

    На что должен обращать внимание разработчик, чтобы защитить приложение от взлома?

    Позаботиться о безопасности сервиса лучше на самых ранних этапах его разработки. В этом помогут проекты от сообщества OWASP, например руководства «Проактивная защита: Топ-10 требований OWASP» (набор практик для изначального повышения безопасности приложения) и рейтинг 10 самых опасных угроз безопасности веб-приложений OWASP Top 10. Также важным является включение безопасности как составляющей цепочки CI/CD вашего приложения, например использование SAST и DAST-решений. Причём необязательно сразу покупать и внедрять коммерческие решения, ведь существуют и вполне достойные варианты из мира свободного ПО.

    Тарас Иващенко, руководитель группы продуктовой безопасности Ozon

    По моему опыту, один из главных шагов к безопасности приложения — это ограничение функциональности для каждого пользователя по принципу need-to-know. Этот принцип возник в военной среде, однако полезен и в разработке: соблюдая его, вы не даёте пользователю получать больше информации, чем ему нужно.

    Не менее важны процессы код-ревью и независимого анализа защищённости. Для второго можно привлекать собственную команду безопасности, обращаться в специализированные компании или добавить приложение в программу bug bounty, чтобы сотни исследователей со всего мира непрерывно искали за вас баги.

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

    Алексей Кузнецов, руководитель направления анализа защищённости BI.ZONE

    На заключительных этапах разработки не будет лишним позаботиться о защите кода от чтения и дизассемблирования. Здесь тоже имеются проверенные временем методики: от простой обфускации до применения ассемблерных вставок и продвинутых средств защиты от отладчиков. Вообще, хорошей практикой является «чистка» кода перед отправкой его в продакшн. Пользователю ведь никак не помогут комментарии, объясняющие, как работает тот или иной вызов либо функция. А вот для атакующего это большое подспорье при анализе продукта. Кроме того, следует избегать прописывания различных конфиденциальных данных внутри самого кода. Например, не рекомендуется встраивать ссылки с данными авторизации на сервере для автоматического тестирования.

    Дмитрий Курамин, эксперт Лаборатории практического анализа защищённости

    8

    Топ-3 лучших антивирусов для Android:

    Kaspersky Internet Security — безусловный лидер данного списка

    Преимущества:

    • Лучший уровень защиты системы по сравнению с конкурентами.
    • Высокая скорость работы.
    • Наличие функционала проверки сайтов.
    • Блокировка нежелательного контента.

    Недостатки:

    • Весьма высокая стоимость программы.
    • На слабых устройствах возможна высокая загруженность системы.
    • Пробной версией нельзя пользоваться все время, по истечению пробного периода антивирус Kaspersky Internet Security перестанет работать (после попытки включения просто возникнет окошко с просьбой оплатить тарифный план).

    ESET Mobile Security & Antivirus – антивирус для всех и каждого

    Плюсы:

    • Быстрая скорость работы даже на слабых смартфонах.
    • Умеренная стоимость годового тарифа.
    • Наличие USB-контроля и встроенного антиспама.
    • Пробной версией можно пользоваться сколько угодно, и она очень даже ничего.

    Недостатки:

    • Качество распознавания угроз оставляет желать лучшего.

    AVG Protection — весьма неплохой антивирус для простого пользователя

    Преимущества:

    • Достаточно большие антивирусные базы.
    • Возможность отлавливания руткитов (набора программ для сбора информации и удаленного управления устройством).
    • Высокое качество проверки смартфона.
    • Способность проверять почтовый трафик.

    Недостатки:

    • Кривой перевод программы на русский язык.
    • Заметное замедление системы.
    • Весьма неудобный интерфейс приложения.

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

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

    Безопасная разработка мобильного приложения включает три этапа.

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

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

    Далее необходимо протестировать приложение на предмет наличия подобных уязвимостей. В основном используются методы белого и чёрного ящика. Метод белого ящика (статистическое тестирование безопасности SAST) подразумевает проверку разработчиком, имеющим доступ к коду. Метод чёрного ящика предполагает анализ только пользовательского опыта, без оценки кода. Тестировать можно вручную или с помощью специальных сервисов.

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

    Рекомендую использовать параметризованные запросы к базе данных, не конструировать запросы внутри системы, для доступа к БД использовать отдельную учётку и не забывать про журналы безопасности.

    Павел Кузнецов, руководитель мобильной разработки IT-компании DD Planet

    Не отключайте UAC в Windows

    Контроль учетных записей (UAC) в операционных системах Windows 7 и 8, пусть иногда и раздражает, особенно после переустановки ОС и установке всех программ, которые вам нужны, однако, он действительно помогает предотвратить изменения системы подозрительными программами. Также, как и антивирус — это дополнительный уровень безопасности. См. как отключить UAC в Windows.

    UAC в Windows

    Резюмируя

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

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

    Хинт для программистов: если зарегистрируетесь на соревнования Huawei Honor Cup, бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании. Перейти к регистрации

    • Безопасность, Безопасный код, Советы, Тестирование

    Введение

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

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

    Но как же обстоят дела на самом деле? Проблема существует или нет? Стоит ли бояться юзерам Android за сохранность своих данных, или перейти на iOS, и как, если это возможно, защитить свои данные от злоумышленников? Обо всем этом повествует наш сегодняшний обзор.

    Архитектура Android

    Другие статьи в выпуске:

    Хакер #166. DDoS

    • Содержание выпуска
    • Подписка на «Хакер»
    Понравилась статья? Поделиться с друзьями:
    автомобильные новости
    Добавить комментарий