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

Классифицировать вредоносные URL-адреса в Twitter

Мы использовали набор данных из Kwon et al. и повторно извлек 25 функций. Функции отражают тенденцию спамеров:

  • Повторное использование базовой инфраструктуры хостинга (например, повторное использование перенаправителей URL-адресов и пуленепробиваемых серверов хостинга, регистрация множества доменов, размещенных на каждом IP-адресе).
  • иметь разнородные ресурсы (например, скомпрометированные машины, как правило, распространяются на большие географические расстояния, чем безопасные);
  • Отдайте предпочтение гибкости спам-кампаний (например, используйте много разных начальных URL-адресов, чтобы сообщения выглядели различно).
  • Распространяйте URL-адреса для многих пользователей (например, используйте много @ и #)

Мы обучили базовый классификатор с точностью 99,38% и частотой ложных срабатываний 0,89%, используя деревья принятия решений XGBoost Gradient Boosted (GBDT).

Модель угроз с учетом затрат

Как мы можем сделать детектор спама в Твиттере более надежным? Можем ли мы использовать существующую модель угроз L_inf, чтобы захватить возможности злоумышленника?

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

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

Надежный алгоритм обучения

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

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

Поскольку перечислить все возможные устойчивые разбиения сложно, мы разработали и внедрили жадный алгоритм для нахождения наилучшего устойчивого разбиения, который обычно можно применять к различным типам древовидных ансамблей и разным показателям усиления. Наш алгоритм работает со случайным лесом в scikit-learn и GBDT в XGBoost. Мы открыли исходный код нашей реализации здесь.

Адаптивные атаки

Что, если злоумышленник знает модель затрат, которую мы используем для обучения надежного классификатора спама в Твиттере? Можем ли мы по-прежнему повышать устойчивость с учетом затрат против адаптивных злоумышленников?

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

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

Наша статья Экономичные надежные ансамбли деревьев для приложений безопасности появится на USENIX Security 2021, а наш код доступен на github.