10 августа, 2018
iСмерть e-Кощея.
Народные сказки давно развенчали миф о неуязвимости мировой злодейской закулисы (а мы вот уже больше 20 лет развенчиваем этот миф в киберпространстве). У каждого Кощея Бессмертного найдётся игла, которая в яйце, которое в утке, которая в зайце, который… ну, дальше вы знаете. При этом успех борьбы с любым злодейством – сказочным или виртуальным – зависит от двух главных качеств: настойчивости и ума (читай технологий). Сегодня я расскажу, как настойчивость и ум, а также нейросети, машинное обучение, облачная безопасность и экспертные знания в наших продуктах позволяют защитить от киберугроз, которые могут появиться в будущем.
На самом деле про технологии защиты от будущих киберугроз здесь уже было, неоднократно, очень неоднократно и даже в шутку. Вы спросите – что это мы так зациклились на них?
Потому что именно эти технологии отличают хорошую защиту от фейкового артифишл интелидженса и продуктов на краденном детекте. Распознать последовательность кода по известной сигнатуре, уже после того, как зловред проник в систему и напакостил пользователю – это нафиг никому не нужно. Как говорится «мёртвому припарки».
А вот предугадать образ мыслей кибернегодяев, оценить, в какие уязвимости их понесёт, и расставить невидимые сети, способные автоматически, сразу и наповал обнаружить атаку – вот это, увы, в нашей индустрии под силу немногим. А посмотреть на независимые тесты – так вообще единицам. И случай с WannaCry, крупнейшей эпидемией десятилетия, тому наглядный пример: благодаря технологии System Watcher наши продукты защитили пользователей от этой кибератаки проактивно.
И что самое важное: технологий защиты от будущих киберугроз много не бывает. Накрыть, скажем, эмулятором или экспертной системой анализа Big Data все возможные векторы угроз невозможно. Невидимые сети должны по максимуму накрывать все уровни и каналы, учитывать всю активность объектов в системе, чтобы уж точно ничто и никак. Причём делать это с минимальным потреблением ресурсов, нулевыми «фалсами», и стопроцентной совместимостью с другими приложениями во избежание «синьки».
Да и зловредостроение тоже не стоит на месте: кибернегодяи научили (и продолжают учить) свои поделки эффективно скрываться в системе: изменять структуру и поведение, вести «неторопливую» вредоносную активность (практически не используя вычислительных ресурсов, работать по расписанию, не начинать вредоносную активность сразу после внедрения на компьютере жертвы и так далее), глубоко внедряться в систему, удалять следы активности, использовать «чистые» и практически «чистые» методы. Но если есть Кощей, то есть и игла, вопрос — как её найти?
Для защиты от продвинутых кибератак несколько лет назад в арсенал проактивных технологий защиты наши продукты приняли на вооружение интересное изобретение (патент RU2654151). При помощи обучаемой модели поведения объектов изобретение позволяет с высокой точностью выявлять подозрительные аномалии в системе, локализовывать источник и предотвращать вредоносную активность даже самых «осторожных» зловредов.
Как это работает?
Любой работающий на компьютере объект оставляет след. Операция на диске, в памяти, доступ к системным ресурсам, передача файлов по сети и так далее – тем или иным способом, но всякий, даже самый умелый зловред себя проявляет, и, разумеется, эти следы невозможно на 100% «подтереть». Даже попытка подтереть след ведёт к появлению следов — и так далее, рекурсивно.
Как разобраться – какие из этих следов принадлежат легитимным приложениям, а какие — вредоносным? Да так, чтобы компьютер не загнулся от недостатка вычислительной мощности? А вот как.
Антивирус получает данные об активности приложений (например, выполняемые команды, их параметры, доступ к критическим системным ресурсам), на их основе строит модели поведения, выявляет аномалии и вычисляет коэффициент вредоносности. Но особенного внимания заслуживает метод, которым это делается. Помните – нужна не только надёжность, но и быстродействие. И тут нам на помощь приходит математика, а именно математическая свёртка.
Построенная модель поведения упаковывается в очень компактный вид, который, с одной стороны, сохраняет необходимую глубину информации о поведении объекта, а с другой – не требует значительных системных ресурсов. Глазу пользователя, внимательно наблюдающему за производительностью компьютера эта технология не будет заметна никак.
Пример (условный):
Для вычисления коэффициента вредоносности объекта определяем 4 внешних признака:
- Тип объекта (исполняемый/не исполняемый);
- Размер (больше/меньше 100КБ);
- Источник (скачен из Интернетов или установлен из архива с флешки)
- Распространение (больше/меньше 1000 установок по статистике KSN)
И 4 признака поведения:
- есть ли передача данных по сети;
- считывает ли данные с жёсткого диска;
- записывает ли данные в реестр;
- взаимодействует ли с пользователем через оконный интерфейс.
На каждый вопрос можно ответить «нет» (0) или «да» (1)
По этой методике, файл app.exe, размером 21 Кб, который был извлечён из архива otherstuff.zip и находится на 2113 компьютерах, не трогающий данные с жёсткого диска, передающий данные по сети, не имеющий интерфейса и записывающий данные в реестр, будет иметь вид:
1 0 0 1 1 0 1 0
Если представить это как биты 8-битового числа, то получаем 0b10011010 = 154. Это и есть свёртка. Однако в отличие от классического хеширования (например MD5 или SHA-1), свёртка в наших продуктах значительно умнее. В реальной жизни используются тысячи параметров объекта, и по каждому параметру считается много свёрток, по которым потом обученная модель ищет закономерности. В результате мы получаем максимально точную картину поведения. И очень быстро :).
Коэффициент вредоносности – отдельная песня. Ведь поведение и вредоносных и легитимных приложений может практически совпадать. Например, запись в системную папку делают многие приложения. Как распознать, какое из них это делает по легальным должностным обязанностям, а какое — со злым умыслом?
Прежде всего, коэффициент имеет накопительный эффект, или, чтобы стало совсем понятно, является монотонно растущим :). Это даёт возможность со временем выявлять зловредов с очень слабой активностью, при этом не давая ложных срабатываний – краткие всплески подозрительной активности (например, модификация системного реестра, которая происходит при установке любого приложения) не приведут к срабатыванию антивируса. Полученная свёртка пропускается через «чёрный ящик» обученную нейронную сеть, которая выдаёт вердикт о вредоносности поведения объекта.
И, конечно, большую роль в развитии технологии играет KSN – облачная система обеспечивает обмен образцами подозрительных объектов, их автоматический анализ и отладку самой технологии для повышения точности вердиктов. Используя возможности KSN, нейронная сеть постоянно «докручивается» — обучается другими алгоритмами и экспертами. Таким образом выявляются не только опасные файлы, но и сетевые сессии, компоненты и прочие наноэлементы головоломки, которые в конце концов приведут к тому самому пресловутому e-Кощею.