Нейронная сеть, это технология; Чтобы освободить персонал от неправильного регулярного выражения

Авторы: Рэйчел Аллен, Бартли Ричардсон

Введение в журналы

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

Журналы кибербезопасности создаются во всей организации и охватывают конечные точки (например, компьютеры, ноутбуки, серверы), сетевые коммуникации и устройства периметра (например, узлы VPN, межсетевые экраны). Используя консервативную оценку для компании, насчитывающей 1000 устройств сотрудников, небольшая организация может рассчитывать генерировать более 100 ГБ в день трафика журналов с пиковым значением EPS (событий в секунду) более 22 000¹. Некоторые из этих журналов создаются пользователями и активностью в сети, а другие журналы создаются сетевыми устройствами и устройствами безопасности, развернутыми по всей среде.

Зачем нужен анализ журналов?

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

Сегодня организации собирают, хранят и (пытаются) анализировать больше данных, чем когда-либо прежде. Журналы разнородны по источнику, формату и времени. Чтобы проанализировать данные, их сначала нужно проанализировать. Поля для действий должны быть извлечены из необработанных журналов. Сегодня журналы анализируются с помощью сложной эвристики и регулярных выражений. Эти эвристики негибкие и подвержены сбоям, если журнал вообще отклоняется от своего конкретного формата. Рассмотрим следующие ситуации.

  • Что происходит, когда вводится новый датчик / приложение и вместе с ним вводится новый формат журнала? Даже если текущие парсеры журналов могут обрабатывать данные, аналогичные этому новому формату журнала, новый парсер должен быть написан (регулярное выражение, для этого оно довольно жесткое).
  • Что происходит с деградировавшими журналами? Сбой всего конвейера или мы потеряем весь журнал? Компания SIEM или независимый поставщик программного обеспечения могут писать синтаксические анализаторы для своих собственных журналов, но ваш внутренний персонал должен писать синтаксические анализаторы для внутренних приложений, которые не придерживаются чрезвычайно распространенного формата.
  • Что, если группа операций по обеспечению безопасности (secops) захочет принять эти журналы и оценить, какая информация из них является актуальной и необходимой? Сегодня это может потребовать нескольких итераций, что потребует от уже недостаточно укомплектованной команды secops для оценки качества проанализированного журнала.

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

Что такое НЛП и почему мы должны его использовать?

Есть много способов обработки журналов и данных о кибербезопасности. В этом случае мы сосредотачиваемся на анализе журналов, которые обычно создаются людьми для записи данных, которые фиксируют обмен данными между машинами. Стоит изучить такой метод, как обработка естественного языка (НЛП). НЛП традиционно используется для таких приложений, как перевод текста, интерактивные чат-боты и виртуальные помощники. Первым шагом современных техник НЛП является преобразование текста или речи в математическое представление. Эти представления могут быть такими же простыми, как поиск, который преобразует символы в числа, или они могут быть намного более сложными, например, с использованием вывода из предварительно обученной нейронной сети (например, Word2vec, GloVe, BERT, GPT-2). . Эти нейросетевые представления изучают отношения между словами неконтролируемым методом на основе их вхождений с другими словами в очень большом обучающем корпусе, как и во всей английской Википедии. Затем модели машинного обучения разрабатываются с использованием этих представлений для достижения желаемого результата, такого как кластеризация или классификация. Предыдущая работа² показывает, что рассмотрение данных о кибербезопасности как естественного языка может быть успешным.

Почему BERT?

Учитывая их функциональность, нет недостатка в предварительно обученных представлениях слов, созданных для НЛП. Старые нейросетевые представления слов, такие как Word2vec, не зависят от контекста. Они создают встраивание одного слова для каждого слова в словаре и не могут различать слова с несколькими значениями (например, файл на диске и одна строка файла). Более поздние модели (например, ULMFit и ELMo) имеют несколько представлений слов в зависимости от контекста. Они достигают этого, используя слово плюс предыдущие слова в предложении для создания репрезентаций.

BERT (двунаправленные представления кодировщика от трансформаторов) также создает контекстные представления, но учитывает окружающий контекст в обоих направлениях - как до, так и после слова. Кодирование этой контекстной информации важно для понимания кибер-журналов из-за их упорядоченного характера. Например, в нескольких типах журналов адрес источника встречается перед адресом назначения. Дополнительная проблема применения модели естественного языка к кибер-журналам заключается в том, что многие слова в кибер-журнале не являются словами английского языка; они включают такие вещи, как пути к файлам, шестнадцатеричные значения и IP-адреса. Другие языковые модели возвращают запись вне словаря, когда сталкиваются с неизвестным словом, но BERT разбивает слова в наших киберлогах на словарные элементы WordPieces. Например, ProcessID превратится в два словаря WordPieces - Process и ##ID. Кроме того, BERT является привлекательной моделью для нашего варианта использования, потому что он был открыт в Google в конце 2018 года, а библиотека преобразователей HuggingFace содержит простую в использовании предварительно обученную модель, реализованную в PyTorch. Библиотека преобразователя может легко добавлять слои тонкой настройки к слоям представления для нашей конкретной задачи классификации нисходящего потока - распознавания именованных сущностей (NER). Последним преимуществом выбора модели BERT для синтаксического анализа киберлогов является то, что мы можем воспользоваться преимуществом эпического портманто - cyBERT.

Эксперимент cyBERT

CyBERT - это продолжающийся эксперимент по обучению и оптимизации трансформаторных сетей для задачи гибкого и надежного анализа журналов разнородных данных кибербезопасности. Это часть CLX (читайте наш обзорный блог о CLX), набора специализированных кибер-приложений, созданных с использованием RAPIDS. Поскольку BERT был разработан для естественного человеческого языка и более традиционных задач НЛП, таких как ответы на вопросы, мы преодолели несколько проблем в нашей реализации. В отличие от гибкой организации предложений человеческого языка, жесткий порядок некоторых киберлогий может заставить нашу модель изучать абсолютные положения полей, а не их относительные положения. Другая проблема заключается в том, что многие из наших журналов превышают максимальное количество в 512 токенов, также называемых WordPieces, которые можно ввести как одну последовательность в BERT. Кроме того, более длинные последовательности непропорционально дороги, потому что время механизма внимания сети квадратично длине последовательности. Чтобы добиться большей надежности и гибкости, мы настроили нашу модель на кусках бревен разной длины и начального положения. Перед выводом мы разбиваем журналы на перекрывающиеся части, чтобы учесть входной размер модели; помеченные журналы повторно объединяются при постобработке. До сих пор мы экспериментировали с входными последовательностями различной длины, размерами обучающих данных, количеством типов журналов и количеством эпох обучения.

Например, вывод для модели BERT 512 составляет 20,3 мс. Однако это еще не все. Чтобы проанализировать журнал с размером последовательности WordPiece, равным 256, в модель необходимо загрузить более 2 частей. Это необходимо для учета перекрытия между кусками бревна. Чтобы добиться того же эффекта, что и при анализе журнала с одной последовательностью WordPiece длиной 512 слов, необходимо выполнить 3 последовательности через модель последовательности из 256 WordPiece. На рисунке 1 показаны рабочие характеристики (строки) и тайминги (столбцы) для различных размеров последовательности WordPiece при анализе всего журнала.

Для журналов большого размера со средним числом токенов более 512 имеет смысл использовать максимально возможный размер WordPiece. Это дает не только максимальную производительность, но и почти максимальную производительность по всем оценочным показателям. Однако в реальном мире Центр управления безопасностью (SOC) может фактически не обрабатывать эти большие количества токенов в своих журналах. В этом случае можно найти баланс между максимальным количеством токенов и критериями производительности.

Рассмотрим размер WordPiece, равный 64. Хотя для анализа всего журнала нескольких последовательностей в нашем эксперименте требуется 15 последовательностей (по сравнению с одной последовательностью при 512), требуемое время увеличивается на ~ 5 мс. Однако, если журналы обычно меньше, время вывода для одной последовательности с 64 токенами составляет 18,9 мс. Даже при уменьшенном количестве токенов производительность по всем показателям остается высокой. Все это означает, что не существует единого готового способа внедрения cyBERT, который работал бы для каждой организации. Следует обратить внимание на вид бревен и их общий состав. Наш код для cyBERT с параметрами, которые лучше всего работали с нашими данными, можно найти в репозитории CLX.

Полученные результаты

Тонкая настройка предварительно обученной базовой модели BERT для маркировки записей кибер-журналов именами их полей - это очень мощный инструмент. Первоначально мы обучили и протестировали нашу модель на целых журналах, которые были достаточно маленькими, чтобы поместиться в одну входную последовательность, и достигли показателя микро-F1 0,9995. Однако эта модель не может анализировать журналы, размер которых превышает максимальную входную последовательность модели, и ее производительность снизилась, когда журналы из того же набора тестов были изменены на переменные начальные положения (микро-F1: 0,9634) или были разрезаны на более мелкие части (микро- F1: 0,9456). Чтобы модель не запоминала абсолютные положения полей, мы перешли к обучению на кусках бревна. Эта тренировка приводит к точности, аналогичной фиксированным начальным положениям, и хорошо работает на бревнах с переменными начальными положениями (микро-F1: 0,9938).

Мы достигаем наилучших результатов, когда обучаем нашу модель на кусках журнала и измеряем точность тестирования, разделяя каждый журнал перед выводом на перекрывающиеся куски журнала, затем рекомбинируя и принимая прогнозы из средней половины каждого куска журнала. Это позволяет модели иметь максимальный контекст в обоих направлениях для вывода. Одна из наиболее интересных особенностей cyBERT - это способность анализировать типы журналов за пределами обучающего набора. Обученный всего на 1000 примерах каждого из девяти различных типов журналов событий Windows, он может точно (micro-F1: 0,9645, см. Рис. 2) проанализировать ранее не использовавшийся тип журнала событий Windows.

Следующие шаги

После обнадеживающего начала с высокой точностью базовой модели BERT наши следующие шаги направлены на то, чтобы сделать cyBERT более надежным и гибким. Текущая модель обучается только в журналах событий Windows; мы планируем собрать более разнообразный набор журналов для обучения, включая дополнительные журналы событий Windows и веб-журналы Apache. Язык кибер-журналов отличается от языка англоязычного корпуса, на котором обучались токенизатор BERT и нейронная сеть. Мы считаем, что наша модель улучшит как скорость, так и точность, если мы перейдем к настраиваемому токенизатору и представлению, обученному с нуля на большом корпусе кибер-журналов. Например, текущий токенизатор WordPiece BERT разбивает AccountDomain на A ##cco ##unt ##D ##oma ##in, что, по нашему мнению, является более детальным, чем значимые WordPieces AccountDomain на языке киберлогов. Наш синтаксический анализатор должен работать в сети с такой скоростью, чтобы не отставать от большого объема генерируемых журналов. В будущем мы перенесем всю предварительную обработку, токенизацию и постобработку на графический процессор для более быстрого синтаксического анализа без необходимости обмена данными с памятью хоста.

Заключение

CyBERT открывает многообещающий старт в давней битве между человеком и бревнами. В этом посте мы показали, как интерпретация синтетических журналов кибербезопасности как естественного языка может сделать традиционные механизмы синтаксического анализа на основе регулярных выражений устаревшими и обеспечить гибкость и отказоустойчивость на новом уровне типичных архитектур анализа журналов. Эффективный и правильный анализ журналов имеет решающее значение для любого центра управления безопасностью, и cyBERT позволяет пользователям делать это без необходимости разработки обширных библиотек регулярных выражений. Кроме того, по мере увеличения скорости предварительной и постобработки с помощью cyBERT, появится возможность воспроизводить архивные журналы с помощью новых анализаторов, что позволит аналитикам безопасности быстро извлекать новую информацию из старых журналов по мере необходимости. Мы с нетерпением ждем будущего cyBERT и делимся своей работой с более широким сообществом специалистов по кибербезопасности!

использованная литература

  1. Брэд Хейл, Оценка генерации журналов для событий безопасности и управления журналами, http://content.solarwinds.com/creative/pdf/Whitepapers/estimating_log_generation_white_paper.pdf.
  2. Ричардсон Б., Рэдфорд Б. и др. Обнаружение аномалий в данных киберсетей с использованием подхода киберязыка, 2018 г., https://arxiv.org/abs/1808.10742.
  3. Рэдфорд, Б., Ричардсон, Б., Дэвис, С., Правила агрегирования последовательностей для обнаружения аномалий в трафике компьютерной сети, 2018, https://arxiv.org/abs/1805.03735.

Об авторах

Рэйчел Аллен - старший специалист по информационным технологиям в области инфраструктуры искусственного интеллекта NVIDIA. Рэйчел в NVIDIA занимается исследованием и применением методов с ускорением на GPU для решения проблем информационной безопасности и кибербезопасности. Ее основные исследовательские интересы связаны с применением НЛП и байесовского статистического моделирования для решения проблем кибербезопасности, причем кибербезопасность является ее последним вкладом. До прихода в NVIDIA Рэйчел была ведущим специалистом по обработке данных в Booz Allen Hamilton, где вместе с их коммерческой группой по кибербезопасности DarkLabs разработала различные возможности для расширенного поиска угроз и защиты сети. Она бывший научный сотрудник и инструктор в Data Incubator, учебной программе по науке о данных. Рэйчел имеет степень бакалавра когнитивных наук и докторскую степень в области нейробиологии Университета Вирджинии.

Бартли Ричардсон - менеджер инфраструктуры искусственного интеллекта и старший научный сотрудник NVIDIA. В NVIDIA он занимается исследованием и применением методов ускорения на GPU и архитектур графических процессоров, которые могут помочь решить сегодняшние проблемы информационной безопасности и кибербезопасности. До прихода в NVIDIA Бартли был техническим руководителем и исполнителем в нескольких исследовательских проектах DARPA, где он масштабно применял алгоритмы анализа данных и машинного обучения для решения крупных проблем кибербезопасности. Он также был главным исследователем исследовательского проекта Интернета вещей, который фокусировался на применении методов машинного и глубокого обучения к большим объемам данных Интернета вещей. Его основные области исследований включают НЛП и методы на основе последовательностей, применяемые к наборам данных киберсетей, а также междоменные приложения решений машинного и глубокого обучения для борьбы с растущим числом угроз кибербезопасности. Бартли имеет докторскую степень в области компьютерных наук и инженерии в Университете Цинциннати, специализируясь на оптимизации слабо- и неструктурированных запросов. Его степень бакалавра - компьютерная инженерия с упором на разработку программного обеспечения и искусственный интеллект.