Обнаружение вредоносных программ для Android с использованием машин опорных векторов (SVM)

1

Я пытаюсь разработать приложение, способное обнаруживать вредоносное приложение для платформы Android с помощью поддерживающих векторных машин (SVM). Я могу получить много системной информации из инструментов "logcat" и "strace", но теперь я не знаю, как можно обнаружить настоящие вредоносные приложения. Кто-нибудь знает, как стабильно/записывать нормальное поведение устройства с помощью этих инструментов, я имею в виду, получать информацию с устройства и устанавливать шаблон поведения.

С наилучшими пожеланиями

  • 0
    Поэтому, возможно, прежде чем принять решение сделать это в SVM или ANN, ... вам лучше узнать, какую информацию вы можете получить. :)
  • 0
    большое спасибо за ответ на вопрос Aliostad :) Вот что я могу получить от этих инструментов: -Logcat: все типы событий, такие как события сенсорного экрана, журнал взаимодействия с пользователем, например, весь журнал, сгенерированный, когда вы открываете приложение или вы вызываете o кто-то - Strace: я могу получить «Системные вызовы» системы на уровне ядра. У меня много информации, но я не знаю, как установить «шаблон нормального поведения». Заранее спасибо :)
Теги:
malware

4 ответа

3

У вас всегда будет проблема с определением поведения вредоносного приложения: Kymie M.C. Tan, Roy A. Maxion, "Почему 6?" Определение операционных пределов Stide, детектор вторжений на аномалии, "sp, pp.188, 2002 IEEE Symposium on Security and Privacy, 2002

Но если вы действительно хотите попробовать, возможно, отправная точка здесь: "Обнаружение вторжений с использованием последовательностей системных вызовов" . S. Hofmeyr, S. Forrest, A. Somayaji Journal of Computer Security Vol. 6, pp. 151-180 (1998)

0

Для Windows API обычно люди просматривают последовательность, чтобы определить свои наборы действий. Вы можете найти документы/исследования, сделанные на этом тоже для платформы Android.

0

что делать, если вы сначала используете набор вредоносных вызовов в Android, а не профилируете обычные.

Также обратите внимание: если вы используете неконтролируемую классификацию, он не знает, какие данные он классифицирует

  • 0
    это действительно комментарий, а не ответ
0

Интересно, если это возможно...

Как вы хотите оценить, нормально ли поведение для приложения? Планируете ли вы "этап обучения", где все, что делает определенное приложение, записывается (если это возможно без права доступа root в первую очередь!), А затем сохраняется как "профиль" "нормального поведения" этого приложения?
Скажите, что вы записываете любое поведение приложения, например инструмент для размещения значков на рабочем столе. Теперь скажите, что это приложение также предлагает функцию прямого вызова одного из ваших любимых контактов, для этого вам потребуется разрешение на доступ к вашим контактам и создание фонотеков. Если эта функция вряд ли используется, вы, вероятно, не будете записывать ее во время "обучения" этого приложения и оцениваете приложение как злонамеренное, когда оно пытается позвонить.
А что, если приложение показывает вредоносное поведение во время "этап обучения", где вы не можете обнаружить его, потому что вы еще не определили "нормальное поведение"?

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

Меня интересуют любые причудливые решения, которые люди придумывают, но я думаю, что это будет сложно...

  • 0
    Если отчет о планировании моей магистерской работы поможет вам лучше понять эту идею о том, что я собираюсь сделать, я могу предоставить вам, всегда зная, что никто не собирается копировать идею :).
  • 0
    Я понимаю ваш скептицизм. Я собираюсь использовать данные Android Raw, собранные из Strace и Logcat (из приложения trustfull и конкретной окончательной версии), и попытаться отфильтровать основные функции программы. Я буду использовать эти преобразованные данные с алгоритмом интеллектуального анализа данных, чтобы определять правила или шаблоны. Я думал о кластеризации этой информации, используя алгоритм кластеризации, например, kmeans. Наконец, чтобы протестировать приложение, я буду использовать то же приложение, но со встроенным вредоносным ПО. Если все работает нормально, программа сможет обнаружить аномалию и, следовательно, вредоносное ПО.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню