Статьи

Каковы риски безопасности приложений HTML5?

Комбинации HTML5 и JavaScript стали популярным решением для разработчиков для создания приложений и веб-сайтов. За последние годы эта комбинация обеспечила увеличение скорости и надежности.

Хотя W3C утвердил стандарт HTML5 только в октябре 2014 года, его внедрение началось много лет назад. В настоящее время его используют почти 30% компаний из списка Fortune 500 , среди которых такие технологические гиганты, как Google, Facebook, Netflix и Microsoft.

Отчет Gartner показал, что к 2016 году более 50% мобильных приложений, вероятно, будут основаны на HTML5. Одной из причин его популярности является то, что HTML5 в значительной степени кросс-платформенный. Это позволяет разработчикам создавать приложения для различных платформ, включая iOS, Android, Windows, Mac и веб-приложения.

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

Эта комбинация технологий не лишена ненавистников, проблем и вопросов. Один такой вопрос …

Представляют ли приложения HTML5 какие-либо угрозы безопасности для разработчиков и предприятий?

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

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

Угрозы от вредоносного кода

По мнению исследователей из Сиракузского университета , приложения HTML5, скорее всего, добавляют риски безопасности из-за ошибки разработчика. Например, выполнение вредоносного кода автоматически отправляется через Bluetooth, Wi-Fi или текстовые сообщения.

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

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

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

Помимо ошибки разработчика, вредоносный код может быть введен в приложение через изображения и музыкальные файлы (в виде метаданных), QR-коды, поля Bluetooth и поля SSID, передаваемые через WiFi. Сообщения SMS, отображаемые приложением, также могут содержать вредоносный код.

Промежуточное программное обеспечение — главная проблема

Приложениям HTML5 часто требуется межплатформенная инфраструктура для межплатформенности. Это промежуточное ПО является одним из способов, которыми JavaScript может вызывать операционную систему на своем родном языке. Это промежуточное ПО подвержено атакам внедрения вредоносного кода, известным как XSS (межсайтовый скриптинг), поскольку промежуточное ПО принимает как данные, так и код и выполняет их автоматически.

Риск выше на мобильных устройствах из-за разрешений, которые мы даем приложениям, таким как доступ к спискам контактов, данным о местоположении и камерам. Исследователи из Сиракуз особо упомянули PhoneGap , популярное промежуточное ПО. Используя плагины, PhoneGap может получить доступ к различным элементам вашего мобильного устройства. Исследователи обнаружили, что 77 плагинов PhoneGap из 186 были пригодны для использования. Это означает, что эти плагины могут принимать данные + код из внешних каналов и выполнять их.

Почти 764 бесплатных приложения в Google Play Store используют PhoneGap, и исследователи могут успешно проводить атаки с использованием кода на 2 из этих приложений. Это небольшой процент, учитывая, что существует более 12 000 бесплатных приложений для Android. Исследователи ничего не сказали о возможном решении и пообещали быть более конкретными в будущей статье.

Это не только приложения на основе HTML5, которые подвергают пользователей проблемам безопасности, но и проблема, которая затрагивает приложения в целом. Appthority, поставщик средств управления рисками для мобильных приложений, проанализировал 400 приложений в своем Отчете о репутации приложений за зиму 2014 года , который включает в себя 100 лучших платных и 100 лучших бесплатных приложений для iOS и Android. Отчет обнаружил много рискованных практик в этих приложениях, и большинство из них связаны с конфиденциальностью пользователей.

Отчет показал, что почти 70% приложений позволяют отслеживать местоположение, 56% могут идентифицировать UDID и 31% могут получить доступ к адресной книге пользователя. 53% этих приложений обмениваются данными со сторонними аналитиками и рекламными сетями, 69% используют единый вход, а 51% из них разрешают покупки в приложениях.

Из-за типа собранных данных «покупки внутри приложения» особенно рискованны. Обычно он собирает конфиденциальную информацию, такую ​​как ваш адрес электронной почты, номер телефона, адрес и, возможно, банковские реквизиты. Эта информация может быть передана третьим сторонам, таким как рекламные сети и / или аналитические компании, и рискует быть использована не по назначению.

Доминго Герра, президент и соучредитель Appthority, утверждает, что для приложений растущей тенденцией является монетизация посредством покупок в приложениях. Он привел пример одного из самых популярных и загружаемых бесплатных приложений, Candy Crush Saga также является «одним из самых кассовых приложений».

Эти рискованные практики не ограничиваются бесплатными приложениями. В отчете упоминается, что почти 80% самых высокооплачиваемых приложений для Android и iOS также демонстрируют примеры рискованной практики.

Решение

Исследователи из Сиракузского университета не дали никаких конкретных решений. Они предполагают, что решение лежит в одном из трех подходов к XSS. Эти:

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

Рассмотрим следующие примеры, заимствованные из таблицы безопасности HTML5 :

Отображение формы HTML5 и действие формы позволяет захватывать формы извне формы.

<form id="test"><button form="test" formaction="javascript:alert(1)">X</button></form>

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

 <input onfocus=write(1) autofocus/>

В первом примере пользователям нельзя разрешать отправлять какие-либо разметки, содержащие такие атрибуты, как formformaction Атрибут id

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

Лучший совет — удалить ненужные или опасные символы из контента. Правильные стратегии проектирования не должны содержать кэширование данных или минимизировать его, а также минимизировать логику на клиенте, сохраняя пароли, токены, профили безопасности и учетные данные на сервере. Основное внимание должно уделяться взаимодействию пользовательского интерфейса с сервером. Можно разрабатывать безопасные приложения HTML5, не оставляя никаких данных в кеше.

Разработчики должны знать о наиболее опасных угрозах безопасности мобильных устройств и защищать приложения от них. Еще один полезный ресурс — это подробное руководство по безопасной разработке мобильных устройств от PCI SSC (Совет по стандартам безопасности индустрии платежных карт).

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

  • Шифрование на устройстве
  • Безопасная связь клиент / сервер
  • Контроль доступа
  • Автономная аутентификация

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

Какой у вас опыт и советы по обеспечению безопасности приложений на основе HTML?