Популярность ОС Android начала стремительно расти сразу же после появления, однако скептики предрекали ей недолгую жизнь. Google сразу подверглась нападкам и обвинениям в недальновидности за объективно имевшиеся на тот момент серьезные бреши и уязвимости. Рынок вскоре опроверг мнения «специалистов» индустрии, и сегодня эта операционка самая массовая. Первые проблемы канули в Лету, а разработчики продолжают совершенствовать безопасность Android, которая является практически единственным ее серьезным недостатком.
Пару слов об ОС
Сравнительно молодая операционная система разработана одноименной компанией, которую впоследствии приобрела Google. Первая версия для смартфонов (и только) вышла в сентябре 2008 года, а в 2011-м появилась четвертая, ставшая универсальной и самой массовой. С того времени она несколько раз обновлялась, а недавно вышло уже восьмое поколение Android.
Можно сказать, система выросла на ядре OS Linux, но использует виртуальную машину Java, созданную инженерами Google. С ее помощью можно писать приложения, управляющие устройством посредством библиотек Linux, а Android Native Development Kit дает возможность импортировать компоненты приложений, поддерживающие некоторые другие языки («С+»).
Сегодня развитием и поддержкой платформы занимается альянс Open Handset Alliance (OHA). Как правило, обновления касаются функционала, исправления ошибок и, конечно, усиления безопасности. Мало кто обращает внимание, но каждая новая версия получает название какого-либо десерта, а специально под платформу были созданы семейства шрифтов Droid и Roboto.
Основные механизмы безопасности
В Android основная задача безопасности возложена на ядро Linux. Оно отвечает за соблюдение прав доступа и правильное исполнение процессов. Без его «согласия» ни одно приложение не сможет получить доступ к данным другого. То есть механизм защиты базируется на соблюдении прав доступа.
В ОС Android каждое приложение получает собственные идентификатор пользователя (UID), каталог в системной папке и, по сути, является отдельным пользователем с правами и полномочиями, касающимися чтения исключительно собственных файлов.
Что такое «песочница»
Это специальный термин, придуманный для определения фрагментарности процессов отдельных приложений. Каждое работает в собственной ограниченной среде, или Application Sandbox, что в переводе с английского означает «песочница приложений».
Каждая программа получает определенный набор ресурсов для выполнения и «не знает», что находится в строго контролируемой операционной среде, в которой любая попытка проникнуть в чужую папку немедленно блокируется. Данный метод защиты используется для предотвращения доступа вредоносных программ к системным файлам.
Каждый процесс работает внутри собственной виртуальной машины Dalvik, так что код приложения исполняется изолированно от других программ. По умолчанию каждое приложение работает в собственном процессе Linux. Android создает процесс (когда требуется выполнить какой-либо из компонентов приложения) и аннулирует, когда он больше не нужен или когда система должна предоставить память другим приложениям.
Доступ приложений к ОС
Приложения не получают доступа к ОС по умолчанию. Android смонтирована в отдельном разделе внутренней памяти NAND (в песочнице /data) и подключена к системному каталогу, но доступна только для чтения. Это минимизирует вероятность включения автозагрузки или модификации компонентов.
Разработчики выделяют возможные функции, к которым открывается доступ каждого приложения. Это создает среду, в которой программа не может получить доступ к частям системы, для которых она не имеет разрешения.
Список возможных разрешений зафиксирован в документации Google (Манифест). Он достаточно гибкий, но вместе с тем грамотно разграничен. Чтобы сэкономить системные ресурсы, приложения с одним и тем же UID можно настроить на работу в одном процессе в одной виртуальной машине. Приложение может запросить разрешение на доступ к данным в устройстве, таким как контакты пользователя, СМС, сменные носители информации (SD карты), камера, Bluetooth и многое другое. Все подобные заявки на доступ к ресурсам проверяются и разрешаются пользователем в ОС Android во время установки.
Что такое IPC Binder
Приложениям необходимо иметь возможность запрашивать системные службы о предоставлении критической информации. Те, в свою очередь, должны ее предоставлять, иначе приложения просто не смогут работать. Иногда программам необходимо контактировать.
Механизм обмена информацией между процессами в Android реализован с помощью специальной технологии IPS Binder. Это фреймворк, который позволяет вызывать удаленные объекты как локальные и обмениваться файловыми дескрипторами между процессами. Другими словами, все процессы протекают через эту общую коммуникационную среду. И именно на этапе передачи существует максимальный риск перехвата информации.
Как защищен стек Android
Стеком (с английского – копна, или нагромождение) называется область оперативной памяти, выделяемая для каждого потока. Когда один процесс заканчивается, освобождается место для другого, и так далее. С точки зрения архитектуры, Android является «слоеным пирогом», или программным стеком, для мобильных устройств, включающим операционную систему, связующим ПО и системные приложения.
Стек имеет фиксированный размер, и превышение лимита выделенной памяти приведёт к переполнению буфера. Не поместившиеся данные выйдут за его границы и попадут в непредназначенные для них ячейки памяти. Переменные получат искажения, в результате работа программы станет непредсказуемой. Появится возможность передачи управления на незапланированный разработчиком участок кода.
Для защиты от срыва стека приложений, созданных с помощью Android NDK, а также системных компонентов, используется обширный набор инструментов, в том числе заимствованных с других платформ. В частности, в AOSP и при сборке нижнего уровня кода используются средства компилятора GCC ProPolice и механизм доверенной загрузки. Часть системных компонентов переводятся на использование библиотеки safe-iop, обеспечивающей безопасные арифметические операции с целыми числами. Используется способ реализации функции dmalloc, применяемый в ОС OpenBSD, и функции calloc с проверкой на возможность целочисленного переполнения во время операции выделения памяти. Благодаря этому предотвращаются атаки с использованием двойного освобождения памяти и согласованности чанков.
Начиная с версии 4.0, используется технология ASLR, позволяющая позиционировать в адресном пространстве процесса образы исполняемого файла, подгружаемых библиотек и стека в случайном порядке. За счет необходимости угадывания адресов перехода выросла сложность реализации атак. Использование механизма RELRO позволило защитить системные компоненты переписываемых секций загружаемого в память ELF-файла. Кроме того, появившаяся в ядре 2.6.37 функция dmesg_restrict позволяет исключать чтение системного журнала ядра непривилегированными пользователями.
Хранилище приложений
Наиболее уязвимым местом Android всегда считался репозиторий приложений Google Play. Механизм, требующий обязательного указания списка привилегий перед установкой, был создан изначально и функционировал исправно, но не гарантировал от заражения вирусами. Дело в том, что сама политика Google мешала проверять приложение в полном объеме перед добавлением в магазин.
Получить аккаунт, написать программу, внести членский взнос и поместить программу с любым кодом мог любой желающий. Чтобы не опускаться до ручной проверки, Google запустила службу Bouncer, тестирующую новые поступления. Предназначенное к публикации приложение многократно запускается в виртуальной машине. Bouncer производит действия, симулирующие работу пользователя, анализирует состояние системы с целью выявления попыток доступа к конфиденциальной информации и других «шпионских» действий. Согласно данным Google, Bouncer сократил число заражений на 40%. Но и это не стало панацеей.
Пересмотр кода и обновлений
Ревью кода и реагирование на появление новых уязвимостей является важнейшим аспектом укрепления безопасности ОС. Это показали еще разработчики OpenBSD.
На постоянной основе работает команда Android Security Team, имеющая целью слежения за качеством кода, выявление и устранение найденных ошибок и уязвимостей. Она реагирует на присланные пользователями отчеты по следующим направлениям:
- Анализ влияния модификаций на безопасность.
- Тестирование кода на этапе подготовки нового релиза.
- Мониторинг и исправление уязвимостей в уже выпущенной версии, а также поддержка стандартного баг-трекера.
При обнаружении проблемы уведомляются компании, входящие в альянс OHA, и начинается обсуждение возможных вариантов решения. В этой работе принимают участие только подписанты соглашения о неразглашении, чем обеспечивается сохранность информации о проблеме до того, как она будет полностью решена. В код вносятся исправления, а новый патч добавляется в репозитарий Android Open Source Project. В результате пользователи получают обновления.
Если об уязвимости станет известно из общедоступных источников, команда безопасности приступит к решению проблемы в репозитории AOSP, чтобы фикс как можно быстрее дошел до конечных пользователей.
Безопасность гаджета на Android
Гаджеты на Android сегодня наиболее распространены в мире, хотя вполне справедливо считаются наименее защищенными. Начиная с пятой версии, можно говорить о признаках серьезной безопасности. Приемлемый уровень отмечается в шестой, а в седьмой уровень безопасности реализован уже на довольно высоком уровне.
Можно сколько угодно называть Android дырявым ведром, но безопасность нужно рассматривать в комплексе, через призму мобильного устройства. Способов усиления защиты достаточно, просто о них нужно знать и правильно использовать.
Виды блокировок смартфона
Безопасность физического доступа обеспечивается вариантами блокировками экрана и SIM-карты, которые предоставляются разработчиком ОС или сторонними приложениями. Если говорить о защите персональных данных, речь должна идти о первом способе. Пользователю доступны следующие виды защиты устройства из коробки:
- Пароль.
- Графический ключ.
- PIN-код.
Начиная с пятой версии, в Android появилась функция распознавания пользователя по лицу и возможность снятия блокировки через Bluetooth/ NFC. А в шестой реализована возможность сканирования отпечатков пальцев. Есть приложения, позволяющие реализовать разблокировку распознаванием голоса. Есть еще способ удаленной блокировки с помощью сервиса Google, но он используется в крайних случаях.
Защита приложений
Дополнительно усилить защиту можно с помощью установки кода на отдельные приложения. Это возможно на последних версиях ОС по умолчанию. В остальных случаях требуется установка специальной программы. Очень хорошо с задачей справляются Smart AppLock и CM Security, которые имеются в Google Play в бесплатном доступе.
Защита медиафайлов
Установка кода на медиафайл, например, папку с личными фото, бывает иногда необходима. Операционная система не предоставляет для этого штатных средств. Это возможно при помощи специальных утилит. Можно скрыть папку в файловом менеджере.
Последняя версия ОС и обновление приложений
Обновление ОС и приложений не только повышает их функциональность, но и снижает риск заражения вредоносными программами. Безопасность Android и iOS сильно зависит от регулярности обновлений, поскольку они содержат важные изменения, которые лишены выявленных ранее ошибок и багов. Определить, требуется ли обновление ОС, можно в специальном разделе настроек смартфона. В настройках Google Play рекомендуется включить автоматическое обновление приложений через Wi-Fi.
Только официальные приложения
Возможность установки приложений из неизвестных источников существует, однако она по умолчанию отключена. И сделано это ради безопасности пользователя. Включить опцию можно следующим образом:
- Войти в настройки.
- Открыть вкладку «Безопасность».
- Найти раздел «Администрирование» и установить галочку рядом с пунктом «Неизвестные источники».
Важно помнить, что использование неофициальных прошивок и программ представляет угрозу для девайса – в них могут изначально присутствовать вредоносные приложения и трояны.
Выдача разрешений приложениям
Преимущество скачивания приложений из Google Play заключается еще и в возможности сразу просмотреть список требуемых разрешений. Можно отказаться от сомнительного предложения, что не всегда доступно при выборе загрузки из сети. После установки изменять или отменять разрешения штатными средствами не представляется возможным на ранних версиях ОС. А вот на Android 6.0 можно управлять разрешениями приложения даже после установки. Функция появилась в настройках гаджета во вкладке «Права доступа» раздела «Приложения».
Создание учетных записей
В Lollipop появилась возможность создания учетных записей сразу нескольких пользователей. Эта дополнительная защита для Android полезна, когда гаджет используется несколькими людьми и требуется разграничение прав доступа к его содержанию. Функция добавления пользователя доступна в настройках мобильного устройства в соответствующем разделе.
Резервирование данных
Чтобы не потерять конфиденциальную информацию вместе с гаджетом, рекомендуется выполнять резервное копирование. Функция обеспечивается штатными средствами Android с привязкой к аккаунту Google. Пользовательские данные всегда останутся в доступе с любого браузера устройства, подключенного к учетной записи пользователя, и в любой момент их можно полностью восстановить на другом смартфоне или планшете.
Защищенный Wi-Fi
Как правило, мобильные устройства используются в самых неподходящих для этого местах, главное, чтобы был интернет. Подключившись к бесплатной, но открытой точке доступа в ресторане, кафе или аэропорту, можно потерять больше, чем приобрести. Открытые сети не имеют никакой защиты, поэтому пользовательские данные легко перехватить на лету. Лучше ими не пользоваться или хотя бы не светить пароли и PIN-коды. Если очень нужно выйти в незащищенную cеть, следует использовать *** или шифрование.
Использование шифрования
Максимальную защиту пользовательских данных гарантирует шифрование. Опция позволяет зашифровать всю информацию на мобильном устройстве, включая приложения. Впервые функция появилась на Android 4.3, где пользователь имел выбор – включать ее или нет, а в Android 5.0 опция уже включена по умолчанию.
Функция привязана к блокировке экрана: включается при активации блокировки и выключается после снятия. Ручное управление осуществляется в разделе «Настройки». Процесс первичного шифрования длительный, поэтому рекомендуется подключение зарядного устройства.
Защищенные мессенджеры
Код безопасности в Android реализуется далеко не с каждым клиентом обмена сообщениями. К сожалению, не все подобные приложения обеспечивают анонимность и конфиденциальность переписки. Самым надежным в этом плане до недавнего времени считался WhatsApp, обеспечивающий шифрование сообщений. Но сегодня он уступает новым приложениям, например, Signal и Telegram.
Первой программой пользуется Эдвард Сноуден, и это, пожалуй, лучшая рекомендация. Signal предлагает шифрование end-to-end и функционал TOR’а. А приложение Telegram весьма популярно в экстремистских кругах. Это тоже о многом говорит. Помимо стандартного шифрования или удаления «следов пребывания» на серверах, в программе можно настроить период удаления сообщений.
Защита от кражи
Абсолютную безопасность Аndroid-телефона гарантировать невозможно. Современное устройство стоит дорого, его можно застраховать и вернуть часть стоимости. Если телефон попытаться найти с помощью полиции, придется доказать его принадлежность.
Но многие полезные опции доступны в сервисе удаленного управлении Google, в том числе поиск, блокирование и удаление данных. Кроме того, в свободном доступе огромное число программ, которые могут помочь в поисках или очень осложнить использование похищенного девайса.
Включение доступа к геоданным
Многим программам необходим доступ к данным месторасположения. Выдав гаджету такое разрешение, пользователь получает все преимущества геолокации. Он будет иметь свежую информацию об автомобильных пробках, сможет найти любую точку назначения на карте или отправить в сеть фото с отметкой о месте пребывания.
Чтобы получить такие возможности, необходимо:
- Открыть «Настройки».
- Войти в «Местоположение».
- Выбрать режим. В зависимости от модели и производителя это может быть «По всем источникам» или «По координатам сети» и «Беспроводные сети» или GPS.
Google для локации использует открытые точки доступа и мобильные сети и получает эти данные всегда, даже если ни одна программа, казалось бы, не работает. Но без включения функции ни поиск, ни удаленное управление гаджетом невозможны.
Блокирование экрана
Самый простой шаг в организации безопасности – включение блокировки экрана. Доступных способов реализации несколько, и все эффективны. От кражи это не защитит, но помешает сразу воспользоваться похищенными данными.
Удаленное управление Android
Функция удаленного управления представляет собой эффективный инструмент для поиска и управления утерянным устройством Android. С его помощью можно в несколько кликов не только определить местонахождение гаджета, но и полностью очистить его содержимое. Для этого нужно воспользоваться бесплатным приложением Find My Device, которое можно скачать с Google Play и установить на другое устройство, или сервисом, на который войти с браузера.
Чтобы завести учетную запись, необходим почтовый ящик на Gmail. После этого можно добавить аккаунт на устройство. Функция по умолчанию отключена, и активировать ее придется самостоятельно. Для этого необходимо:
- Войти в настройки гаджета, открыть «Безопасность» и включить «Удаленное управление».
- Убедиться, что устройство видно в Google Play. Надо открыть страницу play.google.com/settings и установить флажок рядом с названием устройства в столбце «Доступность».
- Убедиться, что устройство можно найти: откройте страницу android.com/find, войти в аккаунт и выбрать нужное устройство.
Использование специального программного обеспечения
Защитить гаджет от взлома и хранящуюся на нем информацию от кражи можно с помощью специализированного софта. Речь идет об антивирусниках, файерволах и подобных программах. Они вовремя распознают и не допустят «вредителя» к системе.
Как уже было сказано, специальные программы позволяют отслеживать местонахождение, производимые с украденным гаджетом действия, блокировать девайс и т.д. Одной из лучших является Bitdefender Anti-Theft. Приложение обеспечивает быстрый поиск и отправку данных о новом номере SIM-карты на почтовый адрес хозяина.
Другим мощным инструментом является Cerberus. Возможности включают отслеживание и блокирование устройства, полное стирание памяти, мониторинг звонков, сбор данных о сети и операторе и даже скрытую запись с микрофона. А функция SIM-Checker позволяет узнать новый номер телефона.
Что предпринять, если смартфон утерян
Ответ простой – искать. Но прежде всего нужно заблокировать или стереть все данные. Действия зависят от ситуации и важности этих самых данных.
Удаленная блокировка
Чтобы заблокировать Android, нужно:
- На любом устройстве открыть браузер войти в сервис «Удаленное управление» с помощью аккаунта.
- Отметить свое устройство и нажать «Блокировать».
- Подтвердить паролем разблокировки.
Поиск устройства
Определить, где устройство, можно сразу же при входе на вышеуказанный сервис Google. Примерно так же работают все поисковые программы. Важно, чтобы на гаджете была включена геолокация и оставался старый аккаунт.
Стирание данных
Если шансов вернуть девайс уже нет или пользователь не желает подвергать риску утраты еще и важную информацию, принимается решение о полном удалении данных.
Для этого в окне сервиса удаленного управления выбирается кнопка «Очистить». Система выполнит полный сброс пользовательских данных.