История Развития Машинного Обучения В Lc

Автор статьи — Алексей Маланов, эксперт отдела разработки антивирусных технологий «Лаборатории Касперского».

В «Лабораторию Касперского» я пришел еще студентом четвертого курса в 2004 году.

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

Многие конкурирующие компании в то время выпускали обновления своих антивирусных баз раз в день; круглосуточная работа была для них не столь важна.

Мы гордились тем, что смогли перейти на ежечасные обновления.

Кстати, сам Евгений Валентинович Касперский сидел в том же кабинете, что и другие вирусные аналитики.

Он «убивал» вирусы, как и все остальные, только быстрее.

А еще он пожаловался, что пиар-команда постоянно вытаскивает его из командировок и не дает работать в свое удовольствие.

В целом можно смело сказать, что в 2004 году машинное обучение при анализе и обнаружении вредоносного кода в «Лаборатории Касперского» не использовалось.

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



История развития машинного обучения в LC

Типичное содержимое Backdoor.Win32.Bifrose, популярного бэкдора того времени.

Напомню, что в тот момент я учился в институте и занимался цветовой сегментацией изображений.

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

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

большинство.

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



История развития машинного обучения в LC

spoolsv.exe, версия 5.1.2600.2180, англ и Ipconfig.exe, версия 5.1.2600.2180, рус.

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

Оказывается, это правильный путь.

Остается только это формализовать и запрограммировать.

Сначала я пытался сделать все «по науке», используя дискретное вейвлет-преобразование .

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

История развития машинного обучения в LC

Пример 2D дискретного вейвлет-преобразования, используемого в JPEG2000. Но после серии экспериментов выяснилось, что лучший подход – самый простой, а именно использование кусочно-постоянная интерполяция .

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



История развития машинного обучения в LC

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

А название утилиты осталось от сложного метода — DWT (Discrete Wavelet Transform).

Интересно, что в это же время другой наш сотрудник сделал, по сути, то же самое.

Но в итоге, когда я показал Евгению Валентиновичу рабочую программу, он похвалил и сказал: «Ей может пользоваться каждый».

По сути, этот метод можно считать первым шагом «Лаборатории» по использованию машинное обучение , даже если сам подход был довольно простым по современным меркам.

«Лаборатория Касперского» завоевала свое первенство с помощью патент .

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

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

Другими словами, для автоопределения нужно сначала искать, а потом сравнивать.

Проблема сравнения файлов была решена путем сравнения строк функций.



История развития машинного обучения в LC

Сравнение строк двух экземпляров Trojan-PSW.Win32.LdPinch. Посередине строки, которые есть в обоих экземплярах, слева строки, которые есть только в первом, справа только во втором.

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

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

Это как сначала опознать преступника по фотографии, а уже потом проверять его по отпечаткам пальцев.

Ведь в нашей задаче мы можем сразу искать по отпечаткам пальцев.

Это позволит не передавать в «следственное управление» тех «подозреваемых», на которых «свидетели» указали ошибочно.

Однако не все так просто.

Затем предстояло решить еще и техническую проблему.

Ведь в нашей вирусной коллекции на тот момент было более миллиона файлов.

Сейчас наши системы сбора за три дня собирают миллион вредоносных файлов (а каждый день приходит только миллион чистых копий).

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

Ведь промышленному решению потребуется перерабатывать весь входящий поток «Лаборатории».

Но не будем вдаваться в технические подробности – скажем лишь, что проблема решена.

Это позволило увеличить объем файлов, обрабатываемых и обнаруживаемых автоматически, в 2,5 раза.

Помню, когда я заснул, я очень переживал: «Как же так, сейчас мы нанимаем профессионалов для анализа вредоносного ПО, а когда мы автоматизируем процесс оперативного контроля, эти специалисты останутся без работы, и что? Нам нужно быстро завершить внедрение, прежде чем мы наймем слишком много сотрудников!» Но реальность расставила все на свои места: с появлением автоматизации наши вирусные аналитики и эксперты смогли уделять гораздо больше времени стратегической борьбе с вредоносным ПО и разработке.

передовые технологии .

Ну а свое первенство тогда, как обычно, застолбила «Лаборатория Касперского» с помощью патент .

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

Интересно, что на данный момент только ее руководитель — бывший вирусный аналитик, остальные сотрудники — чистые специалисты по анализу данных.

Они сразу поставили задачу формально, разработали критерии подобия, ввели функцию потерь и начали применять математические методы.

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

Я просто предпочитаю другой путь — «поиграй в прототип на коленке и готово».

Но, несмотря на мой осторожный скептицизм, с задачей команда справилась на отлично.

Первый подход наших экспертов был основан на деревьях решений.



История развития машинного обучения в LC

Принцип работы сводится к тому, что математическая модель (а именно ансамбль деревьев решений) при анализе файла задает антивирусному движку следующие вопросы:

Размер файла превышает 100 килобайт? И если да, то файл запакован? Если нет, то в файле есть названия разделов человек или мусор ? А если да, то.

и так далее.

Ответив на все вопросы, антивирусное ядро получает от математической модели вердикт «Файл чистый/вредоносный».

«Как построить такое крутое дерево? - ты спрашиваешь.

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

Второй подход основан на использовании локально устойчивых сверток.



История развития машинного обучения в LC

Цветные точки (файлы) слева хешируются традиционным способом — хеши не имеют ничего общего; справа они сложены в LSH-складку - файлы, не сильно отличающиеся друг от друга, получают близкие или одинаковые складки Опять же, принцип прост, но чтобы применить обучение ортогональным проекциям и построить математическую модель, вам понадобится упомянутый системный подход и лучшие эксперты.



История развития машинного обучения в LC

Формальная постановка задачи построения множества локально устойчивых сверток Вы можете прочитать больше об этих двух методах здесь и, конечно, в патент «Лаборатория».

Поведенческая математическая модель Все описанное выше относится к статическому обнаружению.

Другими словами, антивирус получает на вход файл, решение по которому принимает математическая модель.

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

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

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

Но есть другой подход к решению этой проблемы – динамическое обнаружение.

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

Модель может быть построена и обучена по тем же принципам, что и математические модели статического обнаружения, но с определенными ограничениями.

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

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

Как только все будет отлажено, модель будет выпущена и доставлена нашим пользователям как часть обновлений.

Заключение Я работаю в «Лаборатории Касперского» довольно долгое время и своими глазами видел, как компания развивалась и прошла все этапы становления.

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

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

Но одно всегда оставалось неизменным: за каждой технологией и достижением всегда стояли реальные люди, мои коллеги.

Вероятно, поэтому место на вершине треугольника нашей концепции HuMachine отведено нашим экспертам.



История развития машинного обучения в LC

Теги: #Машинное обучение #информационная безопасность #машинное обучение #маланов #маланов #humachine

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.