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

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

Нам было интересно посмотреть, сможем ли мы использовать методы машинного обучения (ML) для определения оценок риска приложений, а затем также классифицировать приложения как с низким, средним или высоким риском на основе их оценки. Наша цель состояла в том, чтобы иметь модели для приложений Android и iOS, которые позволили бы нам рассчитать оценки риска, которые были бы объяснимы и понятны для наших клиентов.

Набор данных

Благодаря большому количеству устройств, управляемых нашим решением, у нас есть доступ к постоянно растущему количеству приложений. Этот перечень можно использовать для обучения модели машинного обучения для определения оценок риска. Благодаря исследованиям нашей команды ThreatLabs, а также информации, полученной из сторонних ресурсов, таких как Koodous и Virus Total, мы смогли пометить приложения в нашем наборе данных как вредоносные или безопасные.

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

Разработка функций

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

Для создания модели риска приложения функции могут быть спроектированы из нашего набора данных приложений для Android и iOS, а также из дополнительной информации о приложениях из Google Play Store и Apple App Store соответственно.

Для приложений Android мы можем разрабатывать функции на основе:

  • Информация Google Play,
  • Запрошенные разрешения,
  • Используемые библиотеки,
  • Используемые функции телефона,
  • Фильтры намерений.

В то время как для приложения iOS набор функций основан на:

  • информация Apple App Store,
  • Запрошенные разрешения,
  • Детали транспортной безопасности,
  • Используемые библиотеки,
  • Используемые системные фреймворки.

Кодирование функций

Большая часть информации, используемой для разработки наших функций, не является числовой, поэтому мы используем методы кодирования функций. Существует множество различных подходов к кодированию признаков, хорошее обсуждение некоторых из них можно найти здесь. Мы обнаружили, что комбинация методов One-Hotcoding и Word2Veccoding была оптимальной для этого объема проблемы с нашим набором данных.

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

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

Моделирование риска приложения

Используя наши размеченные наборы данных приложений для Android или iOS, а также извлеченные наборы функций, мы можем затем обучить алгоритмы регрессии для прогнозирования оценок риска для приложений. Алгоритмы регрессии — это контролируемые методы машинного обучения, которые помогают нам делать прогнозы для непрерывной переменной на основе категориальных/дискретных наборов признаков.

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

Визуализация риска приложения

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

Формула для функции логистической регрессии:

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

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

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

Далее мы хотели бы посмотреть, сможем ли мы разработать еще больше функций, используя Mobile Security Framework (MobSF) и правила YARA.

Дальнейшее чтение