Машинное обучение давно и прочно вошло во все сферы деятельности человека. Оно не только играет ключевую роль в распознавании речи, жестов, рукописного ввода, образов, — без него сложно представить современную медицину, банковскую деятельность, биоинформатику и любой контроль качества. Даже прогноз погоды не делается без помощи машин, способных к обучению и обобщению.
Спешу предупредить или развеять некоторые из заблуждений, связанных с применением МО в нашей родной сфере – кибербезопасности.
Миф №1: «Машинное обучение в сфере информационной безопасности – это ново»
Почему-то именно в последнее время подозрительно часто стали говорить о некоем искусственном интеллекте в кибербезопасности. Если вы не следили, может даже сложиться впечатление, что это какая-то новинка.
Историческая справка: один из первых алгоритмов машинного обучения, искусственная нейронная сеть, был изобретен в 1950-х годах. Забавно, но тогда казалось, что с помощью этого алгоритма можно будет вот-вот создать «сильный» искусственный интеллект. Т.е. такой, который в состоянии мыслить, осознавать себя и решать не только те задачи, на которые запрограммирован. В противовес ему есть «слабый» ИИ – он может решать некоторые творческие задачи: распознавать образы, предсказывать погоду, играть в шахматы и т.п. Теперь, спустя 60 лет мы гораздо лучше понимаем, что до создания настоящего ИИ ещё долго, а то, что сегодня называют искусственным интеллектом, является машинным обучением.
Источник: http://dilbert.com/strip/2013-02-02
Ну и в кибербезопасности машинное обучение тоже не новость. Первые алгоритмы этого класса начали внедряться порядка 10-12 лет назад. Тогда количество новых зловредов удваивалось каждые два года, и в какой-то момент стало очевидно, что простой автоматизацией для вирусных аналитиков не обойтись, нужен качественный рывок. Им стала обработка всех имевшихся в вирусной коллекции файлов, чтобы получить возможность поиска файлов, похожих на исследуемый. Окончательное решение о вредоносности поначалу принимал человек. Но почти сразу и эта функция отошла роботу.
Как бы там ни было, ничего нового в использовании машинного обучения в кибербезопасности нет.
Миф №2: «Машинное обучение в кибербезопасности – это легко, все уже придумано»
Для некоторых сфер применения МО действительно есть пачка готовых алгоритмов. Например, поиск лиц на изображении, их распознавание, распознавание эмоций, отделение кошек от собак – в этих и массе других случаев кто-то хорошо подумал, выделил признаки, подобрал соответствующий математический аппарат, потратил вычислительные ресурсы, а потом поделился с общественностью. И теперь каждый школьник может применить эти алгоритмы.
Машинное обучение определяет стандарт качества печенек по количеству шоколада и размеру
Источник: http://simplyinsight.co/2016/04/26/an-introduction-to-machine-learning-theory-and-its-applications-a-visual-tutorial-with-examples/
Это порождает ложную убежденность, что и для задачи детектирования зловредов тоже все готово. Как бы не так. Мы в «Лаборатории Касперского» потратили более десяти лет, чтобы сделать и запатентовать ряд технологий. И продолжаем работать и развивать их, придумывать новые, потому что… читаем о следующем мифе:
Миф №3: «Машинное обучение – это сделал один раз и забыл»
Есть концептуальная разница между детектированием вредоносного ПО и нахождением лиц/котиков на фотографиях. Лица сегодня — они и завтра лица, ничего не меняется. В подавляющем большинстве сфер применения машинного обучения поставленная задача не меняется со временем. А в случае со зловредами меняется все постоянно и быстро. Все потому что злоумышленники – люди с конкретной мотивацией (деньги, шпионаж, терроризм…), интеллект у них не искусственный, они активно противодействуют и нарочно меняют вредоносные программы, чтобы выйти из-под обученной модели.
Поэтому приходится модель постоянно дообучать, иногда даже переобучать с нуля. Очевидно, что защитное решение на базе любой модели без обновлений антивирусных баз никуда не годится в условиях постоянного обновления вредоносного ПО. Злоумышленники мыслят творчески, когда надо.
Миф №4: «Защитному ПО можно дать возможность самообучаться на стороне клиента»
Мол, он будет у клиента обрабатывать файлы, по большей части чистые, иногда вредоносные. Последние мутируют, конечно, да, ну вот модель как раз и обучится.
Это совсем не работает, потому что через компьютер рядового клиента проходит несоизмеримо меньше образцов вредоносного ПО, чем загребается системами сбора антивирусной лаборатории. А раз нет образцов для обучения – не будет и никакого обобщения. Более того, с учетом «творчества» вирусописателей из предыдущего раздела детект будет сбит, и модель просто начнет думать, что зловреды – это чистые файлы, и будет «обучаться не в ту сторону».
Миф №5: «Можно сделать защитное решение на базе только модели с использованием МО, без использования других методов детектирования»
Мол, зачем вообще многоуровневая защита на базе разных технологий, почему бы не положить все яйца в одну корзину, ведь эта корзина такая умная и продвинутая. Одного алгоритма хватит на все.
Тут вот в чем дело. Значительная часть зловредов – это семейства, состоящие из большого количества вариантов одной и той же вредоносной программы. Например, Trojan-Ransom.Win32.Cryakl – это семейство из 50 тысяч шифровальщиков. На большом количестве образцов модель можно обучить, и она приобретает способность детектировать будущие угрозы (в известных пределах, см. третий миф). Машинное обучение отлично работает.
Но часто бывает так, что в семействе всего лишь несколько образцов или даже ровно один. Просто автор не захотел вступать в войну с защитным ПО: допустим, его «поделка» детектировалась по поведению уже в момент создания, он отчаялся и не захотел этому противодействовать, а просто решил атаковать тех, у кого защитное ПО не установлено, или тех, у кого нет детектирования по поведению (кто все яйца положил в одну корзину, как раз).
На таких «минисемействах» не удастся обучить модель – нельзя обобщать (а в этом суть машинного обучения) на основе одного-двух примеров. В этом случае гораздо эффективнее детектировать угрозу проверенными временем методами – по хэшу, масками или как-то еще.
Другой пример – таргетированные атаки. Автор такой атаки не намерен «бить по площадям», производя все новые и новые экземпляры. Автор сделает ровно один экземпляр ровно для одной жертвы, и, будьте уверены, этот экземпляр не будет детектироваться защитным решением (кроме специально предназначенных для этого, например, Kaspersky Anti-Targeted Attack Platform). В этом случае, опять-таки, выгоднее задетектить по хэшу.
Вывод: разумно пользоваться разными инструментами в разных ситуациях. Многоуровневая защита эффективнее одноуровневой, нельзя отказываться от чего-то эффективного только потому, что это «немодно».
Проблема робота-полицейского
И последнее. Это не миф, а скорее предупреждение. Сейчас исследователи все чаще стали обращать внимание на то, как ошибаются сложные модели: в некоторых случаях решения, которые они принимают, не поддаются простому объяснению с точки зрения человеческой логики.
Машинному обучению можно довериться. Но вот в критичных системах (автопилот в самолетах и автомобилях, медицина, диспетчерские и т.п.) очень строгие стандарты качества, используется формальная верификация программ и даже доказательное программирование, а в машинном обучении мы часть мыслей и ответственности передаем машине. Поэтому крайне важно, чтобы для контроля качества за моделью стояли уважаемые эксперты.
Пять мифов о машинном обучении в кибербезопасности