Предложен новый метод выявления вредоносных программ для Android

Предложен новый метод выявления вредоносных программ для Android

Предложен новый метод выявления вредоносных программ для Android

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

В работе, опубликованной на archive.org, сингапурские учёные рассматривают особенности разработанной ими технологии и её отличия от предшественников — других методов выявления вредоносных программ при помощи машинного обучения.

Сначала такие методы, как правило, определяют особенности анализируемого приложения — например, выполняемые ими системные вызовы и обращения к программным интерфейсам или используемые ресурсы и привилегии. Затем эти данные передают готовому классификатору, который знаком с характерными чертами вредоносных программ. Он изучает их и выносит вердикт: есть опасность или нет, пишет xakep.ru.

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

Чтобы не оставать от противника, классификаторы необходимо постоянно переучивать. Однако для пакетного обучения нового классификатора нужно перемолоть чудовищный объём информации. Это делает частое переучивание непрактичным.

Предложенная сингапурскими исследователями технология, получившая название DroidOL, использует не пакетное, а непрерывное (online) машинное обучение, пассивно-агрессивный классификатор и анализ графа межпроцедурного потока управления.

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

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

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

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

Исследователи реализовали DroidOL на базе Soot, популярного средства статического анализа приложений для Android, и библиотеки Scikit-learn, упрощающей реализацию алгоритмов машинного обучения. Величина программы составила около 15,6 тысяч строк кода на Java и Python.

Эффективность DroidOL протестировали на базе, состоящей из 87 тысяч с лишним приложений для Android. Он показал верный результат в 84,29% случаев. Это более чем на 20% лучше, чем алгоритмы Drebin и Allix et. al. при типичных настройках пакетного обучения, и на 3% лучше, чем при постоянном переучивании.

Linux 7.1 может наконец сделать NTFS по-настоящему родной файловой системой

В Linux 7.1 намечается заметное обновление, которое особенно оценят те, кто живёт на два мира — Linux и Windows. В ядро уже влит новый драйвер NTFS, и это одна из самых важных, хотя и не самых громких, перемен в файловой подсистеме за последние годы. Сам Линус Торвальдс назвал это воскрешением NTFS.

Вся соль в том, что Linux наконец получает более современную встроенную поддержку NTFS — файловой системы, на которой по умолчанию живёт Windows.

До сих пор с ней всё было либо терпимо, либо просто неудобно: старый драйвер в ядре долгое время умел в основном читать NTFS-разделы, NTFS-3G работал через FUSE и проигрывал по скорости, а более новый NTFS3, хотя и был быстрее, за последние годы успел заработать репутацию решения без слишком активного развития.

Новый драйвер делает ставку не просто на поддержку NTFS, а на более нативную работу внутри самого ядра Linux. В документации ядра прямо сказано, что он обеспечивает полноценную поддержку чтения и записи, рассчитан на высокую производительность и использует современные механизмы вроде iomap и folio.

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

На бумаге всё выглядит очень бодро. В обсуждении патчей и публикациях о слиянии упоминается, что однопоточная запись стала быстрее примерно на 3–5%, многопоточная — на 35–110%, а монтирование 4-терабайтного диска ускорилось примерно в четыре раза по сравнению с NTFS3. Кроме того, новый драйвер уже проходит больше тестов xfstests, чем NTFS3: 326 против 273.

Правда, без оговорок тут не обошлось. Это всё-таки новый код, так что в первых релизах вполне возможны шероховатости, особенно в каких-то менее популярных особенностях NTFS. Да и сама NTFS остаётся файловой системой из мира Windows, так что полностью вести себя как ext4 или XFS под Linux она всё равно не начнёт. Но сам вектор выглядит приятным: в ядре Linux эту тему наконец решили делать всерьёз, а не по остаточному принципу.

RSS: Новости на портале Anti-Malware.ru