Отказ от ответственности: ничто в этом блоге не связано с повседневной работой автора. Контент не является аффилированным лицом и не спонсируется какими-либо компаниями.

Китайская версия находится здесь https://toooold.com/2022/01/04/useful_useless_model_cn.html

При разработке моделей машинного интеллекта для решения задач кибербезопасности мы редко встречаем случаи, когда проблему можно решить с помощью одной сквозной модели. Возьмем, к примеру, обнаружение фишинга: помимо задач инженерии данных, таких как подготовка и очистка достаточного количества входных данных, детектор начинает с определения ключевых элементов изображения на странице, таких как логотипы, объединяет функции анализа HTML-кода и классификации, в некоторых случаях это также необходимо запустить рендеринг javascript и бороться с детектором phantomjs страницы (ну, фишинговые ребята тоже умны), а также некоторые сетевые функции, такие как шаблоны DNS или URL, применять некоторые фильтры, такие как рейтинг Alexa, и предоставить достаточно доказательств для поддержки дальнейшей работы. политику и повторяйте каждую неделю, чтобы восстановить потерю точности. Такие примеры часто разочаровывают команды специалистов по обработке данных, а также руководителей компаний: создание детектора фишинга не должно быть сложной задачей, и каждая компания, занимающаяся безопасностью, производит свои детекторы фишинга, но почему только мы каждый день видим все больше и больше проблем с моим детектором? Когда мы сможем закончить? Из-за нехватки времени и ресурсов команда и руководство постепенно выгорали и начали о многом сожалеть, поэтому мы видели, как многим командам приходилось реализовывать отличные идеи и спешить с развертыванием, что распространяло технический долг на безопасность. оперативные группы или клиенты для погашения.

Сложность проблемы кибербезопасности связана с ее более высоким, чем обычно, требованием к «надежности» из-за как динамической среды высокоинтенсивного противника, так и высокой стоимости проверки, а также последствий для инцидентов. Должны ли мы назначать эксперта SOC для реагирования на каждое предупреждение, предсказанное моделью? Способна ли модель обеспечить IoC, которому я могу доверять, и заблокировать брандмауэр моей компании? Традиционные методы кибербезопасности включают хорошо обученного человека в цикл, чтобы обеспечить доверие на каждом этапе, используя человеческий опыт; однако злоумышленники тоже это знают, и в дополнение к методам обхода разработка методов атаки для исчерпания SOC также является горячей темой в исследованиях методов атак. «Как снизить человеческие затраты в цепочке доверия» стало исследовательским направлением современных методов решения кибербезопасности, в котором модельная структура перекрестной проверки с несколькими независимыми моделями является одним из эффективных методов, проще говоря, заключается в использовании нескольких независимых источники данных с независимыми векторами признаков модели, чтобы сформировать мозаику и собрать кусочки вместе для решения проблемы. Этот подход также может снизить требования к качеству отдельных моделей, позволяя включать как можно больше слабых моделей для улучшения масштаба решения проблемы, что можно обсудить в другом посте отдельно. Вопрос здесь в том, как объединить несколько независимых моделей для эффективной поддержки доверия?

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

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

Что значит «полезные бесполезные модели»

«Полезные бесполезные модели» — это тип моделей или инструментов, предназначенных для решения общей общей части списка проблем, специфичных для предметной области.

Иногда их можно назвать моделями фундамента. В статье «О возможностях и рисках базовых моделей»* Боммасани и др. обсуждаются базовые модели глубоких нейронных сетей в области компьютерного зрения, распознавания голоса, обработки естественного языка и т. д., а также методы их применения и влияние. Глубокие нейронные сети могут изучать представления признаков и переносить свои предварительно обученные модели на несколько похожих задач, позволяя предварительно обученным нейронным сетям решать несколько разных задач в одной и той же области с небольшими затратами на точную настройку. Точно так же, как модель ResNet, обученная на наборах данных ImageNet о кошках и собаках в компьютерном зрении, может обнаруживать туберкулез путем точной настройки входных данных с помощью рентгеновских изображений легких, сеть обнаружения Webshell, обученная на TextCNN с использованием набора данных PHP-скрипта, может обнаруживать туберкулез. вредоносное поведение Powershell, сценария только для Windows, путем тонкой настройки. Поскольку в обеих задачах переноса используются глубокие нейронные сети для эффективного описания локальных особенностей, что является общей чертой задач такого типа, предварительно обученная модель с подходом точной настройки хорошо работает в этих двух, казалось бы, несопоставимых задачах. задания. Конечно, тонкая настройка — это только один из методов использования предобучающих моделей; другие способы включают нулевой выстрел, несколько выстрелов и недавнюю горячую тему: подсказки. Кроме того, точная настройка на основе весов сетевого уровня является одним из немногих методов точной настройки. Например, модели, подобные Transformer/BERT, точно настраиваются с помощью механизма внимания. Не стесняйтесь углубляться в методы тонкой настройки и предварительно обученные модели.

Когда мы расширяем подход с предварительным обучением моделей нейронных сетей к более общим случаям, мы можем искать общие свойства, которые требуются при решении проблем для конкретной области, например, шаблоны атак в кибербезопасности. Анализируя паттерны атакующего поведения, мы можем задать несколько вопросов: какие действия предпринимал злоумышленник после действия А, какие действия предпринимал злоумышленник до выполнения действия А, что в противном случае они делали это во временном окне или в той же сети и так далее. Свойства последовательности этих атомарных действий являются общими свойствами этой области. Более того, мы обнаруживаем, что свойства последовательности не зависят от каких-либо конкретных проблем, а зависят только от источников данных, которые генерируют последовательности, таких как процесс родитель-потомок в журналах командной строки конечной точки, журналы подключения IP для netstats, DNS журналы и так далее. Каждый источник журнала, такой как последовательность DNS-запросов в журналах DNS, позволяет нам построить модель поведенческой последовательности и применить ее для решения конкретной задачи анализа. Вот как построена модель domain2vec, упомянутая в предыдущей статье, как «бесполезная модель», которая использует нейронную сеть для изучения плотного векторного представления каждого доменного имени и вычисляет статистическую корреляцию как косинусное сходство между любыми двумя доменами на основе последовательности запросов. Эту корреляционную функцию можно использовать в различных сценариях:

  • Обнаружение потенциальных групп DGA: домены DGA имеют сильную последовательную корреляцию в запросах DNS, со спектральной кластеризацией на плотных векторах доменных имен с длинным хвостом можно быстро найти такие группы.
  • Выявление доменов CDN, скрытых за веб-сайтами: URL-адрес домашней страницы имеет сильную корреляцию последовательности с их сайтами CDN. Можно искать вектор каждого домена домашней страницы для других доменов с высоким косинусным сходством.
  • Атаки XcodeGhost* и цепочки поставок. Поскольку групповое косинусное сходство между первичным и вторичным доменами службы API приложения относительно стабильно, сохранение истории этого набора и применение обнаружения аномалий могут обнаружить домены C&C, такие как XcodeGhost init.icloud-analysis.com, и другие атаки цепочки поставок.

Конечно, список вариантов использования намного длиннее этого. Поскольку она предоставляет количественную функцию для поведенческой корреляции как независимое от задачи представление, что является ключом к решению такого класса проблем, модель domain2vec, служащая основой для нескольких сценариев, может преобразовать кажущиеся сложными задачи в простое вычисление косинуса. Поведенческие модели на основе последовательностей, конечно, не ограничиваются векторным представлением доменных имен; они могут быть моделями подграфов или другими объектами, такими как IP-адреса, URL-адреса и т. д., а поведенческие модели — это не только модели последовательностей.

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

В целом, для решения сложных проблем кибербезопасности требуются стандартные блоки, которые могут быть предварительно обученными моделями для предметной области, более общими вычислительными функциями с особыми свойствами, такими как независимое от задачи представление, или полезными инструментами и алгоритмами для частичного решения списка проблем. Чем больше строительных блоков, тем эффективнее снижается порог решения сложных проблем, в то же время они побуждают специалистов по обработке и анализу данных смело исследовать новые способы решения проблем с гораздо низкой ценой ошибки. С точки зрения системной инженерии, каждая «бесполезная модель» может быть снабжена хорошими ресурсами ETL и инженерной оптимизации и разработана хорошей командой инженеров для поддержки ее качества в производственной среде. Вот забавная история: domain2vec, модель, созданная в 2014 году, поддерживалась и развивалась, и шесть или семь лет спустя она все еще продолжает обнаруживать новые данные об угрозах и создавать на ее основе новые сценарии приложений.

Как их построить и использовать

Хотя «Гений — это один процент вдохновения и 99 процентов пота» (Томас Эдисон), вдохновение не всегда приходит после большого пота. Вот несколько примеров научных методов, которые могут вас вдохновить. Научные методы, описанные ниже, широко используются в современных исследованиях, давайте заново откроем их для нескольких случаев решения проблем кибербезопасности.

Индуктивное рассуждение и дедуктивное рассуждение

Индуктивное рассуждение (также известное как индукция) и дедуктивное рассуждение (также известное как дедукция) лежат в основе научного метода. Индуктивное рассуждение может обобщать общие понятия, наблюдая за вещами в объективном мире, например, для большинства вторжений требуются такие шаги, как разведка, вторжение, эксплуатация, повышение привилегий, боковое перемещение, запутывание, отказ в обслуживании, эксфильтрация, а некоторые преследуют другие, так люди обобщают понятие кибератаки killchain*; дедукция постепенно расширяется от логического суждения до модели решения проблем, например, эксфильтрационное поведение возникает после вторжения. Реальным примером использования обоих методов рассуждений может быть то, что поведение эксфильтрации должно проявляться после вторжения и эксплуатации, затем модель обнаружения эксфильтрации должна искать более ранние шаги, размещая их на временной шкале с возможными функциями вторжения и эксплуатации. Поскольку эксфильтрация обладает более сильными характеристиками и высокой точностью обнаружения, она упрощает обнаружение вторжений и эксплуатации за счет простого «оглядывания назад» на аномалии. Он также соединяет несколько шагов, которые мы можем автоматизировать, построив граф знаний о событиях с временными атрибутами и связав методы прогнозирования.

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

  • Большинство веб-сайтов используют жестко заданные домены CDN, и по мере загрузки домашней страницы запросы на домены CDN отправляются на DNS-серверы.
  • Вредоносное ПО, использующее алгоритм DGA, будет массово отправлять несколько запросов домена DGA.
  • Современные браузеры, такие как Chrome, которые предварительно выбирают некоторые ссылки на странице, также инициируют несколько DNS-запросов (не всегда так, но в большинстве случаев работает).

и так далее. Мы обнаружили, что они связаны в том смысле, что последовательности DNS-запросов имеют определенную корреляцию, и у нас нет функции для измерения и вычисления таких корреляций, поэтому такая вычислительная функция могла бы решить ряд проблем в поле. Это процедура индукции привела к модели «domain2vec». Мой дорогой читатель, вы, наверное, заметили, что IP-адреса и URL-адреса следуют одному и тому же шаблону, верно? Да, это еще один пример «дедукции», и поскольку вы обобщаете модели ip2vec, url2vec и whatever2vec, имейте в виду характеристики поведения конкретных объектов, например, IP-соединения в netstats отличаются от DNS-запросов. Конечно, дедукцию можно применять разными способами: есть ли другие задачи, в которых можно использовать корреляционную функцию? Приведут ли спектральные свойства вычислительной функции к другим приложениям? Существует ли другая корреляционная функция, которая может привести к другим спектральным свойствам? И так далее. В процессе мышления два метода индукции и дедукции могут многократно повторяться. Пожалуйста, не стесняйтесь попробовать.

Стоит отметить, что индукция дает только концепции вместо основных истин или теорем, что делает ее потенциально очень субъективной и расплывчатой, например. люди, не имеющие научной подготовки, часто любят сводить все к нескольким базовым принципам, о которых они слышали, ну, комбинация излучения черного тела, демона Максвелла и второго закона термодинамики не является хорошей моделью для решения проблем кибербезопасности ( без шуток, я действительно видел, как люди это делают!). Попытка дедукции в процессе индукции обеспечивает надлежащий масштаб и направление индукции, потому что «больше — это другое» * (задачи разных масштабов и размеров требуют разных решений). Только модель, которая может быть обобщена и приводит к решению, является разумной шкалой для индукции, как сказал Фейнман о том, как открыть новую физическую теорию: «Сначала вам нужно открыть ее, затем вам нужно ее как можно больше обобщить и фальсифицируйте его экспериментальными фактами». Точно так же результат индукции может быть эмпирическим и применяться только к узкому кругу решения проблем, а дедукция может быть проверена путем обобщения введенной концепции до тех пор, пока она не подведет.

ab initio и мысленные эксперименты

Даже когда мы ежедневно работаем над решением проблем, нет гарантии, что мы сможем легко обобщить подходы к этим проблемам; в конце концов, современные технологии и общество создали эти сложные проблемы. Вот полезное предложение: «ab initio» («с самого начала»). Термин «ab initio» обычно относится к методу решения проблем в квантовой физике, и вы, вероятно, более знакомы с его модным словечком: «Первый принцип». Независимо от того, как он называется, этот подход в основном заключается в удалении ненужных предположений.

Наличие достаточного количества необходимых предположений может эффективно ограничить объем решения проблем, но некоторые предположения не являются необходимыми и могут быть вызваны историческим опытом и смешиваться с другими предположениями, часто создавая препятствия для решения проблем. Когда Илон Маск использовал первый принцип в бизнес-моделях для анализа стоимости запуска ракеты, он обнаружил, что переработка ракеты на самом деле осуществима только потому, что соображения исторической стоимости модели запуска НАСА сделали переработку недостаточно изученной, поэтому он начал перерабатывать ракета. Большинство поставщиков средств сетевой безопасности сделали обнаружение вредоносных образцов своей основной функцией, и дебаты по поводу обнаружения вредоносных программ не утихают уже несколько десятилетий. В облачную эпоху многие атаки начинают использовать такие методы, как атаки без файлов, что вынуждает традиционных поставщиков как можно быстрее добавлять больше целей обнаружения. Хотя успешный захват образцов вредоносных программ важен, облачные платформы могут собирать всевозможные журналы и создавать модели обнаружения моделей поведения с помощью машинного интеллекта, а «полагаться на образцы вредоносных программ» становится ненужным предположением, превращая кибербезопасность в эпоху облачных вычислений в моделирование поведения. основанный путь к успеху. Еще один интересный пример связан с моделью domain2vec, которая является производной от модели word2vec НЛП. При чтении статьи word2vec мы заметили, что «естественный язык в качестве входных данных» в модели был ненужным допущением, поэтому они заменили его «последовательностями доменных имен в DNS-запросах» и оптимизировали для них гиперпараметры. Это успешные примеры смелости отказаться от ненужных предположений. Конечно, если кто-то обнаружит, что устранение определенных допущений усложняет задачу, возможно, он обнаружил необходимое допущение.

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

Имея набор бесполезных моделей для решения общих проблем, команды специалистов по обработке и анализу данных будут не только достаточно уверены в решении текущей проблемы, но и будут готовы попробовать новые. Используя эти модели, мы не только получаем блестящие идеи от вдохновения, но также можем использовать мысленный эксперимент, чтобы найти блестящие И более осуществимые идеи. Одним из наиболее распространенных методов, используемых в физике, является мысленный эксперимент, который просто означает запуск чего-то абстрактного и упрощенного в воображении и наблюдение за его работой; например, Кот Шредингера — один из самых известных мысленных экспериментов. Примеров мысленных экспериментов в кибербезопасности много, например, как было сказано в предыдущей статье, злоумышленнику необходимо поэкспериментировать с N уязвимостями, соответствующими цели K методов эксплойта, суммировать ряд неудачных экспериментов и получить правильный последовательность эксплуатации, мысленный эксперимент может быть, есть пронумерованные от 1 до N мячей, брошенных в K ям, чтобы по тому, как они отскакивают, определить тип ошибки, поэтому используйте разные типы мысленных экспериментов. Как их кинуть с активным обучением, стратегией вдохновения, стратегией мультибандита, с какими отскоками они сталкиваются и какие стратегии будут лучше? Можно использовать мысленные эксперименты, чтобы проиграть все эти сценарии в уме, и после этого мы можем сделать следующий шаг.

Используя структуру «бесполезных моделей», мы можем использовать мысленные эксперименты, чтобы представить комбинации моделей A, B, C и т. д., и ввести некоторые гипотезы о проблеме, специфичной для предметной области, планируя таким образом решение проблемы. «Приманка + изучение графа + рассуждение = масштабирование анализа возникающих угроз» выражает процесс мысленного эксперимента с помощью двух плюсов: «бесполезная модель А» как модель встраивания графа может получить корреляционные функции, такие как последовательность и хост двух URL-адресов. в HTTP-трафике, что эквивалентно соединениям из пунктирной линии между двумя узлами; в то время как «бесполезная модель B» как модель рассуждений графа может найти возможные связи рассуждений в любых узлах сущностей, что приводит к обходному пути на графе в виде соединения сплошной линией; кроме того, фильтруя данные приманки, мы можем ограничить типы сущностей на графике, чтобы снизить затраты на поиск и риск двусмысленности в выводе, и решением является «комбинация моделей для поиска надежных ссылок для подтверждения пунктирных ссылок». Важно отметить, что эти комбинации фундаментальных моделей обеспечивают плечи гигантов, и мы также должны строить входные данные и последующие модели, которые соответствуют задаче, поверх плеч гиганта, чтобы уточнить решение для специфики задачи.

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

Советы помимо технологий

«Бесполезные модели» никогда не создаются методом «сверху вниз»; вместо этого они требуют, чтобы специалисты по обработке и анализу данных и исследователи в области безопасности полностью понимали проблему предметной области и обобщали ее по мере ее решения. Чтобы получить эти модели, требуются временные затраты, а также более высокие инженерные затраты на их создание, поэтому у меня есть несколько советов для руководства.

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

Резюме и небольшая беседа

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

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

Идея разработки общей модели предметной области, которая может частично решить проблему, возникла в результате разговора между мной и исследовательской группой 360netlab о модели корреляции доменных имен domain2vec и других графовых моделях несколько лет назад, и мой хороший друг Имин Гун назвал идею применения эту идею в область кибербезопасности без атрибутов НЛП как трансграничной, что вдохновило меня на исследование расширения этой трансграничной идеи. Хочу поблагодарить команду 360netlab, у них есть твиттер-аккаунт https://twitter.com/360netlab.

Дополнительные комментарии, почему я недавно написал несколько постов в блоге о решении проблем, посвященных идеям, а не технологиям. Помимо цитаты «сильные умы обсуждают идеи»*, решение задач в реальном мире — это надмножество решения данной задачи на соревнованиях, таких как Kaggle, где данные были очищены, даны оценочные показатели и, самое главное, поставлена ​​цель. установить так, чтобы люди просто бегут за ним. Реальное решение проблем требует поиска подхода, поиска данных и их очистки (и повторения для получения дополнительных данных), понимания их влияния на бизнес, чтобы определить хорошие показатели, прежде чем запускать оптимизацию модели. Специалисты по данным на более высоких должностях также должны выявлять новые проблемы в этой области и открывать двери в новом направлении. Все они нуждаются в «решении проблем», что мотивирует меня опубликовать несколько идей и мыслей.

Ссылка

Первоначально опубликовано на https://toooold.com 9 января 2022 г.